RE: [PATCH] drm/amd/display: hpd rx irq not working with eDP interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[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





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux