* [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family
@ 2026-08-20 11:51 Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros Niranjan H Y
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Niranjan H Y @ 2026-08-20 11:51 UTC (permalink / raw)
To: linux-sound
Cc: linux-kernel, broonie, ckeepax, lgirdwood, perex, tiwai,
cezary.rojewski, peter.ujfalusi, yung-chuan.liao, kai.vehmanen,
pierre-louis.bossart, baojun.xu, shenghao-ding, sandeepk,
v-hampiholi, Niranjan H Y
* With component_name set in the codec_info_list DAI entries,
"amixer -D hw:<card> info" includes the 'spk' identifier for
each tac5xx2 speaker component. This allows userspace to
identify the speaker codec at runtime and enables UCM
card matching for the tac5xx2 family.
* Set component_name for the speaker, mic, and UAJ DAI
entries for all tac5xx2 family variants.
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com>
---
changes in v2:
- update dai's .component_name filed instead of manually
changing the card->component_name in rtd init
- update commit subject line
original patch:
https://lore.kernel.org/linux-sound/20260819053427.2277-2-niranjan.hy@ti.com/
---
sound/soc/sdw_utils/soc_sdw_utils.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/sdw_utils/soc_sdw_utils.c b/sound/soc/sdw_utils/soc_sdw_utils.c
index 8a07ba2a2..bce13e159 100644
--- a/sound/soc/sdw_utils/soc_sdw_utils.c
+++ b/sound/soc/sdw_utils/soc_sdw_utils.c
@@ -81,6 +81,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* speaker */
.direction = {true, false},
.dai_name = "tac5xx2-aif1",
+ .component_name = "tac5572",
.dai_type = SOC_SDW_DAI_TYPE_AMP,
.dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID},
.init = asoc_sdw_ti_amp_init,
@@ -94,6 +95,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* mic */
.direction = {false, true},
.dai_name = "tac5xx2-aif2",
+ .component_name = "tac5572",
.dai_type = SOC_SDW_DAI_TYPE_MIC,
.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_DMIC_DAI_ID},
.rtd_init = asoc_sdw_ti_dmic_rtd_init,
@@ -102,6 +104,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* UAJ */
.direction = {true, true},
.dai_name = "tac5xx2-aif3",
+ .component_name = "tac5572",
.dai_type = SOC_SDW_DAI_TYPE_JACK,
.dailink = {SOC_SDW_JACK_OUT_DAI_ID, SOC_SDW_JACK_IN_DAI_ID},
.controls = generic_jack_controls,
@@ -122,6 +125,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* speaker with IV sense feedback */
.direction = {true, true},
.dai_name = "tac5xx2-aif1",
+ .component_name = "tac5672",
.dai_type = SOC_SDW_DAI_TYPE_AMP,
.dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_AMP_IN_DAI_ID},
.init = asoc_sdw_ti_amp_init,
@@ -135,6 +139,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* mic */
.direction = {false, true},
.dai_name = "tac5xx2-aif2",
+ .component_name = "tac5672",
.dai_type = SOC_SDW_DAI_TYPE_MIC,
.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_DMIC_DAI_ID},
.rtd_init = asoc_sdw_ti_dmic_rtd_init,
@@ -143,6 +148,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* UAJ */
.direction = {true, true},
.dai_name = "tac5xx2-aif3",
+ .component_name = "tac5672",
.dai_type = SOC_SDW_DAI_TYPE_JACK,
.dailink = {SOC_SDW_JACK_OUT_DAI_ID, SOC_SDW_JACK_IN_DAI_ID},
.controls = generic_jack_controls,
@@ -163,6 +169,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* speaker with echo reference feedback */
.direction = {true, true},
.dai_name = "tac5xx2-aif1",
+ .component_name = "tac5682",
.dai_type = SOC_SDW_DAI_TYPE_AMP,
.dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_AMP_IN_DAI_ID},
.init = asoc_sdw_ti_amp_init,
@@ -176,6 +183,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* mic */
.direction = {false, true},
.dai_name = "tac5xx2-aif2",
+ .component_name = "tac5682",
.dai_type = SOC_SDW_DAI_TYPE_MIC,
.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_DMIC_DAI_ID},
.rtd_init = asoc_sdw_ti_dmic_rtd_init,
@@ -184,6 +192,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* UAJ */
.direction = {true, true},
.dai_name = "tac5xx2-aif3",
+ .component_name = "tac5682",
.dai_type = SOC_SDW_DAI_TYPE_JACK,
.dailink = {SOC_SDW_JACK_OUT_DAI_ID, SOC_SDW_JACK_IN_DAI_ID},
.controls = generic_jack_controls,
@@ -203,6 +212,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
{
.direction = {true, false},
.dai_name = "tac5xx2-aif1",
+ .component_name = "tas2883",
.dai_type = SOC_SDW_DAI_TYPE_AMP,
.dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID},
.init = asoc_sdw_ti_amp_init,
@@ -216,6 +226,7 @@ struct asoc_sdw_codec_info codec_info_list[] = {
/* mic */
.direction = {false, true},
.dai_name = "tac5xx2-aif2",
+ .component_name = "tas2883",
.dai_type = SOC_SDW_DAI_TYPE_MIC,
.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_DMIC_DAI_ID},
.rtd_init = asoc_sdw_ti_dmic_rtd_init,
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros
2026-08-20 11:51 [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Niranjan H Y
@ 2026-08-20 11:51 ` Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 3/3] ASoC: tac5xx2-sdw: update default regmap registers Niranjan H Y
2026-08-21 21:42 ` [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Niranjan H Y @ 2026-08-20 11:51 UTC (permalink / raw)
To: linux-sound
Cc: linux-kernel, broonie, ckeepax, lgirdwood, perex, tiwai,
cezary.rojewski, peter.ujfalusi, yung-chuan.liao, kai.vehmanen,
pierre-louis.bossart, baojun.xu, shenghao-ding, sandeepk,
v-hampiholi, Niranjan H Y
Rename gain and volume macros to match the hardware intent. Currently,
both TAC_SDCA_CHANNEL_GAIN and TAC_SDCA_CHANNEL_VOLUME are defined as 0x02.
Keep only TAC_SDCA_CHANNEL_VOLUME and reposition TAC_SDCA_CHANNEL_GAIN to
0x0B. Remove the now-redundant TAC_SDCA_MASTER_GAIN alias (also 0x0B),
replacing its single use with TAC_SDCA_CHANNEL_GAIN.
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com>
---
changes in v2:
- newly added
---
sound/soc/codecs/tac5xx2-sdw.c | 48 +++++++++++++++++-----------------
sound/soc/codecs/tac5xx2.h | 5 ++--
2 files changed, 26 insertions(+), 27 deletions(-)
diff --git a/sound/soc/codecs/tac5xx2-sdw.c b/sound/soc/codecs/tac5xx2-sdw.c
index c062065a8..065e7d456 100644
--- a/sound/soc/codecs/tac5xx2-sdw.c
+++ b/sound/soc/codecs/tac5xx2-sdw.c
@@ -123,9 +123,9 @@ static const DECLARE_TLV_DB_SCALE(tac5xx2_dvc_tlv, -7200, 50, 0);
#define TAC_DOUBLE_Q78_TLV(name, func_id, ent_id) \
SDCA_DOUBLE_Q78_TLV(name, \
SDW_SDCA_CTL(TAC_FUNCTION_ID_##func_id, TAC_SDCA_ENT_##ent_id, \
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), \
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), \
SDW_SDCA_CTL(TAC_FUNCTION_ID_##func_id, TAC_SDCA_ENT_##ent_id, \
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), \
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), \
TAC_DVC_MIN, TAC_DVC_MAX, TAC_DVC_STEP, tac5xx2_dvc_tlv)
struct tac5xx2_prv {
@@ -385,33 +385,33 @@ static const struct reg_default tac_reg_default[] = {
static const struct reg_sequence tac_spk_seq[] = {
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU21,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU21,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
};
static const struct reg_sequence tac_sm_seq[] = {
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
};
static const struct reg_sequence tac_uaj_seq[] = {
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU36,
- TAC_SDCA_CHANNEL_GAIN, TAC_JACK_MONO_CS), 0),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_JACK_MONO_CS), 0),
};
static bool tac_volatile_reg(struct device *dev, unsigned int reg)
@@ -468,25 +468,25 @@ static int tac_sdca_mbq_size(struct device *dev, unsigned int reg)
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU21,
TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_MASTER_GAIN, 0):
+ TAC_SDCA_CHANNEL_GAIN, 0):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_LEFT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_RIGHT):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT):
case SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU36,
- TAC_SDCA_CHANNEL_GAIN, TAC_JACK_MONO_CS):
+ TAC_SDCA_CHANNEL_VOLUME, TAC_JACK_MONO_CS):
return 2;
default:
@@ -531,7 +531,7 @@ static const struct snd_kcontrol_new tac_uaj_controls[] = {
TAC_DOUBLE_Q78_TLV("UAJ Playback Volume", UAJ, FU41),
SDCA_SINGLE_Q78_TLV("UAJ Capture Volume",
SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU36,
- TAC_SDCA_CHANNEL_GAIN, TAC_JACK_MONO_CS),
+ TAC_SDCA_CHANNEL_VOLUME, TAC_JACK_MONO_CS),
TAC_DVC_MIN, TAC_DVC_MAX, TAC_DVC_STEP, tac5xx2_dvc_tlv),
};
diff --git a/sound/soc/codecs/tac5xx2.h b/sound/soc/codecs/tac5xx2.h
index eed8e6cf3..a84c5ca51 100644
--- a/sound/soc/codecs/tac5xx2.h
+++ b/sound/soc/codecs/tac5xx2.h
@@ -174,14 +174,13 @@
#define TAC_SDCA_ENT_SAPU29 0x35
/* Control selector definitions */
-#define TAC_SDCA_MASTER_GAIN 0x0B
#define TAC_SDCA_MASTER_MUTE 0x01
#define TAC_SDCA_CHANNEL_MUTE 0x01
-#define TAC_SDCA_CHANNEL_GAIN 0x02
+#define TAC_SDCA_CHANNEL_VOLUME 0x02
#define TAC_SDCA_POSTURENUMBER 0x10
#define TAC_SDCA_REQUESTED_PS 0x01
#define TAC_SDCA_ACTUAL_PS 0x10
-#define TAC_SDCA_CHANNEL_VOLUME 0x02
+#define TAC_SDCA_CHANNEL_GAIN 0x0B
/* 2. smart mic function */
#define TAC_FUNCTION_ID_SM 0x2
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 3/3] ASoC: tac5xx2-sdw: update default regmap registers
2026-08-20 11:51 [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros Niranjan H Y
@ 2026-08-20 11:51 ` Niranjan H Y
2026-08-21 21:42 ` [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Niranjan H Y @ 2026-08-20 11:51 UTC (permalink / raw)
To: linux-sound
Cc: linux-kernel, broonie, ckeepax, lgirdwood, perex, tiwai,
cezary.rojewski, peter.ujfalusi, yung-chuan.liao, kai.vehmanen,
pierre-louis.bossart, baojun.xu, shenghao-ding, sandeepk,
v-hampiholi, Niranjan H Y
* At boot time, when the registers are accessed by asoc
layer while trying to enable a DAPM path, while the device
is still being attached, -EBUSY error will be thown by
regmap_read and regmap_udpate_bits. Because the regmap will
be in cache only mode. Add default values for these registers
so that, the cached values are returned instead of error.
* Also remove writing default values once again for first
attach.
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com>
---
Changes in V2:
- sorted the default registers
- original patch:
https://lore.kernel.org/linux-sound/20260819053427.2277-1-niranjan.hy@ti.com/
---
sound/soc/codecs/tac5xx2-sdw.c | 88 ++++++++++++++++++----------------
1 file changed, 46 insertions(+), 42 deletions(-)
diff --git a/sound/soc/codecs/tac5xx2-sdw.c b/sound/soc/codecs/tac5xx2-sdw.c
index 065e7d456..a5f654cde 100644
--- a/sound/soc/codecs/tac5xx2-sdw.c
+++ b/sound/soc/codecs/tac5xx2-sdw.c
@@ -55,6 +55,12 @@
#define TAC_XU_BYPASS_REG(func, xu) \
SDW_SDCA_CTL(TAC_FUNCTION_ID_##func, TAC_SDCA_ENT_##xu, \
TAC_SDCA_CTL_XU_BYPASS, 0)
+#define TAC_VOLUME_REG(func, fu, ch) \
+ SDW_SDCA_CTL(TAC_FUNCTION_ID_##func, TAC_SDCA_ENT_##fu, \
+ TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_##ch)
+#define TAC_GAIN_REG(func, fu, ch) \
+ SDW_SDCA_CTL(TAC_FUNCTION_ID_##func, TAC_SDCA_ENT_##fu, \
+ TAC_SDCA_CHANNEL_GAIN, TAC_CHANNEL_##ch)
/* mute registers */
#define FU21_L_MUTE_REG TAC_MUTE_REG(SA, FU21, LEFT)
@@ -381,6 +387,46 @@ static const struct reg_default tac_reg_default[] = {
{TAC_REG_SDW(0, 1, 0x71), 0x5},
{TAC_REG_SDW(0, 1, 0x72), 0x6},
{TAC_REG_SDW(0, 1, 0x73), 0x7},
+ /* SA */
+ {TAC_MUTE_REG(SA, FU21, LEFT), 0x1},
+ {TAC_MUTE_REG(SA, FU21, RIGHT), 0x1},
+ {TAC_VOLUME_REG(SA, FU21, LEFT), 0x9c00},
+ {TAC_VOLUME_REG(SA, FU21, RIGHT), 0x9c00},
+ {TAC_MUTE_REG(SA, FU23, LEFT), 0x1},
+ {TAC_MUTE_REG(SA, FU23, RIGHT), 0x1},
+ {TAC_GAIN_REG(SA, FU23, LEFT), 0x0},
+ {TAC_GAIN_REG(SA, FU23, RIGHT), 0x0},
+ /* SM */
+ {TAC_USAGE_REG(SM, IT11), 0x0},
+ {TAC_USAGE_REG(SM, OT113), 0x0},
+ {TAC_MUTE_REG(SM, FU113, LEFT), 0x1},
+ {TAC_MUTE_REG(SM, FU113, RIGHT), 0x1},
+ {TAC_GAIN_REG(SM, FU113, LEFT), 0x0},
+ {TAC_GAIN_REG(SM, FU113, RIGHT), 0x0},
+ {TAC_MUTE_REG(SM, FU11, LEFT), 0x1},
+ {TAC_MUTE_REG(SM, FU11, RIGHT), 0x1},
+ {TAC_GAIN_REG(SM, FU11, LEFT), 0x0},
+ {TAC_GAIN_REG(SM, FU11, RIGHT), 0x0},
+ {TAC_XU_BYPASS_REG(SM, XU12), 0x1},
+ {SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_CS113,
+ TAC_SDCA_CTL_CS_SAMP_RATE_IDX, 0), 0x0},
+ /* UAJ */
+ {TAC_USAGE_REG(UAJ, IT33), 0x0},
+ {TAC_USAGE_REG(UAJ, IT41), 0x0},
+ {TAC_USAGE_REG(UAJ, OT36), 0x0},
+ {TAC_USAGE_REG(UAJ, OT45), 0x0},
+ {TAC_MUTE_REG(UAJ, FU41, LEFT), 0x1},
+ {TAC_MUTE_REG(UAJ, FU41, RIGHT), 0x1},
+ {TAC_VOLUME_REG(UAJ, FU41, LEFT), 0x0},
+ {TAC_VOLUME_REG(UAJ, FU41, RIGHT), 0x0},
+ {TAC_MUTE_REG(UAJ, FU36, RIGHT), 0x1},
+ {SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU36,
+ TAC_SDCA_CHANNEL_VOLUME, TAC_JACK_MONO_CS), 0x0},
+ {TAC_XU_BYPASS_REG(UAJ, XU42), 0x0},
+ {SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_CS36,
+ TAC_SDCA_CTL_CS_SAMP_RATE_IDX, 0), 0x0},
+ {SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_CS41,
+ TAC_SDCA_CTL_CS_SAMP_RATE_IDX, 0), 0x0},
};
static const struct reg_sequence tac_spk_seq[] = {
@@ -388,30 +434,6 @@ static const struct reg_sequence tac_spk_seq[] = {
TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU21,
TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SA, TAC_SDCA_ENT_FU23,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
-};
-
-static const struct reg_sequence tac_sm_seq[] = {
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU113,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_SM, TAC_SDCA_ENT_FU11,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
-};
-
-static const struct reg_sequence tac_uaj_seq[] = {
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_LEFT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU41,
- TAC_SDCA_CHANNEL_VOLUME, TAC_CHANNEL_RIGHT), 0),
- REG_SEQ0(SDW_SDCA_CTL(TAC_FUNCTION_ID_UAJ, TAC_SDCA_ENT_FU36,
- TAC_SDCA_CHANNEL_VOLUME, TAC_JACK_MONO_CS), 0),
};
static bool tac_volatile_reg(struct device *dev, unsigned int reg)
@@ -1761,16 +1783,6 @@ static int tac_io_init(struct device *dev, struct sdw_slave *slave, bool first)
goto io_init_err;
}
dev_dbg(dev, "smartmic init done\n");
-
- if (first) {
- ret = regmap_multi_reg_write(tac_dev->regmap, tac_sm_seq,
- ARRAY_SIZE(tac_sm_seq));
- if (ret) {
- dev_err(tac_dev->dev,
- "init writes failed, err=%d", ret);
- goto io_init_err;
- }
- }
}
if (tac_dev->uaj_func_data) {
@@ -1783,14 +1795,6 @@ static int tac_io_init(struct device *dev, struct sdw_slave *slave, bool first)
dev_dbg(dev, "uaj init done\n");
if (first) {
- ret = regmap_multi_reg_write(tac_dev->regmap, tac_uaj_seq,
- ARRAY_SIZE(tac_uaj_seq));
- if (ret) {
- dev_err(tac_dev->dev,
- "init writes failed, err=%d", ret);
- goto io_init_err;
- }
-
if (tac_dev->hs_jack) {
ret = tac5xx2_jack_init(tac_dev);
if (ret) {
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family
2026-08-20 11:51 [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 3/3] ASoC: tac5xx2-sdw: update default regmap registers Niranjan H Y
@ 2026-08-21 21:42 ` Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2026-08-21 21:42 UTC (permalink / raw)
To: linux-sound, Niranjan H Y
Cc: linux-kernel, ckeepax, lgirdwood, perex, tiwai, cezary.rojewski,
peter.ujfalusi, yung-chuan.liao, kai.vehmanen,
pierre-louis.bossart, baojun.xu, shenghao-ding, sandeepk,
v-hampiholi
On Thu, 20 Aug 2026 17:21:12 +0530, Niranjan H Y wrote:
> ASoC: sdw_utils: Set component_name for tac5xx2 codec family
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.3
Thanks!
[1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family
https://git.kernel.org/broonie/sound/c/9d4843ac81d1
[2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros
https://git.kernel.org/broonie/sound/c/04145998fa20
[3/3] ASoC: tac5xx2-sdw: update default regmap registers
https://git.kernel.org/broonie/sound/c/cf82dd2183cb
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-24 10:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-20 11:51 [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 2/3] ASoC: tac5xx2-sdw: Rename gain and volume macros Niranjan H Y
2026-08-20 11:51 ` [PATCH v2 3/3] ASoC: tac5xx2-sdw: update default regmap registers Niranjan H Y
2026-08-21 21:42 ` [PATCH v2 1/3] ASoC: sdw_utils: Set component_name for tac5xx2 codec family Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox