dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Hans de Goede <j.w.r.degoede@gmail.com>
Cc: dri-devel@lists.freedesktop.org,
	intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915/vlv: Add cdclk workaround for DSI
Date: Tue, 19 Dec 2017 21:38:10 +0100	[thread overview]
Message-ID: <ba337fd1-a3cd-87b1-c356-12ca3065070e@redhat.com> (raw)
In-Reply-To: <20171219194220.szpeht7mjatkzf6z@intel.com>

Hi,

On 19-12-17 20:42, Rodrigo Vivi wrote:
> 
> On Tue, Dec 19, 2017 at 07:21:13PM +0000, Hans de Goede wrote:
>> At least on the Chuwi Vi8 (non pro/plus) the LCD panel will show an image
>> shifted aprox. 20% to the left (with wraparound) and sometimes also wrong
>> colors, showing that the panel controller is starting with sampling the
>> datastream somewhere mid-line. This happens after the first blanking and
>> re-init of the panel.
>>
>> After looking at drm.debug output I noticed that initially we inherit the
>> cdclk of 333333 KHz set by the GOP, but after the re-init we picked 266667
>> KHz, which turns out to be the cause of this problem, a quick hack to hard
>> code the cdclk to 333333 KHz makes the problem go away.
>>
>> I've tested this on various Bay Trail devices:
>> -Chuwi Vi8: 800x1280, 333333 at boot, requires 333333 to work properly
>> -GP-electronic T701: 1024x600, 333333 at boot, works fine with 333333
>> -PEAQ C1010: 1920x1200, 333333 at boot, works fine with 333333
>> -PoV mobii-wintab-800w: 800x1280, 333333 at boot, works fine with 333333
>> -Asus Transformer-T100TA: 1368x768, 320000 at boot, works fine with 320000
> 
> and lower clock shift the image in all of them?

No, just on the Chuwi Vi8, the tests was to make sure the higher clock
does not create problems elsewhere and I was curious what clock the GOP
was using on other devices. Also hence the "requires 333333 to work properly"
vs "works fine with 333333" in the list.

>> So it seems that the GOP is always using what vlv_calc_cdclk calls
>> freq_320 as cdclk clock. Also note the comment in vlv_calc_cdclk about
>> it avoiding 200 Mhz as clock because that causes issues in some cases.
>>
>> This commit extends the "do not use 200 Mhz" workaround with an extra
>> check to require atleast 320000 KHz (avoiding 266667 KHz) when a DSI
>> panel is active.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   drivers/gpu/drm/i915/intel_cdclk.c | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c
>> index 9c5ceb98d48f..cfb3f7fb3e1c 100644
>> --- a/drivers/gpu/drm/i915/intel_cdclk.c
>> +++ b/drivers/gpu/drm/i915/intel_cdclk.c
>> @@ -1923,6 +1923,14 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state)
>>   	if (crtc_state->has_audio && INTEL_GEN(dev_priv) >= 9)
>>   		min_cdclk = max(2 * 96000, min_cdclk);
>>   
>> +	/*
>> +	 * On Valleyview the GOP always uses 320000/333333 KHz if DSI is used,
>> +	 * using a lower clock causes causes sync issues with some panels.
>> +	 */
> 
> Afaik (afai-have-noticed) GOP always use the higher freq and higher rates
> that panels support with no care about saving any power. So I'm not sure if
> that should be used as any sort of reference for us.
> 
> Note I'm not telling to not add the workaround itself...

So you're suggesting to change the comment into something like this
instead ?  :

/*
  * On Valleyview some DSI panels loose (v|h)sync when the clock is lower
  * then 320000KHz.
  */

> 
>> +	if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DSI) &&
>> +	    IS_VALLEYVIEW(dev_priv))
>> +		min_cdclk = max(320000, min_cdclk);
>> +
>>   	if (min_cdclk > dev_priv->max_cdclk_freq) {
>>   		DRM_DEBUG_KMS("required cdclk (%d kHz) exceeds max (%d kHz)\n",
>>   			      min_cdclk, dev_priv->max_cdclk_freq);
>> -- 
>> 2.14.3
>>

Regards,

Hans
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-12-19 20:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-19 19:21 [PATCH] drm/i915/vlv: Add cdclk workaround for DSI Hans de Goede
2017-12-19 19:31 ` Hans de Goede
2017-12-19 19:48   ` Ville Syrjälä
2017-12-19 20:45     ` Hans de Goede
2017-12-19 19:42 ` Rodrigo Vivi
2017-12-19 20:38   ` Hans de Goede [this message]
2017-12-20  0:02     ` Rodrigo Vivi

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=ba337fd1-a3cd-87b1-c356-12ca3065070e@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=j.w.r.degoede@gmail.com \
    --cc=rodrigo.vivi@intel.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