Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Stanislav Brabec
Igor Grinberg wrote:

> Stanislav,
> Can't you define a fixed voltage regulator for the ads7846 in spitz board 
> file?
> This shouldn't be a hard task and is the right solution from the regulator 
> API POV.

Yes, I can.

ADS7846 needs more definitions in the platform file to work well on
spitz. The current platform definition is not sufficient and pointer
noise makes it unusable (e. g. 100 pixels jumps). I am comparing Lineo's
2.4 code with 2.6 algorithm and experimenting to get the best results.

-- 


Stanislav Brabec
http://www.penguin.cz/~utx


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Igor Grinberg


On 06/30/11 21:01, Mark Brown wrote:
> On Thu, Jun 30, 2011 at 08:40:40PM +0300, Igor Grinberg wrote:
>> On 06/30/11 19:13, Stanislav Brabec wrote:
>
>>>  I seen two
>>> proposals:
>>> - As ADS7846 hardware does not require dedicated regulator, don't
>>>   require it in driver and fail only on platforms that have a dedicated
>>>   regulator.
>> The thing is that ads7846 chip itself just requires power supply
> Right, and the regulator API hides the non-switchability of the supply
> from the driver so there's no need for the driver to worry about how the
> supplies are wired up.  It just turns the regulator on when it needs it
> and turns it off when it doesn't.
>
 1) add regulator definition for ads7846 into the board file
>>> There is no dedicated regulator on spitz, ADS7846 uses common always-on
>>> power supply.
>> Is there a kind of regulator for this case (except dummy)?
>> Some kind of fixed regulator which is not binded to any supply?
> This is just a fixed voltage regulator, support for that has been in the
> kernel since the regulator API was merged.  This is the best solution,
> it ensures that you don't mistakenly activate dummy reglators for
> supplies that really need software control.

Right, just as I thought (I still haven't made myself familiar with all the
regulator API aspects).

Stanislav,
Can't you define a fixed voltage regulator for the ads7846 in spitz board file?
This shouldn't be a hard task and is the right solution from the regulator API 
POV.


-- 
Regards,
Igor.


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Mark Brown
On Thu, Jun 30, 2011 at 08:40:40PM +0300, Igor Grinberg wrote:
> On 06/30/11 19:13, Stanislav Brabec wrote:
> > Igor Grinberg wrote:

> >> I thought we've finished discussing the regulator issue...

> > The discussion ended without a fix (at least for spitz).

> Well, the discussion was mainly about how the regulator API should be used.
> The proposed patch, used the regulator API incorrectly.
> If I recall correctly, in the end of the discussion,
> Mark provided another option for configuring the regulator API,
> which is number 3 below.

The discussion ended with you guys having the three different options
that would work, you just need to use one of them.

> >  I seen two
> > proposals:
> > - As ADS7846 hardware does not require dedicated regulator, don't
> >   require it in driver and fail only on platforms that have a dedicated
> >   regulator.

> The thing is that ads7846 chip itself just requires power supply

Right, and the regulator API hides the non-switchability of the supply
from the driver so there's no need for the driver to worry about how the
supplies are wired up.  It just turns the regulator on when it needs it
and turns it off when it doesn't.

> >> 1) add regulator definition for ads7846 into the board file
> > There is no dedicated regulator on spitz, ADS7846 uses common always-on
> > power supply.

> Is there a kind of regulator for this case (except dummy)?
> Some kind of fixed regulator which is not binded to any supply?

This is just a fixed voltage regulator, support for that has been in the
kernel since the regulator API was merged.  This is the best solution,
it ensures that you don't mistakenly activate dummy reglators for
supplies that really need software control.

> > i2c i2c-1: Retrying transmission
> > i2c i2c-1: setting to bus master
> > i2c i2c-1: state:i2c_pxa_handler:981: ISR=0045, ICR=07e1, IBMR=00
> > i2c i2c-1: state:i2c_pxa_irq_txempty:932: ISR=0005, ICR=17ee, 
> > IBMR=00
> > i2c i2c-1: state:i2c_pxa_handler:981: ISR=0087, ICR=17e6, IBMR=00

This looks like you've got I2C I/O issues talking to something.

> > print_constraints: vcc_core range: 850 <--> 1600 mV at 1350 mV 
> > print_constraints: vcc_core range: 1100 mV 

This looks like there's two definitions for vcc_core.

___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Igor Grinberg
On 06/30/11 19:13, Stanislav Brabec wrote:

