ES8316 Sound issues on Armbian with 6.1 Rockchip Kernel
-
I have recently been trying to get the CM5 V10 Laptop to work with Joshua Reik's Linux 6.1 kernel and create Armbian images for it, the fork I specifically used is at https://github.com/hbiyik/linux-rockchip. I currently got every device to work except sound. I noticed that the es8316 driver you have is quite different when it comes to what is on mainline linux and the 6.1 Panthor kernels so I tried to compile it out of tree but with weak results. There is no audio that comes out of the speakers, microphone or the headphones. Speakers and headphones show the audio running in gnome settings but no audio is played. Plugging in the headphones produces static,
es8316_enable_spk(es8316, false);
ores8316_enable_spk(es8316, true);
is the cuprit. Despite that no audio comes from either output.Here is the grepped out dmesg:
yusuf@coolpi-cm5-notebook:~/es8316/es8316-cm5$ dmesg | grep es8316 [ 83.814734] platform es8316-sound: deferred probe pending /* Pre-baked in kernel driver */ [ 127.278348] es8316: loading out-of-tree module taints kernel. /* Out of tree module loads */ [ 127.280379] es8316 7-0010: Can not read property hp_det_gpio [ 127.280391] es8316 7-0010: Failed to get IRQ 0: -22
Headset also gets dumped to dmesg:
[ 2228.642645] (headset in is high level)headset status is in [ 2230.655991] (headset in is high level)headset status is out [ 2231.435910] (headset in is high level)headset status is in [ 2234.359234] (headset in is high level)headset status is out
Perhaps there are userspace considerations or kernelspace ones I missed, I have tried to fix this since the beggining of summer break to no avail. Any help from jack would be appreciated.
-
@yusuf-tmp
The ES8316 mainline kernel does not require modifying the default headphones to produce sound output. The main difference is the DTS configuration, as shown in the following figure:@@ -1282,10 +1293,10 @@ es8316: es8316@10 { #sound-dai-cells = <0>; compatible = "everest,es8316"; reg = <0x10>; - clocks = <&cru I2S0_8CH_MCLKOUT>; + clocks = <&mclkout_i2s0>; clock-names = "mclk"; spk-con-gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; - assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; + assigned-clocks = <&mclkout_i2s0>; assigned-clock-rates = <12288000>; pinctrl-names = "default"; pinctrl-0 = <&i2s0_mclk>;
-
Thank you! I got sound working now!
For those who want the modified dts for it, know it can be downloaded here:
rk3588-cpcm5-notebook.dtb
rk3588-cpcm5-notebook.dtsAlso the out of tree module for the linux-rockchip kernel used in ubuntu-rockchip can be found here:
-
@yusuf-tmp Thanks for your sharing.
How about kernel 6.1 performance on cool pi notebook?
WIth kernel 5.10 right now it's annoying about no gpu acceleration on firefox and high power cosuming.
-
@plumlis The performance is perfect, there is absolutely no issues present, on glmark2 with Xorg all tests are running between 1400-1500 fps(this is heavily window system dependent so take it with a HEAVY grain of salt when making comparisons!!!). I have much better battery life as well. Everything is much better than my previous laptop.
My harddrive I used to compile armbian with 6.1 broke, all though If you are willing I could send patches, the issue with my specific setup is that it highly depends on out of tree patches. Perhaps I might be able to upstream some of it to the coolpi armbian github? Although the issue with that is that I am locked out of my google accounts currently.
If you are willing to put in (not too much) effort I could send you some patches to apply to the official Coolpi Armbian repository, note that it requires a x86_64 Intel/AMD machine with Linux and Docker(If you dont use Ubuntu).