* [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent
@ 2025-06-13 12:28 Thierry Reding
2025-06-16 10:35 ` Thomas Zimmermann
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Thierry Reding @ 2025-06-13 12:28 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
Cc: Jonathan Hunter, Dmitry Baryshkov, dri-devel, linux-tegra
From: Thierry Reding <treding@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@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
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")) {
--
2.49.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent
2025-06-13 12:28 [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent Thierry Reding
@ 2025-06-16 10:35 ` Thomas Zimmermann
2025-07-03 12:03 ` Jon Hunter
2025-07-06 11:06 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Zimmermann @ 2025-06-16 10:35 UTC (permalink / raw)
To: Thierry Reding, Maarten Lankhorst, Maxime Ripard
Cc: Jonathan Hunter, Dmitry Baryshkov, dri-devel, linux-tegra
Am 13.06.25 um 14:28 schrieb Thierry Reding:
> From: Thierry Reding <treding@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@nvidia.com>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@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)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent
2025-06-13 12:28 [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent Thierry Reding
2025-06-16 10:35 ` Thomas Zimmermann
@ 2025-07-03 12:03 ` Jon Hunter
2025-07-06 11:06 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Jon Hunter @ 2025-07-03 12:03 UTC (permalink / raw)
To: Thierry Reding, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann
Cc: Dmitry Baryshkov, dri-devel, linux-tegra
On 13/06/2025 13:28, Thierry Reding wrote:
> From: Thierry Reding <treding@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@nvidia.com>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
> 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")) {
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Can we get this into -next?
Thanks!
Jon
--
nvpublic
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent
2025-06-13 12:28 [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent Thierry Reding
2025-06-16 10:35 ` Thomas Zimmermann
2025-07-03 12:03 ` Jon Hunter
@ 2025-07-06 11:06 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Dmitry Baryshkov @ 2025-07-06 11:06 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
Thierry Reding
Cc: Jonathan Hunter, dri-devel, linux-tegra
On Fri, 13 Jun 2025 14:28:38 +0200, Thierry Reding wrote:
> 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:
>
> [...]
Applied to drm-misc-next, thanks!
[1/1] drm/fbdev-client: Skip DRM clients if modesetting is absent
commit: cce91f29c088ba902dd2abfc9c3216ba9a2fb2fe
Best regards,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-06 11:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-13 12:28 [PATCH v2] drm/fbdev-client: Skip DRM clients if modesetting is absent Thierry Reding
2025-06-16 10:35 ` Thomas Zimmermann
2025-07-03 12:03 ` Jon Hunter
2025-07-06 11:06 ` Dmitry Baryshkov
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).