Pinebook Pro LCD and Audio support

  • Done
  • quality assurance status badge
Details
One participant
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal

Debbugs page

Vagrant Cascadian wrote 4 years ago
(address . bug-guix@gnu.org)(name . Leo Famulari)(address . leo@famulari.name)
87o8e0mx1m.fsf@yucca
The attached patch enables support for LCD display and limited audio
support for pinebook-pro-rk3399.

With this, the Pinebook Pro gets display output on the built-in LCD.

Console works, wayland works (tested with sway), presumably X.org would
work as well (untested).

Audio output on headphones kind of works.

Trackpad is still a little sketchy; might require enabling some more
modules.

This should basically obsolete the need for the wip-pinebook-pro branch;
I haven't noticed any significant functionality difference.


I believe the same patches and changes apply and work more-or-less
unchanged for linux-libre 5.10 lts series (I tested against Debian's
5.10.x kernel), and it might be worth having an LTS kernel with this
enabled. If that's considered desireable, I can update the patch to add
that too.


Since this will require rebuilding the linux-libre tarball, it is
probably best to wait to merge this until the next batch of linux-libre
updates (e.g. linux-libre 5.11.x and 5.10.x, no need to wait till 5.12).


If USB-C DisplayPort ever becomes supported and working on pinebook-pro,
this patch will need to be removed.


live well,
vagrant
From 478b620eb4f52e76bde691262ebc793e4e3fd384 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Mon, 26 Apr 2021 09:27:50 -0700
Subject: [PATCH] gnu: linux-libre: Add LCD and sound support for Pinebook Pro.

* gnu/packages/linux.scm (linux-libre-5.11-source): Add Pinebook Pro
lcd patch.
(linux-libre-arm64-generic): Enable audio module for Pinebook Pro.
* gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch.
---
gnu/local.mk | 1 +
gnu/packages/linux.scm | 9 ++++-
...nux-libre-arm64-generic-pinebook-lcd.patch | 40 +++++++++++++++++++
3 files changed, 48 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch

Toggle diff (87 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index e8b6effb36..5a2ae6ef48 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1369,6 +1369,7 @@ dist_patch_DATA = \
%D%/packages/patches/linkchecker-tests-require-network.patch \
%D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
+ %D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 080ffab527..1c6e1502b2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -481,7 +481,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(define-public linux-libre-5.11-source
(source-with-patches linux-libre-5.11-pristine-source
(list %boot-logo-patch
- %linux-libre-arm-export-__sync_icache_dcache-patch)))
+ %linux-libre-arm-export-__sync_icache_dcache-patch
+ ;; Pinebook Pro patch to fix LCD display
+ (search-patch
+ "linux-libre-arm64-generic-pinebook-lcd.patch"))))
(define-public linux-libre-5.10-source
(source-with-patches linux-libre-5.10-pristine-source
@@ -1044,7 +1047,9 @@ It has been modified to remove all non-free binary blobs.")
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
- ("CONFIG_AXP20X_ADC" . m))
+ ("CONFIG_AXP20X_ADC" . m)
+ ;; Pinebook PRO sound support
+ ("CONFIG_SND_SOC_ES8316" . m))
%default-extra-linux-options)))
(define-public linux-libre-arm64-generic-5.10
diff --git a/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch b/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
new file mode 100644
index 0000000000..51ab544d5e
--- /dev/null
+++ b/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
@@ -0,0 +1,40 @@
+From 3a75704e99a118f2d8a4d70f07781558bde85770 Mon Sep 17 00:00:00 2001
+From: Jian-Hong Pan <jhp@endlessos.org>
+Date: Thu, 24 Sep 2020 14:30:43 +0800
+Subject: [PATCH] arm64: dts: rockchip: disable USB type-c DisplayPort
+
+The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
+
+kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy
+kernel: cdn-dp: probe of fec00000.dp failed with error -22
+
+Then, the device halts all of the DRM related device jobs. For example,
+the operations: vop_component_ops, vop_component_ops and
+rockchip_dp_component_ops cannot be bound to corresponding devices. So,
+Xorg cannot find the correct DRM device.
+
+The USB type-C DisplayPort does not work for now. So, disable the
+DisplayPort node until the type-C phy work has been done.
+
+Link: https://patchwork.kernel.org/patch/11794141/#23639877
+Signed-off-by: Jian-Hong Pan <jhp@endlessos.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
+index 219b7507a10f..45769764425d 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
+@@ -380,7 +380,7 @@
+ };
+
+ &cdn_dp {
+- status = "okay";
++ status = "disabled";
+ };
+
+ &cpu_b0 {
+--
+2.30.2
+
--
2.30.2
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYIdQNgAKCRDcUY/If5cW
qh0lAQCz3curOzxZgqf81U6+0LRWXgNX3FOEqyxUmz4hFa+CHAEAg3Ts7q+BsA84
cpLdh8dHNoerZx8LCvljl4UG+Cn4PQY=
=PXWu
-----END PGP SIGNATURE-----

Vagrant Cascadian wrote 4 years ago
(address . 48050@debbugs.gnu.org)
87lf94mvrc.fsf@yucca
Control: reassign 48050 guix-patches

Reassigning to guix-patches.

Unless this debbugs is all old-school and I have to send to instead
control@debbugs.gnu.org ... will know shortly!


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYIdWuAAKCRDcUY/If5cW
qhtNAPwP/bN1xUs918PJGqvtrr677vsgi1By4z63VBRzGNMOJAEAk7bBwGSPcDre
Vf+3miXIdmVz287AXa4Zvlu7329erAg=
=8LE/
-----END PGP SIGNATURE-----

Vagrant Cascadian wrote 4 years ago
(address . 48050@debbugs.gnu.org)(name . Leo Famulari)(address . leo@famulari.name)
87lf94p6zr.fsf@yucca
On 2021-04-26, Vagrant Cascadian wrote:
Toggle quote (3 lines)
> The attached patch enables support for LCD display and limited audio
> support for pinebook-pro-rk3399.

Updated patch which adds battery support too.

live well,
vagrant
From 4c2a728e1186367a4bdc5c4416d6d58eee13b0e7 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Mon, 26 Apr 2021 09:27:50 -0700
Subject: [PATCH] gnu: linux-libre: Add LCD, battery and sound support for
Pinebook Pro.

* gnu/packages/linux.scm (linux-libre-5.11-source): Add Pinebook Pro
lcd patch.
(linux-libre-arm64-generic): Enable audio and battery modules for
Pinebook Pro.
* gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch.
---
gnu/local.mk | 1 +
gnu/packages/linux.scm | 11 ++++-
...nux-libre-arm64-generic-pinebook-lcd.patch | 40 +++++++++++++++++++
3 files changed, 50 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch

Toggle diff (89 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index e8b6effb36..5a2ae6ef48 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1369,6 +1369,7 @@ dist_patch_DATA = \
%D%/packages/patches/linkchecker-tests-require-network.patch \
%D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
+ %D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 080ffab527..bd79b40ca6 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -481,7 +481,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(define-public linux-libre-5.11-source
(source-with-patches linux-libre-5.11-pristine-source
(list %boot-logo-patch
- %linux-libre-arm-export-__sync_icache_dcache-patch)))
+ %linux-libre-arm-export-__sync_icache_dcache-patch
+ ;; Pinebook Pro patch to fix LCD display
+ (search-patch
+ "linux-libre-arm64-generic-pinebook-lcd.patch"))))
(define-public linux-libre-5.10-source
(source-with-patches linux-libre-5.10-pristine-source
@@ -1044,7 +1047,11 @@ It has been modified to remove all non-free binary blobs.")
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
- ("CONFIG_AXP20X_ADC" . m))
+ ("CONFIG_AXP20X_ADC" . m)
+ ;; Pinebook PRO battery and sound support
+ ("CONFIG_BATTERY_CW2015" . m)
+ ("CONFIG_CHARGER_GPIO" . m)
+ ("CONFIG_SND_SOC_ES8316" . m))
%default-extra-linux-options)))
(define-public linux-libre-arm64-generic-5.10
diff --git a/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch b/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
new file mode 100644
index 0000000000..51ab544d5e
--- /dev/null
+++ b/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
@@ -0,0 +1,40 @@
+From 3a75704e99a118f2d8a4d70f07781558bde85770 Mon Sep 17 00:00:00 2001
+From: Jian-Hong Pan <jhp@endlessos.org>
+Date: Thu, 24 Sep 2020 14:30:43 +0800
+Subject: [PATCH] arm64: dts: rockchip: disable USB type-c DisplayPort
+
+The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
+
+kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy
+kernel: cdn-dp: probe of fec00000.dp failed with error -22
+
+Then, the device halts all of the DRM related device jobs. For example,
+the operations: vop_component_ops, vop_component_ops and
+rockchip_dp_component_ops cannot be bound to corresponding devices. So,
+Xorg cannot find the correct DRM device.
+
+The USB type-C DisplayPort does not work for now. So, disable the
+DisplayPort node until the type-C phy work has been done.
+
+Link: https://patchwork.kernel.org/patch/11794141/#23639877
+Signed-off-by: Jian-Hong Pan <jhp@endlessos.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
+index 219b7507a10f..45769764425d 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
+@@ -380,7 +380,7 @@
+ };
+
+ &cdn_dp {
+- status = "okay";
++ status = "disabled";
+ };
+
+ &cpu_b0 {
+--
+2.30.2
+
--
2.30.2
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYIexWQAKCRDcUY/If5cW
qhOuAP0RcXpdMzOkfxLmALLip/liZetks55NEmh4SXlnORQHIwEAt78dTssN9iGZ
IKdeStBn1gHlpk6lm8opCs/cAQsboAA=
=2EUB
-----END PGP SIGNATURE-----

Vagrant Cascadian wrote 4 years ago
(address . 48050-done@debbugs.gnu.org)(name . Leo Famulari)(address . leo@famulari.name)
87h7jowsqa.fsf@yucca
On 2021-04-26, Vagrant Cascadian wrote:
Toggle quote (6 lines)
> On 2021-04-26, Vagrant Cascadian wrote:
>> The attached patch enables support for LCD display and limited audio
>> support for pinebook-pro-rk3399.
>
> Updated patch which adds battery support too.

Fixed in linux-libre@5.11 and linux-libre@5.10, pushed to master.

d018a11ee065e0f6bafb33fcc1a130aa7900b5a3 gnu:
linux-libre-arm64-generic@5.10: Add eDP panel, audio and battery support
for Pinebook Pro.

e7fbf10066e3634ec2d284c07afb4fa625d18574 gnu: linux-libre-arm64-generic:
Add eDP panel, battery and audio support for Pinebook Pro.


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYItHjgAKCRDcUY/If5cW
qh0WAQDzYleRNSL+l+KKEo6v2njeoeEHLxqXnLJ2maGdWlS92wD/SheSTY9A5Nsw
AeooIDxLj9gvy+Eepx+BNktEppXnBAk=
=9ueH
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 48050@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 48050
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help