Skip to contentSkip to conversation

ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

PATCH New Hans de Goede 3 participants 9 messages Jun 4, 2016 – Jun 20, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

For sun5i-r8 this does not happen because it lists the de_be and tcon_ch#_clk in the framebuffer node's clocks which will in turn keep ppl3 (and pll5) alive.

With this commit:
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/for-next&id=eadc0660c2bca3a2a6d2c15fe04bc2aaa2709cef

This is also fixed for A13 based devices, but it still is a problem for A10s, hence this patch, which sits on top of the commit I just linked too.

Note that we've the same problem in 4.7-rc1 for A10 / A20, this is fixed by these 2 commits:

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

This also means that we must send all 3 linked commits + the patch I'm sending now to 4.7 as fixes, to avoid regressing in 4.7.

Regards,

Hans

#1 lore raw

PATCH 1/1 ARM: dts: sun5i: Move display blocks to sun5i.dtsi

All sun5i models share, the same die, so the display-engine is identical, except for which outputs / encoders all available.

All models support parallel / lvds lcd panels, the R8 and A10s also support tv-out and the A10s also supports HDMI out.

This commit prepares for enabling display blocks on A10s boards, but it also is a bug-fix for A10s boards, because before this commit the simplefb nodes for A10s where not listing the recently added pll3 as clock, causing the display to go block when the kernel disables unused clocks at the end of boot.

---
 arch/arm/boot/dts/sun5i-a10s.dtsi |  24 ++---
 arch/arm/boot/dts/sun5i-a13.dtsi  | 182 --------------------------------------
 arch/arm/boot/dts/sun5i.dtsi      | 182 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 189 insertions(+), 199 deletions(-)
arch/arm/boot/dts/sun5i-a10s.dtsi +7 -17
index bddd0de..507ec42 100644
@@ -57,24 +57,13 @@
 	};
 
 	chosen {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges;
-
-		framebuffer at 0 {
-			compatible = "allwinner,simple-framebuffer",
-				     "simple-framebuffer";
-			allwinner,pipeline = "de_be0-lcd0-hdmi";
-			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
-				 <&ahb_gates 44>;
-			status = "disabled";
-		};
-
 		framebuffer at 1 {
 			compatible = "allwinner,simple-framebuffer",
 				     "simple-framebuffer";
-			allwinner,pipeline = "de_be0-lcd0";
-			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
+			allwinner,pipeline = "de_be0-lcd0-hdmi";
+			clocks = <&ahb_gates 36>, <&ahb_gates 43>,
+				 <&ahb_gates 44>, <&de_be_clk>,
+				 <&tcon_ch1_clk>, <&dram_gates 26>;
 			status = "disabled";
 		};
 
@@ -82,8 +71,9 @@
 			compatible = "allwinner,simple-framebuffer",
 				     "simple-framebuffer";
 			allwinner,pipeline = "de_be0-lcd0-tve0";
-			clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
-				 <&ahb_gates 44>;
+			clocks = <&ahb_gates 34>, <&ahb_gates 36>,
+				 <&ahb_gates 44>, <&de_be_clk>,
+				 <&tcon_ch1_clk>, <&dram_gates 26>;
 			status = "disabled";
 		};
 	};
arch/arm/boot/dts/sun5i-a13.dtsi +0 -182

203 lines not on this page · raw message

arch/arm/boot/dts/sun5i.dtsi +182 -0

211 lines not on this page · raw message

Signature · 1 line
2.7.4
#2 lore raw

PATCH 1/1 ARM: dts: sun5i: Move display blocks to sun5i.dtsi

Quoted 3 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Hans" == Hans de Goede <[email protected]> writes:

All sun5i models share, the same die, so the display-engine is

Drop comma after share.

Quoted 1 line

identical, except for which outputs / encoders all available.

s/all/are/

Quoted 6 lines

All models support parallel / lvds lcd panels, the R8 and A10s also support tv-out and the A10s also supports HDMI out.

This commit prepares for enabling display blocks on A10s boards, but it also is a bug-fix for A10s boards, because before this commit the simplefb nodes for A10s where not listing the recently added

s/where/were/

Quoted 1 line

pll3 as clock, causing the display to go block when the kernel

s/block/black/

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

In reply to Hans de Goede

Hi Hans,

Quoted 9 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

Thanks! (and sorry for the breakage)
Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160609/c47efccb/attachment-0001.sig>
#4 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Hi,

Quoted 9 lines · Maxime Ripard

Hi Hans,

Quoted 6 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

Quoted 5 lines
Quoted 3 lines

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

You mean just for sun5i-a10s, or for all of sun4i / sun5i-a10s and sun7i ?

For sun4i and sun7i things are already fixed in next:

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

It seems best to use those fixes, rather then come up with a separate fix for 4.7.

My patch for fixing sun5i-a10s is inline with the 2 above patches, which seems best, rather then doing something special for just sun5i-a10s.

I'll send a v2 of this patch with the spelling mistakes pointed out by Peter Korsgaard fixed.

Regards,

Hans

#5 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Quoted 23 lines · Hans de Goede

Hi,

Quoted 9 lines · Maxime Ripard

Hi Hans,

Quoted 6 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

Quoted 5 lines
Quoted 3 lines

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

You mean just for sun5i-a10s, or for all of sun4i / sun5i-a10s and sun7i ?

For sun4i and sun7i things are already fixed in next:

Quoted 8 lines

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

It seems best to use those fixes, rather then come up with a separate fix for 4.7.

