diff mbox series

ALSA: hda/ASOC tas2781: align the path of firmware

Message ID 20240425072000.22284-1-aaron.ma@canonical.com (mailing list archive)
State New, archived
Headers show
Series ALSA: hda/ASOC tas2781: align the path of firmware | expand

Commit Message

Aaron Ma April 25, 2024, 7:20 a.m. UTC
TI upstream the files in ti/tas2781 for linux-firmware.
Make the driver find the correct files.

Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
---
 include/sound/tas2781.h           | 1 +
 sound/pci/hda/tas2781_hda_i2c.c   | 2 +-
 sound/soc/codecs/tas2781-comlib.c | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

Comments

Takashi Iwai April 25, 2024, 7:52 a.m. UTC | #1
On Thu, 25 Apr 2024 09:20:00 +0200,
Aaron Ma wrote:
> 
> TI upstream the files in ti/tas2781 for linux-firmware.
> Make the driver find the correct files.

Note that the upstream linux-firmware provides symlinks to
ti/tas2781/* files, so it's not "incorrect", so far :)


thanks,

Takashi

> 
> Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
> ---
>  include/sound/tas2781.h           | 1 +
>  sound/pci/hda/tas2781_hda_i2c.c   | 2 +-
>  sound/soc/codecs/tas2781-comlib.c | 2 +-
>  3 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
> index 99ca3e401fd1..72119cc32c0f 100644
> --- a/include/sound/tas2781.h
> +++ b/include/sound/tas2781.h
> @@ -21,6 +21,7 @@
>  /* version number */
>  #define TAS2781_DRV_VER			1
>  #define SMARTAMP_MODULE_NAME		"tas2781"
> +#define TAS2781_FIRMWARE_ROOT		"ti/tas2781/"
>  #define TAS2781_GLOBAL_ADDR	0x40
>  #define TAS2563_GLOBAL_ADDR	0x48
>  #define TASDEVICE_RATES			(SNDRV_PCM_RATE_44100 |\
> diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
> index 75f7674c66ee..72dc1469655f 100644
> --- a/sound/pci/hda/tas2781_hda_i2c.c
> +++ b/sound/pci/hda/tas2781_hda_i2c.c
> @@ -649,7 +649,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
>  	tasdevice_dsp_remove(tas_priv);
>  
>  	tas_priv->fw_state = TASDEVICE_DSP_FW_PENDING;
> -	scnprintf(tas_priv->coef_binaryname, 64, "TAS2XXX%04X.bin",
> +	scnprintf(tas_priv->coef_binaryname, 64, "%sTAS2XXX%04X.bin", TAS2781_FIRMWARE_ROOT,
>  		codec->core.subsystem_id & 0xffff);
>  	ret = tasdevice_dsp_parser(tas_priv);
>  	if (ret) {
> diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
> index 3aa81514dad7..96fe1b855ec9 100644
> --- a/sound/soc/codecs/tas2781-comlib.c
> +++ b/sound/soc/codecs/tas2781-comlib.c
> @@ -277,7 +277,7 @@ int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
>  	 */
>  	mutex_lock(&tas_priv->codec_lock);
>  
> -	scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
> +	scnprintf(tas_priv->rca_binaryname, 64, "%s%sRCA%d.bin", TAS2781_FIRMWARE_ROOT,
>  		tas_priv->dev_name, tas_priv->ndev);
>  	crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
>  	tas_priv->codec = codec;
> -- 
> 2.34.1
>
Aaron Ma April 25, 2024, 7:54 a.m. UTC | #2
On 4/25/24 15:52, Takashi Iwai wrote:
> On Thu, 25 Apr 2024 09:20:00 +0200,
> Aaron Ma wrote:
>> TI upstream the files in ti/tas2781 for linux-firmware.
>> Make the driver find the correct files.
> Note that the upstream linux-firmware provides symlinks to
> ti/tas2781/* files, so it's not "incorrect", so far :)

$ find . -iname TIAS2781RCA2.bin
./ti/tas2781/TIAS2781RCA2.bin

Only one bin file found.
Could you point it out clearly?

Thanks,
Aaron

>
>
> thanks,
>
> Takashi
>
>> Signed-off-by: Aaron Ma<aaron.ma@canonical.com>
>> ---
>>   include/sound/tas2781.h           | 1 +
>>   sound/pci/hda/tas2781_hda_i2c.c   | 2 +-
>>   sound/soc/codecs/tas2781-comlib.c | 2 +-
>>   3 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
>> index 99ca3e401fd1..72119cc32c0f 100644
>> --- a/include/sound/tas2781.h
>> +++ b/include/sound/tas2781.h
>> @@ -21,6 +21,7 @@
>>   /* version number */
>>   #define TAS2781_DRV_VER			1
>>   #define SMARTAMP_MODULE_NAME		"tas2781"
>> +#define TAS2781_FIRMWARE_ROOT		"ti/tas2781/"
>>   #define TAS2781_GLOBAL_ADDR	0x40
>>   #define TAS2563_GLOBAL_ADDR	0x48
>>   #define TASDEVICE_RATES			(SNDRV_PCM_RATE_44100 |\
>> diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
>> index 75f7674c66ee..72dc1469655f 100644
>> --- a/sound/pci/hda/tas2781_hda_i2c.c
>> +++ b/sound/pci/hda/tas2781_hda_i2c.c
>> @@ -649,7 +649,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
>>   	tasdevice_dsp_remove(tas_priv);
>>   
>>   	tas_priv->fw_state = TASDEVICE_DSP_FW_PENDING;
>> -	scnprintf(tas_priv->coef_binaryname, 64, "TAS2XXX%04X.bin",
>> +	scnprintf(tas_priv->coef_binaryname, 64, "%sTAS2XXX%04X.bin", TAS2781_FIRMWARE_ROOT,
>>   		codec->core.subsystem_id & 0xffff);
>>   	ret = tasdevice_dsp_parser(tas_priv);
>>   	if (ret) {
>> diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
>> index 3aa81514dad7..96fe1b855ec9 100644
>> --- a/sound/soc/codecs/tas2781-comlib.c
>> +++ b/sound/soc/codecs/tas2781-comlib.c
>> @@ -277,7 +277,7 @@ int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
>>   	 */
>>   	mutex_lock(&tas_priv->codec_lock);
>>   
>> -	scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
>> +	scnprintf(tas_priv->rca_binaryname, 64, "%s%sRCA%d.bin", TAS2781_FIRMWARE_ROOT,
>>   		tas_priv->dev_name, tas_priv->ndev);
>>   	crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
>>   	tas_priv->codec = codec;
>> -- 
>> 2.34.1
>>
Takashi Iwai April 25, 2024, 8:36 a.m. UTC | #3
On Thu, 25 Apr 2024 09:54:17 +0200,
Aaron Ma wrote:
> 
> 
> On 4/25/24 15:52, Takashi Iwai wrote:
> 
>     On Thu, 25 Apr 2024 09:20:00 +0200,
>     Aaron Ma wrote:
>     
>         TI upstream the files in ti/tas2781 for linux-firmware.
>         Make the driver find the correct files.
>         
>     Note that the upstream linux-firmware provides symlinks to
>     ti/tas2781/* files, so it's not "incorrect", so far :)
> 
> $ find . -iname TIAS2781RCA2.bin
> ./ti/tas2781/TIAS2781RCA2.bin
> 
> Only one bin file found.
> Could you point it out clearly?

See WHENCE file.  It has "Link:" entries, and copy-firmware.sh creates
corresponding symlinks.


HTH,

Takashi

> 
> Thanks,
> Aaron
> 
>     thanks,
>     
>     Takashi
> 
>         Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
>         ---
>          include/sound/tas2781.h           | 1 +
>          sound/pci/hda/tas2781_hda_i2c.c   | 2 +-
>          sound/soc/codecs/tas2781-comlib.c | 2 +-
>          3 files changed, 3 insertions(+), 2 deletions(-)
>         
>         diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
>         index 99ca3e401fd1..72119cc32c0f 100644
>         --- a/include/sound/tas2781.h
>         +++ b/include/sound/tas2781.h
>         @@ -21,6 +21,7 @@
>          /* version number */
>          #define TAS2781_DRV_VER                                                1
>          #define SMARTAMP_MODULE_NAME                                           "tas2781"
>         +#define TAS2781_FIRMWARE_ROOT                                          "ti/tas2781/"
>          #define TAS2781_GLOBAL_ADDR                      0x40
>          #define TAS2563_GLOBAL_ADDR                      0x48
>          #define TASDEVICE_RATES                                                (SNDRV_PCM_RATE_44100 |\
>         diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
>         index 75f7674c66ee..72dc1469655f 100644
>         --- a/sound/pci/hda/tas2781_hda_i2c.c
>         +++ b/sound/pci/hda/tas2781_hda_i2c.c
>         @@ -649,7 +649,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
>               tasdevice_dsp_remove(tas_priv);
>          
>               tas_priv->fw_state = TASDEVICE_DSP_FW_PENDING;
>         -     scnprintf(tas_priv->coef_binaryname, 64, "TAS2XXX%04X.bin",
>         +     scnprintf(tas_priv->coef_binaryname, 64, "%sTAS2XXX%04X.bin", TAS2781_FIRMWARE_ROOT,
>                                     codec->core.subsystem_id & 0xffff);
>               ret = tasdevice_dsp_parser(tas_priv);
>               if (ret) {
>         diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
>         index 3aa81514dad7..96fe1b855ec9 100644
>         --- a/sound/soc/codecs/tas2781-comlib.c
>         +++ b/sound/soc/codecs/tas2781-comlib.c
>         @@ -277,7 +277,7 @@ int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
>                */
>               mutex_lock(&tas_priv->codec_lock);
>          
>         -     scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
>         +     scnprintf(tas_priv->rca_binaryname, 64, "%s%sRCA%d.bin", TAS2781_FIRMWARE_ROOT,
>                                     tas_priv->dev_name, tas_priv->ndev);
>               crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
>               tas_priv->codec = codec;
>         -- 
>         2.34.1
>
Aaron Ma April 25, 2024, 8:40 a.m. UTC | #4
On 4/25/24 16:36, Takashi Iwai wrote:
> On Thu, 25 Apr 2024 09:54:17 +0200,
> Aaron Ma wrote:
>>
>>
>> On 4/25/24 15:52, Takashi Iwai wrote:
>>
>>      On Thu, 25 Apr 2024 09:20:00 +0200,
>>      Aaron Ma wrote:
>>      
>>          TI upstream the files in ti/tas2781 for linux-firmware.
>>          Make the driver find the correct files.
>>          
>>      Note that the upstream linux-firmware provides symlinks to
>>      ti/tas2781/* files, so it's not "incorrect", so far :)
>>
>> $ find . -iname TIAS2781RCA2.bin
>> ./ti/tas2781/TIAS2781RCA2.bin
>>
>> Only one bin file found.
>> Could you point it out clearly?
> 
> See WHENCE file.  It has "Link:" entries, and copy-firmware.sh creates
> corresponding symlinks.

Oh, missed it.
Retrieve the patch.

Thanks,
Aaron

> 
> 
> HTH,
> 
> Takashi
> 
>>
>> Thanks,
>> Aaron
>>
>>      thanks,
>>      
>>      Takashi
>>
>>          Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
>>          ---
>>           include/sound/tas2781.h           | 1 +
>>           sound/pci/hda/tas2781_hda_i2c.c   | 2 +-
>>           sound/soc/codecs/tas2781-comlib.c | 2 +-
>>           3 files changed, 3 insertions(+), 2 deletions(-)
>>          
>>          diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
>>          index 99ca3e401fd1..72119cc32c0f 100644
>>          --- a/include/sound/tas2781.h
>>          +++ b/include/sound/tas2781.h
>>          @@ -21,6 +21,7 @@
>>           /* version number */
>>           #define TAS2781_DRV_VER                                                1
>>           #define SMARTAMP_MODULE_NAME                                           "tas2781"
>>          +#define TAS2781_FIRMWARE_ROOT                                          "ti/tas2781/"
>>           #define TAS2781_GLOBAL_ADDR                      0x40
>>           #define TAS2563_GLOBAL_ADDR                      0x48
>>           #define TASDEVICE_RATES                                                (SNDRV_PCM_RATE_44100 |\
>>          diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
>>          index 75f7674c66ee..72dc1469655f 100644
>>          --- a/sound/pci/hda/tas2781_hda_i2c.c
>>          +++ b/sound/pci/hda/tas2781_hda_i2c.c
>>          @@ -649,7 +649,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
>>                tasdevice_dsp_remove(tas_priv);
>>           
>>                tas_priv->fw_state = TASDEVICE_DSP_FW_PENDING;
>>          -     scnprintf(tas_priv->coef_binaryname, 64, "TAS2XXX%04X.bin",
>>          +     scnprintf(tas_priv->coef_binaryname, 64, "%sTAS2XXX%04X.bin", TAS2781_FIRMWARE_ROOT,
>>                                      codec->core.subsystem_id & 0xffff);
>>                ret = tasdevice_dsp_parser(tas_priv);
>>                if (ret) {
>>          diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
>>          index 3aa81514dad7..96fe1b855ec9 100644
>>          --- a/sound/soc/codecs/tas2781-comlib.c
>>          +++ b/sound/soc/codecs/tas2781-comlib.c
>>          @@ -277,7 +277,7 @@ int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
>>                 */
>>                mutex_lock(&tas_priv->codec_lock);
>>           
>>          -     scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
>>          +     scnprintf(tas_priv->rca_binaryname, 64, "%s%sRCA%d.bin", TAS2781_FIRMWARE_ROOT,
>>                                      tas_priv->dev_name, tas_priv->ndev);
>>                crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
>>                tas_priv->codec = codec;
>>          --
>>          2.34.1
>>
Takashi Iwai April 25, 2024, 8:45 a.m. UTC | #5
On Thu, 25 Apr 2024 10:40:50 +0200,
Aaron Ma wrote:
> 
> 
> On 4/25/24 16:36, Takashi Iwai wrote:
> > On Thu, 25 Apr 2024 09:54:17 +0200,
> > Aaron Ma wrote:
> >> 
> >> 
> >> On 4/25/24 15:52, Takashi Iwai wrote:
> >> 
> >>      On Thu, 25 Apr 2024 09:20:00 +0200,
> >>      Aaron Ma wrote:
> >>               TI upstream the files in ti/tas2781 for
> >> linux-firmware.
> >>          Make the driver find the correct files.
> >>               Note that the upstream linux-firmware provides
> >> symlinks to
> >>      ti/tas2781/* files, so it's not "incorrect", so far :)
> >> 
> >> $ find . -iname TIAS2781RCA2.bin
> >> ./ti/tas2781/TIAS2781RCA2.bin
> >> 
> >> Only one bin file found.
> >> Could you point it out clearly?
> > 
> > See WHENCE file.  It has "Link:" entries, and copy-firmware.sh creates
> > corresponding symlinks.
> 
> Oh, missed it.
> Retrieve the patch.

OK.  I guess ti/*/* is a better place for newer firmware files
(and likely intended by TI), but it's up to TI whether we should
update or not for newer chips.  Let's see.


thanks,

Takashi
diff mbox series

Patch

diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
index 99ca3e401fd1..72119cc32c0f 100644
--- a/include/sound/tas2781.h
+++ b/include/sound/tas2781.h
@@ -21,6 +21,7 @@ 
 /* version number */
 #define TAS2781_DRV_VER			1
 #define SMARTAMP_MODULE_NAME		"tas2781"
+#define TAS2781_FIRMWARE_ROOT		"ti/tas2781/"
 #define TAS2781_GLOBAL_ADDR	0x40
 #define TAS2563_GLOBAL_ADDR	0x48
 #define TASDEVICE_RATES			(SNDRV_PCM_RATE_44100 |\
diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
index 75f7674c66ee..72dc1469655f 100644
--- a/sound/pci/hda/tas2781_hda_i2c.c
+++ b/sound/pci/hda/tas2781_hda_i2c.c
@@ -649,7 +649,7 @@  static void tasdev_fw_ready(const struct firmware *fmw, void *context)
 	tasdevice_dsp_remove(tas_priv);
 
 	tas_priv->fw_state = TASDEVICE_DSP_FW_PENDING;
-	scnprintf(tas_priv->coef_binaryname, 64, "TAS2XXX%04X.bin",
+	scnprintf(tas_priv->coef_binaryname, 64, "%sTAS2XXX%04X.bin", TAS2781_FIRMWARE_ROOT,
 		codec->core.subsystem_id & 0xffff);
 	ret = tasdevice_dsp_parser(tas_priv);
 	if (ret) {
diff --git a/sound/soc/codecs/tas2781-comlib.c b/sound/soc/codecs/tas2781-comlib.c
index 3aa81514dad7..96fe1b855ec9 100644
--- a/sound/soc/codecs/tas2781-comlib.c
+++ b/sound/soc/codecs/tas2781-comlib.c
@@ -277,7 +277,7 @@  int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
 	 */
 	mutex_lock(&tas_priv->codec_lock);
 
-	scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
+	scnprintf(tas_priv->rca_binaryname, 64, "%s%sRCA%d.bin", TAS2781_FIRMWARE_ROOT,
 		tas_priv->dev_name, tas_priv->ndev);
 	crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
 	tas_priv->codec = codec;