[SOLVED] No sound from phone-jack via "es8316" on rockpro64
#1
The environment is "bionic-lxde-rockpro64-0.7.9-1067-arm64.img.xz".(https://github.com/ayufan-rock64/linux-b...m64.img.xz)
kernel is updated to "linux-image-4.4.138-1094". (https://github.com/ayufan-rock64/linux-k..._arm64.deb)


The sound via hdmi is output well.
However, there is no sound via "es8316", but somehow rubbish comes out on the serial console.

Is there a person who has successfully outputted sound via "es8316" ?
#2
Moin!

> Is there a person who has successfully outputted sound via "es8316" ?

Just wanted to say that you are not allone: Same problem here.

Greetings, J.
#3
As a result of various investigations,
These problems turned out to be caused by the kernel side.

The issues is as follows (0.7.9: gitlab-ci-linux-build-67: 4.4.132-1075)
1. "es8316-sound" no sound.
2. "spdif-sound"  no sound.
3. "serial-console output" contains garbage.

All of the above issues have been solved by modifying kernel.

---
*Additional information)
 At currently the newest kernel (4.4.154-1122),
 all sound (in addition to the above, "hdmi-sound" also) can not output.

I also confirmed that it works correctly with the same modification.
#4
(10-05-2018, 12:23 AM)t4_4t Wrote: As a result of various investigations,
These problems turned out to be caused by the kernel side.

The issues is as follows (0.7.9: gitlab-ci-linux-build-67: 4.4.132-1075)
1. "es8316-sound" no sound.
2. "spdif-sound"  no sound.
3. "serial-console output" contains garbage.

All of the above issues have been solved by modifying kernel.

---
*Additional information)
 At currently the newest kernel (4.4.154-1122),
 all sound (in addition to the above, "hdmi-sound" also) can not output.

I also confirmed that it works correctly with the same modification.


I agree with your findings on 4.4.132 & 4.4.154 kernels - what mods do youu apply to the kernel to correct things?
  • ROCKPro64 v2.1 2GB, 16Gb eMMC for rootfs, SX8200Pro 512GB NVMe for /home, HDMI video & sound, Bluetooth keyboard & mouse. Arch (6.2 kernel, Openbox desktop) for general purpose daily PC.
  • PinePhone Pro Explorer Edition, daily driver, rk2aw & U-boot on SPI, Arch/SXMO & Arch/phosh on eMMC
  • PinePhone BraveHeart now v1.2b 3/32Gb, Tow-boot with Arch/SXMO on eMMC
#5
Just upgraded to 4.4.154-1122 and have the same issue here as well.
#6
OK - still trying to get some noise out of my ES8316. Think I am pretty close but help/suggestions required, please!

I am compiling my own 4.19 kernel: Ayufan versions have no ALSA devices at all. I now have
Code:
chris@rpro64:~$ uname -a
Linux rpro64.dukla.net 4.19.0 #3 SMP PREEMPT Wed Oct 24 10:47:48 BST 2018 aarch64 aarch64 aarch64 GNU/Linux
chris@rpro64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8316c [rockchip,es8316-codec], device 0: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Which is quite promising. Also
Code:
$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=rockchipes8316c
    rockchip,es8316-codec,
    Default Audio Device
sysdefault:CARD=rockchipes8316c
    rockchip,es8316-codec,
    Default Audio Device
dmix:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample mixing device
dsnoop:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample snooping device
hw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct hardware device without any conversions
plughw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Hardware device with all software conversions

But

Code:
$ speaker-test -c 2 sysdefault:CARD=rockchipes8316c

speaker-test 1.1.6

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Playback open error: -22,Invalid argument

And then system log fills with
Code:
[   83.424483] es8316 1-0010: No sysclk provided
[   83.425020] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22

I did remember 0010 in an error message earlier in the boot:

Code:
$ dmesg | grep ff880000
[    2.090028] rockchip-pinctrl pinctrl: pin gpio4-0 already requested by 1-0010; cannot claim for ff880000.i2s
[    2.090907] rockchip-pinctrl pinctrl: pin-128 (ff880000.i2s) status -22
[    2.092501] rockchip-i2s ff880000.i2s: Error applying setting, reverse things back
[    2.093180] rockchip-i2s: probe of ff880000.i2s failed with error -22

