/linux/drivers/gpu/drm/ttm/tests/ |
H A D | ttm_bo_validate_test.c | 32 struct ttm_placement *placement; in ttm_placement_kunit_init() local 34 placement = kunit_kzalloc(test, sizeof(*placement), GFP_KERNEL); in ttm_placement_kunit_init() 35 KUNIT_ASSERT_NOT_NULL(test, placement); in ttm_placement_kunit_init() 37 placement->num_placement = num_places; in ttm_placement_kunit_init() 38 placement->placement = places; in ttm_placement_kunit_init() 40 return placement; in ttm_placement_kunit_init() 111 struct ttm_placement *placement; in ttm_bo_init_reserved_sys_man() local 120 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_init_reserved_sys_man() 124 err = ttm_bo_init_reserved(priv->ttm_dev, bo, bo_type, placement, in ttm_bo_init_reserved_sys_man() 157 struct ttm_placement *placement; in ttm_bo_init_reserved_mock_man() local [all …]
|
H A D | ttm_kunit_helpers.c | 32 .placement = &sys_place, 37 .placement = &mock1_place, 42 .placement = &mock2_place, 93 struct ttm_placement *placement) in mock_evict_flags() argument 98 *placement = sys_placement; in mock_evict_flags() 101 *placement = mock_placement; in mock_evict_flags() 110 struct ttm_placement *placement) in bad_evict_flags() argument 112 *placement = bad_placement; in bad_evict_flags()
|
/linux/drivers/gpu/drm/ttm/ |
H A D | ttm_bo.c | 51 struct ttm_placement *placement) in ttm_bo_mem_space_debug() argument 57 for (i = 0; i < placement->num_placement; i++) { in ttm_bo_mem_space_debug() 58 mem_type = placement->placement[i].mem_type; in ttm_bo_mem_space_debug() 59 drm_printf(&p, " placement[%d]=0x%08X (%d)\n", in ttm_bo_mem_space_debug() 60 i, placement->placement[i].flags, mem_type); in ttm_bo_mem_space_debug() 341 hop_placement.placement = hop; in ttm_bo_bounce_temp_buffer() 361 struct ttm_placement placement; in ttm_bo_evict() local 369 placement.num_placement = 0; in ttm_bo_evict() 370 bdev->funcs->evict_flags(bo, &placement); in ttm_bo_evict() 372 if (!placement.num_placement) { in ttm_bo_evict() [all …]
|
H A D | ttm_resource.c | 298 * @place: placement of the resource 312 res->placement = place->flags; in ttm_resource_init() 410 * @place: The placement to test 416 * Returns true if the res placement intersects with @place and @size. 436 * ttm_resource_compatible - check if resource is compatible with placement 439 * @placement: the placement to check against 442 * Returns true if the placement is compatible. 445 struct ttm_placement *placement, in ttm_resource_compatible() argument 452 if (res->placement & TTM_PL_FLAG_TEMPORARY) in ttm_resource_compatible() 455 for (i = 0; i < placement->num_placement; i++) { in ttm_resource_compatible() [all …]
|
/linux/include/drm/ttm/ |
H A D | ttm_placement.h | 37 * Memory regions for data placement. 42 * placement they need to be able to handle the issues that arise due to the 48 * placement that can handle such scenarios is a good idea. 67 /* Placement is never used during eviction */ 70 /* Placement is only used during eviction */ 94 * @placement: preferred placements 96 * Structure indicating the placement you request for an object. 100 const struct ttm_place *placement; member
|
H A D | ttm_resource.h | 96 * @place: Placement details. 100 * by @man. Placement details if applicable are given by @place. If 134 * @place: Placement to check against. 150 * @place: Placement to check against. 230 * Structure indicating the bus placement of an object. 245 * @placement: Placement flags. 246 * @bus: Placement on io bus accessible to the CPU 250 * Structure indicating the placement and space resources used by a 257 uint32_t placement; member 385 * used for object placement. [all …]
|
H A D | ttm_bo.h | 83 * @resource: structure describing current placement. 90 * Base class for TTM buffer object, that deals with data placement and CPU 92 * the driver can usually use the placement offset @offset directly as the 96 * placement and caching for these GPU maps. This makes it possible to use 180 * Context for TTM operations like changing buffer placement or general memory 393 struct ttm_placement *placement, 401 enum ttm_bo_type type, struct ttm_placement *placement, 406 enum ttm_bo_type type, struct ttm_placement *placement, 439 struct ttm_placement *placement,
|
/linux/drivers/gpu/drm/vmwgfx/ |
H A D | vmwgfx_bo.c | 83 * vmw_bo_pin_in_placement - Validate a buffer to placement. 87 * @placement: The placement to pin it. 94 struct ttm_placement *placement, in vmw_bo_pin_in_placement() argument 107 ret = ttm_bo_validate(bo, placement, &ctx); in vmw_bo_pin_in_placement() 146 ret = ttm_bo_validate(bo, &buf->placement, &ctx); in vmw_bo_pin_in_vram_or_gmr() 153 ret = ttm_bo_validate(bo, &buf->placement, &ctx); in vmw_bo_pin_in_vram_or_gmr() 224 (void)ttm_bo_validate(bo, &buf->placement, &ctx); in vmw_bo_pin_in_start_of_vram() 231 ret = ttm_bo_validate(bo, &buf->placement, &ctx); in vmw_bo_pin_in_start_of_vram() 276 * vmw_bo_get_guest_ptr - Get the guest ptr representing the current placement 306 struct ttm_placement placement; in vmw_bo_pin_reserved() local [all …]
|
H A D | vmwgfx_gem.c | 260 const char *placement; in vmw_bo_print_info() local 265 placement = " CPU"; in vmw_bo_print_info() 268 placement = " GMR"; in vmw_bo_print_info() 271 placement = " MOB"; in vmw_bo_print_info() 274 placement = "VCPU"; in vmw_bo_print_info() 277 placement = "VRAM"; in vmw_bo_print_info() 280 placement = "None"; in vmw_bo_print_info() 300 id, bo->tbo.base.size, placement, type); in vmw_bo_print_info()
|
H A D | vmwgfx_bo.h | 69 * @placement: The preferred placement for this buffer object 70 * @places: The chosen places for the preferred placement. 71 * @busy_places: Chosen busy places for the preferred placement 85 struct ttm_placement placement; member
|
/linux/drivers/gpu/drm/xe/ |
H A D | xe_bo_doc.h | 15 * TTM manages (placement, eviction, etc...) all BOs in XE. 20 * Create a chunk of memory which can be used by the GPU. Placement rules 21 * (sysmem or vram region) passed in upon creation. TTM handles placement of BO 66 * BO placement 78 * placement. If a BO was swapped to temporary storage, a validation call will 79 * trigger a move back to a valid (location where GPU can access BO) placement. 98 * placement rules which currently reside in VRAM, TTM trigger a will move of 104 * valid placement. In this case TTM will evict one (or multiple) unlocked BO(s) 105 * to a temporary unreachable (invalid) placement. The evicted BO(s) are invalid 106 * and before next use need to be moved to a valid placement and rebound.
|
H A D | xe_bo.c | 49 .placement = &sys_placement_flags, 69 .placement = tt_placement_flags, 109 return bo->placement.num_placement == 1; in xe_bo_has_single_placement() 238 bo->placement = (struct ttm_placement) { in __xe_bo_placement_for_flags() 240 .placement = bo->placements, in __xe_bo_placement_for_flags() 254 struct ttm_placement *placement) in xe_evict_flags() argument 259 placement->num_placement = 0; in xe_evict_flags() 263 *placement = sys_placement; in xe_evict_flags() 275 *placement = tt_placement; in xe_evict_flags() 279 *placement = sys_placement; in xe_evict_flags() [all …]
|
H A D | xe_bo_types.h | 40 /** @placement: current placement for this BO */ 41 struct ttm_placement placement; member
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_object.c | 102 * amdgpu_bo_placement_from_domain - set buffer's placement 103 * @abo: &amdgpu_bo buffer object whose placement is to be set 106 * Sets buffer's placement according to requested domain and the buffer's 112 struct ttm_placement *placement = &abo->placement; in amdgpu_bo_placement_from_domain() local 214 placement->num_placement = c; in amdgpu_bo_placement_from_domain() 215 placement->placement = places; in amdgpu_bo_placement_from_domain() 468 for (i = 0; i < (*bo_ptr)->placement.num_placement; ++i) { in amdgpu_bo_create_kernel_at() 472 r = ttm_bo_mem_space(&(*bo_ptr)->tbo, &(*bo_ptr)->placement, in amdgpu_bo_create_kernel_at() 707 &bo->placement, page_align, &ctx, NULL, in amdgpu_bo_create() 951 uint32_t mem_flags = bo->tbo.resource->placement; in amdgpu_bo_pin() [all …]
|
H A D | amdgpu_ttm.c | 83 * amdgpu_evict_flags - Compute placement flags 86 * @placement: Possible destination(s) for evicted BO 88 * Fill in placement data when ttm_bo_evict() is called 91 struct ttm_placement *placement) in amdgpu_evict_flags() argument 104 placement->num_placement = 0; in amdgpu_evict_flags() 110 placement->placement = &placements; in amdgpu_evict_flags() 111 placement->num_placement = 1; in amdgpu_evict_flags() 117 placement->num_placement = 0; in amdgpu_evict_flags() 126 placement->num_placement = 0; in amdgpu_evict_flags() 139 * first, but only set GTT as busy placement, so this in amdgpu_evict_flags() [all …]
|
/linux/Documentation/driver-api/ |
H A D | mtdnand.rst | 502 - Automatic placement at the end of the chip 593 For automatic placement some blocks must be reserved for bad block 600 Spare area (auto)placement 603 The nand driver implements different possibilities for placement of 606 - Placement defined by fs driver 608 - Automatic placement 610 The default placement function is automatic placement. The nand driver 611 has built in default placement schemes for the various chiptypes. If due 612 to hardware ECC functionality the default placement does not fit then 613 the board driver can provide a own placement scheme. [all …]
|
/linux/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_ttm.c | 67 .placement = &sys_placement_flags, 77 * Return: A pointer to a static variable for sys placement. 159 struct ttm_placement *placement) in i915_ttm_placement_from_obj() argument 177 placement->num_placement = num_allowed + 1; in i915_ttm_placement_from_obj() 178 placement->placement = places; in i915_ttm_placement_from_obj() 378 struct ttm_placement *placement) in i915_ttm_evict_flags() argument 380 *placement = i915_sys_placement; in i915_ttm_evict_flags() 774 struct ttm_placement *placement) in __i915_ttm_get_pages() argument 785 /* First try only the requested placement. No eviction. */ in __i915_ttm_get_pages() 787 memcpy(&initial_place, placement->placement, sizeof(struct ttm_place)); in __i915_ttm_get_pages() [all …]
|
/linux/drivers/gpu/drm/qxl/ |
H A D | qxl_ttm.c | 51 struct ttm_placement *placement) in qxl_evict_flags() argument 62 placement->placement = &placements; in qxl_evict_flags() 63 placement->num_placement = 1; in qxl_evict_flags() 68 *placement = qbo->placement; in qxl_evict_flags()
|
H A D | qxl_object.c | 65 qbo->placement.placement = qbo->placements; in qxl_ttm_placement_from_domain() 84 qbo->placement.num_placement = c; in qxl_ttm_placement_from_domain() 140 &bo->placement, 0, &ctx, NULL, NULL, in qxl_bo_create() 307 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in qxl_bo_pin_locked()
|
/linux/drivers/mtd/nand/ |
H A D | ecc.c | 162 /* Define default OOB placement schemes for large and small page devices */ 369 enum nand_ecc_placement placement; in of_get_nand_ecc_placement() local 373 err = of_property_read_string(np, "nand-ecc-placement", &pm); in of_get_nand_ecc_placement() 375 for (placement = NAND_ECC_PLACEMENT_OOB; in of_get_nand_ecc_placement() 376 placement < ARRAY_SIZE(nand_ecc_placement); placement++) { in of_get_nand_ecc_placement() 377 if (!strcasecmp(pm, nand_ecc_placement[placement])) in of_get_nand_ecc_placement() 378 return placement; in of_get_nand_ecc_placement() 435 nand->ecc.user_conf.placement = of_get_nand_ecc_placement(dn); in of_get_nand_ecc_user_config()
|
/linux/drivers/gpu/drm/radeon/ |
H A D | radeon_object.c | 80 rbo->placement.placement = rbo->placements; in radeon_ttm_placement_from_domain() 115 rbo->placement.num_placement = c; in radeon_ttm_placement_from_domain() 205 &bo->placement, page_align, !kernel, sg, resv, in radeon_bo_create() 305 for (i = 0; i < bo->placement.num_placement; i++) { in radeon_bo_pin_restricted() 316 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_bo_pin_restricted() 515 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_bo_list_validate() 745 for (i = 0; i < rbo->placement.num_placement; i++) { in radeon_bo_fault_reserve_notify() 751 r = ttm_bo_validate(bo, &rbo->placement, &ctx); in radeon_bo_fault_reserve_notify() 754 r = ttm_bo_validate(bo, &rbo->placement, &ctx); in radeon_bo_fault_reserve_notify()
|
/linux/drivers/gpu/drm/loongson/ |
H A D | lsdc_ttm.c | 56 lbo->placement.placement = lbo->placements; in lsdc_bo_set_placement() 78 lbo->placement.num_placement = c; in lsdc_bo_set_placement() 155 *tplacement = lbo->placement; in lsdc_bo_evict_flags() 302 ret = ttm_bo_validate(tbo, &lbo->placement, &ctx); in lsdc_bo_pin() 475 ret = ttm_bo_init_validate(bdev, tbo, bo_type, &lbo->placement, 0, in lsdc_bo_create()
|
/linux/Documentation/filesystems/ext4/ |
H A D | allocators.rst | 26 the filesystem defers deciding the exact placement on the disk until all 28 particular placement until it's absolutely necessary (the commit timeout
|
/linux/include/uapi/mtd/ |
H A D | mtd-abi.h | 163 /* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */ 165 #define MTD_NANDECC_PLACE 1 /* Use the given placement in the structure (YAFFS1 legacy mode) */ 166 #define MTD_NANDECC_AUTOPLACE 2 /* Use the default placement scheme */ 167 #define MTD_NANDECC_PLACEONLY 3 /* Use the given placement in the structure (Do not store ecc resul…
|
/linux/Documentation/scsi/ |
H A D | cxgb3i.rst | 11 series of products) support iSCSI acceleration and iSCSI Direct Data Placement 23 - Direct Data Placement (DDP)
|