Re: Nokia N900 - audio TPA6130A2 problems

Pali Rohár
2015-08-03T18:17:50Z

[-- Attachment #1: Type: Text/Plain, Size: 3675 bytes --]

On Monday 03 August 2015 20:03:16 Jarkko Nikula wrote:
> Hi
>
> On 08/01/2015 01:18 PM, Pali Rohár wrote:
> > On Saturday 25 July 2015 15:17:13 Lars-Peter Clausen wrote:
> >> On 07/25/2015 12:28 PM, Pali Rohár wrote:
> >>> Hello,
> >>>
> >>> sometimes after rebooting Nokia N900 initializing alsa audio
> >>> fails. Here output from dmesg log when it happen:
> >>>
> >>> [ 6.925140] tpa6130a2 2-0060: Write failed
> >>> [ 6.929534] tpa6130a2 2-0060: Failed to initialize chip
> >>> [ 6.935272] tpa6130a2: probe of 2-0060 failed with error -121
> >>> [ 7.624237] rx51-audio n900-audio: Failed to add TPA6130A2
> >>> controls [ 7.635101] rx51-audio n900-audio: ASoC: failed to
> >>> init TLV320AIC34: -19 [ 7.645874] rx51-audio n900-audio: ASoC:
> >>> failed to instantiate card -19 [ 7.665740] rx51-audio
> >>> n900-audio: snd_soc_register_card failed (-19) [ 8.063049]
> >>> ALSA device list:
> >>> [ 8.070343] No soundcards found.
> >>>
> >>> Any idea what to do?
> >>
> >> Looks like the chip is not responding. Try to add a small delay
> >> after powerup to give the device to be fully ready, something
> >> like the following:
> >>
> >> --- a/sound/soc/codecs/tpa6130a2.c
> >> +++ b/sound/soc/codecs/tpa6130a2.c
> >> @@ -152,6 +152,8 @@ static int tpa6130a2_power(u8 power)
> >>
> >> if (data->power_gpio >= 0)
> >>
> >> gpio_set_value(data->power_gpio, 1);
> >>
> >> + msleep(5);
> >> +
> >>
> >> data->power_state = 1;
> >> ret = tpa6130a2_initialize();
> >> if (ret < 0) {
> >
> > Hello, your patch did not helped. Problem is still there...
>
> For me v4.2-rc5 works, i.e. TPA6130A2 can still play loudly to
> headphones. Don't know were there any i2c etc regression before it or
> how easy it would be to reproduce.
>

Did you tested it on Nokia N900? Or other device?

> Logs below made me thinking can it be a HW issue? Although if it is
> an HW issue it shouldn't work sometimes I guess. Do you have any
> earlier well known configuration you could try is it an SW
> regression or something else?
>

Stock Nokia's 2.6.28 kernel works always. With that kernel I have never
seen this problem. So I do not think this is HW problem.

This problem is there in more kernel versions, maybe in some older (like
v3.5) is was there not so often. But do not remember correctly...

> > [ 5.962585] tpa6130a2 2-0060: Write failed
> > [ 5.962707] tpa6130a2 2-0060: Failed to initialize chip
> > [ 5.962860] tpa6130a2: probe of 2-0060 failed with error -121
>
> -121 == EREMOTEIO which is returned from i2c-omap.c when there is no
> ACK from the chip.
>

Maybe some power management problem? Something is not always initialized
correctly?

I remember that there is some problem (maybe in NoLo - Nokia bootloader)
that sometimes chainloaded U-Boot (booted via NoLo) is not able to
initialize mmc chip (all read operation fails). In U-Boot I added some
code to enable some parts in twl4030 regulator and after that mmc is
working always...

So maybe something similar? Kernel expects that some PM or regulator
parts are initialized, but they are only sometimes? Just speculation...

> > [ 28.102233] omap_i2c 48072000.i2c: controller timed out
> > [ 29.463653] lp5523x 2-0032: lp5523 Programmable led chip found
> > [ 30.734191] omap_i2c 48072000.i2c: controller timed out waiting
> > for start condition to finish [ 32.142333] i2c i2c-2: SCL is
> > stuck low, exit recovery
>
> If SCL is really stuck it also explains why chip doesn't acknowledge.

--
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]