linux-rockchip.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Yakir Yang <ykk@rock-chips.com>
To: Jingoo Han <jingoohan1@gmail.com>,
	'Inki Dae' <inki.dae@samsung.com>,
	'Mark Yao' <mark.yao@rock-chips.com>,
	'Heiko Stuebner' <heiko@sntech.de>
Cc: devicetree@vger.kernel.org,
	'Krzysztof Kozlowski' <k.kozlowski@samsung.com>,
	linux-samsung-soc@vger.kernel.org,
	'Russell King' <linux@arm.linux.org.uk>,
	linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	'Kishon Vijay Abraham I' <kishon@ti.com>,
	javier@osg.samsung.com, 'Rob Herring' <robh+dt@kernel.org>,
	'Andy Yan' <andy.yan@rock-chips.com>,
	'Thierry Reding' <treding@nvidia.com>,
	'Gustavo Padovan' <gustavo.padovan@collabora.co.uk>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v12 16/18] drm: bridge: analogix/dp: expand the wait time for looking AUX CH reply flag
Date: Thu, 24 Dec 2015 09:23:05 +0800	[thread overview]
Message-ID: <567B48F9.6010902@rock-chips.com> (raw)
In-Reply-To: <000001d13d94$120e0d60$362a2820$@com>

Hi Jingoo,

Okay, fine, I would drop this patch, until I found the the root cause.

- Yakir

On 12/23/2015 11:10 PM, Jingoo Han wrote:
> On Wednesday, December 23, 2015 9:51 PM, Yakir Yang wrote:
>> On Rockchip platform, sometimes driver would failed at reading EDID
>> message, and it's caused by the AUX reply flag wouldn't received under
>> the 100*10us wait time.
> The problem is specific for Rockchip platform.
> Also, 1 ms is long time.
> The best way is that your hardware engineers find the root cause.
> I cannot understand why your engineers cannot find the root cause. :-(
>
>> But after expand the wait time a little, the AUX reply flag would be
>> set, so maybe the wait time is a little critical. Besides the analogix
>> dp book haven't reminded the standard wait for looking AUX reply flag,
>> so I thought it's okay to expand the wait time.
>>
>> And the external wait time won't hurt Exynos DP too much, cause they
>> wouldn't meet this problem, then driver would received the reply command
>> very soon, so no more additional wait time would bring to Exynos platform.
> Then, when loop time happens on Exynos platform, it will take long time
> to return error.
>
>> Signed-off-by: Yakir Yang <ykk@rock-chips.com>
>> ---
>> Changes in v12:
>> - Using another way to expand the AUX reply wait time (Jingoo)
>>
>> Changes in v11: None
>> Changes in v10: None
>> Changes in v9: None
>> Changes in v8: None
>> Changes in v7: None
>> Changes in v6: None
>> Changes in v5: None
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2: None
>>
>>   drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 10 ++++------
>>   1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
>> b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
>> index cba3ffd..8687eea 100644
>> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
>> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
>> @@ -471,7 +471,7 @@ int analogix_dp_start_aux_transaction(struct analogix_dp_device *dp)
>>   {
>>   	int reg;
>>   	int retval = 0;
>> -	int timeout_loop = 0;
>> +	unsigned long timeout;
>>
>>   	/* Enable AUX CH operation */
>>   	reg = readl(dp->reg_base + ANALOGIX_DP_AUX_CH_CTL_2);
>> @@ -479,14 +479,12 @@ int analogix_dp_start_aux_transaction(struct analogix_dp_device *dp)
>>   	writel(reg, dp->reg_base + ANALOGIX_DP_AUX_CH_CTL_2);
>>
>>   	/* Is AUX CH command reply received? */
>> -	reg = readl(dp->reg_base + ANALOGIX_DP_INT_STA);
>> -	while (!(reg & RPLY_RECEIV)) {
>> -		timeout_loop++;
>> -		if (DP_TIMEOUT_LOOP_COUNT < timeout_loop) {
>> +	timeout = jiffies + msecs_to_jiffies(5);
>> +	while ((readl(dp->reg_base + ANALOGIX_DP_INT_STA) & RPLY_RECEIV) == 0) {
>> +		if (time_after(jiffies, timeout)) {
>>   			dev_err(dp->dev, "AUX CH command reply failed!\n");
>>   			return -ETIMEDOUT;
>>   		}
>> -		reg = readl(dp->reg_base + ANALOGIX_DP_INT_STA);
> Sorry, I don't like your patch.
>
> The problem happens because of Rockchip platform.
> So, you need to add workaround for only Rockchip platform.
>
> Just add new DT property and new variable for the value for wait time.
> When, the probe is called, new wait time value is read from Rockchip DT file.
> Then, the new wait time value can be written to the new variable.
>
>      new DT property: wait-time-aux
>      new variable: wait_time_aux
>
>
> If ( ) // New DT
>      wait_time_aux = New DT;
> else
>      wait_time_aux = 10;
>
>
>>   		usleep_range(10, 11);
> If there is NO  new wait time value from DT file, the default value '10' is
> used for sleep.
>
> But, if there is new wait time value from DT file, new wait time value
> can be used for sleep.
>
>                   usleep_range(dp->wait_time_aux, dp->wait_time_aux + 1);
>
> What I want to say is that there should be NO effect on Exynos platform,
> because of the hardware bug of Rockchip platform.
>
> Best regards,
> Jingoo Han
>
>>   	}
>>
>> --
>> 1.9.1
>
>
>
>


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-12-24  1:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-23 12:25 [PATCH v12 0/18] Add Analogix Core Display Port Driver Yakir Yang
     [not found] ` <1450873538-18304-1-git-send-email-ykk-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2015-12-23 12:29   ` [PATCH v12 01/18] drm: bridge: analogix/dp: split exynos dp driver to bridge directory Yakir Yang
2016-01-19 10:00   ` [PATCH v12.1 05/17] dt-bindings: add document for analogix display port driver Yakir Yang
2015-12-23 12:31 ` [PATCH v12 02/18] drm: bridge: analogix/dp: fix some obvious code style Yakir Yang
2015-12-23 12:31 ` [PATCH v12 03/18] drm: bridge: analogix/dp: remove duplicate configuration of link rate and link count Yakir Yang
2015-12-23 12:31 ` [PATCH v12 04/18] drm: bridge: analogix/dp: dynamic parse sync_pol & interlace & dynamic_range Yakir Yang
2015-12-23 12:32 ` [PATCH v12 05/18] dt-bindings: add document for analogix display port driver Yakir Yang
2015-12-23 12:32 ` [PATCH v12 06/18] ARM: dts: exynos/dp: remove some properties that deprecated by analogix_dp driver Yakir Yang
2015-12-23 12:32 ` [PATCH v12 07/18] drm: rockchip: dp: add rockchip platform dp driver Yakir Yang
2015-12-23 12:34 ` [PATCH v12 08/18] dt-bindings: add document for rockchip variant of analogix_dp Yakir Yang
2015-12-23 12:36 ` [PATCH v12 09/18] phy: Add driver for rockchip Display Port PHY Yakir Yang
2015-12-23 12:38 ` [PATCH v12 10/18] dt-bindings: add document for rockchip dp phy Yakir Yang
2015-12-23 12:40 ` [PATCH v12 11/18] drm: bridge: analogix/dp: add some rk3288 special registers setting Yakir Yang
2015-12-23 12:42 ` [PATCH v12 12/18] drm: bridge: analogix/dp: add max link rate and lane count limit for RK3288 Yakir Yang
2015-12-23 12:44 ` [PATCH v12 13/18] drm: bridge: analogix/dp: try force hpd after plug in lookup failed Yakir Yang
2015-12-23 12:46 ` [PATCH v12 14/18] drm: bridge: analogix/dp: move hpd detect to connector detect function Yakir Yang
2015-12-23 12:49 ` [PATCH v12 15/18] drm: bridge: analogix/dp: add edid modes parse in get_modes method Yakir Yang
2015-12-23 12:51 ` [PATCH v12 16/18] drm: bridge: analogix/dp: expand the wait time for looking AUX CH reply flag Yakir Yang
2015-12-23 15:10   ` Jingoo Han
2015-12-24  1:23     ` Yakir Yang [this message]
2015-12-25 13:01       ` Jingoo Han
2015-12-23 12:53 ` [PATCH v12 17/18] drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time Yakir Yang
2015-12-23 12:55 ` [PATCH v12 18/18] drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable time Yakir Yang
2016-01-13 14:59 ` [PATCH v12 0/18] Add Analogix Core Display Port Driver Heiko Stuebner
2016-01-17 14:25   ` Heiko Stuebner
2016-01-18 10:48     ` Yakir Yang
2016-01-19  9:58 ` [PATCH v12.1 01/17] drm: bridge: analogix/dp: split exynos dp driver to bridge directory Yakir Yang
2016-01-19 10:02 ` [PATCH v12.1 06/17] ARM: dts: exynos/dp: remove some properties that deprecated by analogix_dp driver Yakir Yang
2016-01-19 10:04 ` [PATCH v12.1 07/17] drm: rockchip: dp: add rockchip platform dp driver Yakir Yang
2016-01-21 19:11   ` Heiko Stuebner
2016-01-22  1:37     ` Yakir Yang
2016-01-19 10:06 ` [PATCH v12.1 13/17] drm: bridge: analogix/dp: try force hpd after plug in lookup failed Yakir Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=567B48F9.6010902@rock-chips.com \
    --to=ykk@rock-chips.com \
    --cc=andy.yan@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emil.l.velikov@gmail.com \
    --cc=gustavo.padovan@collabora.co.uk \
    --cc=heiko@sntech.de \
    --cc=inki.dae@samsung.com \
    --cc=javier@osg.samsung.com \
    --cc=jingoohan1@gmail.com \
    --cc=k.kozlowski@samsung.com \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.yao@rock-chips.com \
    --cc=robh+dt@kernel.org \
    --cc=treding@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).