drm/fbdev-client: Skip DRM clients if modesetting is absent
authorThierry Reding <treding@nvidia.com>
Fri, 13 Jun 2025 12:28:38 +0000 (14:28 +0200)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Sun, 6 Jul 2025 11:05:07 +0000 (14:05 +0300)
commitcce91f29c088ba902dd2abfc9c3216ba9a2fb2fe
treee80b45ee0e024c820e9da1de0c3c5dc11e1417c5
parent40818680d8350dc35b1d1ac31c75038d13461126
drm/fbdev-client: Skip DRM clients if modesetting is absent

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@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250613122838.2082334-1-thierry.reding@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/clients/drm_client_setup.c