Skip to content

Commit bdd9ea9

Browse files
rfvirgiltiwai
authored andcommitted
ALSA: hda/hda_cs_dsp_ctl: Delete hda_cs_dsp_ctl module
Delete the hda_cs_dsp module and move the one array and one function that is used by the cs35l41_hda driver into that driver. The cs35l41 and cs35l56 drivers stopped creating ALSA controls to wrap firmware controls. The reasons are explained in: commit 312c04c ("ALSA: hda: cs35l41: Stop creating ALSA Controls for firmware coefficients") and commit 34e1b1b ("ALSA: hda: cs35l56: Stop creating ALSA controls for firmware coefficients") The cs35l56_hda driver now doesn't use hda_cs_dsp_ctl at all. The cs35l41_hda driver only uses the small array of firmware names and the function to read a control value. All other functions and data in hda_cs_dsp_ctl are unused. There is no need to keep a separate module for such a small amount of data and code that is only used by one driver, so remove the whole module. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://patch.msgid.link/20250424181214.66759-1-rf@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 889dbe6 commit bdd9ea9

File tree

7 files changed

+38
-314
lines changed

7 files changed

+38
-314
lines changed

MAINTAINERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5647,7 +5647,6 @@ F: include/sound/cs*
56475647
F: sound/pci/hda/cirrus*
56485648
F: sound/pci/hda/cs*
56495649
F: sound/pci/hda/hda_component*
5650-
F: sound/pci/hda/hda_cs_dsp_ctl.*
56515650
F: sound/soc/codecs/cs*
56525651

56535652
CIRRUS LOGIC HAPTIC DRIVERS

sound/pci/hda/Kconfig

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,6 @@ config SND_HDA_SCODEC_CS35L41
110110
select SND_HDA_GENERIC
111111
select REGMAP_IRQ
112112

113-
config SND_HDA_CS_DSP_CONTROLS
114-
tristate
115-
select FW_CS_DSP
116-
117113
config SND_HDA_SCODEC_COMPONENT
118114
tristate
119115

@@ -125,7 +121,6 @@ config SND_HDA_SCODEC_CS35L41_I2C
125121
depends on SND_SOC
126122
select SND_SOC_CS35L41_LIB
127123
select SND_HDA_SCODEC_CS35L41
128-
select SND_HDA_CS_DSP_CONTROLS
129124
select SND_SOC_CS_AMP_LIB
130125
help
131126
Say Y or M here to include CS35L41 I2C HD-audio side codec support
@@ -142,7 +137,6 @@ config SND_HDA_SCODEC_CS35L41_SPI
142137
depends on SND_SOC
143138
select SND_SOC_CS35L41_LIB
144139
select SND_HDA_SCODEC_CS35L41
145-
select SND_HDA_CS_DSP_CONTROLS
146140
select SND_SOC_CS_AMP_LIB
147141
help
148142
Say Y or M here to include CS35L41 SPI HD-audio side codec support
@@ -165,7 +159,6 @@ config SND_HDA_SCODEC_CS35L56_I2C
165159
select SND_SOC_CS35L56_SHARED
166160
select SND_HDA_SCODEC_CS35L56
167161
select SND_HDA_CIRRUS_SCODEC
168-
select SND_HDA_CS_DSP_CONTROLS
169162
select SND_SOC_CS_AMP_LIB
170163
help
171164
Say Y or M here to include CS35L56 amplifier support with
@@ -182,7 +175,6 @@ config SND_HDA_SCODEC_CS35L56_SPI
182175
select SND_SOC_CS35L56_SHARED
183176
select SND_HDA_SCODEC_CS35L56
184177
select SND_HDA_CIRRUS_SCODEC
185-
select SND_HDA_CS_DSP_CONTROLS
186178
select SND_SOC_CS_AMP_LIB
187179
help
188180
Say Y or M here to include CS35L56 amplifier support with

sound/pci/hda/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ snd-hda-scodec-cs35l41-spi-y := cs35l41_hda_spi.o
3737
snd-hda-scodec-cs35l56-y := cs35l56_hda.o
3838
snd-hda-scodec-cs35l56-i2c-y := cs35l56_hda_i2c.o
3939
snd-hda-scodec-cs35l56-spi-y := cs35l56_hda_spi.o
40-
snd-hda-cs-dsp-ctls-y := hda_cs_dsp_ctl.o
4140
snd-hda-scodec-component-y := hda_component.o
4241
snd-hda-scodec-tas2781-i2c-y := tas2781_hda_i2c.o
4342
snd-hda-scodec-tas2781-spi-y := tas2781_hda_spi.o tas2781_spi_fwlib.o
@@ -70,7 +69,6 @@ obj-$(CONFIG_SND_HDA_SCODEC_CS35L41_SPI) += snd-hda-scodec-cs35l41-spi.o
7069
obj-$(CONFIG_SND_HDA_SCODEC_CS35L56) += snd-hda-scodec-cs35l56.o
7170
obj-$(CONFIG_SND_HDA_SCODEC_CS35L56_I2C) += snd-hda-scodec-cs35l56-i2c.o
7271
obj-$(CONFIG_SND_HDA_SCODEC_CS35L56_SPI) += snd-hda-scodec-cs35l56-spi.o
73-
obj-$(CONFIG_SND_HDA_CS_DSP_CONTROLS) += snd-hda-cs-dsp-ctls.o
7472
obj-$(CONFIG_SND_HDA_SCODEC_COMPONENT) += snd-hda-scodec-component.o
7573
obj-$(CONFIG_SND_HDA_SCODEC_TAS2781_I2C) += snd-hda-scodec-tas2781-i2c.o
7674
obj-$(CONFIG_SND_HDA_SCODEC_TAS2781_SPI) += snd-hda-scodec-tas2781-spi.o

sound/pci/hda/cs35l41_hda.c

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "hda_generic.h"
2121
#include "hda_component.h"
2222
#include "cs35l41_hda.h"
23-
#include "hda_cs_dsp_ctl.h"
2423
#include "cs35l41_hda_property.h"
2524

2625
#define CS35L41_PART "cs35l41"
@@ -74,6 +73,21 @@ static const struct cirrus_amp_cal_controls cs35l41_calibration_controls = {
7473
.checksum = CAL_CHECKSUM_DSP_CTL_NAME,
7574
};
7675

76+
enum cs35l41_hda_fw_id {
77+
CS35L41_HDA_FW_SPK_PROT,
78+
CS35L41_HDA_FW_SPK_CALI,
79+
CS35L41_HDA_FW_SPK_DIAG,
80+
CS35L41_HDA_FW_MISC,
81+
CS35L41_HDA_NUM_FW
82+
};
83+
84+
static const char * const cs35l41_hda_fw_ids[CS35L41_HDA_NUM_FW] = {
85+
[CS35L41_HDA_FW_SPK_PROT] = "spk-prot",
86+
[CS35L41_HDA_FW_SPK_CALI] = "spk-cali",
87+
[CS35L41_HDA_FW_SPK_DIAG] = "spk-diag",
88+
[CS35L41_HDA_FW_MISC] = "misc",
89+
};
90+
7791
static bool firmware_autostart = 1;
7892
module_param(firmware_autostart, bool, 0444);
7993
MODULE_PARM_DESC(firmware_autostart, "Allow automatic firmware download on boot"
@@ -169,23 +183,23 @@ static int cs35l41_request_firmware_file(struct cs35l41_hda *cs35l41,
169183

170184
if (spkid > -1 && ssid && amp_name)
171185
*filename = kasprintf(GFP_KERNEL, "cirrus/%s-%s-%s-%s-spkid%d-%s.%s", CS35L41_PART,
172-
dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type],
186+
dsp_name, cs35l41_hda_fw_ids[cs35l41->firmware_type],
173187
ssid, spkid, amp_name, filetype);
174188
else if (spkid > -1 && ssid)
175189
*filename = kasprintf(GFP_KERNEL, "cirrus/%s-%s-%s-%s-spkid%d.%s", CS35L41_PART,
176-
dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type],
190+
dsp_name, cs35l41_hda_fw_ids[cs35l41->firmware_type],
177191
ssid, spkid, filetype);
178192
else if (ssid && amp_name)
179193
*filename = kasprintf(GFP_KERNEL, "cirrus/%s-%s-%s-%s-%s.%s", CS35L41_PART,
180-
dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type],
194+
dsp_name, cs35l41_hda_fw_ids[cs35l41->firmware_type],
181195
ssid, amp_name, filetype);
182196
else if (ssid)
183197
*filename = kasprintf(GFP_KERNEL, "cirrus/%s-%s-%s-%s.%s", CS35L41_PART,
184-
dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type],
198+
dsp_name, cs35l41_hda_fw_ids[cs35l41->firmware_type],
185199
ssid, filetype);
186200
else
187201
*filename = kasprintf(GFP_KERNEL, "cirrus/%s-%s-%s.%s", CS35L41_PART,
188-
dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type],
202+
dsp_name, cs35l41_hda_fw_ids[cs35l41->firmware_type],
189203
filetype);
190204

191205
if (*filename == NULL)
@@ -588,7 +602,7 @@ static int cs35l41_init_dsp(struct cs35l41_hda *cs35l41)
588602
}
589603

590604
ret = cs_dsp_power_up(dsp, wmfw_firmware, wmfw_filename, coeff_firmware, coeff_filename,
591-
hda_cs_dsp_fw_ids[cs35l41->firmware_type]);
605+
cs35l41_hda_fw_ids[cs35l41->firmware_type]);
592606
if (ret)
593607
goto err;
594608

@@ -1108,6 +1122,18 @@ static int cs35l41_runtime_resume(struct device *dev)
11081122
return ret;
11091123
}
11101124

