Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/{i915, xe}/stolen: use the stored i915/xe device pointer

Now that we store the i915/xe device pointer in struct
intel_stolen_node, we can reduce parameter passing in a number of
functions.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/6f31114c8113ce2254d422ca53992088b673fb2f.1758732183.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

+33 -50
+8 -13
drivers/gpu/drm/i915/display/intel_fbc.c
··· 388 388 i915_gem_stolen_node_offset(fbc->compressed_llb), 389 389 U32_MAX)); 390 390 intel_de_write(display, FBC_CFB_BASE, 391 - i915_gem_stolen_node_address(i915, fbc->compressed_fb)); 391 + i915_gem_stolen_node_address(fbc->compressed_fb)); 392 392 intel_de_write(display, FBC_LL_BASE, 393 - i915_gem_stolen_node_address(i915, fbc->compressed_llb)); 393 + i915_gem_stolen_node_address(fbc->compressed_llb)); 394 394 } 395 395 396 396 static const struct intel_fbc_funcs i8xx_fbc_funcs = { ··· 836 836 unsigned int size, int min_limit) 837 837 { 838 838 struct intel_display *display = fbc->display; 839 - struct drm_i915_private *i915 = to_i915(display->drm); 840 839 u64 end = intel_fbc_stolen_end(display); 841 840 int ret, limit = min_limit; 842 841 843 842 size /= limit; 844 843 845 844 /* Try to over-allocate to reduce reallocations and fragmentation. */ 846 - ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb, 845 + ret = i915_gem_stolen_insert_node_in_range(fbc->compressed_fb, 847 846 size <<= 1, 4096, 0, end); 848 847 if (ret == 0) 849 848 return limit; 850 849 851 850 for (; limit <= intel_fbc_max_limit(display); limit <<= 1) { 852 - ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb, 851 + ret = i915_gem_stolen_insert_node_in_range(fbc->compressed_fb, 853 852 size >>= 1, 4096, 0, end); 854 853 if (ret == 0) 855 854 return limit; ··· 870 871 i915_gem_stolen_node_allocated(fbc->compressed_llb)); 871 872 872 873 if (DISPLAY_VER(display) < 5 && !display->platform.g4x) { 873 - ret = i915_gem_stolen_insert_node(i915, fbc->compressed_llb, 874 - 4096, 4096); 874 + ret = i915_gem_stolen_insert_node(fbc->compressed_llb, 4096, 4096); 875 875 if (ret) 876 876 goto err; 877 877 } ··· 891 893 892 894 err_llb: 893 895 if (i915_gem_stolen_node_allocated(fbc->compressed_llb)) 894 - i915_gem_stolen_remove_node(i915, fbc->compressed_llb); 896 + i915_gem_stolen_remove_node(fbc->compressed_llb); 895 897 err: 896 898 if (i915_gem_stolen_initialized(i915)) 897 899 drm_info_once(display->drm, ··· 944 946 945 947 static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc) 946 948 { 947 - struct intel_display *display = fbc->display; 948 - struct drm_i915_private *i915 = to_i915(display->drm); 949 - 950 949 if (WARN_ON(intel_fbc_hw_is_active(fbc))) 951 950 return; 952 951 953 952 if (i915_gem_stolen_node_allocated(fbc->compressed_llb)) 954 - i915_gem_stolen_remove_node(i915, fbc->compressed_llb); 953 + i915_gem_stolen_remove_node(fbc->compressed_llb); 955 954 if (i915_gem_stolen_node_allocated(fbc->compressed_fb)) 956 - i915_gem_stolen_remove_node(i915, fbc->compressed_fb); 955 + i915_gem_stolen_remove_node(fbc->compressed_fb); 957 956 } 958 957 959 958 void intel_fbc_cleanup(struct intel_display *display)
+9 -11
drivers/gpu/drm/i915/gem/i915_gem_stolen.c
··· 63 63 return ret; 64 64 } 65 65 66 - int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915, 67 - struct intel_stolen_node *node, u64 size, 66 + int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size, 68 67 unsigned int alignment, u64 start, u64 end) 69 68 { 70 - return __i915_gem_stolen_insert_node_in_range(i915, &node->node, 69 + return __i915_gem_stolen_insert_node_in_range(node->i915, &node->node, 71 70 size, alignment, 72 71 start, end); 73 72 } ··· 81 82 U64_MAX); 82 83 } 83 84 84 - int i915_gem_stolen_insert_node(struct drm_i915_private *i915, 85 - struct intel_stolen_node *node, u64 size, 85 + int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size, 86 86 unsigned int alignment) 87 87 { 88 - return __i915_gem_stolen_insert_node(i915, &node->node, size, alignment); 88 + return __i915_gem_stolen_insert_node(node->i915, &node->node, size, alignment); 89 89 } 90 90 91 91 static void __i915_gem_stolen_remove_node(struct drm_i915_private *i915, ··· 95 97 mutex_unlock(&i915->mm.stolen_lock); 96 98 } 97 99 98 - void i915_gem_stolen_remove_node(struct drm_i915_private *i915, 99 - struct intel_stolen_node *node) 100 + void i915_gem_stolen_remove_node(struct intel_stolen_node *node) 100 101 { 101 - __i915_gem_stolen_remove_node(i915, &node->node); 102 + __i915_gem_stolen_remove_node(node->i915, &node->node); 102 103 } 103 104 104 105 static bool valid_stolen_size(struct drm_i915_private *i915, struct resource *dsm) ··· 1039 1042 return resource_size(&i915->dsm.stolen); 1040 1043 } 1041 1044 1042 - u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915, 1043 - const struct intel_stolen_node *node) 1045 + u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node) 1044 1046 { 1047 + struct drm_i915_private *i915 = node->i915; 1048 + 1045 1049 return i915->dsm.stolen.start + i915_gem_stolen_node_offset(node); 1046 1050 } 1047 1051
+4 -8
drivers/gpu/drm/i915/gem/i915_gem_stolen.h
··· 13 13 struct drm_i915_private; 14 14 struct intel_stolen_node; 15 15 16 - int i915_gem_stolen_insert_node(struct drm_i915_private *i915, 17 - struct intel_stolen_node *node, u64 size, 16 + int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size, 18 17 unsigned alignment); 19 - int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915, 20 - struct intel_stolen_node *node, u64 size, 18 + int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size, 21 19 unsigned alignment, u64 start, 22 20 u64 end); 23 - void i915_gem_stolen_remove_node(struct drm_i915_private *i915, 24 - struct intel_stolen_node *node); 21 + void i915_gem_stolen_remove_node(struct intel_stolen_node *node); 25 22 struct intel_memory_region * 26 23 i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type, 27 24 u16 instance); ··· 38 41 u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915); 39 42 u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915); 40 43 41 - u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915, 42 - const struct intel_stolen_node *node); 44 + u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node); 43 45 44 46 bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node); 45 47 u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node);
+4 -9
drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
··· 12 12 struct intel_stolen_node; 13 13 struct xe_device; 14 14 15 - int i915_gem_stolen_insert_node_in_range(struct xe_device *xe, 16 - struct intel_stolen_node *node, 15 + int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, 17 16 u32 size, u32 align, 18 17 u32 start, u32 end); 19 18 20 - int i915_gem_stolen_insert_node(struct xe_device *xe, 21 - struct intel_stolen_node *node, 22 - u32 size, u32 align); 19 + int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align); 23 20 24 - void i915_gem_stolen_remove_node(struct xe_device *xe, 25 - struct intel_stolen_node *node); 21 + void i915_gem_stolen_remove_node(struct intel_stolen_node *node); 26 22 27 23 bool i915_gem_stolen_initialized(struct xe_device *xe); 28 24 ··· 30 34 31 35 u64 i915_gem_stolen_area_size(const struct xe_device *xe); 32 36 33 - u64 i915_gem_stolen_node_address(struct xe_device *xe, 34 - struct intel_stolen_node *node); 37 + u64 i915_gem_stolen_node_address(struct intel_stolen_node *node); 35 38 36 39 u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node); 37 40
+8 -9
drivers/gpu/drm/xe/display/xe_stolen.c
··· 11 11 struct xe_bo *bo; 12 12 }; 13 13 14 - int i915_gem_stolen_insert_node_in_range(struct xe_device *xe, 15 - struct intel_stolen_node *node, 14 + int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, 16 15 u32 size, u32 align, 17 16 u32 start, u32 end) 18 17 { 18 + struct xe_device *xe = node->xe; 19 + 19 20 struct xe_bo *bo; 20 21 int err = 0; 21 22 u32 flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_STOLEN; ··· 42 41 return err; 43 42 } 44 43 45 - int i915_gem_stolen_insert_node(struct xe_device *xe, 46 - struct intel_stolen_node *node, 47 - u32 size, u32 align) 44 + int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align) 48 45 { 49 46 /* Not used on xe */ 50 47 WARN_ON(1); ··· 50 51 return -ENODEV; 51 52 } 52 53 53 - void i915_gem_stolen_remove_node(struct xe_device *xe, 54 - struct intel_stolen_node *node) 54 + void i915_gem_stolen_remove_node(struct intel_stolen_node *node) 55 55 { 56 56 xe_bo_unpin_map_no_vm(node->bo); 57 57 node->bo = NULL; ··· 90 92 return 0; 91 93 } 92 94 93 - u64 i915_gem_stolen_node_address(struct xe_device *xe, 94 - struct intel_stolen_node *node) 95 + u64 i915_gem_stolen_node_address(struct intel_stolen_node *node) 95 96 { 97 + struct xe_device *xe = node->xe; 98 + 96 99 return xe_ttm_stolen_gpu_offset(xe) + i915_gem_stolen_node_offset(node); 97 100 } 98 101