linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr
@ 2016-12-10  2:49 Caesar Wang
  2016-12-12 14:58 ` Sean Paul
  0 siblings, 1 reply; 5+ messages in thread
From: Caesar Wang @ 2016-12-10  2:49 UTC (permalink / raw)
  To: seanpaul
  Cc: airlied, tomeu.vizoso, gustavo.padovan, daniel.vetter, dri-devel,
	linux-kernel, linux-rockchip, briannorris, heiko, Caesar Wang

Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host
device, that will cause the panel hang on the startup display.
The root cause we use the fast link mode during enter and exit the psr,
this issue is gone if switching the fast link to main link mode.

Signed-off-by: Caesar Wang <wxt@rock-chips.com>
---

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 6e0447f..6a5347b 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
 {
 	struct analogix_dp_device *dp = dev_get_drvdata(dev);
 	struct edp_vsc_psr psr_vsc;
+	int ret;
 
 	if (!dp->psr_support)
 		return -EINVAL;
@@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
 	psr_vsc.DB0 = 0;
 	psr_vsc.DB1 = 0;
 
+	ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
+	if (ret != 1)
+		dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
+
 	analogix_dp_send_psr_spd(dp, &psr_vsc);
 	return 0;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr
  2016-12-10  2:49 [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr Caesar Wang
@ 2016-12-12 14:58 ` Sean Paul
  2016-12-14  5:03   ` Archit Taneja
  0 siblings, 1 reply; 5+ messages in thread
From: Sean Paul @ 2016-12-12 14:58 UTC (permalink / raw)
  To: Caesar Wang, Archit
  Cc: Dave Airlie, Tomeu Vizoso, Gustavo Padovan, Daniel Vetter,
	dri-devel, Linux Kernel Mailing List, linux-rockchip,
	Brian Norris, Heiko Stuebner

On Fri, Dec 9, 2016 at 9:49 PM, Caesar Wang <wxt@rock-chips.com> wrote:
> Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host
> device, that will cause the panel hang on the startup display.
> The root cause we use the fast link mode during enter and exit the psr,
> this issue is gone if switching the fast link to main link mode.
>

Cc: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> ---
>
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 6e0447f..6a5347b 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
>  {
>         struct analogix_dp_device *dp = dev_get_drvdata(dev);
>         struct edp_vsc_psr psr_vsc;
> +       int ret;
>
>         if (!dp->psr_support)
>                 return -EINVAL;
> @@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
>         psr_vsc.DB0 = 0;
>         psr_vsc.DB1 = 0;
>
> +       ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
> +       if (ret != 1)
> +               dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
> +
>         analogix_dp_send_psr_spd(dp, &psr_vsc);
>         return 0;
>  }
> --
> 2.7.4
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr
  2016-12-12 14:58 ` Sean Paul
@ 2016-12-14  5:03   ` Archit Taneja
  2016-12-14 10:00     ` Sean Paul
  0 siblings, 1 reply; 5+ messages in thread
From: Archit Taneja @ 2016-12-14  5:03 UTC (permalink / raw)
  To: Sean Paul, Caesar Wang
  Cc: Dave Airlie, Tomeu Vizoso, Gustavo Padovan, Daniel Vetter,
	dri-devel, Linux Kernel Mailing List, linux-rockchip,
	Brian Norris, Heiko Stuebner

Hi,

On 12/12/2016 08:28 PM, Sean Paul wrote:
> On Fri, Dec 9, 2016 at 9:49 PM, Caesar Wang <wxt@rock-chips.com> wrote:
>> Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host
>> device, that will cause the panel hang on the startup display.
>> The root cause we use the fast link mode during enter and exit the psr,
>> this issue is gone if switching the fast link to main link mode.
>>
>
> Cc: Archit Taneja <architt@codeaurora.org>

Do we want this as a fix in 4.10? Or is it okay to get it in 4.11?
In other words, should this go to drm-misc-next or drm-misc-fixes?

Thanks,
Archit

