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 |
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 >
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 >>
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 >
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 >>
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 --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;
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(-)