Truenox Posted May 7 Posted May 7 (edited) Hello again, We're already aware of the existing issues with kernel 6 and the audio on the RK3308B. In this case, it fails again in the latest versions... Alsamixer detects the audio card and even shows it in arecord -L or arecord -l, but when trying to record, the error appears: "arecord: set_params:1416: unable to install hw params" The command applied is: arecord -c 2 -r 192000 -f S32_LE test.wav Although if I leave it without parameters to see what it does, it throws the same error, even if I specify the hardware... In the previous kernel (I think it was 6.12.11 (with the u-boot issue in the previous post), the audio worked perfectly). Thanks for all. Edited May 7 by Truenox 0 Quote
brentr Posted May 13 Posted May 13 I was able to duplicate this problem. Audio output appears to be working in both edge and current branches. But, The "arecord: set_params:1416: unable to install hw params" error occurs in the current branch as well. This is running kernel 6.12.28 the example arecord command you gave appears to work in kernel 6.12.12. So, the breakage occurred between 6.12.12 and 6.12.28 0 Quote
brentr Posted May 13 Posted May 13 I just verified that the arecord command fails also with kernel 6.12.15 So, we now know the breakage occurred between 6.12.12 and 6.12.15 0 Quote
brentr Posted May 13 Posted May 13 The breakage occurred between Armbian 25.2.1 and Armbian 25.2.2 0 Quote
Truenox Posted May 13 Author Posted May 13 Dear @brentr, It seems to be a common bug that keeps reappearing. And as far as I understand, it's a fix that needs to be applied to the kernel because otherwise, it won't work. Isn't there a way to make an external fix, which the user can install if needed and which can be applied to any kernel? If this bug is hardcoded, I imagine it's impossible and must be modified every time the kernel is compiled... I'm sorry I can't help much except by reporting the bug. Thank you for your contribution and the work you do, both to you and the community. 0 Quote
brentr Posted May 19 Posted May 19 Further testing shows that Armbian 25.2.x through the current version all run the arecord -c 2 -r 192000 -f S32_LE test.wav without error, PROVIDED the 6.12.12 kernel is used. But, any kernel version after 6.12.12 fails. Now I've just got to find out what broke in 6.12.13 🙂 1 Quote
brentr Posted 17 hours ago Posted 17 hours ago The bug arose with kernel commit: 21cfbeae7d7c54a6cdea4b00096150f438f4fbde ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback Committer Greg Kroah-Hartman<gregkh@linuxfoundation.org> Author Detlev Casanova<detlev.casanova@collabora.com> Author date 1/17/25 8:31 AM Parent RISC-V: Mark riscv_v_init() as __init Child io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock() Branch kernel-rockchip64-6.12 (io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock()) Follows test (ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83JX, 83MC...) ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback [ Upstream commit 5323186e2e8d33c073fad51e24f18e2d6dbae2da ] In commit 9e2ab4b18ebd ("ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates"), the set_sysclk callback was removed as considered unused as the mclk rate can be set in the hw_params callback. The difference between hw_params and set_sysclk is that the former is called with the audio sampling rate set in the params (e.g.: 48000 Hz) while the latter is called with a clock rate already computed with sampling_rate * mclk-fs (e.g.: 48000 * 256) For HDMI audio using the Rockchip I2S TDM driver, the mclk-fs value must be set to 128 instead of the default 256, and that value is set in the device tree at the machine driver level (like a simple-audio-card compatible node). Therefore, the i2s_tdm driver has no idea that another mclk-fs value can be configured and simply computes the mclk rate in the hw_params callback with DEFAULT_MCLK_FS * params_rate(params), which is wrong for HDMI audio. Re-add the set_sysclk callback so that the mclk rate is computed by the machine driver which has the correct mclk-fs value set in its device tree node. Fixes: 9e2ab4b18ebd ("ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates") Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Link: https://patch.msgid.link/20250117163102.65807-1-detlev.casanova@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> 0 Quote
Recommended Posts
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.