Re: Nokia N900 - audio TPA6130A2 problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux