Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> On Wed, 2023-10-11 at 13:41 +0200, Karol Herbst wrote: > Just special case DP DSM connectors until we properly figure out how to > deal with this. > > This resolves user regressions on GPUs with such connectors without > reverting the original fix. > > Cc: Lyude Paul <lyude@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # 6.4+ > Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/255 > Fixes: 2b5d1c29f6c4 ("drm/nouveau/disp: PIOR DP uses GPIO for HPD, not PMGR AUX interrupts") > Signed-off-by: Karol Herbst <kherbst@xxxxxxxxxx> > --- > drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c > index 46b057fe1412e..3249e5c1c8930 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c > @@ -62,6 +62,18 @@ nvkm_uconn_uevent_gpio(struct nvkm_object *object, u64 token, u32 bits) > return object->client->event(token, &args, sizeof(args.v0)); > } > > +static bool > +nvkm_connector_is_dp_dms(u8 type) > +{ > + switch (type) { > + case DCB_CONNECTOR_DMS59_DP0: > + case DCB_CONNECTOR_DMS59_DP1: > + return true; > + default: > + return false; > + } > +} > + > static int > nvkm_uconn_uevent(struct nvkm_object *object, void *argv, u32 argc, struct nvkm_uevent *uevent) > { > @@ -101,7 +113,7 @@ nvkm_uconn_uevent(struct nvkm_object *object, void *argv, u32 argc, struct nvkm_ > if (args->v0.types & NVIF_CONN_EVENT_V0_UNPLUG) bits |= NVKM_GPIO_LO; > if (args->v0.types & NVIF_CONN_EVENT_V0_IRQ) { > /* TODO: support DP IRQ on ANX9805 and remove this hack. */ > - if (!outp->info.location) > + if (!outp->info.location && !nvkm_connector_is_dp_dms(conn->info.type)) > return -EINVAL; > } > -- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat