[PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent

Thomas Zimmermann tzimmermann at suse.de
Mon Jun 16 10:35:03 UTC 2025



Am 13.06.25 um 14:28 schrieb Thierry Reding:
> From: Thierry Reding <treding at nvidia.com>
>
> Recent generations of Tegra have moved the display components outside of
> host1x, leading to a device that has no CRTCs attached and hence doesn't
> support any of the modesetting functionality. When this is detected, the
> driver clears the DRIVER_MODESET and DRIVER_ATOMIC flags for the device.
>
> Unfortunately, this causes the following errors during boot:
>
>      [      15.418958] ERR KERN drm drm: [drm] *ERROR* Failed to register client: -95
>      [      15.425311] WARNING KERN drm drm: [drm] Failed to set up DRM client; error -95
>
> These originate from the fbdev client checking for the presence of the
> DRIVER_MODESET flag and returning -EOPNOTSUPP. However, if a driver does
> not support DRIVER_MODESET this is entirely expected and the error isn't
> helpful.
>
> Prevent this misleading error message by setting up the DRM clients only
> if modesetting is enabled.
>
> Changes in v2:
> - use DRIVER_MODESET check to avoid registering any clients
>
> Reported-by: Jonathan Hunter <jonathanh at nvidia.com>
> Signed-off-by: Thierry Reding <treding at nvidia.com>

Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de>

> ---
>   drivers/gpu/drm/clients/drm_client_setup.c | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/clients/drm_client_setup.c b/drivers/gpu/drm/clients/drm_client_setup.c
> index e17265039ca8..e460ad354de2 100644
> --- a/drivers/gpu/drm/clients/drm_client_setup.c
> +++ b/drivers/gpu/drm/clients/drm_client_setup.c
> @@ -2,6 +2,7 @@
>   
>   #include <drm/clients/drm_client_setup.h>
>   #include <drm/drm_device.h>
> +#include <drm/drm_drv.h>
>   #include <drm/drm_fourcc.h>
>   #include <drm/drm_print.h>
>   
> @@ -31,6 +32,10 @@ MODULE_PARM_DESC(active,
>    */
>   void drm_client_setup(struct drm_device *dev, const struct drm_format_info *format)
>   {
> +	if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
> +		drm_dbg(dev, "driver does not support mode-setting, skipping DRM clients\n");
> +		return;
> +	}
>   
>   #ifdef CONFIG_DRM_FBDEV_EMULATION
>   	if (!strcmp(drm_client_default, "fbdev")) {

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)



More information about the dri-devel mailing list