All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Chen-Yu Tsai <wens@csie.org>
Cc: Mike Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Daniel Vetter <daniel.vetter@intel.com>,
	David Airlie <airlied@linux.ie>,
	Mark Rutland <mark.rutland@arm.com>,
	Rob Herring <robh+dt@kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-sunxi <linux-sunxi@googlegroups.com>
Subject: Re: [PATCH 10/15] drm/sun4i: tcon: Switch mux on only for composite
Date: Thu, 9 Mar 2017 11:58:00 +0100	[thread overview]
Message-ID: <20170309105800.mnzhvnky6na7d5vn@lukather> (raw)
In-Reply-To: <CAGb2v67iTOV-=u5rReu6_wi6NFoCoJkbJKshTpmFYUmJ=ggKUw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2310 bytes --]

On Wed, Mar 08, 2017 at 11:51:39AM +0800, Chen-Yu Tsai wrote:
> On Tue, Mar 7, 2017 at 4:56 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > Even though that mux is undocumented, it seems like it needs to be set to 1
> > when using composite, and 0 when using HDMI.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> > ---
> >  drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > index d2335f109601..93249c5ab1e4 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > @@ -268,11 +268,16 @@ void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder,
> >                            SUN4I_TCON_GCTL_IOMAP_MASK,
> >                            SUN4I_TCON_GCTL_IOMAP_TCON1);
> >
> > +       if (encoder->encoder_type == DRM_MODE_ENCODER_TVDAC)
> > +               val = 1;
> > +       else
> > +               val = 0;
> > +
> >         /*
> >          * FIXME: Undocumented bits
> >          */
> >         if (tcon->quirks->has_unknown_mux)
> > -               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, 1);
> > +               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, val);
> 
> We might want to do this the other way around, i.e. exporting
> 
>     int sun4i_tcon_mux_set(struct drm_device *drm, int encoder_type,
>                            int pipeline)
> 
> and have downstream encoders call it. For the A31, the mux is not exclusively
> used for channel 1; there is a mux setting for MIPI DSI as well, but AFAIK
> DSI is connected to channel 0.

We could make it part of sun4i_tcon_channel_enable too, though. What
do you think?

> Additionally, the mux registers are only valid in the first TCON, meaning
> it must available be active in 2 pipeline chips. It's also why we'd pass
> "struct drm_device *" instead of "struct sun4i_tcon *".

Hmmmm. That's going to be tricky to support. Has this been confirmed
somehow? Is the register used for something else on TCON1?

Thanks,
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Chen-Yu Tsai <wens@csie.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree <devicetree@vger.kernel.org>,
	Mike Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	linux-sunxi <linux-sunxi@googlegroups.com>,
	Rob Herring <robh+dt@kernel.org>,
	Daniel Vetter <daniel.vetter@intel.com>,
	linux-clk <linux-clk@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 10/15] drm/sun4i: tcon: Switch mux on only for composite
Date: Thu, 9 Mar 2017 11:58:00 +0100	[thread overview]
Message-ID: <20170309105800.mnzhvnky6na7d5vn@lukather> (raw)
In-Reply-To: <CAGb2v67iTOV-=u5rReu6_wi6NFoCoJkbJKshTpmFYUmJ=ggKUw@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2310 bytes --]

On Wed, Mar 08, 2017 at 11:51:39AM +0800, Chen-Yu Tsai wrote:
> On Tue, Mar 7, 2017 at 4:56 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > Even though that mux is undocumented, it seems like it needs to be set to 1
> > when using composite, and 0 when using HDMI.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> > ---
> >  drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > index d2335f109601..93249c5ab1e4 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > @@ -268,11 +268,16 @@ void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder,
> >                            SUN4I_TCON_GCTL_IOMAP_MASK,
> >                            SUN4I_TCON_GCTL_IOMAP_TCON1);
> >
> > +       if (encoder->encoder_type == DRM_MODE_ENCODER_TVDAC)
> > +               val = 1;
> > +       else
> > +               val = 0;
> > +
> >         /*
> >          * FIXME: Undocumented bits
> >          */
> >         if (tcon->quirks->has_unknown_mux)
> > -               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, 1);
> > +               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, val);
> 
> We might want to do this the other way around, i.e. exporting
> 
>     int sun4i_tcon_mux_set(struct drm_device *drm, int encoder_type,
>                            int pipeline)
> 
> and have downstream encoders call it. For the A31, the mux is not exclusively
> used for channel 1; there is a mux setting for MIPI DSI as well, but AFAIK
> DSI is connected to channel 0.

We could make it part of sun4i_tcon_channel_enable too, though. What
do you think?

> Additionally, the mux registers are only valid in the first TCON, meaning
> it must available be active in 2 pipeline chips. It's also why we'd pass
> "struct drm_device *" instead of "struct sun4i_tcon *".