So the question - how to sort the 1-0010 | gpio4-0 | ff880000.i2s conflict? Pretty sure this is in the device tree somewhere but have yet to find something obvious.
  • ROCKPro64 v2.1 2GB, 16Gb eMMC for rootfs, SX8200Pro 512GB NVMe for /home, HDMI video & sound, Bluetooth keyboard & mouse. Arch (6.2 kernel, Openbox desktop) for general purpose daily PC.
  • PinePhone Pro Explorer Edition, daily driver, rk2aw & U-boot on SPI, Arch/SXMO & Arch/phosh on eMMC
  • PinePhone BraveHeart now v1.2b 3/32Gb, Tow-boot with Arch/SXMO on eMMC
#7
The problem of "es8316" is quite tough and can not be solved by only modifying "*.dts" or "kernel-config".

For example, your proposal is,
> So the question - how to sort the 1-0010 | gpio4-0 | ff880000.i2s conflict ?

If you fix it, you can surely see some improvement.
However, this kind of modification alone is not enough,
and only the effect of reducing errors from the "boot-log" is obtained.

In order for "es8316" to work correctly, both "dts" and "*.c source-code" modifications are necessary,
and the modification is more extensive (perhaps, more than you think).

"original-kernel (4.19.0-1073-ayufan)"
https://github.com/ayufan-rock64/linux-m..._arm64.deb
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 09:19:54 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

[   16.057479] rockchip-pinctrl pinctrl: pin gpio4-0 already requested by ff880000.i2s; cannot claim for 1-0010
[   16.059298] rockchip-pinctrl pinctrl: pin-128 (1-0010) status -22
[   16.060034] rockchip-pinctrl pinctrl: could not request pin 128 (gpio4-0) from group i2s-8ch-mclk  on device rockchip-pinctrl
[   16.061258] es8316 1-0010: Error applying setting, reverse things back
[   16.062080] es8316: probe of 1-0010 failed with error -22

$ aplay -l
aplay: device_list:270: no soundcards found...

$ aplay -L
default
   Playback/recording through the PulseAudio sound server
null
   Discard all samples (playback) or generate zero samples (capture)
pulse
   PulseAudio Sound Server

$ pactl list sinks
Sink #0
       State: IDLE
       Name: auto_null
       Description: Dummy Output
       Driver: module-null-sink.c
       Sample Specification: s16le 2ch 44100Hz
       Channel Map: front-left,front-right
       Owner Module: 10
       Mute: no
       Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
               balance 0.00
       Base Volume: 65536 / 100% / 0.00 dB
       Monitor Source: auto_null.monitor
       Latency: 2213366 usec, configured 2000000 usec
       Flags: DECIBEL_VOLUME LATENCY
       Properties:
               device.description = "Dummy Output"
               device.class = "abstract"
               device.icon_name = "audio-card"
       Formats:
               pcm

"original-kernel" with "modified-dts" (your proposal, perhaps what you tried to do)
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 09:19:54 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

[   10.538432] asoc-simple-card es8316-sound: ASoC: no source widget found for MICBIAS1
[   10.539291] asoc-simple-card es8316-sound: ASoC: Failed to add route MICBIAS1 -> direct -> Mic Jack
[   10.540228] asoc-simple-card es8316-sound: ASoC: no sink widget found for IN1P
[   10.540973] asoc-simple-card es8316-sound: ASoC: Failed to add route Mic Jack -> direct -> IN1P
[   11.978401] es8316 1-0010: ASoC: Differential Mux DAPM update failed: -6
[   11.979565] es8316 1-0010: ASoC: Digital Mic Mux DAPM update failed: -6
[   13.149657] es8316 1-0010: ASoC: Differential Mux DAPM update failed: -6
[   13.151011] es8316 1-0010: ASoC: Digital Mic Mux DAPM update failed: -6

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
[  280.461123] es8316 1-0010: No sysclk provided
[  280.464960] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  280.507795] es8316 1-0010: No sysclk provided
[  280.511685] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
card 0: rockchipes8316c [rockchip,es8316-codec], device 0: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
[  347.616981] es8316 1-0010: No sysclk provided
[  347.620827] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  347.663448] es8316 1-0010: No sysclk provided
[  347.667337] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=rockchipes8316c
    rockchip,es8316-codec,
    Default Audio Device
