diff mbox series

[1/2] ASoC: tas2770: Fix calling reset in probe

Message ID 20200918161842.4451-1-dmurphy@ti.com (mailing list archive)
State Superseded
Headers show
Series [1/2] ASoC: tas2770: Fix calling reset in probe | expand

Commit Message

Dan Murphy Sept. 18, 2020, 4:18 p.m. UTC
tas2770_reset is called during i2c probe. The reset calls the
snd_soc_component_write which depends on the tas2770->component being
available. The component pointer is not set until codec_probe so move
the reset to the codec_probe after the pointer is set.

Fixes: 1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 sound/soc/codecs/tas2770.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Dan Murphy Sept. 18, 2020, 6:18 p.m. UTC | #1
All

On 9/18/20 11:18 AM, Dan Murphy wrote:
> tas2770_reset is called during i2c probe. The reset calls the
> snd_soc_component_write which depends on the tas2770->component being
> available. The component pointer is not set until codec_probe so move
> the reset to the codec_probe after the pointer is set.

I have been updating the tas2770 to add another device to the driver and 
I have quite a few unexpected patches on top of these.

I am not even sure how this driver is even working at the moment.

I will re-submit the complete set of patches as Mark pointed out in 
another email chain.

So please ignore these patches for now plus the DT binding patch.

Dan
diff mbox series

Patch

diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c
index c09851834395..03d7ad1885b8 100644
--- a/sound/soc/codecs/tas2770.c
+++ b/sound/soc/codecs/tas2770.c
@@ -575,6 +575,8 @@  static int tas2770_codec_probe(struct snd_soc_component *component)
 
 	tas2770->component = component;
 
+	tas2770_reset(tas2770);
+
 	return 0;
 }
 
@@ -771,8 +773,6 @@  static int tas2770_i2c_probe(struct i2c_client *client,
 	tas2770->channel_size = 0;
 	tas2770->slot_width = 0;
 
-	tas2770_reset(tas2770);
-
 	result = tas2770_register_codec(tas2770);
 	if (result)
 		dev_err(tas2770->dev, "Register codec failed.\n");