Message ID | 1c4f6b275597dec7d97b5c1d9f749ba27c0610f3.1511797218.git-series.maxime.ripard@free-electrons.com |
---|---|
State | New |
Headers | show |
Series | drm/sun4i: Add A83t LVDS support | expand |
Hi, On Mon, Nov 27, 2017 at 05:01:49PM +0100, Jernej Škrabec wrote: > Dne ponedeljek, 27. november 2017 ob 16:41:35 CET je Maxime Ripard napisal(a): > > Add support for the A83T display pipeline. > > > > Reviewed-by: Chen-Yu Tsai <wens@csie.org> > > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > > --- > > Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt | 3 +++ > > drivers/gpu/drm/sun4i/sun4i_drv.c | 2 ++ > > drivers/gpu/drm/sun4i/sun4i_tcon.c | 5 +++++ > > drivers/gpu/drm/sun4i/sun8i_mixer.c | 4 ++++ > > 4 files changed, 14 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt index > > d4259a4f5171..d6b52e5c48c0 100644 > > --- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > @@ -93,6 +93,7 @@ Required properties: > > * allwinner,sun6i-a31s-tcon > > * allwinner,sun7i-a20-tcon > > * allwinner,sun8i-a33-tcon > > + * allwinner,sun8i-a83t-tcon-lcd > > * allwinner,sun8i-v3s-tcon > > - reg: base address and size of memory-mapped region > > - interrupts: interrupt associated to this IP > > @@ -224,6 +225,7 @@ supported. > > > > Required properties: > > - compatible: value must be one of: > > + * allwinner,sun8i-a83t-de2-mixer > > What will be the name of the second mixer, once support for HDMI is added? > Should we start directly with 0 and 1 postfix ? What are the differences exactly without the two mixers? I was hoping to be able to cover them all using properties, indices are usually pretty badly received in compatibles. > > static const struct of_device_id sun8i_mixer_of_table[] = { > > { > > + .compatible = "allwinner,sun8i-a83t-de2-mixer", > > + .data = &sun8i_v3s_mixer_cfg, > > + }, > > + { > > Maybe you want to squash 12 patch since this works only by luck. Yeah, I totally meant to do that :) Thanks! Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
On Tue, Nov 28, 2017 at 07:50:19PM +0800, Icenowy Zheng wrote: > 在 2017-11-28 17:02,Maxime Ripard 写道: > > Hi, > > > > On Mon, Nov 27, 2017 at 05:01:49PM +0100, Jernej Škrabec wrote: > > > Dne ponedeljek, 27. november 2017 ob 16:41:35 CET je Maxime Ripard > > > napisal(a): > > > > Add support for the A83T display pipeline. > > > > > > > > Reviewed-by: Chen-Yu Tsai <wens@csie.org> > > > > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > > > > --- > > > > Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt | 3 +++ > > > > drivers/gpu/drm/sun4i/sun4i_drv.c | 2 ++ > > > > drivers/gpu/drm/sun4i/sun4i_tcon.c | 5 +++++ > > > > drivers/gpu/drm/sun4i/sun8i_mixer.c | 4 ++++ > > > > 4 files changed, 14 insertions(+) > > > > > > > > diff --git a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt index > > > > d4259a4f5171..d6b52e5c48c0 100644 > > > > --- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > @@ -93,6 +93,7 @@ Required properties: > > > > * allwinner,sun6i-a31s-tcon > > > > * allwinner,sun7i-a20-tcon > > > > * allwinner,sun8i-a33-tcon > > > > + * allwinner,sun8i-a83t-tcon-lcd > > > > * allwinner,sun8i-v3s-tcon > > > > - reg: base address and size of memory-mapped region > > > > - interrupts: interrupt associated to this IP > > > > @@ -224,6 +225,7 @@ supported. > > > > > > > > Required properties: > > > > - compatible: value must be one of: > > > > + * allwinner,sun8i-a83t-de2-mixer > > > > > > What will be the name of the second mixer, once support for HDMI is > > > added? > > > Should we start directly with 0 and 1 postfix ? > > > > What are the differences exactly without the two mixers? > > > > I was hoping to be able to cover them all using properties, indices > > are usually pretty badly received in compatibles. > > 1. VEP is only available on the VI channel in mixer0. (VEP may mean > Video Enhance Processor) > 2. Smart Backlight is only available in mixer0's on SoCs with LCD. > 3. Writeback function is only available in mixer0. Then yeah, we can totally support that using properties. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
On Tue, Nov 28, 2017 at 04:48:55PM +0100, Jernej Škrabec wrote: > > On Mon, Nov 27, 2017 at 05:01:49PM +0100, Jernej Škrabec wrote: > > > Dne ponedeljek, 27. november 2017 ob 16:41:35 CET je Maxime Ripard > napisal(a): > > > > Add support for the A83T display pipeline. > > > > > > > > Reviewed-by: Chen-Yu Tsai <wens@csie.org> > > > > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > > > > --- > > > > > > > > Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt | 3 +++ > > > > drivers/gpu/drm/sun4i/sun4i_drv.c | 2 ++ > > > > drivers/gpu/drm/sun4i/sun4i_tcon.c | 5 +++++ > > > > drivers/gpu/drm/sun4i/sun8i_mixer.c | 4 ++++ > > > > 4 files changed, 14 insertions(+) > > > > > > > > diff --git > > > > a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt index > > > > d4259a4f5171..d6b52e5c48c0 100644 > > > > --- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt > > > > > > > > @@ -93,6 +93,7 @@ Required properties: > > > > * allwinner,sun6i-a31s-tcon > > > > * allwinner,sun7i-a20-tcon > > > > * allwinner,sun8i-a33-tcon > > > > > > > > + * allwinner,sun8i-a83t-tcon-lcd > > > > > > > > * allwinner,sun8i-v3s-tcon > > > > > > > > - reg: base address and size of memory-mapped region > > > > - interrupts: interrupt associated to this IP > > > > > > > > @@ -224,6 +225,7 @@ supported. > > > > > > > > Required properties: > > > > - compatible: value must be one of: > > > > + * allwinner,sun8i-a83t-de2-mixer > > > > > > What will be the name of the second mixer, once support for HDMI is added? > > > Should we start directly with 0 and 1 postfix ? > > > > What are the differences exactly without the two mixers? > > Mixer properties: > - mixer index (0 or 1), important for determining CCSC base (see my patches) Is that the only thing we need to determine? > - number of VI planes (usually 1) Usually or always? > - number of UI planes (usually 1 or 3) Same question. > - writeback support (yes/no) > - scale line buffer length (2048 or 4096) > - smart backligth support (yes/no) > > channel properties (for both, VI and UI): > - scaler support (yes/no, usually yes) > - overlay count (seems to be always 4) > - VEP support (yes/no) > > Those are properties found in BSP de_feat.c, so I guess that's enough to make > any kind of decision in the code. > > Usually, but we can't count on that, first mixer has 1 VI and 3 UI planes and > second mixer has 1 VI and 1 UI plane. Right. So that would be easy to support using a property as well. The only difference would be the CSC base. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
diff --git a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt index d4259a4f5171..d6b52e5c48c0 100644 --- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt @@ -93,6 +93,7 @@ Required properties: * allwinner,sun6i-a31s-tcon * allwinner,sun7i-a20-tcon * allwinner,sun8i-a33-tcon + * allwinner,sun8i-a83t-tcon-lcd * allwinner,sun8i-v3s-tcon - reg: base address and size of memory-mapped region - interrupts: interrupt associated to this IP @@ -224,6 +225,7 @@ supported. Required properties: - compatible: value must be one of: + * allwinner,sun8i-a83t-de2-mixer * allwinner,sun8i-v3s-de2-mixer - reg: base address and size of the memory-mapped region. - clocks: phandles to the clocks feeding the mixer @@ -253,6 +255,7 @@ Required properties: * allwinner,sun6i-a31s-display-engine * allwinner,sun7i-a20-display-engine * allwinner,sun8i-a33-display-engine + * allwinner,sun8i-a83t-display-engine * allwinner,sun8i-v3s-display-engine - allwinner,pipelines: list of phandle to the display engine diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 75c76cdd82bc..c418be2f22be 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -193,6 +193,7 @@ static bool sun4i_drv_node_is_tcon(struct device_node *node) of_device_is_compatible(node, "allwinner,sun6i-a31s-tcon") || of_device_is_compatible(node, "allwinner,sun7i-a20-tcon") || of_device_is_compatible(node, "allwinner,sun8i-a33-tcon") || + of_device_is_compatible(node, "allwinner,sun8i-a83t-tcon-lcd") || of_device_is_compatible(node, "allwinner,sun8i-v3s-tcon"); } @@ -353,6 +354,7 @@ static const struct of_device_id sun4i_drv_of_table[] = { { .compatible = "allwinner,sun6i-a31s-display-engine" }, { .compatible = "allwinner,sun7i-a20-display-engine" }, { .compatible = "allwinner,sun8i-a33-display-engine" }, + { .compatible = "allwinner,sun8i-a83t-display-engine" }, { .compatible = "allwinner,sun8i-v3s-display-engine" }, { } }; diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 46ce6daa0b1a..871df75793a9 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -1132,6 +1132,10 @@ static const struct sun4i_tcon_quirks sun8i_a33_quirks = { .has_lvds_pll = true, }; +static const struct sun4i_tcon_quirks sun8i_a83t_quirks = { + /* nothing is supported */ +}; + static const struct sun4i_tcon_quirks sun8i_v3s_quirks = { /* nothing is supported */ }; @@ -1143,6 +1147,7 @@ static const struct of_device_id sun4i_tcon_of_table[] = { { .compatible = "allwinner,sun6i-a31s-tcon", .data = &sun6i_a31s_quirks }, { .compatible = "allwinner,sun7i-a20-tcon", .data = &sun7i_a20_quirks }, { .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks }, + { .compatible = "allwinner,sun8i-a83t-tcon-lcd", .data = &sun8i_a83t_quirks }, { .compatible = "allwinner,sun8i-v3s-tcon", .data = &sun8i_v3s_quirks }, { } }; diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c index 44d5e639ebb2..5a1376965270 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -395,6 +395,10 @@ static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { static const struct of_device_id sun8i_mixer_of_table[] = { { + .compatible = "allwinner,sun8i-a83t-de2-mixer", + .data = &sun8i_v3s_mixer_cfg, + }, + { .compatible = "allwinner,sun8i-v3s-de2-mixer", .data = &sun8i_v3s_mixer_cfg, },