spi:do spin_unlock before msg callback function, fix xpt_2046 bug as follow:
authorlyx <lyx@rock-chips.com>
Wed, 13 Oct 2010 01:22:17 +0000 (18:22 -0700)
committerlyx <lyx@rock-chips.com>
Wed, 13 Oct 2010 01:27:52 +0000 (18:27 -0700)
commit58a46b553c83380bf25104817890e16f55373b83
treeb62357ded212895f4a24fe3e0aef54cdcb9e5fc2
parent21fd68fdf1e3e1cda8bcb292b1711769a3ec1cbd
spi:do spin_unlock before msg callback function, fix xpt_2046 bug as follow:
 [ 344.540000] BUG: spinlock lockup on CPU#0, swapper/0, cd417880
[ 344.540000] [<c044e0bc>] (unwind_backtrace+0x0/0xdc) from [<c06f2a4c>] (dump_stack+0x18/0x1c)
[ 344.540000] [<c06f2a4c>] (dump_stack+0x18/0x1c) from [<c055a1a4>] (_raw_spin_lock+0x128/0x168)
[ 344.540000] [<c055a1a4>] (_raw_spin_lock+0x128/0x168) from [<c06f5fec>] (_spin_lock_irqsave+0x5c/0x68)
[ 344.540000] [<c06f5fec>] (_spin_lock_irqsave+0x5c/0x68) from [<c05b4b50>] (rk2818_spi_quick_transfer+0x30/0xb0)
[ 344.540000] [<c05b4b50>] (rk2818_spi_quick_transfer+0x30/0xb0) from [<c05b21d8>] (spi_async+0xa4/0xb0)
[ 344.540000] [<c05b21d8>] (spi_async+0xa4/0xb0) from [<c05fa42c>] (xpt2046_rx_val+0xd4/0x110)
[ 344.540000] [<c05fa42c>] (xpt2046_rx_val+0xd4/0x110) from [<c05b3470>] (msg_giveback+0x6c/0x70)
[ 344.540000] [<c05b3470>] (msg_giveback+0x6c/0x70) from [<c05b46a0>] (rk2818_pump_messages+0x568/0x598)
[ 344.540000] [<c05b46a0>] (rk2818_pump_messages+0x568/0x598) from [<c05b4bbc>] (rk2818_spi_quick_transfer+0x9c/0xb0)
[ 344.540000] [<c05b4bbc>] (rk2818_spi_quick_transfer+0x9c/0xb0) from [<c05b21d8>] (spi_async+0xa4/0xb0)
[ 344.540000] [<c05b21d8>] (spi_async+0xa4/0xb0) from [<c05fa548>] (xpt2046_timer+0xe0/0x120)
[ 344.540000] [<c05fa548>] (xpt2046_timer+0xe0/0x120) from [<c047cc24>] (__run_hrtimer+0x90/0xec)
[ 344.540000] [<c047cc24>] (__run_hrtimer+0x90/0xec) from [<c047cf64>] (hrtimer_interrupt+0x198/0x218)
[ 344.540000] [<c047cf64>] (hrtimer_interrupt+0x198/0x218) from [<c04527c4>] (rk2818_timer_clockevent_interrupt+0x28/0x34)
[ 344.540000] [<c04527c4>] (rk2818_timer_clockevent_interrupt+0x28/0x34) from [<c049ba0c>] (handle_IRQ_event+0x2c/0xfc)
[ 344.540000] [<c049ba0c>] (handle_IRQ_event+0x2c/0xfc) from [<c049d908>] (handle_level_irq+0xbc/0x130)
[ 344.540000] [<c049d908>] (handle_level_irq+0xbc/0x130) from [<c0448070>] (asm_do_IRQ+0x70/0x8c)
[ 344.540000] [<c0448070>] (asm_do_IRQ+0x70/0x8c) from [<c0448ac8>] (__irq_svc+0x48/0xc0)
drivers/spi/rk2818_spim.c