2021-09-23 09:06:52

by yipeng.chen

[permalink] [raw]
Subject: [PATCH] drm/amd/display: Fix randomly flicking on overlay with enabled ABM

From: "Yipeng Chen (Jasber)" <[email protected]>

[Why]
Enabled ABM (level != 0) would raise short pluse irq DC_IRQ_SOURCE_HPD1RX
randomly with PSR error LINK_CRC_ERROR. Actually there is no hot plugging
on EDP panel. After correcting CRC error, there is no need to send drm
hotplug event.

[How]
Returning false would skip doing hot-plug when handle_hpd_irq_psr_sink()
handled irq. Hot-plug process causes visible flicking on overlay.

Signed-off-by: Yipeng Chen (Jasber) <[email protected]>
Reviewed-by: Roman Li <[email protected]>
Anthony Koo <[email protected]>
---
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
index 1e4794e2825c..9b9fbe5e9bd4 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -3007,7 +3007,7 @@ bool dc_link_handle_hpd_rx_irq(struct dc_link *link, union hpd_irq_data *out_hpd

if (handle_hpd_irq_psr_sink(link))
/* PSR-related error was detected and handled */
- return true;
+ return false;

/* If PSR-related error handled, Main link may be off,
* so do not handle as a normal sink status change interrupt.
--
2.25.1


2021-09-23 12:58:09

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix randomly flicking on overlay with enabled ABM

On Thu, Sep 23, 2021 at 5:03 AM <[email protected]> wrote:
>
> From: "Yipeng Chen (Jasber)" <[email protected]>
>
> [Why]
> Enabled ABM (level != 0) would raise short pluse irq DC_IRQ_SOURCE_HPD1RX
> randomly with PSR error LINK_CRC_ERROR. Actually there is no hot plugging
> on EDP panel. After correcting CRC error, there is no need to send drm
> hotplug event.
>
> [How]
> Returning false would skip doing hot-plug when handle_hpd_irq_psr_sink()
> handled irq. Hot-plug process causes visible flicking on overlay.
>
> Signed-off-by: Yipeng Chen (Jasber) <[email protected]>
> Reviewed-by: Roman Li <[email protected]>
> Anthony Koo <[email protected]>

Each reviewer should be called out on a separate line E.g.,
Reviewed-by: Roman Li <[email protected]>
Reviewed-by: Anthony Koo <[email protected]>



> ---
> drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> index 1e4794e2825c..9b9fbe5e9bd4 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> @@ -3007,7 +3007,7 @@ bool dc_link_handle_hpd_rx_irq(struct dc_link *link, union hpd_irq_data *out_hpd
>
> if (handle_hpd_irq_psr_sink(link))
> /* PSR-related error was detected and handled */
> - return true;
> + return false;
>
> /* If PSR-related error handled, Main link may be off,
> * so do not handle as a normal sink status change interrupt.
> --
> 2.25.1
>