Hi, I have spoken with Shenghao and Robin Chen (who I CC) from Texas Instruments.
There is no such thing as TAS2XXX1EB3. For Ally X, there are two firmware files: TAS2XXX1EB30 and TAS2XXX1EB31. Both are licensed with GPL according to Shenghao.
Since the linux driver has no concept of the 0 and 1 suffix, I propose we symlink the 0 one to TAS2XXX1EB3. If required, the driver can be augmented in the future to either choose the 0 or 1 file.
According to Robin Chen about the difference with the files:
They are IO, I/F settings, audio tuning and speaker protection. In current cause, you can ignore them.
The only source we know of right now is the Windows executable.
I would be happy to upload those files in linux-firmware later this week.
We validated that this patch meets all basic functionality, including no pops during sleep and mic operation.
Some users reported lower volume than windows, but perhaps that is due to Dolby integration in windows, or using the 0 firmware file instead of 1 and in any case a minor issue.
Best, Antheas
On Mon, 12 Aug 2024 at 10:26, Takashi Iwai tiwai@suse.de wrote:
On Mon, 12 Aug 2024 06:53:25 +0200, Jonathan LoBue wrote:
This patch enables the TI TAS2781 amplifier SoC for the ASUS ROG ALLY X. This is a design change from the original ASUS ROG ALLY, creating the need for this patch. All other Realtek Codec settings seem to be re-used from the original ROG ALLY design (on the ROG ALLY X). This patch maintains the previous settings for the Realtek codec portion, but enables the I2C binding for the TI TAS2781 amplifier (instead of the Cirrus CS35L41 amp used on the original ASUS ROG ALLY).
One other requirement must be met for audio to work on the ASUS ROG ALLY X. A proper firmware file in the correct location with a proper symlink. We had reached out to TI engineers and confirmed that the firmware found in the Windows' driver package has a GPL license. Bazzite Github is hosting this firmware file for now until proper linux-firmware upstreaming can occur. https://github.com/ublue-os/bazzite
This firmware file should be placed in /usr/lib/firmware/ti/tas2781/TAS2XXX1EB3.bin with a symlink to it from /usr/lib/firmware/TAS2XXX1EB3.bin
Co-developed by: Kyle Gospodnetich me@kylegospodneti.ch Signed-off-by: Kyle Gospodnetich me@kylegospodneti.ch Co-developed by: Jan Drogehoff sentrycraft123@gmail.com Signed-off-by: Jan Drogehoff sentrycraft123@gmail.com Signed-off-by: Antheas Kapenekakis lkml@antheas.dev Tested-by: Richard Alvarez alvarez.richard@gmail.com Tested-by: Miles Montierth cyber_dopamine@intheblackmedia.com Signed-off-by: Jonathan LoBue jlobue10@gmail.com
Applied to for-next branch.
Meanwhile, could you ask TI guys to include the missing firmware files in linux-firmware git tree, too?
thanks,
Takashi