dmix:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample mixing device
dsnoop:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample snooping device
hw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct hardware device without any conversions
plughw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Hardware device with all software conversions

$ pactl list sinks
[  129.097332] es8316 1-0010: No sysclk provided
[  129.097841] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  129.110316] es8316 1-0010: No sysclk provided
[  129.110825] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
Sink #0
        State: IDLE
        Name: auto_null
        Description: Dummy Output
        Driver: module-null-sink.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 11
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: auto_null.monitor
        Latency: 2216568 usec, configured 2000000 usec
        Flags: DECIBEL_VOLUME LATENCY
        Properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"
        Formats:
                pcm


"my-kernel"
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 20:05:55 JST 2018 aarch64 aarch64 aarch64 GNU/Linux

[    3.683845] asoc-simple-card es8316-sound: ES8316 HiFi <-> ff890000.i2s mapping ok
[    3.684589] asoc-simple-card es8316-sound: ASoC: no DMI vendor name!
[    3.691358] asoc-simple-card spdif-sound: dit-hifi <-> ff870000.spdif mapping ok
[    3.692034] asoc-simple-card spdif-sound: ASoC: no DMI vendor name!
[    4.254556] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok
[    4.255369] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name!

[    4.500561] ALSA device list:
[    4.500561]   #0: ROCKCHIP,ES8316
[    4.500561]   #1: ROCKCHIP,SPDIF
[    4.500561]   #2: ROCKCHIP,HDMI


$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ROCKCHIPES8316 [ROCKCHIP,ES8316], device 0: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ROCKCHIPSPDIF [ROCKCHIP,SPDIF], device 0: ff870000.spdif-dit-hifi dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: ROCKCHIPHDMI [ROCKCHIP,HDMI], device 0: ff8a0000.i2s-i2s-hifi i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default:CARD=ROCKCHIPES8316
    ROCKCHIP,ES8316,
    Default Audio Device
sysdefault:CARD=ROCKCHIPES8316
    ROCKCHIP,ES8316,
    Default Audio Device
dmix:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct sample snooping device
hw:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Hardware device with all software conversions
default:CARD=ROCKCHIPSPDIF
    ROCKCHIP,SPDIF,
    Default Audio Device
sysdefault:CARD=ROCKCHIPSPDIF
    ROCKCHIP,SPDIF,
    Default Audio Device
dmix:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct sample snooping device
hw:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Hardware device with all software conversions
default:CARD=ROCKCHIPHDMI
    ROCKCHIP,HDMI,
    Default Audio Device
sysdefault:CARD=ROCKCHIPHDMI
    ROCKCHIP,HDMI,
    Default Audio Device
dmix:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct sample snooping device
hw:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Hardware device with all software conversions

$ pactl list sinks
Sink #0
        State: IDLE
        Name: alsa_output.platform-es8316-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 6
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-es8316-sound.stereo-fallback.monitor
        Latency: 1896804 usec, configured 2000000 usec
        Flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff890000.i2s-ES8316 HiFi ES8316 HiFi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "ROCKCHIP,ES8316"
                alsa.long_card_name = "ROCKCHIP,ES8316"
                device.bus_path = "platform-es8316-sound"
                sysfs.path = "/devices/platform/es8316-sound/sound/card0"
                device.form_factor = "internal"
                device.string = "hw:0"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output-headphones: Headphones (priority: 9000)
        Active Port: analog-output-headphones
        Formats:
                pcm

Sink #1
        State: IDLE
        Name: alsa_output.platform-hdmi-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 7
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-hdmi-sound.stereo-fallback.monitor
        Latency: 1949733 usec, configured 2000000 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff8a0000.i2s-i2s-hifi i2s-hifi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "2"
                alsa.card_name = "ROCKCHIP,HDMI"
                alsa.long_card_name = "ROCKCHIP,HDMI"
                device.bus_path = "platform-hdmi-sound"
                sysfs.path = "/devices/platform/hdmi-sound/sound/card2"
                device.form_factor = "internal"
                device.string = "hw:2"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output: Analog Output (priority: 9900)
        Active Port: analog-output
        Formats:
                pcm

Sink #2
        State: IDLE
        Name: alsa_output.platform-spdif-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 8
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-spdif-sound.stereo-fallback.monitor
        Latency: 1985337 usec, configured 2000000 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff870000.spdif-dit-hifi dit-hifi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "1"
                alsa.card_name = "ROCKCHIP,SPDIF"
                alsa.long_card_name = "ROCKCHIP,SPDIF"
                device.bus_path = "platform-spdif-sound"
                sysfs.path = "/devices/platform/spdif-sound/sound/card1"
                device.form_factor = "internal"
                device.string = "hw:1"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output: Analog Output (priority: 9900)
        Active Port: analog-output
        Formats:
                pcm

Of course, all the sounds "es8316" / "hdmi" / "spdif" are working.
However, sadly, "mainline-kernel" has not yet implemented "video-accelerator" (mpp related),
it is not fun even if only the sound comes out.

So, I usually do not use "mainline-kernel".
#8
(10-26-2018, 05:46 AM)t4_4t Wrote: ...

Of course, all the sounds "es8316" / "hdmi" / "spdif" are working.
However, sadly, "mainline-kernel" has not yet implemented "video-accelerator" (mpp related),
it is not fun even if only the sound comes out.

So, I usually do not use "mainline-kernel".

So you mark it as "SOLVED". Could you kindly point us to the solution? Diffs or so... since that comes to modifying kernel source as you've mentioned.
#9
Please make a 'Pull Request' so we all can hear something. Thanks.
Sorry for any mistakes. English is not my native language

1. Quartz64 Model B, 4GB RAM

2. Quartz64 Model A, 4GB RAM

3. RockPro64 v2.1

https://linux-nerds.org/
#10
(10-26-2018, 05:46 AM)t4_4t Wrote: The problem of "es8316" is quite tough and can not be solved by only modifying "*.dts" or "kernel-config".

For example, your proposal is,
> So the question - how to sort the 1-0010 | gpio4-0 | ff880000.i2s conflict ?

If you fix it, you can surely see some improvement.
However, this kind of modification alone is not enough,
and only the effect of reducing errors from the "boot-log" is obtained.

In order for "es8316" to work correctly, both "dts" and "*.c source-code" modifications are necessary,
and the modification is more extensive (perhaps, more than you think).

"original-kernel (4.19.0-1073-ayufan)"
https://github.com/ayufan-rock64/linux-m..._arm64.deb
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 09:19:54 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

[   16.057479] rockchip-pinctrl pinctrl: pin gpio4-0 already requested by ff880000.i2s; cannot claim for 1-0010
[   16.059298] rockchip-pinctrl pinctrl: pin-128 (1-0010) status -22
[   16.060034] rockchip-pinctrl pinctrl: could not request pin 128 (gpio4-0) from group i2s-8ch-mclk  on device rockchip-pinctrl
[   16.061258] es8316 1-0010: Error applying setting, reverse things back
[   16.062080] es8316: probe of 1-0010 failed with error -22

$ aplay -l
aplay: device_list:270: no soundcards found...

$ aplay -L
default
   Playback/recording through the PulseAudio sound server
null
   Discard all samples (playback) or generate zero samples (capture)
pulse
   PulseAudio Sound Server

$ pactl list sinks
Sink #0
       State: IDLE
       Name: auto_null
       Description: Dummy Output
       Driver: module-null-sink.c
       Sample Specification: s16le 2ch 44100Hz
       Channel Map: front-left,front-right
       Owner Module: 10
       Mute: no
       Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
               balance 0.00
       Base Volume: 65536 / 100% / 0.00 dB
       Monitor Source: auto_null.monitor
       Latency: 2213366 usec, configured 2000000 usec
       Flags: DECIBEL_VOLUME LATENCY
       Properties:
               device.description = "Dummy Output"
               device.class = "abstract"
               device.icon_name = "audio-card"
       Formats:
               pcm

"original-kernel" with "modified-dts" (your proposal, perhaps what you tried to do)
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 09:19:54 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

