summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorAdam Brickman <Adam.Brickman@cirrus.com>2019-12-04 21:04:53 -0600
committerAlexander Deucher <alexander.deucher@amd.com>2021-09-01 00:00:59 -0400
commit5e94d2185f6ba9e0d6358d07888c66acd6d1460b (patch)
tree3e193b3316a3b3111dbc3e0a2e5fba7d9b46e1dd /sound
parent54997727e69174a11a5b3cd540095dcf4816cdba (diff)
ASoC: cs35l41: Fix various mutex init / destroy issues
* Remove duplicate mutex init that is handled in the base cs35l41.c file. * Add mutex_destroy() calls as appropriate in cs35l41_remove(). Signed-off-by: Adam Brickman <Adam.Brickman@cirrus.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/cs35l41-i2c.c2
-rw-r--r--sound/soc/codecs/cs35l41-spi.c1
-rw-r--r--sound/soc/codecs/cs35l41.c3
3 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/codecs/cs35l41-i2c.c b/sound/soc/codecs/cs35l41-i2c.c
index 19843bd1f894..82f6cf7e5f02 100644
--- a/sound/soc/codecs/cs35l41-i2c.c
+++ b/sound/soc/codecs/cs35l41-i2c.c
@@ -71,8 +71,6 @@ static int cs35l41_i2c_probe(struct i2c_client *client,
if (cs35l41 == NULL)
return -ENOMEM;
- mutex_init(&cs35l41->rate_lock);
-
cs35l41->dev = dev;
cs35l41->irq = client->irq;
cs35l41->bus_spi = false;
diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
index 8d72df73bd21..47189c112b5a 100644
--- a/sound/soc/codecs/cs35l41-spi.c
+++ b/sound/soc/codecs/cs35l41-spi.c
@@ -67,7 +67,6 @@ static int cs35l41_spi_probe(struct spi_device *spi)
if (cs35l41 == NULL)
return -ENOMEM;
- mutex_init(&cs35l41->rate_lock);
spi_set_drvdata(spi, cs35l41);
cs35l41->regmap = devm_regmap_init_spi(spi, regmap_config);
diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c
index d6905310b7fb..c2efa1a0ea74 100644
--- a/sound/soc/codecs/cs35l41.c
+++ b/sound/soc/codecs/cs35l41.c
@@ -3531,9 +3531,12 @@ int cs35l41_remove(struct cs35l41_private *cs35l41)
{
destroy_workqueue(cs35l41->wq);
mutex_destroy(&cs35l41->hb_lock);
+ destroy_workqueue(cs35l41->vol_ctl.ramp_wq);
+ mutex_destroy(&cs35l41->vol_ctl.vol_mutex);
regmap_write(cs35l41->regmap, CS35L41_IRQ1_MASK1, 0xFFFFFFFF);
mutex_destroy(&cs35l41->force_int_lock);
wm_adsp2_remove(&cs35l41->dsp);
+ mutex_destroy(&cs35l41->rate_lock);
regulator_bulk_disable(cs35l41->num_supplies, cs35l41->supplies);
snd_soc_unregister_component(cs35l41->dev);
return 0;