On Tue, Nov 21, 2023 at 07:35:03AM +0000, Hogander, Jouni wrote: > On Mon, 2023-11-20 at 16:19 +0200, Ville Syrjälä wrote: > > On Mon, Nov 20, 2023 at 12:08:32PM +0200, Jouni Högander wrote: > > > We are about to split i915 specific code from intel_fb.c. Convert > > > intel_fb_modifier_to_tiling as non-static to allow calling it from > > > split > > > code. > > > > We should only need this in the i915 path. > > If I move it into i915 specific source file I need to convert > lookup_modifier as non-static. Would you prefer that or do you have > some other suggestion? Why does this even use lookup_modifier()? Hmm, I guess it's just using that to reduce all the compressed modifiers to the Y-tiled "class". One alternative would be to just list the modifiers by hand, but dunno if that's any better. I suppose we can just go with your original idea. Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > BR, > > Jouni Högander > > > > > > > > Signed-off-by: Jouni Högander <jouni.hogander@xxxxxxxxx> > > > --- > > > drivers/gpu/drm/i915/display/intel_fb.c | 40 ++++++++++++--------- > > > ---- > > > drivers/gpu/drm/i915/display/intel_fb.h | 2 ++ > > > 2 files changed, 22 insertions(+), 20 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_fb.c > > > b/drivers/gpu/drm/i915/display/intel_fb.c > > > index 7c2df6c1f377..a235ec0f192d 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_fb.c > > > +++ b/drivers/gpu/drm/i915/display/intel_fb.c > > > @@ -301,6 +301,26 @@ lookup_format_info(const struct > > > drm_format_info formats[], > > > return NULL; > > > } > > > > > > +unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier) > > > +{ > > > + u8 tiling_caps = lookup_modifier(fb_modifier)->plane_caps & > > > + INTEL_PLANE_CAP_TILING_MASK; > > > + > > > + switch (tiling_caps) { > > > + case INTEL_PLANE_CAP_TILING_Y: > > > + return I915_TILING_Y; > > > + case INTEL_PLANE_CAP_TILING_X: > > > + return I915_TILING_X; > > > + case INTEL_PLANE_CAP_TILING_4: > > > + case INTEL_PLANE_CAP_TILING_Yf: > > > + case INTEL_PLANE_CAP_TILING_NONE: > > > + return I915_TILING_NONE; > > > + default: > > > + MISSING_CASE(tiling_caps); > > > + return I915_TILING_NONE; > > > + } > > > +} > > > + > > > /** > > > * intel_fb_get_format_info: Get a modifier specific format > > > information > > > * @cmd: FB add command structure > > > @@ -737,26 +757,6 @@ intel_fb_align_height(const struct > > > drm_framebuffer *fb, > > > return ALIGN(height, tile_height); > > > } > > > > > > -static unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier) > > > -{ > > > - u8 tiling_caps = lookup_modifier(fb_modifier)->plane_caps & > > > - INTEL_PLANE_CAP_TILING_MASK; > > > - > > > - switch (tiling_caps) { > > > - case INTEL_PLANE_CAP_TILING_Y: > > > - return I915_TILING_Y; > > > - case INTEL_PLANE_CAP_TILING_X: > > > - return I915_TILING_X; > > > - case INTEL_PLANE_CAP_TILING_4: > > > - case INTEL_PLANE_CAP_TILING_Yf: > > > - case INTEL_PLANE_CAP_TILING_NONE: > > > - return I915_TILING_NONE; > > > - default: > > > - MISSING_CASE(tiling_caps); > > > - return I915_TILING_NONE; > > > - } > > > -} > > > - > > > bool intel_fb_modifier_uses_dpt(struct drm_i915_private *i915, u64 > > > modifier) > > > { > > > return HAS_DPT(i915) && modifier != DRM_FORMAT_MOD_LINEAR; > > > diff --git a/drivers/gpu/drm/i915/display/intel_fb.h > > > b/drivers/gpu/drm/i915/display/intel_fb.h > > > index e85167d6bc34..23db6628f53e 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_fb.h > > > +++ b/drivers/gpu/drm/i915/display/intel_fb.h > > > @@ -95,4 +95,6 @@ intel_user_framebuffer_create(struct drm_device > > > *dev, > > > bool intel_fb_modifier_uses_dpt(struct drm_i915_private *i915, u64 > > > modifier); > > > bool intel_fb_uses_dpt(const struct drm_framebuffer *fb); > > > > > > +unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier); > > > + > > > #endif /* __INTEL_FB_H__ */ > > > -- > > > 2.34.1 > > > -- Ville Syrjälä Intel