Re: pxa i2c unit busy caused unrecoverable phone hang problem

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

 



Hi Ben Dooks,

Thanks very much for your excellent reply.  ;-)

2009/5/4 Ben Dooks <ben-linux@xxxxxxxxx>:
> On Mon, Apr 27, 2009 at 11:32:26PM +0800, ?????? wrote:
>> Hi,
>>
>> As a compromise,we hope make the phone system free to run even the i2c
>> subsystem become busy already.Then there maybe time to choose some
>> useful way to solve that. The console can not input when phone hang
>> now.
>>
>> So we try to make the sleep time in i2c layer long enough,but the
>> result not well,because there are many threads waiting for i2c bus
>> operation.The key threads such as serial console could not get chance
>> to run,or cannot interact with user timely.
>>
>> Anyone could give a hand about this?
>
> Generally, if you're increasing sleep times, then you've either got
> an electrical issue with the bus, or there is a device on there which
> is causing the bus to be slowed down.
>
> Firstly, electrical issues:
>
> 1) Verify by measuring the clock pulses on the bus that it is
>   running at the rate you expcet it to be. It can be very
>   embarasing stating that your bus is 100KHz, when your hardware
>   engineer's scope is saying 100Hz.
>
> 2) Are the rise times on either of SCL or SCA excessive? The bus
>   relies on something pulling these lines inactive, and if there
>   is either insufficient pull-up resitance (4.7 - 10K for 100KHz
>   is iirc recommend) or too much capacitance then the bus can be
>   held up waiting for these signals to reach inactive after they
>   have been asserted
>
> 3) Are all the chips soldered on correctly and in the correct
>   orientation?
>
> 4) Has the board been tested and known to work?
>

Yeah,it works most of the time.And i2c unit become busy very random.

> 5) Get a logic analyser and watch the traffic, look for how long
>   it takes to complete a transaction and how often they are being
>   issued.
>
>

I would ask our hardware engineers for help about your other good suggestions.

> Another issue is are there any 'soft' devices on the bus, such as
> a power management microcontroller. If there are any devices that
> have (or have to) have firmware to work, do they have the correct
> firmware and has this firmware been verified to work?

No,we donot.
>
> My last real PXA work was ~2.6.9, but it was working fine then. I
> currently don't have any PXA devices with working kernels to do
> any testing of a current kernel.
Thanks again.  :-)

--Yize

>
>> Thanks in advance again.
>>
>> --Yize
>>
>> 2009/4/27 ?????? <wxc200@xxxxxxxxx>
>> >
>> > thanks your reply ,Jean and Mike
>> >
>> > Winston Churchill ??- "The best argument against democracy is a five-minute conversation with the average voter."
>> >
>> > 2009/4/27 Mike Rapoport <mike@xxxxxxxxxxxxxx>
>> >>
>> >>
>> >> Jean Delvare wrote:
>> >> > On Mon, 27 Apr 2009 15:57:45 +0800, ?????? wrote:
>> >> >> We use Marvell's pxaXXX chip,and the i2c unit often become BUSY status .As
>> >> >> normal operation,the Unit-Busy will become free quickly,but sometimes
>> >> >> UNIT-BUSY forever.For there are very frequent i2c operations,the cell-phone
>> >> >> become hang soon,nothing could be done but remove the battery and reboot.
>> >> >>
>> >> >> So could you give a suggestion? ??Is there any useful way to protect from
>> >> >> entering this abnormal UNIT-BUSY i2c status or recover from that?
>> >>
>> >> PXA I2C controller often reports BUSY when one of the I2C lines are held low.
>> >> Verify you have proper pull-ups and that devices connected to I2C bus behave in
>> >> a sane way.
>> >
>> > Yes,we do.The unrecoverable problem is UNIT-BUSY,we still be confused by the root cause.Now we guess there are two types of answers:
>> >
>> > 1) Another master left I2C busy in abnormal status after operation
>> > 2) Protocol conflict violation caused by messages transfer,such as the?? too large?? message or wrong operation.Most of the time,I2C works fine.
>> >
>> > We thought there would be some reset mechasim in that bad situation,but not.
>> > There are many threads waiting for the mutex lock while the current operating one is trying,trying,and trying,,,but I2C Unit Busy block all.
>> >
>> > -- Yize
>> >>
>> >> > I don't know anything about PXA platforms, there's nothing I can do for
>> >> > you, sorry.
>> >> >
>> >>
>> >> --
>> >> Sincerely yours,
>> >> Mike.
>> >>
>> >
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> --
> Ben (ben@xxxxxxxxx, http://www.fluff.org/)
>
>  'a smiley only costs 4 bytes'
>
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux