diff mbox series

nouveau: don't fail driver load if no display hw present.

Message ID 20231105203700.2152487-1-airlied@gmail.com (mailing list archive)
State New, archived
Headers show
Series nouveau: don't fail driver load if no display hw present. | expand

Commit Message

Dave Airlie Nov. 5, 2023, 8:37 p.m. UTC
From: Dave Airlie <airlied@redhat.com>

If we get back ENODEV don't fail load.

Fixes: 15740541e8f0 ("drm/nouveau/devinit/tu102-: prepare for GSP-RM")
Link: https://gitlab.freedesktop.org/drm/nouveau/-/issues/270
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_display.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Danilo Krummrich Nov. 14, 2023, 7:54 p.m. UTC | #1
On 11/5/23 21:37, Dave Airlie wrote:
> From: Dave Airlie <airlied@redhat.com>
> 
> If we get back ENODEV don't fail load.

Maybe worth to note why this is OK in this case, might not be obvious
to future readers of the code.

> 
> Fixes: 15740541e8f0 ("drm/nouveau/devinit/tu102-: prepare for GSP-RM")

Maybe I'm missing something subtle here, but did you maybe pick the wrong
commit here? At a first glance it looks like commit 073bde453635
("drm/nouveau/kms/nv50-: disable dcb parsing") introduced the issue.

- Danilo

> Link: https://gitlab.freedesktop.org/drm/nouveau/-/issues/270
> Signed-off-by: Dave Airlie <airlied@redhat.com>
> ---
>   drivers/gpu/drm/nouveau/nouveau_display.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index d8c92521226d..f28f9a857458 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -726,6 +726,11 @@ nouveau_display_create(struct drm_device *dev)
>   
>   	if (nouveau_modeset != 2) {
>   		ret = nvif_disp_ctor(&drm->client.device, "kmsDisp", 0, &disp->disp);
> +		/* no display hw */
> +		if (ret == -ENODEV) {
> +			ret = 0;
> +			goto disp_create_err;
> +		}
>   
>   		if (!ret && (disp->disp.outp_mask || drm->vbios.dcb.entries)) {
>   			nouveau_display_create_properties(dev);
Dave Airlie Nov. 15, 2023, 2:41 p.m. UTC | #2
On Wed, 15 Nov 2023 at 05:54, Danilo Krummrich <me@dakr.org> wrote:
>
> On 11/5/23 21:37, Dave Airlie wrote:
> > From: Dave Airlie <airlied@redhat.com>
> >
> > If we get back ENODEV don't fail load.
>
> Maybe worth to note why this is OK in this case, might not be obvious
> to future readers of the code.

Sent an updated version with that fixed.
>
> >
> > Fixes: 15740541e8f0 ("drm/nouveau/devinit/tu102-: prepare for GSP-RM")
>
> Maybe I'm missing something subtle here, but did you maybe pick the wrong
> commit here? At a first glance it looks like commit 073bde453635
> ("drm/nouveau/kms/nv50-: disable dcb parsing") introduced the issue.
>

Nope this commit causes the regression, as it powers off the display
core in devinit, which means later we don't detect it because GSP
doesn't power it back on.

Dave.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index d8c92521226d..f28f9a857458 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -726,6 +726,11 @@  nouveau_display_create(struct drm_device *dev)
 
 	if (nouveau_modeset != 2) {
 		ret = nvif_disp_ctor(&drm->client.device, "kmsDisp", 0, &disp->disp);
+		/* no display hw */
+		if (ret == -ENODEV) {
+			ret = 0;
+			goto disp_create_err;
+		}
 
 		if (!ret && (disp->disp.outp_mask || drm->vbios.dcb.entries)) {
 			nouveau_display_create_properties(dev);