Hmmmm. That's going to be tricky to support. Has this been confirmed
somehow? Is the register used for something else on TCON1?

Thanks,
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/15] drm/sun4i: tcon: Switch mux on only for composite
Date: Thu, 9 Mar 2017 11:58:00 +0100	[thread overview]
Message-ID: <20170309105800.mnzhvnky6na7d5vn@lukather> (raw)
In-Reply-To: <CAGb2v67iTOV-=u5rReu6_wi6NFoCoJkbJKshTpmFYUmJ=ggKUw@mail.gmail.com>

On Wed, Mar 08, 2017 at 11:51:39AM +0800, Chen-Yu Tsai wrote:
> On Tue, Mar 7, 2017 at 4:56 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > Even though that mux is undocumented, it seems like it needs to be set to 1
> > when using composite, and 0 when using HDMI.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> > ---
> >  drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > index d2335f109601..93249c5ab1e4 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
> > @@ -268,11 +268,16 @@ void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, struct drm_encoder *encoder,
> >                            SUN4I_TCON_GCTL_IOMAP_MASK,
> >                            SUN4I_TCON_GCTL_IOMAP_TCON1);
> >
> > +       if (encoder->encoder_type == DRM_MODE_ENCODER_TVDAC)
> > +               val = 1;
> > +       else
> > +               val = 0;
> > +
> >         /*
> >          * FIXME: Undocumented bits
> >          */
> >         if (tcon->quirks->has_unknown_mux)
> > -               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, 1);
> > +               regmap_write(tcon->regs, SUN4I_TCON_MUX_CTRL_REG, val);
> 
> We might want to do this the other way around, i.e. exporting
> 
>     int sun4i_tcon_mux_set(struct drm_device *drm, int encoder_type,
>                            int pipeline)
> 
> and have downstream encoders call it. For the A31, the mux is not exclusively
> used for channel 1; there is a mux setting for MIPI DSI as well, but AFAIK
> DSI is connected to channel 0.

We could make it part of sun4i_tcon_channel_enable too, though. What
do you think?

> Additionally, the mux registers are only valid in the first TCON, meaning
> it must available be active in 2 pipeline chips. It's also why we'd pass
> "struct drm_device *" instead of "struct sun4i_tcon *".

Hmmmm. That's going to be tricky to support. Has this been confirmed
somehow? Is the register used for something else on TCON1?

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/1751d012/attachment.sig>

  parent reply	other threads:[~2017-03-09 10:58 UTC|newest]

Thread overview: 146+ 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 ` Maxime Ripard
2017-03-07  8:56 ` Maxime Ripard
     [not found] ` <cover.bc06ffa88f847ddd9ddd7c259415d5f61b55307b.1488876832.git-series.maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2017-03-07  8:56   ` [PATCH 1/15] clk: divider: Make divider_round_rate take the parent clock Maxime Ripard
