* [PATCH 00/11] drm: Only try to set formats supported by the hardware
@ 2024-03-17 18:01 Frej Drejhammar
2024-03-17 18:01 ` [PATCH 04/11] drm/exynos: Use drm_driver_legacy_fb_format() for fbdev Frej Drejhammar
0 siblings, 1 reply; 2+ messages in thread
From: Frej Drejhammar @ 2024-03-17 18:01 UTC (permalink / raw)
To: dri-devel
Cc: Frej Drejhammar, Abhinav Kumar, Alim Akhtar, amd-gfx,
Daniel Vetter, David Airlie, Dmitry Baryshkov, freedreno,
intel-gfx, intel-xe, Krzysztof Kozlowski, linux-arm-kernel,
linux-arm-msm, linux-samsung-soc, linux-tegra, Maarten Lankhorst,
Maíra Canal, Marijn Suijten, Maxime Ripard, Patrik Jakobsson,
Rob Clark, Russell King, Sean Paul, stable, Thomas Zimmermann,
Tomi Valkeinen, Ville Syrjälä
When userland uses DRM_IOCTL_MODE_ADDFB to add a framebuffer, the DRM
subsystem tries to find a pixel format from the supplied depth and
bpp-values. It does this by calling drm_driver_legacy_fb_format().
Unfortunately drm_driver_legacy_fb_format() can return formats not
supported by the underlying hardware. This series of patches remedies
this problem in patch 1.
In order to use the same logic for determining the pixel format, when
a fbdev adds a framebuffer as userland does, patches 2 to 11 migrates
fbdev users of drm_mode_legacy_fb_format() to
drm_driver_legacy_fb_format().
This series has been tested with the nouveau and modesetting drivers
on a NVIDIA NV96, the modesetting driver on Beagleboard Black, and
with the Intel and modesetting drivers on an Intel HD Graphics 4000
chipset.
This is an evolved version of the changes proposed in "drm: Don't
return unsupported formats in drm_mode_legacy_fb_format" [1] following
the suggestions of Thomas Zimmermann.
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@gmail.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: dri-devel@lists.freedesktop.org
Cc: freedreno@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Sean Paul <sean@poorly.run>
Cc: stable@vger.kernel.org
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
[1] https://lore.kernel.org/all/20240310152803.3315-1-frej.drejhammar@gmail.com/
Frej Drejhammar (11):
drm: Only return supported formats from drm_driver_legacy_fb_format
drm/fbdev_generic: Use drm_driver_legacy_fb_format() for fbdev
drm/armada: Use drm_driver_legacy_fb_format() for fbdev
drm/exynos: Use drm_driver_legacy_fb_format() for fbdev
drm/gma500: Use drm_driver_legacy_fb_format() for fbdev
drm/i915: Use drm_driver_legacy_fb_format() for fbdev
drm/msm: Use drm_driver_legacy_fb_format() for fbdev
drm/omapdrm: Use drm_driver_legacy_fb_format() for fbdev
drm/radeon: Use drm_driver_legacy_fb_format() for fbdev
drm/tegra: Use drm_driver_legacy_fb_format() for fbdev
drm/xe: Use drm_driver_legacy_fb_format() for fbdev
drivers/gpu/drm/armada/armada_fbdev.c | 5 +-
drivers/gpu/drm/drm_fb_helper.c | 2 +-
drivers/gpu/drm/drm_fbdev_dma.c | 4 +-
drivers/gpu/drm/drm_fbdev_generic.c | 4 +-
drivers/gpu/drm/drm_fourcc.c | 83 +++++++++++++++++++
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 6 +-
drivers/gpu/drm/gma500/fbdev.c | 2 +-
drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 +-
drivers/gpu/drm/msm/msm_fbdev.c | 4 +-
drivers/gpu/drm/omapdrm/omap_fbdev.c | 6 +-
drivers/gpu/drm/radeon/radeon_fbdev.c | 6 +-
drivers/gpu/drm/tegra/fbdev.c | 5 +-
drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 5 +-
13 files changed, 119 insertions(+), 19 deletions(-)
base-commit: 119b225f01e4d3ce974cd3b4d982c76a380c796d
--
2.44.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 04/11] drm/exynos: Use drm_driver_legacy_fb_format() for fbdev
2024-03-17 18:01 [PATCH 00/11] drm: Only try to set formats supported by the hardware Frej Drejhammar
@ 2024-03-17 18:01 ` Frej Drejhammar
0 siblings, 0 replies; 2+ messages in thread
From: Frej Drejhammar @ 2024-03-17 18:01 UTC (permalink / raw)
To: dri-devel
Cc: Frej Drejhammar, David Airlie, Daniel Vetter, Krzysztof Kozlowski,
Alim Akhtar, linux-arm-kernel, linux-samsung-soc
Switch to using drm_driver_legacy_fb_format() instead of
drm_mode_legacy_fb_format() to use the same logic as for the
DRM_IOCTL_MODE_ADDFB ioctl when selecting a framebuffer format.
Signed-off-by: Frej Drejhammar <frej.drejhammar@gmail.com>
Cc: David Airlie <airlied@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
---
This is an evolved version of the changes proposed in "drm: Don't
return unsupported formats in drm_mode_legacy_fb_format" [1] following
the suggestions of Thomas Zimmermann.
[1] https://lore.kernel.org/all/20240310152803.3315-1-frej.drejhammar@gmail.com/
---
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index a379c8ca435a..d47bb5e89ff2 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -104,8 +104,10 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper,
mode_cmd.width = sizes->surface_width;
mode_cmd.height = sizes->surface_height;
mode_cmd.pitches[0] = sizes->surface_width * (sizes->surface_bpp >> 3);
- mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
- sizes->surface_depth);
+ mode_cmd.pixel_format =
+ drm_driver_legacy_fb_format(dev,
+ sizes->surface_bpp,
+ sizes->surface_depth);
size = mode_cmd.pitches[0] * mode_cmd.height;
--
2.44.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-03-17 18:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-17 18:01 [PATCH 00/11] drm: Only try to set formats supported by the hardware Frej Drejhammar
2024-03-17 18:01 ` [PATCH 04/11] drm/exynos: Use drm_driver_legacy_fb_format() for fbdev Frej Drejhammar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).