Direct firmware load for TIAS2781RCA2.bin failed with error -2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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]

  Powered by Linux