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 |
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);
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 --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);