Browse Source

asoc: wcd937x: initialize micb lock mutex

Micb lock which is used to synchronize micbias
control api is not initialized causing spin lock
errors. Initialize the mutex to avoid the issue.

Change-Id: I580e52e1bd225c2d99bfba4657d80670296709a0
Signed-off-by: Ramprasad Katkam <[email protected]>
Ramprasad Katkam 6 years ago
parent
commit
e23066df2a
1 changed files with 2 additions and 0 deletions
  1. 2 0
      asoc/codecs/wcd937x/wcd937x.c

+ 2 - 0
asoc/codecs/wcd937x/wcd937x.c

@@ -2324,6 +2324,7 @@ static int wcd937x_bind(struct device *dev)
 	}
 	wcd937x->tx_swr_dev->slave_irq = wcd937x->virq;
 
+	mutex_init(&wcd937x->micb_lock);
 	ret = snd_soc_register_codec(dev, &soc_codec_dev_wcd937x,
 				     NULL, 0);
 	if (ret) {
@@ -2347,6 +2348,7 @@ static void wcd937x_unbind(struct device *dev)
 	wcd_irq_exit(&wcd937x->irq_info, wcd937x->virq);
 	snd_soc_unregister_codec(dev);
 	component_unbind_all(dev, wcd937x);
+	mutex_destroy(&wcd937x->micb_lock);
 }
 
 static const struct of_device_id wcd937x_dt_match[] = {