0
steev

11" Pinebook with 1080p no video backlight with 5.x kernels

Recommended Posts

I installed the linux-image-dev-sunxi64 and linux-dtb-dev-sunxi64 packages, which pulls in the 5.1.5 kernel, and it seems something is amiss in the pinebook dtb.

 

On the 4.19 kernel, pwm-backlight powers on, and you get video output, however, on 5.1.5 once u-boot loads the kernel and it is starting, video output goes away.

 

In the 4.19 kernel, the kern.log shows the following output during boot:

 

May 29 19:15:10 localhost kernel: [    3.937999] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
May 29 19:15:10 localhost kernel: [    5.573863] random: lvmconfig: uninitialized urandom read (4 bytes read)
May 29 19:15:10 localhost kernel: [    5.968672] random: systemd: uninitialized urandom read (16 bytes read)
May 29 19:15:10 localhost kernel: [    5.978739] random: systemd: uninitialized urandom read (16 bytes read)
May 29 19:15:10 localhost kernel: [    6.115937] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
May 29 19:15:10 localhost kernel: [    6.767672] random: crng init done
May 29 19:15:10 localhost kernel: [    6.767681] random: 7 urandom warning(s) missed due to ratelimiting
May 29 19:15:10 localhost kernel: [    6.911809] Adding 4194300k swap on /var/swapfile.  Priority:-2 extents:21 across:11288572k SSFS
May 29 19:15:10 localhost kernel: [    9.018020] pwm-backlight backlight: backlight supply power not found, using dummy regulator
May 29 19:15:10 localhost kernel: [    9.018134] pwm-backlight backlight: Linked as a consumer to regulator.0
May 29 19:15:10 localhost kernel: [    9.018215] pwm-backlight backlight: Dropping the link to regulator.0
May 29 19:15:10 localhost kernel: [    9.051632] cpu cpu0: Linked as a consumer to regulator.3
May 29 19:15:10 localhost kernel: [    9.051705] cpu cpu0: Dropping the link to regulator.3
May 29 19:15:10 localhost kernel: [    9.051919] cpu cpu0: Linked as a consumer to regulator.3
May 29 19:15:10 localhost kernel: [    9.075427] pwm-backlight backlight: backlight supply power not found, using dummy regulator
May 29 19:15:10 localhost kernel: [    9.077644] pwm-backlight backlight: Linked as a consumer to regulator.0
May 29 19:15:10 localhost kernel: [    9.110436] pwm-backlight backlight: Dropping the link to regulator.0
May 29 19:15:10 localhost kernel: [    9.251253] pwm-backlight backlight: backlight supply power not found, using dummy regulator
May 29 19:15:10 localhost kernel: [    9.251354] pwm-backlight backlight: Linked as a consumer to regulator.0
May 29 19:15:10 localhost kernel: [    9.329128] zram: Added device: zram0
May 29 19:15:10 localhost kernel: [    9.345016] zram: Added device: zram1
May 29 19:15:10 localhost kernel: [    9.345766] zram: Added device: zram2
May 29 19:15:10 localhost kernel: [    9.353305] thermal thermal_zone0: failed to read out thermal zone (-110)


 

However, with 5.1.5

 

May 30 22:55:04 localhost kernel: [    4.994984] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
May 30 22:55:04 localhost kernel: [    6.631175] random: lvmconfig: uninitialized urandom read (4 bytes read)
May 30 22:55:04 localhost kernel: [    7.044640] random: systemd: uninitialized urandom read (16 bytes read)
May 30 22:55:04 localhost kernel: [    7.054687] random: systemd: uninitialized urandom read (16 bytes read)
May 30 22:55:04 localhost kernel: [    7.191887] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
May 30 22:55:04 localhost kernel: [    7.874481] Adding 4194300k swap on /var/swapfile.  Priority:-2 extents:21 across:11288572k SSFS
May 30 22:55:04 localhost kernel: [    8.876110] random: crng init done
May 30 22:55:04 localhost kernel: [    8.876120] random: 7 urandom warning(s) missed due to ratelimiting
May 30 22:55:04 localhost kernel: [    9.665763] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.690621] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.806449] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.807498] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.828538] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.829826] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [    9.935618] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
May 30 22:55:04 localhost kernel: [   10.068063] thermal thermal_zone0: failed to read out thermal zone (-110)
May 30 22:55:04 localhost kernel: [   10.068121] thermal thermal_zone1: failed to read out thermal zone (-110)
May 30 22:55:04 localhost kernel: [   10.068145] thermal thermal_zone2: failed to read out thermal zone (-110)

 

