CHROMIUM: drm/tegra: Fix the spinlock wrong CPU warning

We should not use mutex inside a critical area protected by
spinlock because mutex may sleep.

This patch uses spinlock instead of mutex so that it fixes
a kernel warning like this:

[  117.366428] BUG: spinlock wrong CPU on CPU#1, DrmThread/1265
[  117.366510]  lock: 0xed80795c, .magic: dead4ead, .owner:
DrmThread/1265, .owner_cpu: 0
[  117.366544] CPU: 1 PID: 1265 Comm: DrmThread Tainted: G        WC
3.10.18 #1
[  117.366609] [<c020cf9c>] (unwind_backtrace+0x0/0x110) from
[<c020a08c>] (show_stack+0x20/0x24)
[  117.366645] [<c020a08c>] (show_stack+0x20/0x24) from [<c074db10>]
(dump_stack+0x20/0x28)
[  117.366694] [<c074db10>] (dump_stack+0x20/0x28) from [<c041b234>]
(spin_dump+0x80/0x94)
[  117.366726] [<c041b234>] (spin_dump+0x80/0x94) from [<c041b274>]
(spin_bug+0x2c/0x30)
[  117.366754] [<c041b274>] (spin_bug+0x2c/0x30) from [<c041b51c>]
(do_raw_spin_unlock+0x94/0xd4)
[  117.366786] [<c041b51c>] (do_raw_spin_unlock+0x94/0xd4) from
[<c0751e64>] (_raw_spin_unlock_irqrestore+0x1c/0x24)
[  117.366825] [<c0751e64>] (_raw_spin_unlock_irqrestore+0x1c/0x24) from
[<c04ead00>] (tegra_dc_page_flip+0x90/0xa0)
[  117.366872] [<c04ead00>] (tegra_dc_page_flip+0x90/0xa0) from
[<c04dbd84>] (drm_mode_page_flip_ioctl+0x244/0x300)
[  117.366907] [<c04dbd84>] (drm_mode_page_flip_ioctl+0x244/0x300) from
[<c04cd120>] (drm_ioctl+0x348/0x4d8)
[  117.366950] [<c04cd120>] (drm_ioctl+0x348/0x4d8) from [<c0312740>]
(do_vfs_ioctl+0x4a8/0x5bc)
[  117.366982] [<c0312740>] (do_vfs_ioctl+0x4a8/0x5bc) from [<c03128c4>]
(SyS_ioctl+0x70/0xa8)
[  117.367014] [<c03128c4>] (SyS_ioctl+0x70/0xa8) from [<c020618c>]
(__sys_trace_return+0x0/0x14)

BUG=chrome-os-partner:59117
TEST=Kernel spinlock warning disappears

Change-Id: I77b836af04e19c4963f5ec7a0ec2a55ff8ad3d78
Signed-off-by: Mark Zhang <markz@gpartner-nvidia.com>
Reviewed-on: https://chromium-review.googlesource.com/404534
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
2 files changed