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 |
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 --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");
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(-)