Message ID | 20250410163218.15130-1-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | drm: Eliminate redundant drm_format_info lookups | expand |
Hi, a really nice cleanup. With the various comments fixed, you can add Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> to the series. Best regards Thomas Am 10.04.25 um 18:31 schrieb Ville Syrjala: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > I noticed a bunch of redundant (and rather expensive) drm_format_info > lookups in some traces recently. This series is an attempt to eliminate > them. > > Ville Syrjälä (19): > drm: Pass pixel_format+modifier to .get_format_info() > drm: Pass pixel_format+modifier directly to drm_get_format_info() > drm: Look up the format info earlier > drm: Pass the format info to .fb_create() > drm: Allow the caller to pass in the format info to > drm_helper_mode_fill_fb_struct() > drm/malidp: Pass along the format info from .fb_create() > malidp_verify_afbc_framebuffer_size() > drm/gem: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/gem/afbc: Eliminate redundant drm_get_format_info() > drm/amdgpu: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/armada: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/exynos: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/gma500: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/i915: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/komeda: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/msm: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/tegra: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/virtio: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm/vmwgfx: Pass along the format info from .fb_create() to > drm_helper_mode_fill_fb_struct() > drm: Make passing of format info to drm_helper_mode_fill_fb_struct() > mandatory > > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++- > drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 + > .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +- > .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +- > .../arm/display/komeda/komeda_framebuffer.c | 3 +- > .../arm/display/komeda/komeda_framebuffer.h | 1 + > drivers/gpu/drm/arm/malidp_drv.c | 12 +++--- > drivers/gpu/drm/armada/armada_fb.c | 12 +++--- > drivers/gpu/drm/armada/armada_fb.h | 4 +- > drivers/gpu/drm/armada/armada_fbdev.c | 5 ++- > drivers/gpu/drm/drm_fourcc.c | 7 ++-- > drivers/gpu/drm/drm_framebuffer.c | 27 ++++++------- > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++----------- > drivers/gpu/drm/drm_modeset_helper.c | 4 +- > drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++-- > drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 + > drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++- > drivers/gpu/drm/gma500/fbdev.c | 5 ++- > drivers/gpu/drm/gma500/framebuffer.c | 14 ++++--- > drivers/gpu/drm/gma500/psb_drv.h | 1 + > drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++---- > drivers/gpu/drm/i915/display/intel_fb.h | 5 ++- > drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++- > .../drm/i915/display/intel_plane_initial.c | 3 +- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +-- > drivers/gpu/drm/msm/msm_drv.h | 3 +- > drivers/gpu/drm/msm/msm_fb.c | 18 +++++---- > drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +---- > drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++- > drivers/gpu/drm/nouveau/nouveau_display.h | 1 + > drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++--- > drivers/gpu/drm/omapdrm/omap_fb.h | 3 +- > drivers/gpu/drm/qxl/qxl_display.c | 3 +- > drivers/gpu/drm/radeon/radeon_display.c | 3 +- > drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +- > drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +- > drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +- > .../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +- > drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++---- > drivers/gpu/drm/tegra/drm.h | 2 + > drivers/gpu/drm/tegra/fb.c | 7 ++-- > drivers/gpu/drm/tegra/fbdev.c | 4 +- > drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 + > drivers/gpu/drm/vc4/vc4_kms.c | 3 +- > drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++--- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 + > drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++- > drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +- > drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +- > drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +- > include/drm/drm_fourcc.h | 2 +- > include/drm/drm_gem_framebuffer_helper.h | 6 +++ > include/drm/drm_mode_config.h | 3 +- > include/drm/drm_modeset_helper.h | 2 + > 56 files changed, 207 insertions(+), 139 deletions(-) >
From: Ville Syrjälä <ville.syrjala@linux.intel.com> I noticed a bunch of redundant (and rather expensive) drm_format_info lookups in some traces recently. This series is an attempt to eliminate them. Ville Syrjälä (19): drm: Pass pixel_format+modifier to .get_format_info() drm: Pass pixel_format+modifier directly to drm_get_format_info() drm: Look up the format info earlier drm: Pass the format info to .fb_create() drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct() drm/malidp: Pass along the format info from .fb_create() malidp_verify_afbc_framebuffer_size() drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/gem/afbc: Eliminate redundant drm_get_format_info() drm/amdgpu: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/exynos: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/gma500: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/i915: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/komeda: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/msm: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/tegra: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/virtio: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm/vmwgfx: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 1 + .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +- .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 2 +- .../arm/display/komeda/komeda_framebuffer.c | 3 +- .../arm/display/komeda/komeda_framebuffer.h | 1 + drivers/gpu/drm/arm/malidp_drv.c | 12 +++--- drivers/gpu/drm/armada/armada_fb.c | 12 +++--- drivers/gpu/drm/armada/armada_fb.h | 4 +- drivers/gpu/drm/armada/armada_fbdev.c | 5 ++- drivers/gpu/drm/drm_fourcc.c | 7 ++-- drivers/gpu/drm/drm_framebuffer.c | 27 ++++++------- drivers/gpu/drm/drm_gem_framebuffer_helper.c | 38 ++++++++----------- drivers/gpu/drm/drm_modeset_helper.c | 4 +- drivers/gpu/drm/exynos/exynos_drm_fb.c | 7 ++-- drivers/gpu/drm/exynos/exynos_drm_fb.h | 1 + drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 ++- drivers/gpu/drm/gma500/fbdev.c | 5 ++- drivers/gpu/drm/gma500/framebuffer.c | 14 ++++--- drivers/gpu/drm/gma500/psb_drv.h | 1 + drivers/gpu/drm/i915/display/intel_fb.c | 18 +++++---- drivers/gpu/drm/i915/display/intel_fb.h | 5 ++- drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 ++- .../drm/i915/display/intel_plane_initial.c | 3 +- drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 ++- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +-- drivers/gpu/drm/msm/msm_drv.h | 3 +- drivers/gpu/drm/msm/msm_fb.c | 18 +++++---- drivers/gpu/drm/mxsfb/mxsfb_drv.c | 9 +---- drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++- drivers/gpu/drm/nouveau/nouveau_display.h | 1 + drivers/gpu/drm/omapdrm/omap_fb.c | 10 ++--- drivers/gpu/drm/omapdrm/omap_fb.h | 3 +- drivers/gpu/drm/qxl/qxl_display.c | 3 +- drivers/gpu/drm/radeon/radeon_display.c | 3 +- drivers/gpu/drm/radeon/radeon_fbdev.c | 3 +- drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 3 +- drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 3 +- .../gpu/drm/renesas/shmobile/shmob_drm_kms.c | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 11 ++---- drivers/gpu/drm/tegra/drm.h | 2 + drivers/gpu/drm/tegra/fb.c | 7 ++-- drivers/gpu/drm/tegra/fbdev.c | 4 +- drivers/gpu/drm/tests/drm_framebuffer_test.c | 1 + drivers/gpu/drm/vc4/vc4_kms.c | 3 +- drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +++++--- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 + drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 6 ++- drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +- drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +- drivers/gpu/drm/xlnx/zynqmp_kms.c | 3 +- include/drm/drm_fourcc.h | 2 +- include/drm/drm_gem_framebuffer_helper.h | 6 +++ include/drm/drm_mode_config.h | 3 +- include/drm/drm_modeset_helper.h | 2 + 56 files changed, 207 insertions(+), 139 deletions(-)