<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpio, branch v3.3.5</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>gpio/davinci: fix enabling unbanked GPIO IRQs</title>
<updated>2012-04-02T17:32:20+00:00</updated>
<author>
<name>Sekhar Nori</name>
<email>nsekhar@ti.com</email>
</author>
<published>2012-03-11T12:46:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e67144857714a198569d42587a880b913e1c4ea'/>
<id>6e67144857714a198569d42587a880b913e1c4ea</id>
<content type='text'>
commit 81b279d80a63628e580c71a31d30a8c3b3047ad4 upstream.

Unbanked GPIO IRQ handling code made a copy of just
the irq_chip structure for GPIO IRQ lines which caused
problems after the generic IRQ chip conversion because
there was no valid irq_chip_type structure with the
right "regs" populated. irq_gc_mask_set_bit() was
therefore accessing random addresses.

Fix it by making a copy of irq_chip_type structure
instead. This will ensure sane register offsets.

Reported-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Tested-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Signed-off-by: Sekhar Nori &lt;nsekhar@ti.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 81b279d80a63628e580c71a31d30a8c3b3047ad4 upstream.

Unbanked GPIO IRQ handling code made a copy of just
the irq_chip structure for GPIO IRQ lines which caused
problems after the generic IRQ chip conversion because
there was no valid irq_chip_type structure with the
right "regs" populated. irq_gc_mask_set_bit() was
therefore accessing random addresses.

Fix it by making a copy of irq_chip_type structure
instead. This will ensure sane register offsets.

Reported-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Tested-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Signed-off-by: Sekhar Nori &lt;nsekhar@ti.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/davinci: fix oops on unbanked gpio irq request</title>
<updated>2012-04-02T17:32:20+00:00</updated>
<author>
<name>Sekhar Nori</name>
<email>nsekhar@ti.com</email>
</author>
<published>2012-03-11T12:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fa58ba311e86cf7cf3e68a8f2c57f2e4e82eef89'/>
<id>fa58ba311e86cf7cf3e68a8f2c57f2e4e82eef89</id>
<content type='text'>
commit ab2dde9924dd1ddb791fa8b14aa52e1df681e20c upstream.

Unbanked GPIO irq setup code was overwriting chip_data leading
to the following oops on request_irq()