[   10.538432] asoc-simple-card es8316-sound: ASoC: no source widget found for MICBIAS1
[   10.539291] asoc-simple-card es8316-sound: ASoC: Failed to add route MICBIAS1 -> direct -> Mic Jack
[   10.540228] asoc-simple-card es8316-sound: ASoC: no sink widget found for IN1P
[   10.540973] asoc-simple-card es8316-sound: ASoC: Failed to add route Mic Jack -> direct -> IN1P
[   11.978401] es8316 1-0010: ASoC: Differential Mux DAPM update failed: -6
[   11.979565] es8316 1-0010: ASoC: Digital Mic Mux DAPM update failed: -6
[   13.149657] es8316 1-0010: ASoC: Differential Mux DAPM update failed: -6
[   13.151011] es8316 1-0010: ASoC: Digital Mic Mux DAPM update failed: -6

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
[  280.461123] es8316 1-0010: No sysclk provided
[  280.464960] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  280.507795] es8316 1-0010: No sysclk provided
[  280.511685] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
card 0: rockchipes8316c [rockchip,es8316-codec], device 0: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
[  347.616981] es8316 1-0010: No sysclk provided
[  347.620827] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  347.663448] es8316 1-0010: No sysclk provided
[  347.667337] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=rockchipes8316c
    rockchip,es8316-codec,
    Default Audio Device
dmix:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample mixing device
dsnoop:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct sample snooping device
hw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Direct hardware device without any conversions
plughw:CARD=rockchipes8316c,DEV=0
    rockchip,es8316-codec,
    Hardware device with all software conversions

$ pactl list sinks
[  129.097332] es8316 1-0010: No sysclk provided
[  129.097841] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
...
[  129.110316] es8316 1-0010: No sysclk provided
[  129.110825] es8316 1-0010: ASoC: can't open codec ES8316 HiFi: -22
Sink #0
        State: IDLE
        Name: auto_null
        Description: Dummy Output
        Driver: module-null-sink.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 11
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: auto_null.monitor
        Latency: 2216568 usec, configured 2000000 usec
        Flags: DECIBEL_VOLUME LATENCY
        Properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"
        Formats:
                pcm


"my-kernel"
Code:
$ uname -a
Linux Rock64 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 20:05:55 JST 2018 aarch64 aarch64 aarch64 GNU/Linux

[    3.683845] asoc-simple-card es8316-sound: ES8316 HiFi <-> ff890000.i2s mapping ok
[    3.684589] asoc-simple-card es8316-sound: ASoC: no DMI vendor name!
[    3.691358] asoc-simple-card spdif-sound: dit-hifi <-> ff870000.spdif mapping ok
[    3.692034] asoc-simple-card spdif-sound: ASoC: no DMI vendor name!
[    4.254556] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok
[    4.255369] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name!

[    4.500561] ALSA device list:
[    4.500561]   #0: ROCKCHIP,ES8316
[    4.500561]   #1: ROCKCHIP,SPDIF
[    4.500561]   #2: ROCKCHIP,HDMI


$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ROCKCHIPES8316 [ROCKCHIP,ES8316], device 0: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ROCKCHIPSPDIF [ROCKCHIP,SPDIF], device 0: ff870000.spdif-dit-hifi dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: ROCKCHIPHDMI [ROCKCHIP,HDMI], device 0: ff8a0000.i2s-i2s-hifi i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default:CARD=ROCKCHIPES8316
    ROCKCHIP,ES8316,
    Default Audio Device
sysdefault:CARD=ROCKCHIPES8316
    ROCKCHIP,ES8316,
    Default Audio Device
dmix:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct sample snooping device
hw:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPES8316,DEV=0
    ROCKCHIP,ES8316,
    Hardware device with all software conversions
default:CARD=ROCKCHIPSPDIF
    ROCKCHIP,SPDIF,
    Default Audio Device
sysdefault:CARD=ROCKCHIPSPDIF
    ROCKCHIP,SPDIF,
    Default Audio Device
dmix:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct sample snooping device
hw:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPSPDIF,DEV=0
    ROCKCHIP,SPDIF,
    Hardware device with all software conversions
default:CARD=ROCKCHIPHDMI
    ROCKCHIP,HDMI,
    Default Audio Device
sysdefault:CARD=ROCKCHIPHDMI
    ROCKCHIP,HDMI,
    Default Audio Device
dmix:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct sample mixing device
dsnoop:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct sample snooping device
hw:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Direct hardware device without any conversions
plughw:CARD=ROCKCHIPHDMI,DEV=0
    ROCKCHIP,HDMI,
    Hardware device with all software conversions

