From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 12/15] drm/sun4i: tcon: multiply the vtotal when not in interlace
Date: Thu, 9 Mar 2017 11:54:50 +0100 [thread overview]
Message-ID: <20170309105450.44l26dbry56an65d@lukather> (raw)
In-Reply-To: <CAGb2v67t7O4AuSXUupB3EU7OZdxgQbeyB6qL_g3x_BXOFLg9Bg@mail.gmail.com>
On Tue, Mar 07, 2017 at 06:05:17PM +0800, Chen-Yu Tsai wrote:
> Hi,
>
> On Tue, Mar 7, 2017 at 4:56 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > It appears that the total vertical resolution needs to be doubled when
> > we're not in interlaced. Make sure that is the case.
>
> This is true for both channels, though we handle them differently.
>
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> > ---
> > drivers/gpu/drm/sun4i/sun4i_tcon.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > index e44217fb4f6f..515fa56c1e6a 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > @@ -248,10 +248,13 @@ void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder,
> > SUN4I_TCON1_BASIC3_H_BACKPORCH(bp));
> >
> > bp = mode->crtc_vtotal - mode->crtc_vsync_start;
> > + val = mode->crtc_vtotal;
> > + if (!(mode->flags & DRM_MODE_FLAG_INTERLACE))
> > + val = val * 2;
> > DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n",
> > mode->vtotal, bp);
> > regmap_write(tcon->regs, SUN4I_TCON1_BASIC4_REG,
> > - SUN4I_TCON1_BASIC4_V_TOTAL(mode->vtotal) |
> > + SUN4I_TCON1_BASIC4_V_TOTAL(val) |
>
> For channel 0, the SUN4I_TCON0_BASIC2_V_TOTAL macro multiplies the passed in
> value by 2. I think we should do the same for channel 1, and instead halve the
> value passed in if we are outputting interlaced data. I think this makes more
> sense because:
>
> 1) The register description for both channels are the same. Handling them
> consistently will result in less confusion, such as this one.
>
> 2) The definition of interlaced modes is a frame is separated into odd and
> even fields, with each field contains half the number of lines of the
> full frame. One field is displayed during each VSYNC cycle. The TCON does
> not know whether it's interlaced video or not. It only knows the display
> timings. In this case, the number of horizontal lines per cycle is key.
Hmm, yes, you're right. I'll fix it in the next release.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170309/2e149937/attachment.sig>
next prev parent reply other threads:[~2017-03-09 10:54 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-07 8:56 [PATCH 0/15] drm: sun4i: Add support for the HDMI controller Maxime Ripard
2017-03-07 8:56 ` [PATCH 1/15] clk: divider: Make divider_round_rate take the parent clock Maxime Ripard
2017-03-07 14:11 ` Stephen Boyd
2017-03-09 10:55 ` Maxime Ripard
2017-03-07 8:56 ` [PATCH 2/15] clk: sunxi-ng: Pass the parent and a pointer to the clocks round rate Maxime Ripard
2017-03-07 8:56 ` [PATCH 3/15] clk: sunxi-ng: div: Switch to divider_round_rate Maxime Ripard
2017-03-07 8:56 ` [PATCH 4/15] clk: sunxi-ng: mux: Don't just rely on the parent for CLK_SET_RATE_PARENT Maxime Ripard
2017-03-07 8:56 ` [PATCH 5/15] clk: sunxi-ng: sun5i: Export video PLLs Maxime Ripard
2017-03-07 10:21 ` [linux-sunxi] " Julian Calaby
2017-03-08 8:58 ` Maxime Ripard
2017-03-07 8:56 ` [PATCH 6/15] dt-bindings: display: sun4i: Add HDMI display bindings Maxime Ripard
2017-03-08 3:39 ` Chen-Yu Tsai
2017-03-15 17:26 ` Rob Herring
2017-04-03 20:59 ` Maxime Ripard
2017-05-03 3:27 ` Chen-Yu Tsai
2017-03-07 8:56 ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner, tcon-channel property Maxime Ripard
2017-03-08 3:38 ` Chen-Yu Tsai
2017-03-15 17:37 ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner,tcon-channel property Rob Herring
2017-03-17 3:34 ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner, tcon-channel property Chen-Yu Tsai
2017-03-26 21:11 ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner,tcon-channel property Maxime Ripard
2017-03-07 8:56 ` [PATCH 8/15] drm/sun4i: tcon: Add channel debug Maxime Ripard
2017-03-08 3:37 ` Chen-Yu Tsai
2017-03-07 8:56 ` [PATCH 9/15] drm/sun4i: tcon: Pass the encoder to the mode set functions Maxime Ripard
2017-03-07 8:56 ` [PATCH 10/15] drm/sun4i: tcon: Switch mux on only for composite Maxime Ripard
2017-03-08 3:51 ` Chen-Yu Tsai
2017-03-08 4:16 ` Stefan Monnier
2017-03-09 10:58 ` Maxime Ripard
2017-03-09 11:31 ` [linux-sunxi] " Chen-Yu Tsai
2017-03-09 14:55 ` Maxime Ripard
2017-03-07 8:56 ` [PATCH 11/15] drm/sun4i: tcon: Fix tcon channel 1 backporch calculation Maxime Ripard
2017-03-08 4:25 ` Chen-Yu Tsai
2017-03-08 8:55 ` Maxime Ripard
2017-03-07 8:56 ` [PATCH 12/15] drm/sun4i: tcon: multiply the vtotal when not in interlace Maxime Ripard
2017-03-07 10:05 ` Chen-Yu Tsai
2017-03-09 10:54 ` Maxime Ripard [this message]
2017-03-07 8:56 ` [PATCH 13/15] drm/sun4i: Add HDMI support Maxime Ripard
2017-04-21 15:17 ` [linux-sunxi] " Chen-Yu Tsai
2017-04-26 6:50 ` Maxime Ripard
2017-04-26 7:59 ` Chen-Yu Tsai
2017-05-03 8:41 ` Maxime Ripard
2017-03-07 8:56 ` [PATCH 14/15] ARM: sun5i: a10s: Add the HDMI controller node Maxime Ripard
2017-03-08 3:35 ` [linux-sunxi] " Chen-Yu Tsai
2017-03-09 10:59 ` Maxime Ripard
2017-03-09 11:10 ` Chen-Yu Tsai
2017-03-07 8:56 ` [PATCH 15/15] ARM: sun5i: a10s-olinuxino: Enable HDMI Maxime Ripard
2017-03-08 3:36 ` Chen-Yu Tsai
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=20170309105450.44l26dbry56an65d@lukather \
--to=maxime.ripard@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.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