Unable to handle kernel paging request at virtual address febfffff
pgd = c22dc000
[febfffff] *pgd=00000000
Internal error: Oops: 801 [#1] PREEMPT
Modules linked in: mcu(+) edmak irqk cmemk
CPU: 0    Not tainted  (3.0.0-rc7+ #93)
PC is at irq_gc_mask_set_bit+0x68/0x7c
LR is at vprintk+0x22c/0x484
pc : [&lt;c0080c0c&gt;]    lr : [&lt;c00457e0&gt;]    psr: 60000093
sp : c33e3ba0  ip : c33e3af0  fp : c33e3bc4
r10: c04555bc  r9 : c33d4340  r8 : 60000013
r7 : 0000002d  r6 : c04555bc  r5 : fec67010  r4 : 00000000
r3 : c04734c8  r2 : fec00000  r1 : ffffffff  r0 : 00000026
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: 822dc000  DAC: 00000015
Process modprobe (pid: 526, stack limit = 0xc33e2270)
Stack: (0xc33e3ba0 to 0xc33e4000)
3ba0: 00000000 c007d3d4 c33e3bcc c04555bc c04555bc c33d4340 c33e3bdc c33e3bc8
3bc0: c007f5f8 c0080bb4 00000000 c04555bc c33e3bf4 c33e3be0 c007f654 c007f5c0
3be0: 00000000 c04555bc c33e3c24 c33e3bf8 c007e6e8 c007f618 c01f2284 c0350af8
3c00: c0405214 bf016c98 00000001 00000000 c33dc008 0000002d c33e3c54 c33e3c28
3c20: c007e888 c007e408 00000001 c23ef880 c33dc000 00000000 c33dc080 c25caa00
3c40: c0487498 bf017078 c33e3c94 c33e3c58 bf016b44 c007e7d4 bf017078 c33dc008
3c60: c25caa08 c33dc008 c33e3c84 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3c80: c0496d60 bf017484 c33e3ca4 c33e3c98 c022a698 bf01692c c33e3cd4 c33e3ca8
3ca0: c01f5d88 c022a688 00000000 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3cc0: c0496d60 00000000 c33e3cec c33e3cd8 c01f5f8c c01f5d10 00000000 c33e3cf0
3ce0: c33e3d14 c33e3cf0 c01f5210 c01f5f58 c303cb48 c25ecf94 c25caa00 c25caa00
3d00: c25caa34 c33e3dd8 c33e3d34 c33e3d18 c01f6044 c01f51b8 c0496d3c c25caa00
3d20: c044e918 c33e3dd8 c33e3d44 c33e3d38 c01f4ff4 c01f5fcc c33e3d94 c33e3d48
3d40: c01f3d10 c01f4fd8 00000000 c044e918 00000000 00000000 c01f52c0 c034d570
3d60: c33e3d84 c33e3d70 c022bf84 c25caa00 00000000 c044e918 c33e3dd8 c25c2e00
3d80: c0496d60 bf01763c c33e3db4 c33e3d98 c022b1a0 c01f384c c25caa00 c33e3dd8
3da0: 00000000 c33e3dd8 c33e3dd4 c33e3db8 c022b27c c022b0e8 00000000 bf01763c
3dc0: c0451c80 c33e3dd8 c33e3e34 c33e3dd8 bf016f60 c022b210 5f75636d 746e6f63
3de0: 006c6f72 00000000 00000000 00000000 00000000 00000000 00000000 bf0174bc
3e00: 00000000 00989680 00000000 00000020 c0451c80 c0451c80 bf0174dc c01f5eb0
3e20: c33f0f00 bf0174dc c33e3e44 c33e3e38 c01f72f4 bf016e2c c33e3e74 c33e3e48
3e40: c01f5d88 c01f72e4 00000000 c0451c80 c0451cb4 bf0174dc c01f5eb0 c33f0f00
3e60: c0473100 00000000 c33e3e94 c33e3e78 c01f5f44 c01f5d10 00000000 c33e3e98
3e80: bf0174dc c01f5eb0 c33e3ebc c33e3e98 c01f5534 c01f5ec0 c303c038 c3061c30
3ea0: 00003cd8 00098258 bf0174dc c0462ac8 c33e3ecc c33e3ec0 c01f5bec c01f54dc
3ec0: c33e3efc c33e3ed0 c01f4d30 c01f5bdc bf0173a0 c33e2000 00003cd8 00098258
3ee0: bf0174dc c33e2000 c00301a4 bf019000 c33e3f1c c33e3f00 c01f6588 c01f4c8c
3f00: 00003cd8 00098258 00000000 c33e2000 c33e3f2c c33e3f20 c01f777c c01f6524
3f20: c33e3f3c c33e3f30 bf019014 c01f7740 c33e3f7c c33e3f40 c002f3ec bf019010
3f40: 00000000 00003cd8 00098258 bf017518 00000000 00003cd8 00098258 bf017518
3f60: 00000000 c00301a4 c33e2000 00000000 c33e3fa4 c33e3f80 c007b934 c002f3c4
3f80: c00b307c c00b2f48 00003cd8 00000000 00000003 00000080 00000000 c33e3fa8
3fa0: c0030020 c007b8b8 00003cd8 00000000 00098288 00003cd8 00098258 00098240
3fc0: 00003cd8 00000000 00000003 00000080 00098008 00098028 00098288 00000001
3fe0: be892998 be892988 00013d7c 40178740 60000010 00098288 09089041 00200845
Backtrace:
[&lt;c0080ba4&gt;] (irq_gc_mask_set_bit+0x0/0x7c) from [&lt;c007f5f8&gt;] (irq_enable+0x48/0x58)
 r6:c33d4340 r5:c04555bc r4:c04555bc
[&lt;c007f5b0&gt;] (irq_enable+0x0/0x58) from [&lt;c007f654&gt;] (irq_startup+0x4c/0x54)
 r5:c04555bc r4:00000000
[&lt;c007f608&gt;] (irq_startup+0x0/0x54) from [&lt;c007e6e8&gt;] (__setup_irq+0x2f0/0x3cc)
 r5:c04555bc r4:00000000
[&lt;c007e3f8&gt;] (__setup_irq+0x0/0x3cc) from [&lt;c007e888&gt;] (request_threaded_irq+0xc4/0x110)
 r8:0000002d r7:c33dc008 r6:00000000 r5:00000001 r4:bf016c98
[&lt;c007e7c4&gt;] (request_threaded_irq+0x0/0x110) from [&lt;bf016b44&gt;] (mcu_spi_probe+0x228/0x37c [mcu])
[&lt;bf01691c&gt;] (mcu_spi_probe+0x0/0x37c [mcu]) from [&lt;c022a698&gt;] (spi_drv_probe+0x20/0x24)
[&lt;c022a678&gt;] (spi_drv_probe+0x0/0x24) from [&lt;c01f5d88&gt;] (driver_probe_device+0x88/0x1b0)
[&lt;c01f5d00&gt;] (driver_probe_device+0x0/0x1b0) from [&lt;c01f5f8c&gt;] (__device_attach+0x44/0x48)
[&lt;c01f5f48&gt;] (__device_attach+0x0/0x48) from [&lt;c01f5210&gt;] (bus_for_each_drv+0x68/0x94)
 r5:c33e3cf0 r4:00000000
[&lt;c01f51a8&gt;] (bus_for_each_drv+0x0/0x94) from [&lt;c01f6044&gt;] (device_attach+0x88/0xa0)
 r7:c33e3dd8 r6:c25caa34 r5:c25caa00 r4:c25caa00
[&lt;c01f5fbc&gt;] (device_attach+0x0/0xa0) from [&lt;c01f4ff4&gt;] (bus_probe_device+0x2c/0x4c)
 r7:c33e3dd8 r6:c044e918 r5:c25caa00 r4:c0496d3c
[&lt;c01f4fc8&gt;] (bus_probe_device+0x0/0x4c) from [&lt;c01f3d10&gt;] (device_add+0x4d4/0x648)
[&lt;c01f383c&gt;] (device_add+0x0/0x648) from [&lt;c022b1a0&gt;] (spi_add_device+0xc8/0x128)
[&lt;c022b0d8&gt;] (spi_add_device+0x0/0x128) from [&lt;c022b27c&gt;] (spi_new_device+0x7c/0xb4)
 r7:c33e3dd8 r6:00000000 r5:c33e3dd8 r4:c25caa00
[&lt;c022b200&gt;] (spi_new_device+0x0/0xb4) from [&lt;bf016f60&gt;] (mcu_probe+0x144/0x224 [mcu])
 r7:c33e3dd8 r6:c0451c80 r5:bf01763c r4:00000000
[&lt;bf016e1c&gt;] (mcu_probe+0x0/0x224 [mcu]) from [&lt;c01f72f4&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c01f72d4&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c01f5d88&gt;] (driver_probe_device+0x88/0x1b0)
[&lt;c01f5d00&gt;] (driver_probe_device+0x0/0x1b0) from [&lt;c01f5f44&gt;] (__driver_attach+0x94/0x98)
[&lt;c01f5eb0&gt;] (__driver_attach+0x0/0x98) from [&lt;c01f5534&gt;] (bus_for_each_dev+0x68/0x94)
 r7:c01f5eb0 r6:bf0174dc r5:c33e3e98 r4:00000000
[&lt;c01f54cc&gt;] (bus_for_each_dev+0x0/0x94) from [&lt;c01f5bec&gt;] (driver_attach+0x20/0x28)
 r7:c0462ac8 r6:bf0174dc r5:00098258 r4:00003cd8
[&lt;c01f5bcc&gt;] (driver_attach+0x0/0x28) from [&lt;c01f4d30&gt;] (bus_add_driver+0xb4/0x258)
[&lt;c01f4c7c&gt;] (bus_add_driver+0x0/0x258) from [&lt;c01f6588&gt;] (driver_register+0x74/0x158)
[&lt;c01f6514&gt;] (driver_register+0x0/0x158) from [&lt;c01f777c&gt;] (platform_driver_register+0x4c/0x60)
 r7:c33e2000 r6:00000000 r5:00098258 r4:00003cd8
[&lt;c01f7730&gt;] (platform_driver_register+0x0/0x60) from [&lt;bf019014&gt;] (mcu_init+0x14/0x20 [mcu])
[&lt;bf019000&gt;] (mcu_init+0x0/0x20 [mcu]) from [&lt;c002f3ec&gt;] (do_one_initcall+0x38/0x170)
[&lt;c002f3b4&gt;] (do_one_initcall+0x0/0x170) from [&lt;c007b934&gt;] (sys_init_module+0x8c/0x1a4)
[&lt;c007b8a8&gt;] (sys_init_module+0x0/0x1a4) from [&lt;c0030020&gt;] (ret_fast_syscall+0x0/0x2c)
 r7:00000080 r6:00000003 r5:00000000 r4:00003cd8
Code: e1844003 e585400c e596300c e5932064 (e7814002)

Fix the issue.

Reported-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Signed-off-by: Sekhar Nori &lt;nsekhar@ti.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ab2dde9924dd1ddb791fa8b14aa52e1df681e20c upstream.

Unbanked GPIO irq setup code was overwriting chip_data leading
to the following oops on request_irq()

Unable to handle kernel paging request at virtual address febfffff
pgd = c22dc000
[febfffff] *pgd=00000000
Internal error: Oops: 801 [#1] PREEMPT
Modules linked in: mcu(+) edmak irqk cmemk
CPU: 0    Not tainted  (3.0.0-rc7+ #93)
PC is at irq_gc_mask_set_bit+0x68/0x7c
LR is at vprintk+0x22c/0x484
pc : [&lt;c0080c0c&gt;]    lr : [&lt;c00457e0&gt;]    psr: 60000093
sp : c33e3ba0  ip : c33e3af0  fp : c33e3bc4
r10: c04555bc  r9 : c33d4340  r8 : 60000013
r7 : 0000002d  r6 : c04555bc  r5 : fec67010  r4 : 00000000
r3 : c04734c8  r2 : fec00000  r1 : ffffffff  r0 : 00000026
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: 822dc000  DAC: 00000015
Process modprobe (pid: 526, stack limit = 0xc33e2270)
Stack: (0xc33e3ba0 to 0xc33e4000)
3ba0: 00000000 c007d3d4 c33e3bcc c04555bc c04555bc c33d4340 c33e3bdc c33e3bc8
3bc0: c007f5f8 c0080bb4 00000000 c04555bc c33e3bf4 c33e3be0 c007f654 c007f5c0
3be0: 00000000 c04555bc c33e3c24 c33e3bf8 c007e6e8 c007f618 c01f2284 c0350af8
3c00: c0405214 bf016c98 00000001 00000000 c33dc008 0000002d c33e3c54 c33e3c28
3c20: c007e888 c007e408 00000001 c23ef880 c33dc000 00000000 c33dc080 c25caa00
3c40: c0487498 bf017078 c33e3c94 c33e3c58 bf016b44 c007e7d4 bf017078 c33dc008
3c60: c25caa08 c33dc008 c33e3c84 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3c80: c0496d60 bf017484 c33e3ca4 c33e3c98 c022a698 bf01692c c33e3cd4 c33e3ca8
3ca0: c01f5d88 c022a688 00000000 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3cc0: c0496d60 00000000 c33e3cec c33e3cd8 c01f5f8c c01f5d10 00000000 c33e3cf0
3ce0: c33e3d14 c33e3cf0 c01f5210 c01f5f58 c303cb48 c25ecf94 c25caa00 c25caa00
3d00: c25caa34 c33e3dd8 c33e3d34 c33e3d18 c01f6044 c01f51b8 c0496d3c c25caa00
3d20: c044e918 c33e3dd8 c33e3d44 c33e3d38 c01f4ff4 c01f5fcc c33e3d94 c33e3d48
3d40: c01f3d10 c01f4fd8 00000000 c044e918 00000000 00000000 c01f52c0 c034d570
3d60: c33e3d84 c33e3d70 c022bf84 c25caa00 00000000 c044e918 c33e3dd8 c25c2e00
3d80: c0496d60 bf01763c c33e3db4 c33e3d98 c022b1a0 c01f384c c25caa00 c33e3dd8
3da0: 00000000 c33e3dd8 c33e3dd4 c33e3db8 c022b27c c022b0e8 00000000 bf01763c
3dc0: c0451c80 c33e3dd8 c33e3e34 c33e3dd8 bf016f60 c022b210 5f75636d 746e6f63
3de0: 006c6f72 00000000 00000000 00000000 00000000 00000000 00000000 bf0174bc
3e00: 00000000 00989680 00000000 00000020 c0451c80 c0451c80 bf0174dc c01f5eb0
3e20: c33f0f00 bf0174dc c33e3e44 c33e3e38 c01f72f4 bf016e2c c33e3e74 c33e3e48
3e40: c01f5d88 c01f72e4 00000000 c0451c80 c0451cb4 bf0174dc c01f5eb0 c33f0f00
3e60: c0473100 00000000 c33e3e94 c33e3e78 c01f5f44 c01f5d10 00000000 c33e3e98
3e80: bf0174dc c01f5eb0 c33e3ebc c33e3e98 c01f5534 c01f5ec0 c303c038 c3061c30
3ea0: 00003cd8 00098258 bf0174dc c0462ac8 c33e3ecc c33e3ec0 c01f5bec c01f54dc
3ec0: c33e3efc c33e3ed0 c01f4d30 c01f5bdc bf0173a0 c33e2000 00003cd8 00098258
3ee0: bf0174dc c33e2000 c00301a4 bf019000 c33e3f1c c33e3f00 c01f6588 c01f4c8c
3f00: 00003cd8 00098258 00000000 c33e2000 c33e3f2c c33e3f20 c01f777c c01f6524
3f20: c33e3f3c c33e3f30 bf019014 c01f7740 c33e3f7c c33e3f40 c002f3ec bf019010
3f40: 00000000 00003cd8 00098258 bf017518 00000000 00003cd8 00098258 bf017518
3f60: 00000000 c00301a4 c33e2000 00000000 c33e3fa4 c33e3f80 c007b934 c002f3c4
3f80: c00b307c c00b2f48 00003cd8 00000000 00000003 00000080 00000000 c33e3fa8
3fa0: c0030020 c007b8b8 00003cd8 00000000 00098288 00003cd8 00098258 00098240
3fc0: 00003cd8 00000000 00000003 00000080 00098008 00098028 00098288 00000001
3fe0: be892998 be892988 00013d7c 40178740 60000010 00098288 09089041 00200845
Backtrace:
[&lt;c0080ba4&gt;] (irq_gc_mask_set_bit+0x0/0x7c) from [&lt;c007f5f8&gt;] (irq_enable+0x48/0x58)
 r6:c33d4340 r5:c04555bc r4:c04555bc
[&lt;c007f5b0&gt;] (irq_enable+0x0/0x58) from [&lt;c007f654&gt;] (irq_startup+0x4c/0x54)
 r5:c04555bc r4:00000000
[&lt;c007f608&gt;] (irq_startup+0x0/0x54) from [&lt;c007e6e8&gt;] (__setup_irq+0x2f0/0x3cc)
 r5:c04555bc r4:00000000
[&lt;c007e3f8&gt;] (__setup_irq+0x0/0x3cc) from [&lt;c007e888&gt;] (request_threaded_irq+0xc4/0x110)
 r8:0000002d r7:c33dc008 r6:00000000 r5:00000001 r4:bf016c98
[&lt;c007e7c4&gt;] (request_threaded_irq+0x0/0x110) from [&lt;bf016b44&gt;] (mcu_spi_probe+0x228/0x37c [mcu])
[&lt;bf01691c&gt;] (mcu_spi_probe+0x0/0x37c [mcu]) from [&lt;c022a698&gt;] (spi_drv_probe+0x20/0x24)
[&lt;c022a678&gt;] (spi_drv_probe+0x0/0x24) from [&lt;c01f5d88&gt;] (driver_probe_device+0x88/0x1b0)
[&lt;c01f5d00&gt;] (driver_probe_device+0x0/0x1b0) from [&lt;c01f5f8c&gt;] (__device_attach+0x44/0x48)
[&lt;c01f5f48&gt;] (__device_attach+0x0/0x48) from [&lt;c01f5210&gt;] (bus_for_each_drv+0x68/0x94)
 r5:c33e3cf0 r4:00000000
[&lt;c01f51a8&gt;] (bus_for_each_drv+0x0/0x94) from [&lt;c01f6044&gt;] (device_attach+0x88/0xa0)
 r7:c33e3dd8 r6:c25caa34 r5:c25caa00 r4:c25caa00
[&lt;c01f5fbc&gt;] (device_attach+0x0/0xa0) from [&lt;c01f4ff4&gt;] (bus_probe_device+0x2c/0x4c)
 r7:c33e3dd8 r6:c044e918 r5:c25caa00 r4:c0496d3c
[&lt;c01f4fc8&gt;] (bus_probe_device+0x0/0x4c) from [&lt;c01f3d10&gt;] (device_add+0x4d4/0x648)
[&lt;c01f383c&gt;] (device_add+0x0/0x648) from [&lt;c022b1a0&gt;] (spi_add_device+0xc8/0x128)
[&lt;c022b0d8&gt;] (spi_add_device+0x0/0x128) from [&lt;c022b27c&gt;] (spi_new_device+0x7c/0xb4)
 r7:c33e3dd8 r6:00000000 r5:c33e3dd8 r4:c25caa00
[&lt;c022b200&gt;] (spi_new_device+0x0/0xb4) from [&lt;bf016f60&gt;] (mcu_probe+0x144/0x224 [mcu])
 r7:c33e3dd8 r6:c0451c80 r5:bf01763c r4:00000000
[&lt;bf016e1c&gt;] (mcu_probe+0x0/0x224 [mcu]) from [&lt;c01f72f4&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c01f72d4&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c01f5d88&gt;] (driver_probe_device+0x88/0x1b0)
[&lt;c01f5d00&gt;] (driver_probe_device+0x0/0x1b0) from [&lt;c01f5f44&gt;] (__driver_attach+0x94/0x98)
[&lt;c01f5eb0&gt;] (__driver_attach+0x0/0x98) from [&lt;c01f5534&gt;] (bus_for_each_dev+0x68/0x94)
 r7:c01f5eb0 r6:bf0174dc r5:c33e3e98 r4:00000000
[&lt;c01f54cc&gt;] (bus_for_each_dev+0x0/0x94) from [&lt;c01f5bec&gt;] (driver_attach+0x20/0x28)
 r7:c0462ac8 r6:bf0174dc r5:00098258 r4:00003cd8
[&lt;c01f5bcc&gt;] (driver_attach+0x0/0x28) from [&lt;c01f4d30&gt;] (bus_add_driver+0xb4/0x258)
[&lt;c01f4c7c&gt;] (bus_add_driver+0x0/0x258) from [&lt;c01f6588&gt;] (driver_register+0x74/0x158)
[&lt;c01f6514&gt;] (driver_register+0x0/0x158) from [&lt;c01f777c&gt;] (platform_driver_register+0x4c/0x60)
 r7:c33e2000 r6:00000000 r5:00098258 r4:00003cd8
[&lt;c01f7730&gt;] (platform_driver_register+0x0/0x60) from [&lt;bf019014&gt;] (mcu_init+0x14/0x20 [mcu])
[&lt;bf019000&gt;] (mcu_init+0x0/0x20 [mcu]) from [&lt;c002f3ec&gt;] (do_one_initcall+0x38/0x170)
[&lt;c002f3b4&gt;] (do_one_initcall+0x0/0x170) from [&lt;c007b934&gt;] (sys_init_module+0x8c/0x1a4)
[&lt;c007b8a8&gt;] (sys_init_module+0x0/0x1a4) from [&lt;c0030020&gt;] (ret_fast_syscall+0x0/0x2c)
 r7:00000080 r6:00000003 r5:00000000 r4:00003cd8
Code: e1844003 e585400c e596300c e5932064 (e7814002)

Fix the issue.

Reported-by: Jon Povey &lt;Jon.Povey@racelogic.co.uk&gt;
Signed-off-by: Sekhar Nori &lt;nsekhar@ti.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/omap: fix _set_gpio_irqenable implementation</title>
<updated>2012-04-02T17:32:20+00:00</updated>
<author>
<name>Tarun Kanti DebBarma</name>
<email>tarun.kanti@ti.com</email>
</author>
<published>2011-11-25T09:57:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9adc58441cea57b2adf663772afd5947181fde4a'/>
<id>9adc58441cea57b2adf663772afd5947181fde4a</id>
<content type='text'>
commit 8276536cec38bc6bde30d0aa67716f22b9b9705a upstream.

This function should be capable of both enabling and disabling interrupts
based upon the *enable* parameter. Right now the function only enables
the interrupt and *enable* is not used at all. So add the interrupt
disable capability also using the parameter.

Signed-off-by: Tarun Kanti DebBarma &lt;tarun.kanti@ti.com&gt;
Reviewed-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8276536cec38bc6bde30d0aa67716f22b9b9705a upstream.

This function should be capable of both enabling and disabling interrupts
based upon the *enable* parameter. Right now the function only enables
the interrupt and *enable* is not used at all. So add the interrupt
disable capability also using the parameter.

Signed-off-by: Tarun Kanti DebBarma &lt;tarun.kanti@ti.com&gt;
Reviewed-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Add missing spin_lock_init in gpio-ml-ioh driver</title>
<updated>2012-02-02T04:59:37+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-02-01T02:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7e3a70fb7bccada029c188c89bfbf3c0a63c1500'/>
<id>7e3a70fb7bccada029c188c89bfbf3c0a63c1500</id>
<content type='text'>
This bug was introduced by commit 54be5663
"gpio-ml-ioh: Support interrupt function" which adds a spinlock to struct
ioh_gpio but never init the spinlock.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bug was introduced by commit 54be5663
"gpio-ml-ioh: Support interrupt function" which adds a spinlock to struct
ioh_gpio but never init the spinlock.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Add missing spin_lock_init in gpio-pch driver</title>
<updated>2012-02-02T04:59:15+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-02-01T02:51:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d166370ad86b33b1111af3a0cdd7de94e03789a6'/>
<id>d166370ad86b33b1111af3a0cdd7de94e03789a6</id>
<content type='text'>
This bug was introduced by commit d568a681
"gpio-pch: add spinlock in suspend/resume processing"
which adds a spinlock to struct pch_gpio but never init the spinlock.

Reported-by: Tomoya MORINAGA &lt;tomoya.rohm@gmail.com&gt;
Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bug was introduced by commit d568a681
"gpio-pch: add spinlock in suspend/resume processing"
which adds a spinlock to struct pch_gpio but never init the spinlock.

Reported-by: Tomoya MORINAGA &lt;tomoya.rohm@gmail.com&gt;
Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: samsung: adapt to changes in gpio specifier translator function declaration</title>
<updated>2012-02-02T00:05:28+00:00</updated>
<author>
<name>Thomas Abraham</name>
<email>thomas.abraham@linaro.org</email>
</author>
<published>2012-02-01T13:02:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=876cf5e7b9e4bae014b0fa2cc18b21bce6d99073'/>
<id>876cf5e7b9e4bae014b0fa2cc18b21bce6d99073</id>
<content type='text'>
Commit 15c9a0acc3f7 (of: create of_phandle_args to simplify return of phandle
parsing data) modifies the parameter list of of_xlate function pointer declaration
in gpio_chip. Adapt the gpio specifier translate function for this change.

Reported-by: Tushar Behera &lt;tushar.behera@linaro.org&gt;
Signed-off-by: Thomas Abraham &lt;thomas.abraham@linaro.org&gt;
Tested-by: Karol Lewandowski &lt;k.lewandowsk@samsung.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 15c9a0acc3f7 (of: create of_phandle_args to simplify return of phandle
parsing data) modifies the parameter list of of_xlate function pointer declaration
in gpio_chip. Adapt the gpio specifier translate function for this change.

Reported-by: Tushar Behera &lt;tushar.behera@linaro.org&gt;
Signed-off-by: Thomas Abraham &lt;thomas.abraham@linaro.org&gt;
Tested-by: Karol Lewandowski &lt;k.lewandowsk@samsung.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct bad gpio naming</title>
<updated>2012-01-22T19:31:04+00:00</updated>
<author>
<name>Roland Stigge</name>
<email>stigge@antcom.de</email>
</author>
<published>2012-01-22T17:57:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=95120d5d1bc17bdec29085186b6ab3d90e92d6f3'/>
<id>95120d5d1bc17bdec29085186b6ab3d90e92d6f3</id>
<content type='text'>
One of the GPIO names in drivers/gpio/gpio-lpc32xx.c
was bad. Renaming gpi000 -&gt; gpio00

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One of the GPIO names in drivers/gpio/gpio-lpc32xx.c
was bad. Renaming gpi000 -&gt; gpio00

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: tps65910: Use correct offset for gpio initialization</title>
<updated>2012-01-18T20:48:43+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2012-01-18T14:37:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=94bd2442d25454a874e070d871f50f4ce9d57101'/>
<id>94bd2442d25454a874e070d871f50f4ce9d57101</id>
<content type='text'>
Using the correct gpio offset for setting the initial value
of gpio when setting output direction.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using the correct gpio offset for setting the initial value
of gpio when setting output direction.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/it8761e: Restrict it8761e gpio driver to x86.</title>
<updated>2012-01-18T00:43:09+00:00</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-01-11T18:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=265fe02b6fade1704f01c4e96f99ac051b7fab9d'/>
<id>265fe02b6fade1704f01c4e96f99ac051b7fab9d</id>
<content type='text'>
This driver does an unconditional read of io space during module init which
causes a bad dereference on ARM.  It looks to me like this is an x86 only
drivers, so restrict it to only compile on x86.

Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Denis Turischev &lt;denis@compulab.co.il&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This driver does an unconditional read of io space during module init which
causes a bad dereference on ARM.  It looks to me like this is an x86 only
drivers, so restrict it to only compile on x86.

Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Denis Turischev &lt;denis@compulab.co.il&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio-ml-ioh: cleanup __iomem annotation usage</title>
<updated>2012-01-16T16:12:24+00:00</updated>
<author>
<name>Márton Németh</name>
<email>nm127@freemail.hu</email>
</author>
<published>2012-01-15T09:57:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dd9328a6b026060699d4136d8f926e39281c8a18'/>
<id>dd9328a6b026060699d4136d8f926e39281c8a18</id>
<content type='text'>
The __iomem annotation is to be used together with pointers used
in iowrite32() but not for pointers returned by kzalloc().
For more details see [1] and [2].

This patch will remove the following sparse warning (i.e. when
copiling with "make C=1"):
 * warning: incorrect type in assignment (different address spaces)

References:
[1] A new I/O memory access mechanism (Sep 15, 2004)
    http://lwn.net/Articles/102232/

[2] Being more anal about iospace accesses (Sep 15, 2004)
    http://lwn.net/Articles/102240/

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The __iomem annotation is to be used together with pointers used
in iowrite32() but not for pointers returned by kzalloc().
For more details see [1] and [2].

This patch will remove the following sparse warning (i.e. when
copiling with "make C=1"):
 * warning: incorrect type in assignment (different address spaces)

References:
[1] A new I/O memory access mechanism (Sep 15, 2004)
    http://lwn.net/Articles/102232/

[2] Being more anal about iospace accesses (Sep 15, 2004)
    http://lwn.net/Articles/102240/

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
</feed>
