From: Giulio Benetti <giulio.benetti@micronovasrl.com>
To: Jonathan Liu <net147@gmail.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>,
Chen-Yu Tsai <wens@csie.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
dri-devel <dri-devel@lists.freedesktop.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drm/sun4i: fix HSYNC and VSYNC polarity
Date: Thu, 6 Dec 2018 12:00:11 +0100 [thread overview]
Message-ID: <57d929cf-4458-dae4-36d4-4e89170eba4a@micronovasrl.com> (raw)
In-Reply-To: <CANwerB3Zr9axz+1rwCnNpLsX-xcOhOKEY4MT53v1+vzd99KRMg@mail.gmail.com>
Hi Jonathan,
Il 06/12/2018 08:29, Jonathan Liu ha scritto:
> Hi Giulio,
>
> On Thu, 15 Feb 2018 at 17:54, Giulio Benetti
> <giulio.benetti@micronovasrl.com> wrote:
>>
>> Differently from other Lcd signals, HSYNC and VSYNC signals
>> result inverted if their bits are cleared to 0.
>>
>> Invert their settings of IO_POL register.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
>> ---
>> drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
>> index 3c15cf2..aaf911a 100644
>> --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
>> +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
>> @@ -389,10 +389,10 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
>> SUN4I_TCON0_BASIC3_H_SYNC(hsync));
>>
>> /* Setup the polarity of the various signals */
>> - if (!(mode->flags & DRM_MODE_FLAG_PHSYNC))
>> + if (mode->flags & DRM_MODE_FLAG_PHSYNC)
>> val |= SUN4I_TCON0_IO_POL_HSYNC_POSITIVE;
>>
>> - if (!(mode->flags & DRM_MODE_FLAG_PVSYNC))
>> + if (mode->flags & DRM_MODE_FLAG_PVSYNC)
>> val |= SUN4I_TCON0_IO_POL_VSYNC_POSITIVE;
>>
>> regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG,
>
> I am running Linux 4.19.6 and noticed with Olimex LCD-OLinuXino-7TS 7"
> LCD touchscreen (Innolux AT070TN92) connected to Olimex
> A20-OLinuXino-MICRO that the image does not display correctly after
> this change.
> The image is shifted to the right.
>
> Reverting the change results in the image being displayed correctly on
> the screen.
>
> I have in the device tree a "panel" node with compatible =
> "innolux,at070tn92" which uses the timings in
> drivers/gpu/drm/panel/panel-simple.c.
>
> Any ideas?
Checking Display Datasheet:
https://www.olimex.com/Products/Retired/A13-LCD7-TS/resources/S700-AT070TN92.pdf
Page 13 section 3.3.2 you can see it needs active low VS and HS.
You can refer to this Thread and check scope captures about VS and HS
versus TCON0_IOPOL register:
https://lists.freedesktop.org/archives/dri-devel/2018-January/163874.html
There should be something that wrongly sets one of these or both:
mode->flags |= DRM_MODE_FLAG_PHSYNC;
and/or
mode->flags |= DRM_MODE_FLAG_PVSYNC;
Checked in panel-simple.c but it's not there.
At the moment I don't have a board to check it with me, I'll try to do
it soon, but I'm full with other work at the moment.
If you have the chance to debug you could try to find in which point
mode->flags gets changed with those 2 flags.
When the problem came out I've noticed the same thing for u-boot too but
it's been decided to not patch it because in that case every single
sunxi defconfig had to be changed from:
CONFIG_VIDEO_LCD_MODE="...,sync:3,..."
to:
CONFIG_VIDEO_LCD_MODE="...,sync:0,..."
and it would have been a great mess, probably not worth it:
https://lists.denx.de/pipermail/u-boot/2018-February/321405.html
So keep in mind that TCON driver works differently for HS and
VS(inverted) polarity in u-boot and linux.
Hope to work this out soon.
Best regards
--
Giulio Benetti
CTO
MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642
next prev parent reply other threads:[~2018-12-06 11:05 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-15 17:54 Giulio Benetti
2018-02-16 20:18 ` Maxime Ripard
2018-12-06 7:29 ` Jonathan Liu
2018-12-06 11:00 ` Giulio Benetti [this message]
2018-12-11 10:49 ` Jonathan Liu
2018-12-11 17:20 ` Giulio Benetti
2018-12-11 17:39 ` Giulio Benetti
2018-12-13 2:55 ` Jonathan Liu
2018-12-13 11:42 ` Giulio Benetti
2018-12-13 3:08 ` Jonathan Liu
2018-12-13 11:58 ` Giulio Benetti
2018-12-13 12:32 ` Giulio Benetti
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=57d929cf-4458-dae4-36d4-4e89170eba4a@micronovasrl.com \
--to=giulio.benetti@micronovasrl.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=net147@gmail.com \
--cc=wens@csie.org \
/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
all inboxes | Powered by JetHome®