After fixing an EFI e820 MMIO mapping issue for a Lenovo Legion 9i in
https://bugzilla.kernel.org/show_bug.cgi?id=218444
we see the error:
tas2781-hda i2c-TIAS2781:00: Direct firmware load for TIAS2781RCA2.bin failed with error -2
This is due to the incorrect path being used to request the firmware; in linux-firmware the file is in:
/usr/lib/firmware/ti/tas2781/
but in
sound/soc/codecs/tas2781-comlib.c::tascodec_init()
it does:
scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
tas_priv->dev_name, tas_priv->ndev);
Since no sub-directory is prepended here the kernel is looking for the file in:
/usr/lib/firmware/
We worked around it by adding a symbolic link:
ln -s ti/tas2781/TIAS2781RCA2.bin /usr/lib/firmware/TIAS2781RCA2.bin
There does not appear to be an easy fix for this since the function can be used by multiple devices with different paths; also there is no easy way to generate the path prefix from the device name. The most obvious fix is another field in struct tasdevice_priv to hold the path prefix.
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]