> Igor Grinberg wrote:
>> On 06/30/11 17:45, Stanislav Brabec wrote:
>> I want to
>>> add .needs_regulator bool to ads7846.c and send the patch again to the
>>> list.
>> Please, don't...
>> I thought we've finished discussing the regulator issue...
> The discussion ended without a fix (at least for spitz).

Well, the discussion was mainly about how the regulator API should be used.
The proposed patch, used the regulator API incorrectly.
If I recall correctly, in the end of the discussion,
Mark provided another option for configuring the regulator API,
which is number 3 below.

>  I seen two
> proposals:
> - As ADS7846 hardware does not require dedicated regulator, don't
>   require it in driver and fail only on platforms that have a dedicated
>   regulator.

The thing is that ads7846 chip itself just requires power supply
(as most of the peripheral chips), the one who decides if it will be switchable
is the board vendor and the vendor may use any source for the power supply.
It can be fixed, it can be some kind of discrete LDO or one of the power
supplies coming from the system PMIC.
The ads7846 driver provides the regulator functionality via the regulator API
and it is up to board code to provide the appropriate regulator definitions or
configure the regulator API so the ads7846 will function correctly.

> - Use dummy regulators for all platforms without dedicated ADS7846
>   regulator.

IMO, this is the right way.

>> 1) add regulator definition for ads7846 into the board file
> There is no dedicated regulator on spitz, ADS7846 uses common always-on
> power supply.

Mark,

Is there a kind of regulator for this case (except dummy)?
Some kind of fixed regulator which is not binded to any supply?

>> 2) enable the CONFIG_REGULATOR_DUMMY in your kernel configuration
>> 3) use regulator_use_dummy_regulator() call in the board file.
> OK, I will do 2 or 3. In the new kernel spitz has a regulator, but it is
> not related to ADS7846. And it is actually broken:
>
> I2C: i2c-0: PXA I2C adapter
> Resetting I2C Controller Unit
>  (null): i2c_pxa_abort: called in slave mode
> i2c i2c-1: adapter [pxa_i2c-i2c.1] registered
> i2c 1-000c: uevent
> isl6271a 1-000c: probe
> i2c i2c-1: master_xfer[0] R, addr=0x0c, len=1
> i2c i2c-1: setting to bus master
> i2c i2c-1: state:i2c_pxa_handler:981: ISR=0442, ICR=07e0, IBMR=03
> i2c i2c-1: state:i2c_pxa_irq_txempty:932: ISR=0002, ICR=07e0, IBMR=03
> i2c i2c-1: Retrying transmission
> i2c i2c-1: setting to bus master
> i2c i2c-1: state:i2c_pxa_handler:981: ISR=0045, ICR=07e1, IBMR=00
> i2c i2c-1: state:i2c_pxa_irq_txempty:932: ISR=0005, ICR=17ee, IBMR=00
> i2c i2c-1: state:i2c_pxa_handler:981: ISR=0087, ICR=17e6, IBMR=00
> print_constraints: vcc_core range: 850 <--> 1600 mV at 1350 mV 
> print_constraints: vcc_core range: 1100 mV 
> isl6271a 1-000c: Failed to set supply vcc_core
> isl6271a 1-000c: failed to register isl6271a
> isl6271a: probe of 1-000c failed with error -16
> i2c i2c-1: client [isl6271a] registered with bus id 1-000c
> I2C: i2c-1: PXA I2C adapter
> ...
> cpufreq: Didn't find vcc_core regulator

This looks like the regulator definitions for spitz are broken and need to be 
fixed.

-- 
Regards,
Igor.


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Igor Grinberg
On 06/30/11 17:45, Stanislav Brabec wrote:

> Marek Vasut wrote:
>> On Thursday, June 23, 2011 06:09:40 PM Stanislav Brabec wrote:
>>> Hallo.
>>>
>>> These Oops and kernel panic were observed on a Zaurus (spitz) machine
>>> (ARMv5, PXA270).
>> Looks similar to "Re: [PATCH v2] Input: Make ADS7846 independent on 
>> regulator"
> I don't see any trace in that thread. But yes, I was testing your patch
> from this thread. Without it, ADS7846 does not work on spitz (ADS7846
> does not have any dedicated regulator there). I want to
> add .needs_regulator bool to ads7846.c and send the patch again to the
> list.

Please, don't...
I thought we've finished discussing the regulator issue...

