[AMD Official Use Only - General] > -----Original Message----- > From: Limonciello, Mario <Mario.Limonciello@xxxxxxx> > Sent: Wednesday, May 24, 2023 7:22 PM > To: stable@xxxxxxxxxxxxxxx > Cc: Limonciello, Mario <Mario.Limonciello@xxxxxxx> > Subject: [PATCH] drm/amd/display: hpd rx irq not working with eDP interface > > From: Robin Chen <robin.chen@xxxxxxx> > > [Why] > This is the fix for the defect of commit ab144f0b4ad6 > ("drm/amd/display: Allow individual control of eDP hotplug support"). > > [How] > To revise the default eDP hotplug setting and use the enum to git rid > of the magic number for different options. > > Fixes: ab144f0b4ad6 ("drm/amd/display: Allow individual control of eDP > hotplug support") > Cc: stable@xxxxxxxxxxxxxxx > Cc: Mario Limonciello <mario.limonciello@xxxxxxx> > Reviewed-by: Wenjing Liu <Wenjing.Liu@xxxxxxx> > Acked-by: Qingqing Zhuo <qingqing.zhuo@xxxxxxx> > Signed-off-by: Robin Chen <robin.chen@xxxxxxx> > Tested-by: Daniel Wheeler <daniel.wheeler@xxxxxxx> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > (cherry picked from commit > eeefe7c4820b6baa0462a8b723ea0a3b5846ccae) > Hand modified for missing file rename changes and symbol moves in 6.1.y. > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > This will help some unhandled interrupts that are related to MST > and eDP use. Apologies; forgot to mention in the message this is ONLY for 6.1.y. It doesn't apply to 5.15.y, and 6.3.y already picked it up successfully. > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 9 +++++++-- > drivers/gpu/drm/amd/display/dc/dc_types.h | 6 ++++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > index 6299130663a3..5d53e54ebe90 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > @@ -1634,14 +1634,18 @@ static bool dc_link_construct_legacy(struct > dc_link *link, > link->irq_source_hpd = > DC_IRQ_SOURCE_INVALID; > > switch (link->dc- > >config.allow_edp_hotplug_detection) { > - case 1: // only the 1st eDP handles hotplug > + case HPD_EN_FOR_ALL_EDP: > + link->irq_source_hpd_rx = > + dal_irq_get_rx_source(link- > >hpd_gpio); > + break; > + case HPD_EN_FOR_PRIMARY_EDP_ONLY: > if (link->link_index == 0) > link->irq_source_hpd_rx = > dal_irq_get_rx_source(link- > >hpd_gpio); > else > link->irq_source_hpd = > DC_IRQ_SOURCE_INVALID; > break; > - case 2: // only the 2nd eDP handles hotplug > + case HPD_EN_FOR_SECONDARY_EDP_ONLY: > if (link->link_index == 1) > link->irq_source_hpd_rx = > dal_irq_get_rx_source(link- > >hpd_gpio); > @@ -1649,6 +1653,7 @@ static bool dc_link_construct_legacy(struct dc_link > *link, > link->irq_source_hpd = > DC_IRQ_SOURCE_INVALID; > break; > default: > + link->irq_source_hpd = > DC_IRQ_SOURCE_INVALID; > break; > } > } > diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h > b/drivers/gpu/drm/amd/display/dc/dc_types.h > index ad9041472cca..6050a3469a57 100644 > --- a/drivers/gpu/drm/amd/display/dc/dc_types.h > +++ b/drivers/gpu/drm/amd/display/dc/dc_types.h > @@ -993,4 +993,10 @@ struct display_endpoint_id { > enum display_endpoint_type ep_type; > }; > > +enum dc_hpd_enable_select { > + HPD_EN_FOR_ALL_EDP = 0, > + HPD_EN_FOR_PRIMARY_EDP_ONLY, > + HPD_EN_FOR_SECONDARY_EDP_ONLY, > +}; > + > #endif /* DC_TYPES_H_ */ > -- > 2.34.1