$ pactl list sinks
Sink #0
        State: IDLE
        Name: alsa_output.platform-es8316-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 6
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-es8316-sound.stereo-fallback.monitor
        Latency: 1896804 usec, configured 2000000 usec
        Flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff890000.i2s-ES8316 HiFi ES8316 HiFi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "ROCKCHIP,ES8316"
                alsa.long_card_name = "ROCKCHIP,ES8316"
                device.bus_path = "platform-es8316-sound"
                sysfs.path = "/devices/platform/es8316-sound/sound/card0"
                device.form_factor = "internal"
                device.string = "hw:0"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output-headphones: Headphones (priority: 9000)
        Active Port: analog-output-headphones
        Formats:
                pcm

Sink #1
        State: IDLE
        Name: alsa_output.platform-hdmi-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 7
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-hdmi-sound.stereo-fallback.monitor
        Latency: 1949733 usec, configured 2000000 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff8a0000.i2s-i2s-hifi i2s-hifi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "2"
                alsa.card_name = "ROCKCHIP,HDMI"
                alsa.long_card_name = "ROCKCHIP,HDMI"
                device.bus_path = "platform-hdmi-sound"
                sysfs.path = "/devices/platform/hdmi-sound/sound/card2"
                device.form_factor = "internal"
                device.string = "hw:2"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output: Analog Output (priority: 9900)
        Active Port: analog-output
        Formats:
                pcm

Sink #2
        State: IDLE
        Name: alsa_output.platform-spdif-sound.stereo-fallback
        Description: Built-in Audio Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 8
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.platform-spdif-sound.stereo-fallback.monitor
        Latency: 1985337 usec, configured 2000000 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = ""
                alsa.id = "ff870000.spdif-dit-hifi dit-hifi-0"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "1"
                alsa.card_name = "ROCKCHIP,SPDIF"
                alsa.long_card_name = "ROCKCHIP,SPDIF"
                device.bus_path = "platform-spdif-sound"
                sysfs.path = "/devices/platform/spdif-sound/sound/card1"
                device.form_factor = "internal"
                device.string = "hw:1"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "stereo-fallback"
                device.profile.description = "Stereo"
                device.description = "Built-in Audio Stereo"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports:
                analog-output: Analog Output (priority: 9900)
        Active Port: analog-output
        Formats:
                pcm

Of course, all the sounds "es8316" / "hdmi" / "spdif" are working.
However, sadly, "mainline-kernel" has not yet implemented "video-accelerator" (mpp related),
it is not fun even if only the sound comes out.

So, I usually do not use "mainline-kernel".

I understand, i need to modify sound/soc/codecs/es8316.c 
Can you tell me which other files i need to modify?

Can you share your asound.rc file?


Possibly Related Threads…
Thread Author Replies Views Last Post
  yocto for RockPro64 Fide 1 631 01-16-2024, 10:01 AM
Last Post: Fide
  RockPro64 irradium (based on crux linux) riscv64, aarch64 mara 0 304 12-05-2023, 06:35 AM
Last Post: mara
  Installing Ubuntu Server on RockPro64 deutschlmao 2 2,486 10-29-2023, 04:43 PM
Last Post: brotherj4mes
  Vanilla mainline Debian 11 (Bullseye) on the RockPro64 Pete Tandy 22 16,715 08-16-2023, 01:34 AM
Last Post: varac
  slarm64 (unofficial slackware) ROCKPro64 RK3399 (aarch64) mara 54 81,797 08-11-2023, 11:13 AM
Last Post: mara
  How to enable CoreSight ETM trace on RockPro64 shpark 0 526 05-21-2023, 11:34 PM
Last Post: shpark
  Rockpro64 Dead on arrival? quixoticgeek 1 862 03-12-2023, 06:55 PM
Last Post: quixoticgeek
  RockPro64 boot questions misterc 3 1,462 01-13-2023, 06:21 PM
Last Post: misterc
  A fix for Bluetooth audio stuttering on the RockPro64 raph 2 1,549 01-03-2023, 06:53 PM
Last Post: raph
  hello i want to drive an edp screen with my rockpro64 hannescam 0 695 10-20-2022, 01:22 PM
Last Post: hannescam

Forum Jump:


Users browsing this thread: 1 Guest(s)