Instead of patching the driver and the platform data and the board file,
you should do _either_ of the following:
1) add regulator definition for ads7846 into the board file
2) enable the CONFIG_REGULATOR_DUMMY in your kernel configuration
3) use regulator_use_dummy_regulator() call in the board file.

Using either of the above, you will not need the patch for ads7846, only for 
the board file.


-- 
Regards,
Igor.


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Stanislav Brabec
Pavel Herrmann wrote:
> On Thursday, June 30, 2011 04:45:18 PM Stanislav Brabec wrote:
> > Then I tried to apply "[PATCH] MAX: Fix race condition causing NULL
>  
> > So I guess that MAX AC voltage reading (via SPI) was involved in an
> > incorrect moment and race happened there and your MAX race condition
> > fix fixes it.

> Are you using the first or second version of the patch? if the former, please 
> use v2 (sent a few days later), which has solved the same problem by using a 
> mutex instead of allocating message data on stack (which is not good for DMA)

I guess the second one with mutex.
This is my work-in-progress-mix patch:
http://www.penguin.cz/~utx/zaurus/feed/images/spitz/zImage-3.0.0-rc5+-spitz.diff

Several hours later, charging was turned on/off at least 1000 times
without any crash. So it seems that it was the correct race condition
fix.

> as for the backstory, this crash ocurrs when a short (measured in time spent) 
> message was enqueued after a long message, so that the short one finished 
> first 
> (the actual bug was present even if the long one finished first, but in that 
> case there was double complete() on the one completion instead of a NULL 
> dereference)

I guess that inserting of power supply initiates reading of voltages on
MAX. The long one may be touchscreen or LCD control.

-- 
Stanislav Brabec
http://www.penguin.cz/~utx


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Stanislav Brabec
Igor Grinberg wrote:
> On 06/30/11 17:45, Stanislav Brabec wrote:
> I want to
> > add .needs_regulator bool to ads7846.c and send the patch again to the
> > list.
> 
> Please, don't...
> I thought we've finished discussing the regulator issue...

The discussion ended without a fix (at least for spitz). I seen two
proposals:
- As ADS7846 hardware does not require dedicated regulator, don't
  require it in driver and fail only on platforms that have a dedicated
  regulator.
- Use dummy regulators for all platforms without dedicated ADS7846
  regulator.

>1) add regulator definition for ads7846 into the board file
There is no dedicated regulator on spitz, ADS7846 uses common always-on
power supply.

>2) enable the CONFIG_REGULATOR_DUMMY in your kernel configuration
>3) use regulator_use_dummy_regulator() call in the board file.

OK, I will do 2 or 3. In the new kernel spitz has a regulator, but it is
not related to ADS7846. And it is actually broken:

I2C: i2c-0: PXA I2C adapter
Resetting I2C Controller Unit
 (null): i2c_pxa_abort: called in slave mode
i2c i2c-1: adapter [pxa_i2c-i2c.1] registered
i2c 1-000c: uevent
isl6271a 1-000c: probe
i2c i2c-1: master_xfer[0] R, addr=0x0c, len=1
i2c i2c-1: setting to bus master
i2c i2c-1: state:i2c_pxa_handler:981: ISR=0442, ICR=07e0, IBMR=03
i2c i2c-1: state:i2c_pxa_irq_txempty:932: ISR=0002, ICR=07e0, IBMR=03
i2c i2c-1: Retrying transmission
i2c i2c-1: setting to bus master
i2c i2c-1: state:i2c_pxa_handler:981: ISR=0045, ICR=07e1, IBMR=00
i2c i2c-1: state:i2c_pxa_irq_txempty:932: ISR=0005, ICR=17ee, IBMR=00
i2c i2c-1: state:i2c_pxa_handler:981: ISR=0087, ICR=17e6, IBMR=00
print_constraints: vcc_core range: 850 <--> 1600 mV at 1350 mV 
print_constraints: vcc_core range: 1100 mV 
isl6271a 1-000c: Failed to set supply vcc_core
isl6271a 1-000c: failed to register isl6271a
isl6271a: probe of 1-000c failed with error -16
i2c i2c-1: client [isl6271a] registered with bus id 1-000c
I2C: i2c-1: PXA I2C adapter
...
cpufreq: Didn't find vcc_core regulator

-- 
Stanislav Brabec
http://www.penguin.cz/~utx


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Mark Brown
On Thu, Jun 30, 2011 at 06:25:51PM +0300, Igor Grinberg wrote:
> On 06/30/11 17:45, Stanislav Brabec wrote:

> > from this thread. Without it, ADS7846 does not work on spitz (ADS7846
> > does not have any dedicated regulator there). I want to
> > add .needs_regulator bool to ads7846.c and send the patch again to the
> > list.

> Please, don't...
> I thought we've finished discussing the regulator issue...

> Instead of patching the driver and the platform data and the board file,
> you should do _either_ of the following:
> 1) add regulator definition for ads7846 into the board file
> 2) enable the CONFIG_REGULATOR_DUMMY in your kernel configuration
> 3) use regulator_use_dummy_regulator() call in the board file.

> Using either of the above, you will not need the patch for ads7846, only for 
> the board file.

Yes, we've been through this repeatedly.  None of these options take any
appreciable time to implement, it'd be much more productive to just do
so.

___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Pavel Herrmann
On Thursday, June 30, 2011 04:45:18 PM Stanislav Brabec wrote:
> Then I tried to apply "[PATCH] MAX: Fix race condition causing NULL
> pointer exception", connected charger that periodically disconnects and
> not seen the crash again. No OOPS was seen after ~100 reconnects.
> 
> So I guess that MAX AC voltage reading (via SPI) was involved in an
> incorrect moment and race happened there and your MAX race condition
> fix fixes it.

Hi,

Are you using the first or second version of the patch? if the former, please 
use v2 (sent a few days later), which has solved the same problem by using a 
mutex instead of allocating message data on stack (which is not good for DMA)

as for the backstory, this crash ocurrs when a short (measured in time spent) 
message was enqueued after a long message, so that the short one finished first 
(the actual bug was present even if the long one finished first, but in that 
case there was double complete() on the one completion instead of a NULL 
dereference)

Pavel

___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Marek Vasut
On Thursday, June 30, 2011 04:45:18 PM Stanislav Brabec wrote:
> Marek Vasut wrote:
> > On Thursday, June 23, 2011 06:09:40 PM Stanislav Brabec wrote:
> > > Hallo.
> > > 
> > > These Oops and kernel panic were observed on a Zaurus (spitz) machine
> > > (ARMv5, PXA270).
> > 
> > Looks similar to "Re: [PATCH v2] Input: Make ADS7846 independent on
> > regulator"
> 
> I don't see any trace in that thread. But yes, I was testing your patch
> from this thread. Without it, ADS7846 does not work on spitz (ADS7846
> does not have any dedicated regulator there). I want to
> add .needs_regulator bool to ads7846.c and send the patch again to the
> list.
> 
> After sending the trace I was able to reproduced it several times by
> attaching of external charger.
> 
> Then I tried to apply "[PATCH] MAX: Fix race condition causing NULL
> pointer exception", connected charger that periodically disconnects and
> not seen the crash again. No OOPS was seen after ~100 reconnects.
> 
> So I guess that MAX AC voltage reading (via SPI) was involved in an
> incorrect moment and race happened there and your MAX race condition
> fix fixes it.

It's not mine, it's from Pavel Herrmann actually ;-)

But yes, it's likely either this or the regulator stuff again (which I believed 
was fixed).

___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Stanislav Brabec
Marek Vasut wrote:
> On Thursday, June 23, 2011 06:09:40 PM Stanislav Brabec wrote:
> > Hallo.
> > 
> > These Oops and kernel panic were observed on a Zaurus (spitz) machine
> > (ARMv5, PXA270).
> 
> Looks similar to "Re: [PATCH v2] Input: Make ADS7846 independent on regulator"

I don't see any trace in that thread. But yes, I was testing your patch
from this thread. Without it, ADS7846 does not work on spitz (ADS7846
does not have any dedicated regulator there). I want to
add .needs_regulator bool to ads7846.c and send the patch again to the
list.

After sending the trace I was able to reproduced it several times by
attaching of external charger.

Then I tried to apply "[PATCH] MAX: Fix race condition causing NULL
pointer exception", connected charger that periodically disconnects and
not seen the crash again. No OOPS was seen after ~100 reconnects.

So I guess that MAX AC voltage reading (via SPI) was involved in an
incorrect moment and race happened there and your MAX race condition
fix fixes it.

-- 
Stanislav Brabec
http://www.penguin.cz/~utx


___
Zaurus-devel mailing list
Zaurus-devel@lists.linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel


Re: [Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-30 Thread Marek Vasut
On Thursday, June 23, 2011 06:09:40 PM Stanislav Brabec wrote:
> Hallo.
> 
> These Oops and kernel panic were observed on a Zaurus (spitz) machine
> (ARMv5, PXA270).

Looks similar to "Re: [PATCH v2] Input: Make ADS7846 independent on regulator"

CCing previously involved people, I'd like to see their opinion.
> 
> Kernel version: config-3.0.0-rc4+ (2992c4b)
> 
> Unable to handle kernel NULL pointer dereference at virtual address
>  pgd = c0004000
> [] *pgd=
> Internal error: Oops: 17 [#1] PREEMPT
> Modules linked in: uinput g_ether cryptomgr aead arc4 crypto_algapi
> rt2800usb rt2800lib rt2x00usb rt2x00lib mac80211 cfg80211 sg pcmciamtd
> mousedev snd_soc_wm8750 snd_soc_pxa2xx_i2s snd_soc_core ohci_hcd usbcore
> pxa27x_udc physmap snd_pcm_oss snd_pcm snd_timer snd_page_alloc
> snd_mixer_oss snd soundcore rfcomm pxaficp_ir ircomm_tty ircomm irda ipv6
> hidp hid bluetooth rfkill crc16 CPU: 0Not tainted  (3.0.0-rc4+ #5)
> PC is at complete+0x28/0x7c
> LR is at complete+0x28/0x7c
> pc : []lr : []psr: 8093
> sp : c3897b68  ip : c3897b68  fp : c3897b84
> r10: c4806000  r9 : c381f3e0  r8 : 000a
> r7 : c30f0da8  r6 :   r5 :   r4 : a013
> r3 : c3896000  r2 :   r1 : 0103  r0 : 0004
> Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: 397f  Table: a080c000  DAC: 0017
> Process kswapd0 (pid: 270, stack limit = 0xc3896278)
> Stack: (0xc3897b68 to 0xc3898000)
> 7b60:    c3808158 c3808158 c30f0da8 c3897b94
> c3897b88 7b80: c01e9b0c c0036b50 c3897bb4 c3897b98 c01eac2c c01e9b08
> c3808158 c388e220 7ba0: c30f0df8 c30f0da8 c3897bf4 c3897bb8 c01eb60c
> c01eab24  0010 7bc0:   0001 c03b3f00
> c039b5d4  0103 000a 7be0: 0006  c3897c14
> c3897bf8 c0044924 c01eb4dc c0044894 c3896000 7c00: 0001 c03b3f3c
> c3897c4c c3897c18 c0044eb8 c00448a0  c38046c0 7c20: c3897c44
> 0010  0010 0002 0001 c3896000  7c40:
> c3897c5c c3897c50 c00453a0 c0044e2c c3897c74 c3897c60 c002406c c0045360
> 7c60:  c3897cac c3897cfc c3897c78 c0024b84 c002400c 4022d320
> 4022e000 7c80: 0875 1000 c32273c0 c03ce1c0 c2b49b78 4022d000
> c2b420b4 0001 7ca0:  c3897cfc  c3897cc0 c00afc54
> c002edd8 0013  7cc0:  c0447550 0002 c32273f4
> c3897d3c c2b49b78 c3897d3c  7ce0: c341fbec 0003 0001
> c03ce1c0 c3897d84 c3897d00 c00affd8 c00afb9c 7d00: c00af774 c003505c
>  c03ce1c0  c341fc10 c03ce1c0  7d20: c30d0c28
> c3897d50 c341fc10 c3897e44 c3897d9c c341fbec c00b09cc c3be9308 7d40:
> 0080   c341fc00 0074 0074  c03ce1c0
> 7d60: c03ce1c0 c3897f44 c341fbec 0003 0001 c3897e44 c3897d9c
> c3897d88 7d80: c00b07ac c00aff4c 0001 c03ce1d8 c3897e2c c3897da0
> c009b940 c00b0778 7da0: 0001 c03acfc8   c3896000
>  c04032a0 c04032c0 7dc0: c040cc20 c040cc40 c040cc60 c040cc80
> c3897e2c c3897de0 c009a908 c009a7c0 7de0: c0403220 c03bbd14 c3897e54
> c03ce198 c03cec38 c3897df4 c3897df4  7e00:  c03acfc8
> c3897f44 0020 0020 000c c3896000 0001 7e20: c3897e7c
> c3897e30 c009c448 c009b6a4   0001 c3897e38 7e40:
> c3897e40 c04445d8 c03ce1f8 0020  0020 c03acfc8 0002
> 7e60: c3897f44 0020 000c 0001 c3897f04 c3897e80 c009c8f8
> c009c23c 7e80: 0001 0014 c3897f44 0020 c3897f44 000c
> c03ad224 c03ad228 7ea0:   0001 0003 c3897ecc
>    7ec0: 0020 c3897ed0 0056 
> 18c9  c03acfc8 c03acfc8 7ee0:  c03acfc8 c03acfc8
>  000c  c3897fbc c3897f08 7f00: c009ceb0 c009c580
>  c039af90 c3897fbc  c03acfc8 c3897f84 7f20: 
> c3897f8c 0001 c3896000  2f2e   7f40:
> 184c1a27 0048    00d0 0001 0001
> 7f60: 0001 003c  0003   00d0
>  7f80: c0059f8c c3897f84 c3897f84  c3897fbc c3825f38
> c03acfc8 c009ca20 7fa0: 0013    c3897ff4
> c3897fc0 c0059be0 c009ca2c 7fc0: c3825f38  c03acfc8 
> c3897fd0 c3897fd0  c3825f38 7fe0: c0059b50 c00258d8 
> c3897ff8 c00258d8 c0059b5c   []
> (complete+0x28/0x7c) from [] (spi_complete+0x10/0x14)
> [] (spi_complete+0x10/0x14) from []
> (giveback+0x114/0x12c) [] (giveback+0x114/0x12c) from
> [] (pump_transfers+0x13c/0x6f8) []
> (pump_transfers+0x13c/0x6f8) from [] (tasklet_action+0x90/0xf0)
> [] (tasklet_action+0x90/0xf0) from []
> (__do_softirq+0x98/0x138) [] (__do_softirq+0x98/0x138) from
> [] (irq_exit+0x4c/0xa8) [] (irq_exit+0x4c/0xa8) from
> [] (asm_do_IRQ+0x6c/0x8c) [] (asm_do_IRQ+0x6c/0x8c)
> from [] (__irq_svc+0x44/0xcc) Exception stack(0xc3897c78 to
> 0xc3897cc0)

[Zaurus-devel] kernel panic in spi_complete() on spitz (PXA270)

2011-06-23 Thread Stanislav Brabec
Hallo.

These Oops and kernel panic were observed on a Zaurus (spitz) machine
(ARMv5, PXA270).

Kernel version: config-3.0.0-rc4+ (2992c4b)

Unable to handle kernel NULL pointer dereference at virtual address 
pgd = c0004000
[] *pgd=
Internal error: Oops: 17 [#1] PREEMPT
Modules linked in: uinput g_ether cryptomgr aead arc4 crypto_algapi rt2800usb 
rt2800lib rt2x00usb rt2x00lib mac80211 cfg80211 sg pcmciamtd mousedev 
snd_soc_wm8750 snd_soc_pxa2xx_i2s snd_soc_core ohci_hcd usbcore pxa27x_udc 
physmap snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd 
soundcore rfcomm pxaficp_ir ircomm_tty ircomm irda ipv6 hidp hid bluetooth 
rfkill crc16
CPU: 0Not tainted  (3.0.0-rc4+ #5)
PC is at complete+0x28/0x7c
LR is at complete+0x28/0x7c
pc : []lr : []psr: 8093
sp : c3897b68  ip : c3897b68  fp : c3897b84
r10: c4806000  r9 : c381f3e0  r8 : 000a
r7 : c30f0da8  r6 :   r5 :   r4 : a013
r3 : c3896000  r2 :   r1 : 0103  r0 : 0004
Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 397f  Table: a080c000  DAC: 0017
Process kswapd0 (pid: 270, stack limit = 0xc3896278)
Stack: (0xc3897b68 to 0xc3898000)
7b60:    c3808158 c3808158 c30f0da8 c3897b94 c3897b88
7b80: c01e9b0c c0036b50 c3897bb4 c3897b98 c01eac2c c01e9b08 c3808158 c388e220
7ba0: c30f0df8 c30f0da8 c3897bf4 c3897bb8 c01eb60c c01eab24  0010
7bc0:   0001 c03b3f00 c039b5d4  0103 000a
7be0: 0006  c3897c14 c3897bf8 c0044924 c01eb4dc c0044894 c3896000
7c00: 0001 c03b3f3c c3897c4c c3897c18 c0044eb8 c00448a0  c38046c0
7c20: c3897c44 0010  0010 0002 0001 c3896000 
7c40: c3897c5c c3897c50 c00453a0 c0044e2c c3897c74 c3897c60 c002406c c0045360
7c60:  c3897cac c3897cfc c3897c78 c0024b84 c002400c 4022d320 4022e000
7c80: 0875 1000 c32273c0 c03ce1c0 c2b49b78 4022d000 c2b420b4 0001
7ca0:  c3897cfc  c3897cc0 c00afc54 c002edd8 0013 
7cc0:  c0447550 0002 c32273f4 c3897d3c c2b49b78 c3897d3c 
7ce0: c341fbec 0003 0001 c03ce1c0 c3897d84 c3897d00 c00affd8 c00afb9c
7d00: c00af774 c003505c  c03ce1c0  c341fc10 c03ce1c0 
7d20: c30d0c28 c3897d50 c341fc10 c3897e44 c3897d9c c341fbec c00b09cc c3be9308
7d40: 0080   c341fc00 0074 0074  c03ce1c0
7d60: c03ce1c0 c3897f44 c341fbec 0003 0001 c3897e44 c3897d9c c3897d88
7d80: c00b07ac c00aff4c 0001 c03ce1d8 c3897e2c c3897da0 c009b940 c00b0778
7da0: 0001 c03acfc8   c3896000  c04032a0 c04032c0
7dc0: c040cc20 c040cc40 c040cc60 c040cc80 c3897e2c c3897de0 c009a908 c009a7c0
7de0: c0403220 c03bbd14 c3897e54 c03ce198 c03cec38 c3897df4 c3897df4 
7e00:  c03acfc8 c3897f44 0020 0020 000c c3896000 0001
7e20: c3897e7c c3897e30 c009c448 c009b6a4   0001 c3897e38
7e40: c3897e40 c04445d8 c03ce1f8 0020  0020 c03acfc8 0002
7e60: c3897f44 0020 000c 0001 c3897f04 c3897e80 c009c8f8 c009c23c
7e80: 0001 0014 c3897f44 0020 c3897f44 000c c03ad224 c03ad228
7ea0:   0001 0003 c3897ecc   
7ec0: 0020 c3897ed0 0056  18c9  c03acfc8 c03acfc8
7ee0:  c03acfc8 c03acfc8  000c  c3897fbc c3897f08
7f00: c009ceb0 c009c580  c039af90 c3897fbc  c03acfc8 c3897f84
7f20:  c3897f8c 0001 c3896000  2f2e  
7f40: 184c1a27 0048    00d0 0001 0001
7f60: 0001 003c  0003   00d0 
7f80: c0059f8c c3897f84 c3897f84  c3897fbc c3825f38 c03acfc8 c009ca20
7fa0: 0013    c3897ff4 c3897fc0 c0059be0 c009ca2c
7fc0: c3825f38  c03acfc8  c3897fd0 c3897fd0  c3825f38
7fe0: c0059b50 c00258d8  c3897ff8 c00258d8 c0059b5c  
[] (complete+0x28/0x7c) from [] (spi_complete+0x10/0x14)
[] (spi_complete+0x10/0x14) from [] (giveback+0x114/0x12c)
[] (giveback+0x114/0x12c) from [] 
(pump_transfers+0x13c/0x6f8)
[] (pump_transfers+0x13c/0x6f8) from [] 
(tasklet_action+0x90/0xf0)
[] (tasklet_action+0x90/0xf0) from [] 
(__do_softirq+0x98/0x138)
[] (__do_softirq+0x98/0x138) from [] (irq_exit+0x4c/0xa8)
[] (irq_exit+0x4c/0xa8) from [] (asm_do_IRQ+0x6c/0x8c)
[] (asm_do_IRQ+0x6c/0x8c) from [] (__irq_svc+0x44/0xcc)
Exception stack(0xc3897c78 to 0xc3897cc0)
7c60:   4022d320 4022e000
7c80: 0875 1000 c32273c0 c03ce1c0 c2b49b78 4022d000 c2b420b4 0001
7ca0:  c3897cfc  c3897cc0 c00afc54 c002edd8 0013 
[] (__irq_svc+0x44/0xcc) from [] 
(xscale_flush_user_cache_range+0x18/0x3c)
[] (xscale_flush_user_cache_range+0x18/0x3c) from []