maple: input: fix up maple mouse driver
authorAdrian McMenamin <adrian@newgolddream.dyndns.info>
Sat, 25 Apr 2009 20:43:18 +0000 (20:43 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 27 Apr 2009 00:22:31 +0000 (09:22 +0900)
commit6b3480855aad6e22ca90981a4c7893a7f41ffb47
treeb75bc44c021af5c520b32dce738acff51347850e
parent40f4a6d522e68a0203ebefb57f3cbdac4a622169
maple: input: fix up maple mouse driver

The maple mouse driver currently in mainline is broken:

bash-3.1# modprobe maplemouse
[   56.886378] input: Dreamcast Mouse as /devices/virtual/input/input3
[   56.918379] Unable to handle kernel NULL pointer dereference at virtual address 00000004
[   56.930543] pc = c003304e
[   56.934973] *pde = 00000000
[   56.944948] Oops: 0000 [#1]
[   56.947867] Modules linked in: maplemouse(+)
[   56.952353]
[   56.953921] Pid : 1157, Comm: \0x09\0x09modprobe
[   56.958021] CPU : 0        \0x09\0x09Not tainted  (2.6.30-rc2-00130-g3e98f9f #1)
[   56.958052]
[   56.966567] PC is at dc_mouse_open+0xe/0x40 [maplemouse]
[   56.972125] PR is at input_open_device+0x8a/0xc0
[   56.976944] PC  : c003304e SP  : 8c88bdcc SR  : 40008100 TEA : c0033834
[   56.983854] R0  : 000006c4 R1  : 00000000 R2  : 40008101 R3  : 00000000
[   56.990744] R4  : 8c8db800 R5  : c0033080 R6  : 00000005 R7  : 00000200
[   56.997635] R8  : 8c8db800 R9  : 8c8dbe3c R10 : 00000000 R11 : 8c98881c
[   57.004525] R12 : 8c8dbe64 R13 : 8ca50140 R14 : 8c88bdd4
[   57.010063] MACH: 00000497 MACL: 00000348 GBR : 29674440 PR  : 8c1b4d0a
[   57.016939]
...

Here is a fix for this, keeping an open and close, so reducing
the load on the system when the mouse is not in use, and also properly
referencing the maple device buffer following the recent update.

Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/input/mouse/maplemouse.c