My patch for fixing sun5i-a10s is inline with the 2 above patches, which seems best, rather then doing something special for just sun5i-a10s.

Well, you are doing something special for just the A10s: the patches quoted above just add a bunch of clocks and add the handles to the list of clocks managed by simplefb.

For the A10s, you also declare the whole display engine block without anyone having tested that it was actually working.

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160613/b202905d/attachment.sig>
#6 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Hi,

Quoted 33 lines · Maxime Ripard
Quoted 23 lines · Hans de Goede

Hi,

Quoted 9 lines · Maxime Ripard

Hi Hans,

Quoted 6 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

Quoted 5 lines
Quoted 3 lines

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

You mean just for sun5i-a10s, or for all of sun4i / sun5i-a10s and sun7i ?

For sun4i and sun7i things are already fixed in next:

Quoted 8 lines

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

It seems best to use those fixes, rather then come up with a separate fix for 4.7.

My patch for fixing sun5i-a10s is inline with the 2 above patches, which seems best, rather then doing something special for just sun5i-a10s.

Quoted 6 lines

Well, you are doing something special for just the A10s: the patches quoted above just add a bunch of clocks and add the handles to the list of clocks managed by simplefb.

For the A10s, you also declare the whole display engine block without anyone having tested that it was actually working.

A10s is the same SoC as A13 / R8, just in a different package / with different pins routed to the outside and it features a parallel LCD interface just like the A13 / R8. We've had this confirmed by Allwinner multiple times now, A13 / A10s / R8 literary are the same chip, there simply is no way the displayblock on the A10s somehow is magically different.

Given all this, clearly having this identical displayblock in the shared sun5i.dtsi is the right thing to do.

Regards,

Hans

#7 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Quoted 50 lines · Hans de Goede

Hi,

Quoted 33 lines · Maxime Ripard
Quoted 23 lines · Hans de Goede

Hi,

Quoted 9 lines · Maxime Ripard

Hi Hans,

Quoted 6 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

Quoted 5 lines
Quoted 3 lines

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

You mean just for sun5i-a10s, or for all of sun4i / sun5i-a10s and sun7i ?

For sun4i and sun7i things are already fixed in next:

Quoted 8 lines

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

It seems best to use those fixes, rather then come up with a separate fix for 4.7.

My patch for fixing sun5i-a10s is inline with the 2 above patches, which seems best, rather then doing something special for just sun5i-a10s.

Quoted 6 lines

Well, you are doing something special for just the A10s: the patches quoted above just add a bunch of clocks and add the handles to the list of clocks managed by simplefb.

For the A10s, you also declare the whole display engine block without anyone having tested that it was actually working.

A10s is the same SoC as A13 / R8, just in a different package / with different pins routed to the outside and it features a parallel LCD interface just like the A13 / R8. We've had this confirmed by Allwinner multiple times now, A13 / A10s / R8 literary are the same chip, there simply is no way the displayblock on the A10s somehow is magically different.

Quoted 2 lines

Given all this, clearly having this identical displayblock in the shared sun5i.dtsi is the right thing to do.

Maybe, but this is not a patch for an 4.7-rc* release, but for the next merge window.

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160620/a8fa6795/attachment.sig>
#8 lore raw

cover ARM: dts: sunxi: Fix simplefb not working in 4.7-rc1

Hi,

Quoted 51 lines · Maxime Ripard
Quoted 50 lines · Hans de Goede

Hi,

Quoted 33 lines · Maxime Ripard
Quoted 23 lines · Hans de Goede

Hi,

Quoted 9 lines · Maxime Ripard

Hi Hans,

Quoted 6 lines · Hans de Goede

Hi Maxime,

While testing 4.7-rc1 / linux-sunxi/sunxi-next on a A10s I noticed that hdmi out is no longer working (screen goes black when the kernel turns of unused clocks).

Quoted 5 lines
Quoted 3 lines

This is caused by the dtsi for sun4i / sun5i / sun7i based boards now listing pll3, without pll3 being added to the clocks list for the simplefb nodes.

Why not do just that then? It's more appropriate for a fix imho.

You mean just for sun5i-a10s, or for all of sun4i / sun5i-a10s and sun7i ?

For sun4i and sun7i things are already fixed in next:

Quoted 8 lines

https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=5a7f2310cc847a73852e70bc720a61ca9bf986a6
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=c79255ca4d7b67cce4eac4dd532e097ce49f3679

It seems best to use those fixes, rather then come up with a separate fix for 4.7.

My patch for fixing sun5i-a10s is inline with the 2 above patches, which seems best, rather then doing something special for just sun5i-a10s.

Quoted 6 lines

Well, you are doing something special for just the A10s: the patches quoted above just add a bunch of clocks and add the handles to the list of clocks managed by simplefb.

For the A10s, you also declare the whole display engine block without anyone having tested that it was actually working.

A10s is the same SoC as A13 / R8, just in a different package / with different pins routed to the outside and it features a parallel LCD interface just like the A13 / R8. We've had this confirmed by Allwinner multiple times now, A13 / A10s / R8 literary are the same chip, there simply is no way the displayblock on the A10s somehow is magically different.

Quoted 5 lines
Quoted 2 lines

Given all this, clearly having this identical displayblock in the shared sun5i.dtsi is the right thing to do.

Maybe, but this is not a patch for an 4.7-rc* release, but for the next merge window.

Ok, I'll send out a patch with the simple fix for 4.7 for sun4i / sun5i-a10s / sun7i then.

Regards,

Hans