]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoc: tas2781: Add name_prefix as the prefix name of firmwares and kcontrol to suppor...
authorShenghao Ding <shenghao-ding@ti.com>
Fri, 21 Jun 2024 13:23:07 +0000 (21:23 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 24 Jun 2024 12:38:34 +0000 (13:38 +0100)
Add name_prefix as the prefix name of firmwares and
kcontrol to support corresponding TAS2563/TAS2781s.
name_prefix is not mandatory.

Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Link: https://patch.msgid.link/20240621132309.564-1-shenghao-ding@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/tas2781.h
sound/soc/codecs/tas2781-comlib.c
sound/soc/codecs/tas2781-i2c.c

index 99ca3e401fd1fe36422a77a71eb87c26bbdaeacf..cd8ce522b78e21a90b85d6808070c78b06283acd 100644 (file)
@@ -108,6 +108,7 @@ struct tasdevice_priv {
        unsigned char coef_binaryname[64];
        unsigned char rca_binaryname[64];
        unsigned char dev_name[32];
+       const char *name_prefix;
        unsigned char ndev;
        unsigned int magic_num;
        unsigned int chip_id;
index 3aa81514dad76f319e3bd0fc86b1709855dde28c..6db1a260da82d65e9d64c4428157613ef4bc61ec 100644 (file)
@@ -1,8 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0
 //
-// tas2781-lib.c -- TAS2781 Common functions for HDA and ASoC Audio drivers
+// TAS2781 Common functions for HDA and ASoC Audio drivers
 //
-// Copyright 2023 Texas Instruments, Inc.
+// Copyright 2023 - 2024 Texas Instruments, Inc.
 //
 // Author: Shenghao Ding <shenghao-ding@ti.com>
 
@@ -277,8 +277,13 @@ 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",
-               tas_priv->dev_name, tas_priv->ndev);
+       if (tas_priv->name_prefix)
+               scnprintf(tas_priv->rca_binaryname, 64, "%s-%sRCA%d.bin",
+                       tas_priv->name_prefix, tas_priv->dev_name,
+                       tas_priv->ndev);
+       else
+               scnprintf(tas_priv->rca_binaryname, 64, "%sRCA%d.bin",
+                       tas_priv->dev_name, tas_priv->ndev);
        crc8_populate_msb(tas_priv->crc8_lkp_tbl, TASDEVICE_CRC8_POLYNOMIAL);
        tas_priv->codec = codec;
        ret = request_firmware_nowait(module, FW_ACTION_UEVENT,
index c64d458e524e2c6db93e720827eac7548a01afc4..4d1a0d836e773c9bff5292a15517f6b33900baca 100644 (file)
@@ -579,6 +579,7 @@ static int tasdevice_codec_probe(struct snd_soc_component *codec)
 {
        struct tasdevice_priv *tas_priv = snd_soc_component_get_drvdata(codec);
 
+       tas_priv->name_prefix = codec->name_prefix;
        return tascodec_init(tas_priv, codec, THIS_MODULE, tasdevice_fw_ready);
 }