>
>> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
>> ---
>>
>>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>> index 6e0447f..6a5347b 100644
>> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>> @@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
>>  {
>>         struct analogix_dp_device *dp = dev_get_drvdata(dev);
>>         struct edp_vsc_psr psr_vsc;
>> +       int ret;
>>
>>         if (!dp->psr_support)
>>                 return -EINVAL;
>> @@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
>>         psr_vsc.DB0 = 0;
>>         psr_vsc.DB1 = 0;
>>
>> +       ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
>> +       if (ret != 1)
>> +               dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
>> +
>>         analogix_dp_send_psr_spd(dp, &psr_vsc);
>>         return 0;
>>  }
>> --
>> 2.7.4
>>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr
  2016-12-14  5:03   ` Archit Taneja
@ 2016-12-14 10:00     ` Sean Paul
  2016-12-15  9:37       ` Archit Taneja
  0 siblings, 1 reply; 5+ messages in thread
From: Sean Paul @ 2016-12-14 10:00 UTC (permalink / raw)
  To: Archit Taneja
  Cc: Caesar Wang, Dave Airlie, Tomeu Vizoso, Gustavo Padovan,
	Daniel Vetter, dri-devel, Linux Kernel Mailing List,
	linux-rockchip, Brian Norris, Heiko Stuebner

On Wed, Dec 14, 2016 at 12:03 AM, Archit Taneja <architt@codeaurora.org> wrote:
> Hi,
>
> On 12/12/2016 08:28 PM, Sean Paul wrote:
>>
>> On Fri, Dec 9, 2016 at 9:49 PM, Caesar Wang <wxt@rock-chips.com> wrote:
>>>
>>> Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host
>>> device, that will cause the panel hang on the startup display.
>>> The root cause we use the fast link mode during enter and exit the psr,
>>> this issue is gone if switching the fast link to main link mode.
>>>
>>
>> Cc: Archit Taneja <architt@codeaurora.org>
>
>
> Do we want this as a fix in 4.10? Or is it okay to get it in 4.11?
> In other words, should this go to drm-misc-next or drm-misc-fixes?
>

Hi Archit,
4.11 is totally fine.

Sean


> Thanks,
> Archit
>
>
>>
>>> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
>>> ---
>>>
>>>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>> index 6e0447f..6a5347b 100644
>>> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>> @@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
>>>  {
>>>         struct analogix_dp_device *dp = dev_get_drvdata(dev);
>>>         struct edp_vsc_psr psr_vsc;
>>> +       int ret;
>>>
>>>         if (!dp->psr_support)
>>>                 return -EINVAL;
>>> @@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
>>>         psr_vsc.DB0 = 0;
>>>         psr_vsc.DB1 = 0;
>>>
>>> +       ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER,
>>> DP_SET_POWER_D0);
>>> +       if (ret != 1)
>>> +               dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
>>> +
>>>         analogix_dp_send_psr_spd(dp, &psr_vsc);
>>>         return 0;
>>>  }
>>> --
>>> 2.7.4
>>>
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr
  2016-12-14 10:00     ` Sean Paul
@ 2016-12-15  9:37       ` Archit Taneja
  0 siblings, 0 replies; 5+ messages in thread
From: Archit Taneja @ 2016-12-15  9:37 UTC (permalink / raw)
  To: Sean Paul
  Cc: Caesar Wang, Dave Airlie, Tomeu Vizoso, Gustavo Padovan,
	Daniel Vetter, dri-devel, Linux Kernel Mailing List,
	linux-rockchip, Brian Norris, Heiko Stuebner



On 12/14/2016 03:30 PM, Sean Paul wrote:
> On Wed, Dec 14, 2016 at 12:03 AM, Archit Taneja <architt@codeaurora.org> wrote:
>> Hi,
>>
>> On 12/12/2016 08:28 PM, Sean Paul wrote:
>>>
>>> On Fri, Dec 9, 2016 at 9:49 PM, Caesar Wang <wxt@rock-chips.com> wrote:
>>>>
>>>> Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host
>>>> device, that will cause the panel hang on the startup display.
>>>> The root cause we use the fast link mode during enter and exit the psr,
>>>> this issue is gone if switching the fast link to main link mode.
>>>>
>>>
>>> Cc: Archit Taneja <architt@codeaurora.org>
>>
>>
>> Do we want this as a fix in 4.10? Or is it okay to get it in 4.11?
>> In other words, should this go to drm-misc-next or drm-misc-fixes?
>>
>
> Hi Archit,
> 4.11 is totally fine.

Thanks. Queued after some commit message cleanup.

Archit

>
> Sean
>
>
>> Thanks,
>> Archit
>>
>>
>>>
>>>> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
>>>> ---
>>>>
>>>>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++
>>>>  1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>>> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>>> index 6e0447f..6a5347b 100644
>>>> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>>> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
>>>> @@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
>>>>  {
>>>>         struct analogix_dp_device *dp = dev_get_drvdata(dev);
>>>>         struct edp_vsc_psr psr_vsc;
>>>> +       int ret;
>>>>
>>>>         if (!dp->psr_support)
>>>>                 return -EINVAL;
>>>> @@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
>>>>         psr_vsc.DB0 = 0;
>>>>         psr_vsc.DB1 = 0;
>>>>
>>>> +       ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER,
>>>> DP_SET_POWER_D0);
>>>> +       if (ret != 1)
>>>> +               dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
>>>> +
>>>>         analogix_dp_send_psr_spd(dp, &psr_vsc);
>>>>         return 0;
>>>>  }
>>>> --
>>>> 2.7.4
>>>>
>>
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>> a Linux Foundation Collaborative Project

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-12-15  9:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-10  2:49 [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr Caesar Wang
2016-12-12 14:58 ` Sean Paul
2016-12-14  5:03   ` Archit Taneja
2016-12-14 10:00     ` Sean Paul
2016-12-15  9:37       ` Archit Taneja

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).