2017-03-07  8:56     ` Maxime Ripard
2017-03-07  8:56     ` Maxime Ripard
2017-03-07  8:56     ` [rtc-linux] " Maxime Ripard
2017-03-07  8:56     ` Maxime Ripard
2017-03-07 14:11     ` Stephen Boyd
2017-03-07 14:11       ` Stephen Boyd
2017-03-07 14:11       ` Stephen Boyd
2017-03-07 14:11       ` [rtc-linux] " Stephen Boyd
2017-03-07 14:11       ` Stephen Boyd
     [not found]       ` <20170307141157.GC10239-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-03-09 10:55         ` Maxime Ripard
2017-03-09 10:55           ` Maxime Ripard
2017-03-09 10:55           ` Maxime Ripard
2017-03-09 10:55           ` [rtc-linux] " Maxime Ripard
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   ` Maxime Ripard
2017-03-07  8:56   ` 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   ` Maxime Ripard
2017-03-07  8:56   ` 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   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56 ` [PATCH 5/15] clk: sunxi-ng: sun5i: Export video PLLs Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07 10:21   ` [linux-sunxi] " Julian Calaby
2017-03-07 10:21     ` Julian Calaby
2017-03-07 10:21     ` Julian Calaby
2017-03-08  8:58     ` [linux-sunxi] " Maxime Ripard
2017-03-08  8:58       ` Maxime Ripard
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-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:39   ` Chen-Yu Tsai
2017-03-08  3:39     ` Chen-Yu Tsai
2017-03-08  3:39     ` Chen-Yu Tsai
2017-03-15 17:26   ` Rob Herring
2017-03-15 17:26     ` Rob Herring
2017-03-15 17:26     ` Rob Herring
2017-04-03 20:59     ` Maxime Ripard
2017-04-03 20:59       ` Maxime Ripard
2017-04-03 20:59       ` Maxime Ripard
2017-05-03  3:27   ` Chen-Yu Tsai
2017-05-03  3:27     ` Chen-Yu Tsai
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-07  8:56   ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner, tcon-channel property Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:38   ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner,tcon-channel property Chen-Yu Tsai
2017-03-08  3:38     ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner, tcon-channel property Chen-Yu Tsai
2017-03-08  3:38     ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner,tcon-channel property Chen-Yu Tsai
2017-03-15 17:37   ` Rob Herring
2017-03-15 17:37     ` Rob Herring
2017-03-15 17:37     ` Rob Herring
2017-03-17  3:34     ` Chen-Yu Tsai
2017-03-17  3:34       ` [PATCH 7/15] dt-bindings: display: sun4i: Add allwinner, tcon-channel property Chen-Yu Tsai
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       ` Maxime Ripard
2017-03-26 21:11         ` Maxime Ripard
2017-03-26 21:11         ` Maxime Ripard
2017-03-07  8:56 ` [PATCH 8/15] drm/sun4i: tcon: Add channel debug Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:37   ` Chen-Yu Tsai
2017-03-08  3:37     ` Chen-Yu Tsai
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   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56 ` [PATCH 10/15] drm/sun4i: tcon: Switch mux on only for composite Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:51   ` Chen-Yu Tsai
2017-03-08  3:51     ` Chen-Yu Tsai
2017-03-08  3:51     ` Chen-Yu Tsai
2017-03-08  4:16     ` Stefan Monnier
2017-03-08  4:16       ` Stefan Monnier
2017-03-08  4:16       ` Stefan Monnier
2017-03-08  4:16       ` Stefan Monnier
2017-03-09 10:58     ` Maxime Ripard [this message]
2017-03-09 10:58       ` Maxime Ripard
2017-03-09 10:58       ` Maxime Ripard
2017-03-09 11:31       ` [linux-sunxi] " Chen-Yu Tsai
2017-03-09 11:31         ` Chen-Yu Tsai
2017-03-09 11:31         ` Chen-Yu Tsai
2017-03-09 14:55         ` [linux-sunxi] " Maxime Ripard
2017-03-09 14:55           ` Maxime Ripard
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-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  4:25   ` Chen-Yu Tsai
2017-03-08  4:25     ` Chen-Yu Tsai
2017-03-08  4:25     ` Chen-Yu Tsai
2017-03-08  8:55     ` Maxime Ripard
2017-03-08  8:55       ` Maxime Ripard
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  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07 10:05   ` Chen-Yu Tsai
2017-03-07 10:05     ` Chen-Yu Tsai
2017-03-07 10:05     ` Chen-Yu Tsai
2017-03-09 10:54     ` Maxime Ripard
2017-03-09 10:54       ` Maxime Ripard
2017-03-09 10:54       ` Maxime Ripard
2017-03-07  8:56 ` [PATCH 13/15] drm/sun4i: Add HDMI support Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-04-21 15:17   ` [linux-sunxi] " Chen-Yu Tsai
2017-04-21 15:17     ` Chen-Yu Tsai
2017-04-21 15:17     ` Chen-Yu Tsai
2017-04-26  6:50     ` [linux-sunxi] " Maxime Ripard
2017-04-26  6:50       ` Maxime Ripard
2017-04-26  6:50       ` Maxime Ripard
2017-04-26  7:59       ` Chen-Yu Tsai
2017-04-26  7:59         ` Chen-Yu Tsai
2017-04-26  7:59         ` Chen-Yu Tsai
2017-05-03  8:41         ` [linux-sunxi] " Maxime Ripard
2017-05-03  8:41           ` Maxime Ripard
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-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:35   ` [linux-sunxi] " Chen-Yu Tsai
2017-03-08  3:35     ` Chen-Yu Tsai
2017-03-08  3:35     ` Chen-Yu Tsai
2017-03-09 10:59     ` [linux-sunxi] " Maxime Ripard
2017-03-09 10:59       ` Maxime Ripard
2017-03-09 10:59       ` Maxime Ripard
2017-03-09 11:10       ` [linux-sunxi] " Chen-Yu Tsai
2017-03-09 11:10         ` Chen-Yu Tsai
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-07  8:56   ` Maxime Ripard
2017-03-07  8:56   ` Maxime Ripard
2017-03-08  3:36   ` Chen-Yu Tsai
2017-03-08  3:36     ` Chen-Yu Tsai
2017-03-08  3:36     ` Chen-Yu Tsai
2017-03-07 14:06 ` [PATCH 0/15] drm: sun4i: Add support for the HDMI controller Stefan Monnier

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=20170309105800.mnzhvnky6na7d5vn@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=mturquette@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.