devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
To: "Jernej Škrabec" <jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
Cc: Maxime Ripard
	<maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	David Airlie <airlied-cv59FeDIM0c@public.gmane.org>,
	Gustavo Padovan <gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org>,
	Maarten Lankhorst
	<maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	dri-devel
	<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-arm-kernel
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	linux-kernel
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-clk <linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: Re: [PATCH v3 23/24] ARM: dts: sun8i: r40: Add HDMI pipeline
Date: Sun, 1 Jul 2018 21:52:55 +0800	[thread overview]
Message-ID: <CAGb2v66y2NZexb94gZ9qa9rP7akdEFWSy43CU5G-UrGR2ad2BQ@mail.gmail.com> (raw)
In-Reply-To: <3055462.VmN8MJVs7V@jernej-laptop>

On Sun, Jul 1, 2018 at 6:41 PM, Jernej Škrabec <jernej.skrabec-ix9DCk4F938@public.gmane.orgt> wrote:
> Dne četrtek, 28. junij 2018 ob 08:51:07 CEST je Chen-Yu Tsai napisal(a):
>> On Thu, Jun 28, 2018 at 1:15 PM, Jernej Škrabec <jernej.skrabec@siol.net>
> wrote:
>> > Dne četrtek, 28. junij 2018 ob 04:50:09 CEST je Chen-Yu Tsai napisal(a):
>> >> On Mon, Jun 25, 2018 at 8:03 PM, Jernej Skrabec <jernej.skrabec@siol.net>
>> >
>> > wrote:
>> >> > Add all entries needed for HDMI to function properly.
>> >> >
>> >> > Since R40 has highly configurable pipeline, both mixers and both TCON
>> >> > TVs are added. Board specific DT should then connect them together
>> >> > trough TCON TOP muxers to best fit the purpose of the board.
>> >> >
>> >> > Signed-off-by: Jernej Skrabec <jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
>> >> > ---
>> >> >
>> >> >  arch/arm/boot/dts/sun8i-r40.dtsi | 269 +++++++++++++++++++++++++++++++
>> >> >  1 file changed, 269 insertions(+)
>> >> >
>> >> > diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> > b/arch/arm/boot/dts/sun8i-r40.dtsi index 173dcc1652d2..a2a75fb04caf
>> >> > 100644
>> >> > --- a/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> > +++ b/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> > @@ -42,8 +42,11 @@
>> >> >
>> >> >   */
>> >> >
>> >> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
>> >> >
>> >> > +#include <dt-bindings/clock/sun8i-de2.h>
>> >> >
>> >> >  #include <dt-bindings/clock/sun8i-r40-ccu.h>
>> >> >
>> >> > +#include <dt-bindings/clock/sun8i-tcon-top.h>
>> >
>> > Maxime, above line breaks compilation for build robot, sorry.
>> >
>> >> >  #include <dt-bindings/reset/sun8i-r40-ccu.h>
>> >> >
>> >> > +#include <dt-bindings/reset/sun8i-de2.h>
>> >> >
>> >> >  / {
>> >> >
>> >> >         #address-cells = <1>;
>> >> >
>> >> > @@ -99,12 +102,76 @@
>> >> >
>> >> >                 };
>> >> >
>> >> >         };
>> >> >
>> >> > +       de: display-engine {
>> >> > +               compatible = "allwinner,sun8i-r40-display-engine",
>> >> > +                            "allwinner,sun8i-h3-display-engine";
>> >>
>> >> Given that the display pipeline looks different, they should not be
>> >> compatible.
>> >
>> > Ok.
>> >
>> >> > +               allwinner,pipelines = <&mixer0>, <&mixer1>;
>> >> > +               status = "disabled";
>> >> > +       };
>> >> > +
>> >> >
>> >> >         soc {
>> >> >
>> >> >                 compatible = "simple-bus";
>> >> >                 #address-cells = <1>;
>> >> >                 #size-cells = <1>;
>> >> >                 ranges;
>> >> >
>> >> > +               display_clocks: clock@1000000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-de2-clk",
>> >> > +                                    "allwinner,sun8i-h3-de2-clk";
>> >> > +                       reg = <0x01000000 0x100000>;
>> >> > +                       clocks = <&ccu CLK_DE>,
>> >> > +                                <&ccu CLK_BUS_DE>;
>> >> > +                       clock-names = "mod",
>> >> > +                                     "bus";
>> >> > +                       resets = <&ccu RST_BUS_DE>;
>> >> > +                       #clock-cells = <1>;
>> >> > +                       #reset-cells = <1>;
>> >> > +               };
>> >> > +
>> >> > +               mixer0: mixer@1100000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-de2-mixer-0";
>> >> > +                       reg = <0x01100000 0x100000>;
>> >> > +                       clocks = <&display_clocks CLK_BUS_MIXER0>,
>> >> > +                                <&display_clocks CLK_MIXER0>;
>> >> > +                       clock-names = "bus",
>> >> > +                                     "mod";
>> >> > +                       resets = <&display_clocks RST_MIXER0>;
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               mixer0_out: port@1 {
>> >> > +                                       reg = <1>;
>> >> > +                                       mixer0_out_tcon_top: endpoint {
>> >> > +                                               remote-endpoint =
>> >> > <&tcon_top_mixer0_in_mixer0>; +
>> >> > };
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> > +               mixer1: mixer@1200000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-de2-mixer-1";
>> >> > +                       reg = <0x01200000 0x100000>;
>> >> > +                       clocks = <&display_clocks CLK_BUS_MIXER1>,
>> >> > +                                <&display_clocks CLK_MIXER1>;
>> >> > +                       clock-names = "bus",
>> >> > +                                     "mod";
>> >> > +                       resets = <&display_clocks RST_WB>;
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               mixer1_out: port@1 {
>> >> > +                                       reg = <1>;
>> >> > +                                       mixer1_out_tcon_top: endpoint {
>> >> > +                                               remote-endpoint =
>> >> > <&tcon_top_mixer1_in_mixer1>; +
>> >> > };
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> >
>> >> >                 nmi_intc: interrupt-controller@1c00030 {
>> >> >
>> >> >                         compatible = "allwinner,sun7i-a20-sc-nmi";
>> >> >                         interrupt-controller;
>> >> >
>> >> > @@ -451,6 +518,163 @@
>> >> >
>> >> >                         #size-cells = <0>;
>> >> >
>> >> >                 };
>> >> >
>> >> > +               tcon_top: tcon-top@1c70000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-tcon-top";
>> >> > +                       reg = <0x01c70000 0x1000>;
>> >> > +                       clocks = <&ccu CLK_BUS_TCON_TOP>,
>> >> > +                                <&ccu CLK_TCON_TV0>,
>> >> > +                                <&ccu CLK_TVE0>,
>> >> > +                                <&ccu CLK_TCON_TV1>,
>> >> > +                                <&ccu CLK_TVE1>,
>> >> > +                                <&ccu CLK_DSI_DPHY>;
>> >> > +                       clock-names = "bus",
>> >> > +                                     "tcon-tv0",
>> >> > +                                     "tve0",
>> >> > +                                     "tcon-tv1",
>> >> > +                                     "tve1",
>> >> > +                                     "dsi";
>> >> > +                       clock-output-names = "tcon-top-tv0",
>> >> > +                                            "tcon-top-tv1",
>> >> > +                                            "tcon-top-dsi";
>> >> > +                       resets = <&ccu RST_BUS_TCON_TOP>;
>> >> > +                       #clock-cells = <1>;
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               tcon_top_mixer0_in: port@0 {
>> >> > +                                       reg = <0>;
>> >> > +
>> >> > +                                       tcon_top_mixer0_in_mixer0:
>> >> > endpoint { +
>> >> > remote-endpoint = <&mixer0_out_tcon_top>; +
>> >> >
>> >> >         };
>> >> >
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_top_mixer0_out: port@1 {
>> >> > +                                       #address-cells = <1>;
>> >> > +                                       #size-cells = <0>;
>> >> > +                                       reg = <1>;
>> >> > +
>> >> > +                                       tcon_top_mixer0_out_tcon_lcd0:
>> >> > endpoint@0 { +                                               reg = <0>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer0_out_tcon_lcd1:
>> >> > endpoint@1 { +                                               reg = <1>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer0_out_tcon_tv0:
>> >> > endpoint@2 { +                                               reg = <2>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer0_out_tcon_tv1:
>> >> > endpoint@3 { +                                               reg = <3>;
>> >> > +                                       };
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_top_mixer1_in: port@2 {
>> >> > +                                       reg = <2>;
>> >> > +
>> >> > +                                       tcon_top_mixer1_in_mixer1:
>> >> > endpoint { +
>> >> > remote-endpoint = <&mixer1_out_tcon_top>; +
>> >> >
>> >> >         };
>> >> >
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_top_mixer1_out: port@3 {
>> >> > +                                       #address-cells = <1>;
>> >> > +                                       #size-cells = <0>;
>> >> > +                                       reg = <3>;
>> >> > +
>> >> > +                                       tcon_top_mixer1_out_tcon_lcd0:
>> >> > endpoint@0 { +                                               reg = <0>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer1_out_tcon_lcd1:
>> >> > endpoint@1 { +                                               reg = <1>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer1_out_tcon_tv0:
>> >> > endpoint@2 { +                                               reg = <2>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_mixer1_out_tcon_tv1:
>> >> > endpoint@3 { +                                               reg = <3>;
>> >> > +                                       };
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_top_hdmi_in: port@4 {
>> >> > +                                       #address-cells = <1>;
>> >> > +                                       #size-cells = <0>;
>> >> > +                                       reg = <4>;
>> >> > +
>> >> > +                                       tcon_top_hdmi_in_tcon_tv0:
>> >> > endpoint@0 { +                                               reg = <0>;
>> >> > +                                       };
>> >> > +
>> >> > +                                       tcon_top_hdmi_in_tcon_tv1:
>> >> > endpoint@1 { +                                               reg = <1>;
>> >> > +                                       };
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_top_hdmi_out: port@5 {
>> >> > +                                       reg = <5>;
>> >> > +
>> >> > +                                       tcon_top_hdmi_out_hdmi:
>> >> > endpoint {
>> >> > +                                               remote-endpoint =
>> >> > <&hdmi_in_tcon_top>; +                                       };
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> > +               tcon_tv0: lcd-controller@1c73000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-tcon-tv",
>> >> > +                                    "allwinner,sun8i-a83t-tcon-tv";
>> >> > +                       reg = <0x01c73000 0x1000>;
>> >> > +                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                       clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top
>> >> > 0>;
>> >> > +                       clock-names = "ahb", "tcon-ch1";
>> >> > +                       resets = <&ccu RST_BUS_TCON_TV0>;
>> >> > +                       reset-names = "lcd";
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               tcon_tv0_in: port@0 {
>> >> > +                                       reg = <0>;
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_tv0_out: port@1 {
>> >> > +                                       reg = <1>;
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> > +               tcon_tv1: lcd-controller@1c74000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-tcon-tv",
>> >> > +                                    "allwinner,sun8i-a83t-tcon-tv";
>> >> > +                       reg = <0x01c74000 0x1000>;
>> >> > +                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                       clocks = <&ccu CLK_BUS_TCON_TV1>, <&tcon_top
>> >> > 1>;
>> >> > +                       clock-names = "ahb", "tcon-ch1";
>> >> > +                       resets = <&ccu RST_BUS_TCON_TV1>;
>> >> > +                       reset-names = "lcd";
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               tcon_tv1_in: port@0 {
>> >> > +                                       reg = <0>;
>> >> > +                               };
>> >> > +
>> >> > +                               tcon_tv1_out: port@1 {
>> >> > +                                       reg = <1>;
>> >>
>> >> You are missing the remote-endpoints for all the TCON-TOP <-> TCON
>> >> connections. Also, on the driver side, there's no code to handle
>> >> dynamically mapping mixers to the TCONs that are being used. In the past
>> >> we
>> >> had simple 1:1 mappings. This is no longer the case, and it needs to be
>> >> dealt with.
>> >
>> > How would TCON TOP driver know how to set muxes? There are no appropriate
>> > bingings for muxes, except for V4L2 subsystem, which doesn't really work
>> > here.
>> This will end up being a bunch of custom functions exported from the TCON
>> TOP driver to the TCON driver. As for bindings, the stuff you already have
>> is mostly enough. You do have to specify the endpoint ID vs component
>> mapping, so you can find the correct one.
>>
>> For example, you would specify that the IDs for TCON LCDs be 0 and 1, and
>> TCON TVs be 2 and 3. Matching the actual register values is a nice
>> convenience. These would be used by the driver as the TCON ID.
>
> So something that's already done (minus full connections).
>
>>
>> Also, we might want to consider them as two pairs of two TCONs (LCD + TV).
>> The CRTC in DRM land is actually the mixer + TCON on our platform. This
>> means we only have two CRTCs. So we could have CRTC 0 = mixer 0 + TCON LCD
>> 0 + TCON TV 0. The "TCON_TVx_OUTSEL" and "DE_PORTx PERH Select" muxes would
>> be set at run time in the mode set function, selecting either LCD or TV
>> based on what encoder is attached.
>
> That proposal would still limit some combinations. For example, that would put
> DSI always on mixer1, since it can be connected to only LCD TCON 1. It can
> also cause undesired combination in laptop solutions. Consider that PCB
> designer connected LCD1 pins to panel for some reason. Panel is definetly main
> screen and should definetly be connected to mixer0, but in that case, it would
> be to mixer1.

There's no reason we can't have dynamically assigned mixer+tcon pairs, but
that would mean implementing additional scheduling code that we don't have
yet. The current sunxi-drm and CRTC code assume static mappings.

We could do this as a second step if you're up to it.

> Additionaly, since HDMI would became floating between TV TCON 0 and 1, whoever
> would write board DT would need to know this and enable only TV TCON1 if LCD
> is desired to be connected to mixer0 (or vice versa).

There's no reason not to have all TCONs enabled by default. We would consider
the display-engine node controlling whether everything actually gets used.

> If we really want universal solution with full connections, addtional property
> has to be defined and used for that.
>
>>
>> This limitation is a software one, and should not bleed over into the
>> hardware representation.
>>
>> > Additionaly, how would HDMI know which TCON belongs to it to appropriately
>> > set possible_crtcs?
>>
>> HDMI is connected to the two TCON TVs through the TCON TOP mux. We handle
>> TCON output muxing in the TCON driver, using the set_mux callback in the
>> quirks. For R40, this callback would probably call into the TCON TOP driver
>> asking it to set the mux to some value.
>>
>> > Currently, my idea is that board DT creates wanted connections. Since
>> > there is only one valid connection for each mux, driver knows eactly what
>> > to write into mux register. HDMI driver can simply check which TCON
>> > connection is valid in HDMI input mux and select it in possible_crtcs.
>>
>> But that is not how the actual hardware looks like. The device tree should
>> model the hardware, not a subset of it just because one thinks the
>> implementation is difficult or won't be used at all.
>>
>> Furthermore, I think you have it backwards. possible_crtcs is generated
>> based on (in our case) the connections between TCON and HDMI based on the
>> device tree graph. So if you have both hooked up, both will show up in
>> possible_crtcs, but only one crtc will actually be selected to feed the
>> HDMI encoder. If you really need to access the current crtc, the
>> drm_encoder struct contains a pointer to it.
>>
>> In DE 1.0 driver, we leave all the muxing to the TCON driver. See
>>
>>
>> https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_
>> tcon.c#L537
>>
>> So in a sense, the HDMI encoder should be and is hooked up to both TCONs,
>> but only one is active at any given time.
>
> So something like that I had in v1 series. I'll implement something similar.
> That would also mean we need R40 specific TV TCON compatible. I'll restore
> that.
>
> Just a question on future situation when TVE driver will be implemented.
> Suppose that R40 board has TVE0 and HDMI as outputs. This would mean that TVE0
> has possible crtcs set as 0b01 and HDMI 0b11. Will be DRM framework smart
> enough that it will put HDMI on second crtc because TVE0 can be connected to
> only to first crtc?

Yes. If the possible_clones setting for the encoder is not set, the DRM
framework will not do mirroring, and will keep each active encoder on a
separate crtc.

>
>>
>> > Please also note that mixer0 and mixer1 don't have same capabilities and
>> > you generally want mixer0 to be connected to main output. This is in
>> > contrast to DE1 SoCs, where both backends and both frontends have same
>> > capability.
>> Yes. But who's to say the two display outputs can't be reversed or swapped
>> around? With fixed singular connections, you also rule out mirrored output.
>
> I don't think there is standard way to swap around mixers at runtime,
> expecially if crtcs are represented as mixer + TCON pair.

As I mentioned above, we will have to do this on our own.

> I'm not sure what do you mean with mirrored output or at least why singular
> connections would prevent mirroring. HW mirroring needs DRM writeback support
> which is currently in RFC phase if I'm not mistaken. Once implemented in DRM
> framework and in sun4i-drm, it would be possible only to mirror mixer0 ->
> mixer1, because mixer1 doesn't support writeback (at least on existing SoCs).

What I meant was it might be possible to drive two TCONs with one mixer, or
two encoders with one TCON. I guess the latter is not possible since each
TCON only has one channel. Not sure about the former.

Regards
ChenYu

> Best regards,
> Jernej
>
>>
>> ChenYu
>>
>> >> ChenYu
>> >>
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> >
>> >> >                 gic: interrupt-controller@1c81000 {
>> >> >
>> >> >                         compatible = "arm,gic-400";
>> >> >                         reg = <0x01c81000 0x1000>,
>> >> >
>> >> > @@ -461,6 +685,51 @@
>> >> >
>> >> >                         #interrupt-cells = <3>;
>> >> >                         interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4)
>> >> >                         |
>> >> >                         IRQ_TYPE_LEVEL_HIGH)>;
>> >> >
>> >> >                 };
>> >> >
>> >> > +
>> >> > +               hdmi: hdmi@1ee0000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-dw-hdmi",
>> >> > +                                    "allwinner,sun8i-a83t-dw-hdmi";
>> >> > +                       reg = <0x01ee0000 0x10000>;
>> >> > +                       reg-io-width = <1>;
>> >> > +                       interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                       clocks = <&ccu CLK_BUS_HDMI0>, <&ccu
>> >> > CLK_HDMI_SLOW>, +                                <&ccu CLK_HDMI>;
>> >> > +                       clock-names = "iahb", "isfr", "tmds";
>> >> > +                       resets = <&ccu RST_BUS_HDMI1>;
>> >> > +                       reset-names = "ctrl";
>> >> > +                       phys = <&hdmi_phy>;
>> >> > +                       phy-names = "hdmi-phy";
>> >> > +                       status = "disabled";
>> >> > +
>> >> > +                       ports {
>> >> > +                               #address-cells = <1>;
>> >> > +                               #size-cells = <0>;
>> >> > +
>> >> > +                               hdmi_in: port@0 {
>> >> > +                                       reg = <0>;
>> >> > +
>> >> > +                                       hdmi_in_tcon_top: endpoint {
>> >> > +                                               remote-endpoint =
>> >> > <&tcon_top_hdmi_out_hdmi>; +                                       };
>> >> > +                               };
>> >> > +
>> >> > +                               hdmi_out: port@1 {
>> >> > +                                       reg = <1>;
>> >> > +                               };
>> >> > +                       };
>> >> > +               };
>> >> > +
>> >> > +               hdmi_phy: hdmi-phy@1ef0000 {
>> >> > +                       compatible = "allwinner,sun8i-r40-hdmi-phy",
>> >> > +                                    "allwinner,sun50i-a64-hdmi-phy";
>> >> > +                       reg = <0x01ef0000 0x10000>;
>> >> > +                       clocks = <&ccu CLK_BUS_HDMI1>, <&ccu
>> >> > CLK_HDMI_SLOW>, +                                <&ccu 7>, <&ccu 16>;
>> >> > +                       clock-names = "bus", "mod", "pll-0", "pll-1";
>> >> > +                       resets = <&ccu RST_BUS_HDMI0>;
>> >> > +                       reset-names = "phy";
>> >> > +                       #phy-cells = <0>;
>> >> > +               };
>> >> >
>> >> >         };
>> >> >
>> >> >         timer {
>> >> >
>> >> > --
>> >> > 2.18.0
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups
>> > "linux-sunxi" group. To unsubscribe from this group and stop receiving
>> > emails from it, send an email to
>> > linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit
>> > https://groups.google.com/d/optout.
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

  reply	other threads:[~2018-07-01 13:52 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-25 12:02 [PATCH v3 00/24] Add support for R40 HDMI pipeline Jernej Skrabec
     [not found] ` <20180625120304.7543-1-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-25 12:02   ` [PATCH v3 01/24] clk: sunxi-ng: r40: Add minimal rate for video PLLs Jernej Skrabec
2018-06-25 12:02   ` [PATCH v3 02/24] clk: sunxi-ng: r40: Allow setting parent rate to display related clocks Jernej Skrabec
2018-06-25 12:02   ` [PATCH v3 03/24] clk: sunxi-ng: r40: Export video PLLs Jernej Skrabec
     [not found]     ` <20180625120304.7543-4-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-25 12:30       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 04/24] dt-bindings: display: sunxi-drm: Add TCON TOP description Jernej Skrabec
2018-06-25 17:33     ` Rob Herring
2018-06-25 12:02   ` [PATCH v3 05/24] drm/sun4i: Add TCON TOP driver Jernej Skrabec
     [not found]     ` <20180625120304.7543-6-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  1:47       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v6465Upen-aFiLXDrSPLDGLh+2REjaZ_91W39=E1DffHeA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-29 19:09           ` Jernej Škrabec
2018-06-30  1:13             ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 06/24] drm/sun4i: Fix releasing node when enumerating enpoints Jernej Skrabec
     [not found]     ` <20180625120304.7543-7-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  1:53       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v65dNvqcWa7MUMesrEeDGfEmd0xPpKQmbqJ60_FHe=Y_JA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-29 19:15           ` Jernej Škrabec
2018-06-30  1:09             ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 07/24] drm/sun4i: Split out code for enumerating endpoints in output port Jernej Skrabec
     [not found]     ` <20180625120304.7543-8-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  1:57       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 08/24] drm/sun4i: Add support for traversing graph with TCON TOP Jernej Skrabec
     [not found]     ` <20180625120304.7543-9-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  1:57       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 09/24] drm/sun4i: Don't skip TCONs if they don't have channel 0 Jernej Skrabec
     [not found]     ` <20180625120304.7543-10-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  1:51       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v64EkVK+AEngEuadBzAZagyU7eyOhHhBh0iFrxS+-BbCYQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  4:45           ` Jernej Škrabec
2018-06-28  6:24             ` Chen-Yu Tsai
2018-07-01  8:27               ` Jernej Škrabec
2018-07-01 15:11                 ` Chen-Yu Tsai
     [not found]                   ` <CAGb2v66_6RoYk6MRtTJeqg0Z09A7y+pvSxs7qeeND+iKPE_+BA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-05  7:03                     ` Maxime Ripard
2018-07-05 20:03                       ` Jernej Škrabec
2018-07-09  8:59                         ` Maxime Ripard
2018-06-25 12:02   ` [PATCH v3 10/24] drm/sun4i: tcon: Generalize engine search algorithm Jernej Skrabec
     [not found]     ` <20180625120304.7543-11-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:06       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v66ndyhVFKsOt=g45MJ-cBun8WvRrDsb9XO2hteSX2oe5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  4:48           ` Jernej Škrabec
2018-06-28 18:25             ` Maxime Ripard
2018-06-29 19:06               ` Jernej Škrabec
2018-07-01 19:09                 ` Jernej Škrabec
2018-07-02  8:56                   ` Maxime Ripard
2018-06-25 12:02   ` [PATCH v3 11/24] drm/sun4i: Don't check for LVDS and RGB when TCON has only ch1 Jernej Skrabec
     [not found]     ` <20180625120304.7543-12-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:08       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 12/24] drm/sun4i: Don't check for panel or bridge on TV TCONs Jernej Skrabec
     [not found]     ` <20180625120304.7543-13-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:17       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 13/24] dt-bindings: display: sun4i-drm: Add R40 mixer compatibles Jernej Skrabec
     [not found]     ` <20180625120304.7543-14-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:17       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 14/24] drm/sun4i: Add support for R40 mixers Jernej Skrabec
     [not found]     ` <20180625120304.7543-15-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:18       ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 15/24] dt-bindings: display: sun4i-drm: Add description of A64 HDMI PHY Jernej Skrabec
     [not found]     ` <20180625120304.7543-16-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:19       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v66ytOrjMOK067URknens34jvYxJ1XoYmGMi4Ji0LYt9sQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  4:51           ` Jernej Škrabec
2018-06-28  7:00             ` Chen-Yu Tsai
     [not found]               ` <CAGb2v67iRZZTQuTH8inwmPC6S0BRecFgPEpKrxgThQbsYaZgmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-29 19:32                 ` Jernej Škrabec
2018-07-04  4:05                   ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 16/24] drm/sun4i: Enable DW HDMI PHY clock Jernej Skrabec
     [not found]     ` <20180625120304.7543-17-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:22       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v65En4RbVdRu7c6MJUztVhC36dWr0kaO9bqc9PtuXAcsww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  4:52           ` Jernej Škrabec
2018-06-29 19:19           ` Jernej Škrabec
2018-06-30  1:11             ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 17/24] drm/sun4i: Don't change clock bits in DW HDMI PHY driver Jernej Skrabec
2018-06-28  2:24     ` Chen-Yu Tsai
     [not found]       ` <CAGb2v66Ew7bshwiObQsbep9CCNeVeQFzunYrDcQsw+F+7rffHQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-29 19:23         ` Jernej Škrabec
2018-06-25 12:02   ` [PATCH v3 18/24] drm/sun4i: DW HDMI PHY: Add support for second PLL Jernej Skrabec
     [not found]     ` <20180625120304.7543-19-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:25       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v651RGegpAi-2efhBUkyFf1iC+zxOGTbRkmjuWcYSTgYJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  4:56           ` Jernej Škrabec
2018-06-28  6:59             ` Chen-Yu Tsai
2018-06-25 12:02   ` [PATCH v3 19/24] drm/sun4i: Add support for second clock parent to DW HDMI PHY clk driver Jernej Skrabec
     [not found]     ` <20180625120304.7543-20-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:30       ` Chen-Yu Tsai
2018-06-25 12:03   ` [PATCH v3 20/24] drm/sun4i: Add support for A64 HDMI PHY Jernej Skrabec
     [not found]     ` <20180625120304.7543-21-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:30       ` Chen-Yu Tsai
2018-06-25 12:03   ` [PATCH v3 21/24] drm: of: Export drm_crtc_port_mask() Jernej Skrabec
     [not found]     ` <20180625120304.7543-22-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:32       ` Chen-Yu Tsai
2018-06-25 12:03   ` [PATCH v3 22/24] drm/sun4i: DW HDMI: Expand algorithm for possible crtcs Jernej Skrabec
     [not found]     ` <20180625120304.7543-23-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:42       ` Chen-Yu Tsai
2018-06-25 12:03   ` [PATCH v3 23/24] ARM: dts: sun8i: r40: Add HDMI pipeline Jernej Skrabec
     [not found]     ` <20180625120304.7543-24-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:50       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v66d-L4+TAgOMoPfpK2WAc3LKfprLB7tiAFL4YeL3Ogoow-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28  5:15           ` Jernej Škrabec
2018-06-28  6:51             ` Chen-Yu Tsai
     [not found]               ` <CAGb2v66q3a9nNjkSP1rgh9voMToutDxHtY1x1Wpkf8eEmLWLAA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-01 10:41                 ` Jernej Škrabec
2018-07-01 13:52                   ` Chen-Yu Tsai [this message]
     [not found]                     ` <CAGb2v66y2NZexb94gZ9qa9rP7akdEFWSy43CU5G-UrGR2ad2BQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-01 15:13                       ` Jernej Škrabec
2018-07-01 15:35                         ` Chen-Yu Tsai
     [not found]                           ` <CAGb2v666uesMjm7HqOMmj2ij1+avedRPrQmxwHu-aY2JsSkUOw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-01 19:25                             ` Jernej Škrabec
2018-07-02 21:39                               ` Jernej Škrabec
2018-06-25 12:03   ` [PATCH v3 24/24] ARM: dts: sun8i: r40: Enable HDMI output on BananaPi M2 Ultra Jernej Skrabec
     [not found]     ` <20180625120304.7543-25-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
2018-06-28  2:51       ` Chen-Yu Tsai
2018-06-25 12:07   ` [PATCH v3 00/24] Add support for R40 HDMI pipeline Jernej Škrabec
2018-06-25 16:43   ` Maxime Ripard
2018-06-27 18:02   ` Maxime Ripard
2018-06-27 19:50     ` Maxime Ripard
2018-06-27 20:25       ` Jernej Škrabec
2018-06-28  8:41         ` Maxime Ripard

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=CAGb2v66y2NZexb94gZ9qa9rP7akdEFWSy43CU5G-UrGR2ad2BQ@mail.gmail.com \
    --to=wens-jday2fn1rrm@public.gmane.org \
    --cc=airlied-cv59FeDIM0c@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org \
    --cc=jernej.skrabec-gGgVlfcn5nU@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.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;
as well as URLs for NNTP newsgroup(s).