So I did a diff of the 4.19 sun50i-a64-pinebook.dts and the 5.1.5 sun50i-a64-pinebook.dts (using dtc -I dtb -O dts <kernel/path/dtb> from the respective dtb packages and then did a diff of the out files and came across the following:

 

     backlight {
         compatible = "pwm-backlight";
-        pwms = < 0x43 0x00 0xc350 0x01 >;
+        pwms = < 0x48 0x00 0xc350 0x01 >;
         brightness-levels = < 0x00 0x05 0x0a 0x0f 0x14 0x1e 0x28 0x37 0x46 0x55 0x64 >;
         default-brightness-level = < 0x02 >;
-        enable-gpios = < 0x22 0x03 0x17 0x00 >;
-        phandle = < 0x98 >;
+        enable-gpios = < 0x26 0x03 0x17 0x00 >;
+        power-supply = < 0x49 >;
+        phandle = < 0x9d >;
     };

 

It seems like somehow the &pwm and &pio numbers are changed from 4.19 to 5.1.5 but I have no idea where to go from here.  I'm assuming this is related to the "arm64: dts: allwinner: add backlight regulator for Pinebook" commit upstream, but I can't see why that commit would have changed the pwm or gpio used.

Share this post


Link to post
Share on other sites

Okay, digging in a bit more, it appears to be that commit - when I back it out, and then just run make dtbs, I get video back.  Guess it's time to send a mail to the kernel mailing list!

Share this post


Link to post
Share on other sites
1 hour ago, steev said:

Okay, digging in a bit more, it appears to be that commit - when I back it out, and then just run make dtbs, I get video back.  Guess it's time to send a mail to the kernel mailing list!


Double check if this is not solo a problem of our patch set, which it is different than mainline in some details. Especially this patch https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/xxx-pinebook-revert-pwm-polairity-TEMP-WORKAROUND.patch which naming tells things will be changed, but we didn't get that far yet to sort things out ...

Share this post


Link to post
Share on other sites
(edited)

I will revert that and give it a shot, thanks for the pointer to that patch, I was looking through the list on GitHub, but it would probably be better to clone it to go through the files locally.  I'm doing all the work on the machine itself, since it's dtb based it doesn't take forever to rebuild the kernel.

 

Edit:  Reverting that patch did nothing here...  although, something I didn't notice initially... I do see this in the dmesg output...

 

[    3.508721] vcc3v3: disabling
[    3.508744] vcc-hdmi: disabling
[    3.508818] bl-3v3: disabling

 

So it looks like the backlight regulator is getting disabled, when it shouldn't be?  As a test, I modified the dts and added regulator-always-on; to vdd_bl and indeed, I have video.  I don't believe the polarity change has any effect, although I did notice that with it reverted, things like temps and cpufreq seem to be working again in 5.1.5.

Edited by steev
Added more info

Share this post


Link to post
Share on other sites

A bit more digging - taking the dts from 5.1.5/5.1.6 without any changes has a working backlight (and audio!) - so it's definitely something in the patches applied on Arabian.  I'm going to start digging through them.

 

I'm not sure if it matters or not, but my Pinebook showed up with tape over the hdmi port, could it be that hdmi is completely broken with the 1080p lcd on 11"?

Share this post


Link to post
Share on other sites
2 hours ago, steev said:

so it's definitely something in the patches applied on Arabian.  I'm going to start digging through them.


OK

 

2 hours ago, steev said:

I'm not sure if it matters or not, but my Pinebook showed up with tape over the hdmi port, could it be that hdmi is completely broken with the 1080p lcd on 11"?


It should work, but I guess its just one of the problems. On Teres, HDMI out works, but picture is (still) little distorted.

Share this post


Link to post
Share on other sites

So, because I got on the idea of "is the hdmi broken" - I took the tape off... it would appear that with the Armbian 5.1.5 kernel.....  hdmi output is happening...

 

Boot output goes to the hdmi monitor, and not the pinebook lcd, however the login is definitely on the pinebook's lcd - blindly logging in works, but the lcd is still considered primary, so the menu and so forth is on the pinebook itself, the external hdmi monitor does show a background image and I can move the cursor around on it.  Interestingly enough, not distorted at all, although all it has is the background image.  The LCD backlight still doesn't appear to be powering on.

 

Looking through the patches, I saw https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/need-to-check/fix-pinebook-backlight.patch - and figured I'd give it a shot... with that applied, which removes the "backlight:" the lcd flickers twice during boot, and then about 2 or 3 minutes later, the backlight turns on (sadly, nothing seems to be in dmesg output) - however, as soon as I attempted to log in, the lcd backlight shut off again.

 

Unfortunately, I haven't been able to reproduce that, it only happened that one time.  I definitely think something is up when hdmi is enabled now, so that's where I'll dig.  I apologize if I'm updating too often, I'm kind of using this as a stream of consciousness as I work through the patches.

 

 

Share this post


Link to post
Share on other sites

Installed the 5.1.6 -dev build. Same no backlight with the LCD, however, reverting https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/xxx-pinebook-revert-pwm-polairity-TEMP-WORKAROUND.patch and then adding in the https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/need-to-check/fix-pinebook-backlight.patch both seem to work here, working backlight with the LCD.  Tested multiple reboots as well as startup from shutting down.

Share this post


Link to post
Share on other sites
20 hours ago, steev said:

I apologize if I'm updating too often, I'm kind of using this as a stream of consciousness as I work through the patches.


That's fine! It is welcome to read what have you tried and I am glad you were persistent enough to get it working.
 

1 hour ago, steev said:

Installed the 5.1.6 -dev build. Same no backlight with the LCD, however, reverting https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/xxx-pinebook-revert-pwm-polairity-TEMP-WORKAROUND.patch and then adding in the https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/need-to-check/fix-pinebook-backlight.patch both seem to work here, working backlight with the LCD.  Tested multiple reboots as well as startup from shutting down.


Send PR -> https://github.com/armbian/build/pulls

Share this post


Link to post
Share on other sites

Will do - running into a weird issue where returning from suspend or whatever just gives a red screen in X, but I'm fine with not having suspend for a bit!

 

Would you prefer I just move the TEMP-WORKAROUND to .disabled and mv the need-to-check into the directory as is, or would you like me to rename it to xxx- so it's applied last?

Share this post


Link to post
Share on other sites

June 12 build seems to be broken again... not sure why.  Reported to me by nerdboy (gentoo dev) on IRC, so I need to figure out if it's my patch, or the new stuff that was added to sunxi-dev; same MO though, it's booting and running, the backlight just isn't enabling.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
0