1125+
static int cs35l41_hda_read_ctl(struct cs_dsp *dsp, const char *name, int type,
1126+
unsigned int alg, void *buf, size_t len)
1127+
{
1128+
int ret;
1129+
1130+
mutex_lock(&dsp->pwr_lock);
1131+
ret = cs_dsp_coeff_read_ctrl(cs_dsp_get_ctl(dsp, name, type, alg), 0, buf, len);
1132+
mutex_unlock(&dsp->pwr_lock);
1133+
1134+
return ret;
1135+
}
1136+
11111137
static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41)
11121138
{
11131139
unsigned int fw_status;
@@ -1137,7 +1163,7 @@ static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41)
11371163
goto clean_dsp;
11381164
}
11391165

1140-
ret = read_poll_timeout(hda_cs_dsp_read_ctl, ret,
1166+
ret = read_poll_timeout(cs35l41_hda_read_ctl, ret,
11411167
be32_to_cpu(halo_sts) == HALO_STATE_CODE_RUN,
11421168
1000, 15000, false, &cs35l41->cs_dsp, HALO_STATE_DSP_CTL_NAME,
11431169
HALO_STATE_DSP_CTL_TYPE, HALO_STATE_DSP_CTL_ALG,
@@ -1174,7 +1200,7 @@ static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41)
11741200
}
11751201

11761202
dev_info(cs35l41->dev, "Firmware Loaded - Type: %s, Gain: %d\n",
1177-
hda_cs_dsp_fw_ids[cs35l41->firmware_type], cs35l41->tuning_gain);
1203+
cs35l41_hda_fw_ids[cs35l41->firmware_type], cs35l41->tuning_gain);
11781204

11791205
return 0;
11801206

@@ -1276,7 +1302,7 @@ static int cs35l41_fw_type_ctl_put(struct snd_kcontrol *kcontrol,
12761302
{
12771303
struct cs35l41_hda *cs35l41 = snd_kcontrol_chip(kcontrol);
12781304

1279-
if (ucontrol->value.enumerated.item[0] < HDA_CS_DSP_NUM_FW) {
1305+
if (ucontrol->value.enumerated.item[0] < CS35L41_HDA_NUM_FW) {
12801306
if (cs35l41->firmware_type != ucontrol->value.enumerated.item[0]) {
12811307
cs35l41->firmware_type = ucontrol->value.enumerated.item[0];
12821308
return 1;
@@ -1290,7 +1316,7 @@ static int cs35l41_fw_type_ctl_put(struct snd_kcontrol *kcontrol,
12901316

12911317
static int cs35l41_fw_type_ctl_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
12921318
{
1293-
return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(hda_cs_dsp_fw_ids), hda_cs_dsp_fw_ids);
1319+
return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(cs35l41_hda_fw_ids), cs35l41_hda_fw_ids);
12941320
}
12951321

12961322
static int cs35l41_create_controls(struct cs35l41_hda *cs35l41)
@@ -1430,7 +1456,7 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
14301456

14311457
strscpy(comp->name, dev_name(dev), sizeof(comp->name));
14321458

1433-
cs35l41->firmware_type = HDA_CS_DSP_FW_SPK_PROT;
1459+
cs35l41->firmware_type = CS35L41_HDA_FW_SPK_PROT;
14341460

14351461
if (firmware_autostart) {
14361462
dev_dbg(cs35l41->dev, "Firmware Autostart.\n");
@@ -2055,7 +2081,6 @@ const struct dev_pm_ops cs35l41_hda_pm_ops = {
20552081
EXPORT_SYMBOL_NS_GPL(cs35l41_hda_pm_ops, "SND_HDA_SCODEC_CS35L41");
20562082

20572083
MODULE_DESCRIPTION("CS35L41 HDA Driver");
2058-
MODULE_IMPORT_NS("SND_HDA_CS_DSP_CONTROLS");
20592084
MODULE_IMPORT_NS("SND_SOC_CS_AMP_LIB");
20602085
MODULE_AUTHOR("Lucas Tanure, Cirrus Logic Inc, <tanureal@opensource.cirrus.com>");
20612086
MODULE_LICENSE("GPL");

sound/pci/hda/cs35l56_hda.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "cirrus_scodec.h"
2121
#include "cs35l56_hda.h"
2222
#include "hda_component.h"
23-
#include "hda_cs_dsp_ctl.h"
2423
#include "hda_generic.h"
2524

2625
/*
@@ -1118,7 +1117,6 @@ EXPORT_SYMBOL_NS_GPL(cs35l56_hda_pm_ops, "SND_HDA_SCODEC_CS35L56");
11181117
MODULE_DESCRIPTION("CS35L56 HDA Driver");
11191118
MODULE_IMPORT_NS("FW_CS_DSP");
11201119
MODULE_IMPORT_NS("SND_HDA_CIRRUS_SCODEC");
1121-
MODULE_IMPORT_NS("SND_HDA_CS_DSP_CONTROLS");
11221120
MODULE_IMPORT_NS("SND_SOC_CS35L56_SHARED");
11231121
MODULE_IMPORT_NS("SND_SOC_CS_AMP_LIB");
11241122
MODULE_AUTHOR("Richard Fitzgerald <rf@opensource.cirrus.com>");

0 commit comments

Comments
 (0)