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

Re: ANN: apple motion sensor reverse engineered



Le mercredi 31 août 2005 à 01:01 +0200, Johannes Berg a écrit :
> On Fri, 2005-08-26 at 12:16 +0200, Stelian Pop wrote:
> 
> > An initial working implementation (_with_ interrupts) is available at:
> > 	http://www.popies.net/ams/
> 
> 
> Hmm. Just got
> # insmod ./ams.ko
> Aug 31 00:58:37 johannes kernel: Call trace:
> Aug 31 00:58:37 johannes kernel: [c0053d50] __report_bad_irq+0x30/0xc0
> Aug 31 00:58:37 johannes kernel: [c0053ebc] note_interrupt+0xdc/0x2a0
> Aug 31 00:58:37 johannes kernel: [c00537d4] __do_IRQ+0x164/0x170
> Aug 31 00:58:37 johannes kernel: [c0006414] do_IRQ+0x44/0xa0
> Aug 31 00:58:37 johannes kernel: [c0004f70] ret_from_except+0x0/0x14
> Aug 31 00:58:37 johannes kernel: [c0006e0c] __delay+0xc/0x14
> Aug 31 00:58:37 johannes kernel: [f26a97f0] ams_attach+0xb0/0x2e0 [ams]
> Aug 31 00:58:37 johannes kernel: [c01ef3e0] i2c_add_driver+0x120/0x180
> Aug 31 00:58:37 johannes kernel: [f263e23c] ams_init+0x23c/0x430 [ams]
> Aug 31 00:58:37 johannes kernel: [c003d238] sys_init_module+0x178/0x340
> Aug 31 00:58:37 johannes kernel: [c0004800] ret_from_syscall+0x0/0x44
> Aug 31 00:58:37 johannes kernel: Disabling IRQ #57
> Aug 31 00:58:37 johannes kernel: Call trace:
> Aug 31 00:58:37 johannes kernel: [c0053d50] __report_bad_irq+0x30/0xc0
> Aug 31 00:58:37 johannes kernel: [c0053ebc] note_interrupt+0xdc/0x2a0
> Aug 31 00:58:37 johannes kernel: [c00537d4] __do_IRQ+0x164/0x170
> Aug 31 00:58:37 johannes kernel: [c0006414] do_IRQ+0x44/0xa0
> Aug 31 00:58:37 johannes kernel: [c0004f70] ret_from_except+0x0/0x14
> Aug 31 00:58:37 johannes kernel: [c0006e0c] __delay+0xc/0x14
> Aug 31 00:58:37 johannes kernel: [f26a97f0] ams_attach+0xb0/0x2e0 [ams]
> Aug 31 00:58:37 johannes kernel: [c01ef3e0] i2c_add_driver+0x120/0x180
> Aug 31 00:58:37 johannes kernel: [f263e23c] ams_init+0x23c/0x430 [ams]
> Aug 31 00:58:37 johannes kernel: [c003d238] sys_init_module+0x178/0x340
> Aug 31 00:58:37 johannes kernel: [c0004800] ret_from_syscall+0x0/0x44
> Aug 31 00:58:37 johannes kernel: Disabling IRQ #58
> 
> 
> Cannot reproduce though, unloading and reloading fixed it.

Is this with 0.01 or 0.02 ?

IIRC, in 0.01 the request_irq call was a bit late and there was a tiny
time window when an interrupt could arrive before installing the
handler, thus causing the above kind of oops.

In the latest code, the request_irq() call is done very early, so this
shouldn't happen again.

Stelian.
-- 
Stelian Pop <stelian@popies.net>



Reply to: