Re: [GPIO] Crashed when not using

2012-08-05 Thread Shilimkar, Santosh
On Tue, Jul 31, 2012 at 6:26 PM, Poddar, Sourav sourav.pod...@ti.com wrote:
 Hi Santosh,

 On Tue, Jul 31, 2012 at 6:02 PM, Shilimkar, Santosh
 santosh.shilim...@ti.com wrote:
 On Tue, Jul 31, 2012 at 8:52 AM, Felipe Balbi ba...@ti.com wrote:

 Hi,

 On Tue, Jul 31, 2012 at 10:23:16AM +0530, Poddar, Sourav wrote:
   The device tree data for acquiring the above GPIO interrupt line
   looks
   like this.
  
   +++ linux-omap-storage/arch/arm/boot/dts/omap5-evm.dts  2012-07-30
   14:11:08.931694001 +0530
   @@ -42,7 +42,8 @@
   tsl2771@39 {
   compatible = taos,tsl2771;
   reg = 0x39;
   +interrupt-parent = gpio5;
   +interrupts = 21; /* gpio line 149 */
   };
};
  
   Note: using gpio_request_one in the driver solves the issue.
   Is using this api in the driver required?
   Any pointer on the above crash?
  
   Hi Tarun,
   Any user/client driver of GPIO is supposed to go through
   gpio_request() API so that module clock
   is enabled correctly. Overriding of APIs would put the power
   management state machine in jeopardy.
   --
   I tried putting pm_runtime_get_sync in gpio_irq_type api where the
   kernel
   is crashing and the crash is no longer observed. So indeed, its about
   enabling clocks.
  
   One doubt: Can't we put runtime apis in gpio_irq_type and eliminate
   the use of
   gpio_request_one??
  
   No.
  
   You must use the GPIO requiest/free APIs to tell the GPIO core that
   the GPIO line is in use.
  
  Thanks for this confirmation.
   Why do you want to avoid using gpio_request/gpio_free?
  
  I was assuming that DT based gpio IRQ registration will automatically
  take care of
  the above APIs. But since that is not the case(as mentioned by
  santosh),  we need to use the
  gpio_request/free apis.

 Hang on for a while, let's try to get to the bottom of this debate first
 ;-)

 We have a canonical way of passing IRQ numbers to drivers through DT and
 that is the interrupts attribute. It shouldn't matter if that IRQ pin
 is connected to a real IRQ line or through a GPIO controller. In both
 cases we should use the interrupts attribute.

 If DT core doesn't allocate the GPIO for us then how does this work:

 (omap4-sdp.dts)

 127 mcspi1 {
 128 eth@0 {
 129 compatible = ks8851;
 130 spi-max-frequency = 2400;
 131 reg = 0;
 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */
 134 vdd-supply = vdd_eth;
 135 };
 136 };


 There's no gpio request on the driver:

 $ git grep -e gpio_request drivers/net/ethernet/micrel/ks8851.c
 $

 Since Benoit was the one who added that to the dts file (commit
 e7c64db9), I assume he tested his patch before posting, so again I ask -
 How does that work and why doesn't this work for Sourav's tsl2771
 controller ?

 This is either a regression on drivers/of, or commit e7c64db9 is also
 broken...

 Benoit, do you know how should this work ?

 I had a discussion with Benoit on this. In fact there is a way to actually
 trigger the GPIO request.

 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */

 As above you can see, GPIO2 bank and 2nd line.
 And then it will make use of gpio_irq chip properties
 to probe the GPIO line.

 Saurabh can try this out for his use case.

 I am using the above properties only and seeing the issue.

There seeems to be an issue with the GPIO DT probing. The Ethernet
works because there is another GPIO line from BANK2 is probed and since
BANK2 shares the clock, you won't see any issue.

We are looking at fixing the issue. Will keep the thread posted.

Regards
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GPIO] Crashed when not using

2012-07-31 Thread Felipe Balbi
Hi,

On Mon, Jul 30, 2012 at 01:36:47PM -0700, Kevin Hilman wrote:

little trimming

  The device tree data for acquiring the above GPIO interrupt line looks
  like this.
 
  +++ linux-omap-storage/arch/arm/boot/dts/omap5-evm.dts  2012-07-30
  14:11:08.931694001 +0530
  @@ -42,7 +42,8 @@
  tsl2771@39 {
  compatible = taos,tsl2771;
  reg = 0x39;
  +interrupt-parent = gpio5;
  +interrupts = 21; /* gpio line 149 */
  };
   };
 
  Note: using gpio_request_one in the driver solves the issue.
  Is using this api in the driver required?
  Any pointer on the above crash?
 
  Hi Tarun,
  Any user/client driver of GPIO is supposed to go through
  gpio_request() API so that module clock
  is enabled correctly. Overriding of APIs would put the power
  management state machine in jeopardy.
  --
  I tried putting pm_runtime_get_sync in gpio_irq_type api where the kernel
  is crashing and the crash is no longer observed. So indeed, its about
  enabling clocks.
 
  One doubt: Can't we put runtime apis in gpio_irq_type and eliminate
  the use of
  gpio_request_one??
 
 No.
 
 You must use the GPIO requiest/free APIs to tell the GPIO core that
 the GPIO line is in use.
 
 Why do you want to avoid using gpio_request/gpio_free?

Then how do we differentiate from a driver perspective if e.g.
client-irq (for I2C client drivers) refers to a pin on a GPIO
controller or a real interrupt when running with DT ?

Having something like:

#interrupt-parent = gpio5;
interrupts = 21;

would already give me the correct IRQ number from the driver, now how do
we differentiate the interrupt parents ? There's no way to do that from
a driver perspective, so DT core has to either do it, or provide means
for drivers to detect it themselves.

-- 
balbi


signature.asc
Description: Digital signature


Re: [GPIO] Crashed when not using

2012-07-31 Thread Felipe Balbi
Hi,

On Tue, Jul 31, 2012 at 10:23:16AM +0530, Poddar, Sourav wrote:
  The device tree data for acquiring the above GPIO interrupt line looks
  like this.
 
  +++ linux-omap-storage/arch/arm/boot/dts/omap5-evm.dts  2012-07-30
  14:11:08.931694001 +0530
  @@ -42,7 +42,8 @@
  tsl2771@39 {
  compatible = taos,tsl2771;
  reg = 0x39;
  +interrupt-parent = gpio5;
  +interrupts = 21; /* gpio line 149 */
  };
   };
 
  Note: using gpio_request_one in the driver solves the issue.
  Is using this api in the driver required?
  Any pointer on the above crash?
 
  Hi Tarun,
  Any user/client driver of GPIO is supposed to go through
  gpio_request() API so that module clock
  is enabled correctly. Overriding of APIs would put the power
  management state machine in jeopardy.
  --
  I tried putting pm_runtime_get_sync in gpio_irq_type api where the kernel
  is crashing and the crash is no longer observed. So indeed, its about
  enabling clocks.
 
  One doubt: Can't we put runtime apis in gpio_irq_type and eliminate
  the use of
  gpio_request_one??
 
  No.
 
  You must use the GPIO requiest/free APIs to tell the GPIO core that
  the GPIO line is in use.
 
 Thanks for this confirmation.
  Why do you want to avoid using gpio_request/gpio_free?
 
 I was assuming that DT based gpio IRQ registration will automatically
 take care of
 the above APIs. But since that is not the case(as mentioned by
 santosh),  we need to use the
 gpio_request/free apis.

Hang on for a while, let's try to get to the bottom of this debate first
;-)

We have a canonical way of passing IRQ numbers to drivers through DT and
that is the interrupts attribute. It shouldn't matter if that IRQ pin
is connected to a real IRQ line or through a GPIO controller. In both
cases we should use the interrupts attribute.

If DT core doesn't allocate the GPIO for us then how does this work:

(omap4-sdp.dts)

127 mcspi1 {
128 eth@0 {
129 compatible = ks8851;
130 spi-max-frequency = 2400;
131 reg = 0;
132 interrupt-parent = gpio2;
133 interrupts = 2; /* gpio line 34 */
134 vdd-supply = vdd_eth;
135 };
136 };


There's no gpio request on the driver:

$ git grep -e gpio_request drivers/net/ethernet/micrel/ks8851.c
$

Since Benoit was the one who added that to the dts file (commit
e7c64db9), I assume he tested his patch before posting, so again I ask -
How does that work and why doesn't this work for Sourav's tsl2771
controller ?

This is either a regression on drivers/of, or commit e7c64db9 is also
broken...

Benoit, do you know how should this work ?

-- 
balbi


signature.asc
Description: Digital signature


Re: [GPIO] Crashed when not using

2012-07-31 Thread Shilimkar, Santosh
On Tue, Jul 31, 2012 at 8:52 AM, Felipe Balbi ba...@ti.com wrote:

 Hi,

 On Tue, Jul 31, 2012 at 10:23:16AM +0530, Poddar, Sourav wrote:
   The device tree data for acquiring the above GPIO interrupt line
   looks
   like this.
  
   +++ linux-omap-storage/arch/arm/boot/dts/omap5-evm.dts  2012-07-30
   14:11:08.931694001 +0530
   @@ -42,7 +42,8 @@
   tsl2771@39 {
   compatible = taos,tsl2771;
   reg = 0x39;
   +interrupt-parent = gpio5;
   +interrupts = 21; /* gpio line 149 */
   };
};
  
   Note: using gpio_request_one in the driver solves the issue.
   Is using this api in the driver required?
   Any pointer on the above crash?
  
   Hi Tarun,
   Any user/client driver of GPIO is supposed to go through
   gpio_request() API so that module clock
   is enabled correctly. Overriding of APIs would put the power
   management state machine in jeopardy.
   --
   I tried putting pm_runtime_get_sync in gpio_irq_type api where the
   kernel
   is crashing and the crash is no longer observed. So indeed, its about
   enabling clocks.
  
   One doubt: Can't we put runtime apis in gpio_irq_type and eliminate
   the use of
   gpio_request_one??
  
   No.
  
   You must use the GPIO requiest/free APIs to tell the GPIO core that
   the GPIO line is in use.
  
  Thanks for this confirmation.
   Why do you want to avoid using gpio_request/gpio_free?
  
  I was assuming that DT based gpio IRQ registration will automatically
  take care of
  the above APIs. But since that is not the case(as mentioned by
  santosh),  we need to use the
  gpio_request/free apis.

 Hang on for a while, let's try to get to the bottom of this debate first
 ;-)

 We have a canonical way of passing IRQ numbers to drivers through DT and
 that is the interrupts attribute. It shouldn't matter if that IRQ pin
 is connected to a real IRQ line or through a GPIO controller. In both
 cases we should use the interrupts attribute.

 If DT core doesn't allocate the GPIO for us then how does this work:

 (omap4-sdp.dts)

 127 mcspi1 {
 128 eth@0 {
 129 compatible = ks8851;
 130 spi-max-frequency = 2400;
 131 reg = 0;
 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */
 134 vdd-supply = vdd_eth;
 135 };
 136 };


 There's no gpio request on the driver:

 $ git grep -e gpio_request drivers/net/ethernet/micrel/ks8851.c
 $

 Since Benoit was the one who added that to the dts file (commit
 e7c64db9), I assume he tested his patch before posting, so again I ask -
 How does that work and why doesn't this work for Sourav's tsl2771
 controller ?

 This is either a regression on drivers/of, or commit e7c64db9 is also
 broken...

 Benoit, do you know how should this work ?

I had a discussion with Benoit on this. In fact there is a way to actually
trigger the GPIO request.

 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */

As above you can see, GPIO2 bank and 2nd line.
And then it will make use of gpio_irq chip properties
to probe the GPIO line.

Saurabh can try this out for his use case.

Regards
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GPIO] Crashed when not using

2012-07-31 Thread Poddar, Sourav
Hi Santosh,

On Tue, Jul 31, 2012 at 6:02 PM, Shilimkar, Santosh
santosh.shilim...@ti.com wrote:
 On Tue, Jul 31, 2012 at 8:52 AM, Felipe Balbi ba...@ti.com wrote:

 Hi,

 On Tue, Jul 31, 2012 at 10:23:16AM +0530, Poddar, Sourav wrote:
   The device tree data for acquiring the above GPIO interrupt line
   looks
   like this.
  
   +++ linux-omap-storage/arch/arm/boot/dts/omap5-evm.dts  2012-07-30
   14:11:08.931694001 +0530
   @@ -42,7 +42,8 @@
   tsl2771@39 {
   compatible = taos,tsl2771;
   reg = 0x39;
   +interrupt-parent = gpio5;
   +interrupts = 21; /* gpio line 149 */
   };
};
  
   Note: using gpio_request_one in the driver solves the issue.
   Is using this api in the driver required?
   Any pointer on the above crash?
  
   Hi Tarun,
   Any user/client driver of GPIO is supposed to go through
   gpio_request() API so that module clock
   is enabled correctly. Overriding of APIs would put the power
   management state machine in jeopardy.
   --
   I tried putting pm_runtime_get_sync in gpio_irq_type api where the
   kernel
   is crashing and the crash is no longer observed. So indeed, its about
   enabling clocks.
  
   One doubt: Can't we put runtime apis in gpio_irq_type and eliminate
   the use of
   gpio_request_one??
  
   No.
  
   You must use the GPIO requiest/free APIs to tell the GPIO core that
   the GPIO line is in use.
  
  Thanks for this confirmation.
   Why do you want to avoid using gpio_request/gpio_free?
  
  I was assuming that DT based gpio IRQ registration will automatically
  take care of
  the above APIs. But since that is not the case(as mentioned by
  santosh),  we need to use the
  gpio_request/free apis.

 Hang on for a while, let's try to get to the bottom of this debate first
 ;-)

 We have a canonical way of passing IRQ numbers to drivers through DT and
 that is the interrupts attribute. It shouldn't matter if that IRQ pin
 is connected to a real IRQ line or through a GPIO controller. In both
 cases we should use the interrupts attribute.

 If DT core doesn't allocate the GPIO for us then how does this work:

 (omap4-sdp.dts)

 127 mcspi1 {
 128 eth@0 {
 129 compatible = ks8851;
 130 spi-max-frequency = 2400;
 131 reg = 0;
 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */
 134 vdd-supply = vdd_eth;
 135 };
 136 };


 There's no gpio request on the driver:

 $ git grep -e gpio_request drivers/net/ethernet/micrel/ks8851.c
 $

 Since Benoit was the one who added that to the dts file (commit
 e7c64db9), I assume he tested his patch before posting, so again I ask -
 How does that work and why doesn't this work for Sourav's tsl2771
 controller ?

 This is either a regression on drivers/of, or commit e7c64db9 is also
 broken...

 Benoit, do you know how should this work ?

 I had a discussion with Benoit on this. In fact there is a way to actually
 trigger the GPIO request.

 132 interrupt-parent = gpio2;
 133 interrupts = 2; /* gpio line 34 */

 As above you can see, GPIO2 bank and 2nd line.
 And then it will make use of gpio_irq chip properties
 to probe the GPIO line.

 Saurabh can try this out for his use case.

I am using the above properties only and seeing the issue.
~Sourav
 Regards
 Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GPIO] Crashed when not using

2012-07-30 Thread DebBarma, Tarun Kanti
Sourav,

On Mon, Jul 30, 2012 at 2:13 PM, Poddar, Sourav sourav.pod...@ti.com wrote:
 Hi All,

 I tried using gpio as an interrupt line for my driver
 (drivers/staging/iio/light/tsl2x7x_core.c) for omap5.
 The interrupt line number was directly passed to the driver using
 device tree. But what I observed
 is the following crash..


 [1.599273] mousedev: PS/2 mouse device common for all mice
 [1.607513] i2c /dev entries driver
 [1.613739] Driver for 1-wire Dallas network protocol.
 [1.622650] usbcore: registered new interface driver usbhid
 [1.628540] usbhid: USB HID core driver
 [1.633728] Unhandled fault: imprecise external abort (0x1406) at 
 0x
 [1.641113] Internal error: : 1406 [#1] SMP ARM
 [1.645874] Modules linked in:
 [1.649078] CPU: 0Not tainted  (3.5.0-02045-g0b474d6-dirty #415)
 [1.655761] PC is at _set_gpio_triggering+0x44/0x264
 [1.660980] LR is at gpio_irq_type+0xb8/0x160
 [1.665527] pc : [c02dbb68]lr : [c02dc2dc]psr: 6093
 [1.665527] sp : dc851df0  ip : c07a8f00  fp : 
 [1.677581] r10: 0081  r9 :   r8 : dc8ffc10
 [1.683074] r7 : 2093  r6 :   r5 : 0001  r4 : fa05b000
 [1.689910] r3 : dc8ffc10  r2 : 0002  r1 : 0002  r0 : 0140
 [1.696746] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
 Segment kernel
 [1.704528] Control: 10c53c7d  Table: 8000406a  DAC: 0017
 [1.710540] Process swapper/0 (pid: 1, stack limit = 0xdc8502f8)
 [1.716857] Stack: (0xdc851df0 to 0xdc852000)
 [1.721405] 1de0: 0002
 c0731280 dc8ffc6c 2093
 [1.730010] 1e00: c02dc224 c0731280 dc8d4980  c07a8e50
 0141 0002 c00a37b8
 [1.738586] 1e20: 2002 c0731280 dc8d4980 0141 c07312d4
 c07312b4 4013 c00a3d7c
 [1.747161] 1e40: 0141 c06728c0  c0090578 c247f000
 c00a2d5c c0412258 0141
 [1.755737] 1e60: c0731280 c0537818 dc8d4980 c00a3fe4 c07bf6a0
 2002 c071bed8 c247f000
 [1.764312] 1e80: dc9df000 0004 c07bf6a0 dc9df020 c247f3c0
 c04ea344 c06728c0 c247f000
 [1.772888] 1ea0:  09090578 c07bf6a0 dc9df004 dc9df000
 c04ea194 0091 c071bed8
 [1.781494] 1ec0: c06f89f4 c03e13c0 c03e1314 dc9df020 c0d1afd8
 dc9df054 c07bf60c c03272ac
 [1.790069] 1ee0: dc9df020 c07bf60c dc9df054  0091
 c03274c0 c07bf60c dc851f08
 [1.798645] 1f00: c032742c c0325b10 dc8f26a8 dc9ef790 
 c07bf60c c07bcea8 c243d6c0
 [1.807220] 1f20:  c0326240 c0672958 c02bce08 c07bf5e4
 c07bf60c c03e12a0 
 [1.815795] 1f40: 0091 c071bed8 c06f89f4 c0327ab0 c07bf5e4
 0007 c07c8c40 
 [1.824401] 1f60: 0091 c03e1738  dc85 0007
 c0008648  c112c9f0
 [1.832977] 1f80: c06a6d58 c06f89f4 0001 6013 c06694c8
  0006 0006
 [1.841552] 1fa0: 6013 c0700a20 0007 c07c8c40 c06d020c
 0091 c071bed8 c0700a28
 [1.850128] 1fc0:  c06d0380 0006 0006 c06d020c
   c06d028c
 [1.858703] 1fe0: c001548c 0013   
 c001548c 3f3f3f3f 3f3f3f3f
 [1.867309] [c02dbb68] (_set_gpio_triggering+0x44/0x264) from
 [c02dc224] (gpio_irq_type+0x0/0x160)
 [1.877075] [c02dc224] (gpio_irq_type+0x0/0x160) from [2002] 
 (0x2002)
 [1.884552] Code: e3120008 11816006 01c66001 e7846000 (e593c0fc)
 [1.890960] [ cut here ]
 [1.895812] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:113
 l3_interrupt_handler+0x184/0x1bc()
 [1.905029] L3 custom error: MASTER:MPU TARGET:L4 PER2
 [1.910430] Modules linked in:
 [1.913635] [c001bd5c] (unwind_backtrace+0x0/0xf4) from
 [c00414c4] (warn_slowpath_common+0x4c/0x64)
 [1.923492] [c00414c4] (warn_slowpath_common+0x4c/0x64) from
 [c0041570] (warn_slowpath_fmt+0x30/0x40)
 [1.933563] [c0041570] (warn_slowpath_fmt+0x30/0x40) from
 [c0035de4] (l3_interrupt_handler+0x184/0x1bc)
 [1.943786] [c0035de4] (l3_interrupt_handler+0x184/0x1bc) from
 [c00a28b8] (handle_irq_event_percpu+0x64/0x24c)
 [1.954650] [c00a28b8] (handle_irq_event_percpu+0x64/0x24c) from
 [c00a2adc] (handle_irq_event+0x3c/0x5c)
 [1.964965] [c00a2adc] (handle_irq_event+0x3c/0x5c) from
 [c00a56a8] (handle_fasteoi_irq+0x98/0x13c)
 [1.974822] [c00a56a8] (handle_fasteoi_irq+0x98/0x13c) from
 [c00a235c] (generic_handle_irq+0x34/0x44)
 [1.984863] [c00a235c] (generic_handle_irq+0x34/0x44) from
 [c00153a0] (handle_IRQ+0x4c/0xac)
 [1.994110] [c00153a0] (handle_IRQ+0x4c/0xac) from [c0008480]
 (gic_handle_irq+0x2c/0x60)
 [2.002960] [c0008480] (gic_handle_irq+0x2c/0x60) from
 [c04f26e4] (__irq_svc+0x44/0x60)
 [2.011718] Exception stack(0xdc851c48 to 0xdc851c90)
 [2.017028] 1c40:   c07a87a0  dc851c80
  c0743f80 dc851da8
 [2.025604] 1c60: 0001 0001 dc851cd7  c02dbb6a
 c02dbb6c  dc851c90
 [2.034179] 1c80: 

Re: [GPIO] Crashed when not using

2012-07-30 Thread Poddar, Sourav
On Mon, Jul 30, 2012 at 3:04 PM, DebBarma, Tarun Kanti
tarun.ka...@ti.com wrote:
 Sourav,

 On Mon, Jul 30, 2012 at 2:13 PM, Poddar, Sourav sourav.pod...@ti.com wrote:
 Hi All,

 I tried using gpio as an interrupt line for my driver
 (drivers/staging/iio/light/tsl2x7x_core.c) for omap5.
 The interrupt line number was directly passed to the driver using
 device tree. But what I observed
 is the following crash..


 [1.599273] mousedev: PS/2 mouse device common for all mice
 [1.607513] i2c /dev entries driver
 [1.613739] Driver for 1-wire Dallas network protocol.
 [1.622650] usbcore: registered new interface driver usbhid
 [1.628540] usbhid: USB HID core driver
 [1.633728] Unhandled fault: imprecise external abort (0x1406) at 
 0x
 [1.641113] Internal error: : 1406 [#1] SMP ARM
 [1.645874] Modules linked in:
 [1.649078] CPU: 0Not tainted  (3.5.0-02045-g0b474d6-dirty #415)
 [1.655761] PC is at _set_gpio_triggering+0x44/0x264
 [1.660980] LR is at gpio_irq_type+0xb8/0x160
 [1.665527] pc : [c02dbb68]lr : [c02dc2dc]psr: 6093
 [1.665527] sp : dc851df0  ip : c07a8f00  fp : 
 [1.677581] r10: 0081  r9 :   r8 : dc8ffc10
 [1.683074] r7 : 2093  r6 :   r5 : 0001  r4 : fa05b000
 [1.689910] r3 : dc8ffc10  r2 : 0002  r1 : 0002  r0 : 0140
 [1.696746] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
 Segment kernel
 [1.704528] Control: 10c53c7d  Table: 8000406a  DAC: 0017
 [1.710540] Process swapper/0 (pid: 1, stack limit = 0xdc8502f8)
 [1.716857] Stack: (0xdc851df0 to 0xdc852000)
 [1.721405] 1de0: 0002
 c0731280 dc8ffc6c 2093
 [1.730010] 1e00: c02dc224 c0731280 dc8d4980  c07a8e50
 0141 0002 c00a37b8
 [1.738586] 1e20: 2002 c0731280 dc8d4980 0141 c07312d4
 c07312b4 4013 c00a3d7c
 [1.747161] 1e40: 0141 c06728c0  c0090578 c247f000
 c00a2d5c c0412258 0141
 [1.755737] 1e60: c0731280 c0537818 dc8d4980 c00a3fe4 c07bf6a0
 2002 c071bed8 c247f000
 [1.764312] 1e80: dc9df000 0004 c07bf6a0 dc9df020 c247f3c0
 c04ea344 c06728c0 c247f000
 [1.772888] 1ea0:  09090578 c07bf6a0 dc9df004 dc9df000
 c04ea194 0091 c071bed8
 [1.781494] 1ec0: c06f89f4 c03e13c0 c03e1314 dc9df020 c0d1afd8
 dc9df054 c07bf60c c03272ac
 [1.790069] 1ee0: dc9df020 c07bf60c dc9df054  0091
 c03274c0 c07bf60c dc851f08
 [1.798645] 1f00: c032742c c0325b10 dc8f26a8 dc9ef790 
 c07bf60c c07bcea8 c243d6c0
 [1.807220] 1f20:  c0326240 c0672958 c02bce08 c07bf5e4
 c07bf60c c03e12a0 
 [1.815795] 1f40: 0091 c071bed8 c06f89f4 c0327ab0 c07bf5e4
 0007 c07c8c40 
 [1.824401] 1f60: 0091 c03e1738  dc85 0007
 c0008648  c112c9f0
 [1.832977] 1f80: c06a6d58 c06f89f4 0001 6013 c06694c8
  0006 0006
 [1.841552] 1fa0: 6013 c0700a20 0007 c07c8c40 c06d020c
 0091 c071bed8 c0700a28
 [1.850128] 1fc0:  c06d0380 0006 0006 c06d020c
   c06d028c
 [1.858703] 1fe0: c001548c 0013   
 c001548c 3f3f3f3f 3f3f3f3f
 [1.867309] [c02dbb68] (_set_gpio_triggering+0x44/0x264) from
 [c02dc224] (gpio_irq_type+0x0/0x160)
 [1.877075] [c02dc224] (gpio_irq_type+0x0/0x160) from [2002] 
 (0x2002)
 [1.884552] Code: e3120008 11816006 01c66001 e7846000 (e593c0fc)
 [1.890960] [ cut here ]
 [1.895812] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:113
 l3_interrupt_handler+0x184/0x1bc()
 [1.905029] L3 custom error: MASTER:MPU TARGET:L4 PER2
 [1.910430] Modules linked in:
 [1.913635] [c001bd5c] (unwind_backtrace+0x0/0xf4) from
 [c00414c4] (warn_slowpath_common+0x4c/0x64)
 [1.923492] [c00414c4] (warn_slowpath_common+0x4c/0x64) from
 [c0041570] (warn_slowpath_fmt+0x30/0x40)
 [1.933563] [c0041570] (warn_slowpath_fmt+0x30/0x40) from
 [c0035de4] (l3_interrupt_handler+0x184/0x1bc)
 [1.943786] [c0035de4] (l3_interrupt_handler+0x184/0x1bc) from
 [c00a28b8] (handle_irq_event_percpu+0x64/0x24c)
 [1.954650] [c00a28b8] (handle_irq_event_percpu+0x64/0x24c) from
 [c00a2adc] (handle_irq_event+0x3c/0x5c)
 [1.964965] [c00a2adc] (handle_irq_event+0x3c/0x5c) from
 [c00a56a8] (handle_fasteoi_irq+0x98/0x13c)
 [1.974822] [c00a56a8] (handle_fasteoi_irq+0x98/0x13c) from
 [c00a235c] (generic_handle_irq+0x34/0x44)
 [1.984863] [c00a235c] (generic_handle_irq+0x34/0x44) from
 [c00153a0] (handle_IRQ+0x4c/0xac)
 [1.994110] [c00153a0] (handle_IRQ+0x4c/0xac) from [c0008480]
 (gic_handle_irq+0x2c/0x60)
 [2.002960] [c0008480] (gic_handle_irq+0x2c/0x60) from
 [c04f26e4] (__irq_svc+0x44/0x60)
 [2.011718] Exception stack(0xdc851c48 to 0xdc851c90)
 [2.017028] 1c40:   c07a87a0  dc851c80
  c0743f80 dc851da8
 [2.025604] 1c60: 0001 

Re: [GPIO] Crashed when not using

2012-07-30 Thread Kevin Hilman
Poddar, Sourav sourav.pod...@ti.com writes:

 On Mon, Jul 30, 2012 at 3:04 PM, DebBarma, Tarun Kanti
 tarun.ka...@ti.com wrote:
 Sourav,

 On Mon, Jul 30, 2012 at 2:13 PM, Poddar, Sourav sourav.pod...@ti.com wrote:
 Hi All,

 I tried using gpio as an interrupt line for my driver
 (drivers/staging/iio/light/tsl2x7x_core.c) for omap5.
 The interrupt line number was directly passed to the driver using
 device tree. But what I observed
 is the following crash..


 [1.599273] mousedev: PS/2 mouse device common for all mice
 [1.607513] i2c /dev entries driver
 [1.613739] Driver for 1-wire Dallas network protocol.
 [1.622650] usbcore: registered new interface driver usbhid
 [1.628540] usbhid: USB HID core driver
 [1.633728] Unhandled fault: imprecise external abort (0x1406) at 
 0x
 [1.641113] Internal error: : 1406 [#1] SMP ARM
 [1.645874] Modules linked in:
 [1.649078] CPU: 0Not tainted  (3.5.0-02045-g0b474d6-dirty #415)
 [1.655761] PC is at _set_gpio_triggering+0x44/0x264
 [1.660980] LR is at gpio_irq_type+0xb8/0x160
 [1.665527] pc : [c02dbb68]lr : [c02dc2dc]psr: 6093
 [1.665527] sp : dc851df0  ip : c07a8f00  fp : 
 [1.677581] r10: 0081  r9 :   r8 : dc8ffc10
 [1.683074] r7 : 2093  r6 :   r5 : 0001  r4 : fa05b000
 [1.689910] r3 : dc8ffc10  r2 : 0002  r1 : 0002  r0 : 0140
 [1.696746] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
 Segment kernel
 [1.704528] Control: 10c53c7d  Table: 8000406a  DAC: 0017
 [1.710540] Process swapper/0 (pid: 1, stack limit = 0xdc8502f8)
 [1.716857] Stack: (0xdc851df0 to 0xdc852000)
 [1.721405] 1de0: 0002
 c0731280 dc8ffc6c 2093
 [1.730010] 1e00: c02dc224 c0731280 dc8d4980  c07a8e50
 0141 0002 c00a37b8
 [1.738586] 1e20: 2002 c0731280 dc8d4980 0141 c07312d4
 c07312b4 4013 c00a3d7c
 [1.747161] 1e40: 0141 c06728c0  c0090578 c247f000
 c00a2d5c c0412258 0141
 [1.755737] 1e60: c0731280 c0537818 dc8d4980 c00a3fe4 c07bf6a0
 2002 c071bed8 c247f000
 [1.764312] 1e80: dc9df000 0004 c07bf6a0 dc9df020 c247f3c0
 c04ea344 c06728c0 c247f000
 [1.772888] 1ea0:  09090578 c07bf6a0 dc9df004 dc9df000
 c04ea194 0091 c071bed8
 [1.781494] 1ec0: c06f89f4 c03e13c0 c03e1314 dc9df020 c0d1afd8
 dc9df054 c07bf60c c03272ac
 [1.790069] 1ee0: dc9df020 c07bf60c dc9df054  0091
 c03274c0 c07bf60c dc851f08
 [1.798645] 1f00: c032742c c0325b10 dc8f26a8 dc9ef790 
 c07bf60c c07bcea8 c243d6c0
 [1.807220] 1f20:  c0326240 c0672958 c02bce08 c07bf5e4
 c07bf60c c03e12a0 
 [1.815795] 1f40: 0091 c071bed8 c06f89f4 c0327ab0 c07bf5e4
 0007 c07c8c40 
 [1.824401] 1f60: 0091 c03e1738  dc85 0007
 c0008648  c112c9f0
 [1.832977] 1f80: c06a6d58 c06f89f4 0001 6013 c06694c8
  0006 0006
 [1.841552] 1fa0: 6013 c0700a20 0007 c07c8c40 c06d020c
 0091 c071bed8 c0700a28
 [1.850128] 1fc0:  c06d0380 0006 0006 c06d020c
   c06d028c
 [1.858703] 1fe0: c001548c 0013   
 c001548c 3f3f3f3f 3f3f3f3f
 [1.867309] [c02dbb68] (_set_gpio_triggering+0x44/0x264) from
 [c02dc224] (gpio_irq_type+0x0/0x160)
 [1.877075] [c02dc224] (gpio_irq_type+0x0/0x160) from [2002] 
 (0x2002)
 [1.884552] Code: e3120008 11816006 01c66001 e7846000 (e593c0fc)
 [1.890960] [ cut here ]
 [1.895812] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:113
 l3_interrupt_handler+0x184/0x1bc()
 [1.905029] L3 custom error: MASTER:MPU TARGET:L4 PER2
 [1.910430] Modules linked in:
 [1.913635] [c001bd5c] (unwind_backtrace+0x0/0xf4) from
 [c00414c4] (warn_slowpath_common+0x4c/0x64)
 [1.923492] [c00414c4] (warn_slowpath_common+0x4c/0x64) from
 [c0041570] (warn_slowpath_fmt+0x30/0x40)
 [1.933563] [c0041570] (warn_slowpath_fmt+0x30/0x40) from
 [c0035de4] (l3_interrupt_handler+0x184/0x1bc)
 [1.943786] [c0035de4] (l3_interrupt_handler+0x184/0x1bc) from
 [c00a28b8] (handle_irq_event_percpu+0x64/0x24c)
 [1.954650] [c00a28b8] (handle_irq_event_percpu+0x64/0x24c) from
 [c00a2adc] (handle_irq_event+0x3c/0x5c)
 [1.964965] [c00a2adc] (handle_irq_event+0x3c/0x5c) from
 [c00a56a8] (handle_fasteoi_irq+0x98/0x13c)
 [1.974822] [c00a56a8] (handle_fasteoi_irq+0x98/0x13c) from
 [c00a235c] (generic_handle_irq+0x34/0x44)
 [1.984863] [c00a235c] (generic_handle_irq+0x34/0x44) from
 [c00153a0] (handle_IRQ+0x4c/0xac)
 [1.994110] [c00153a0] (handle_IRQ+0x4c/0xac) from [c0008480]
 (gic_handle_irq+0x2c/0x60)
 [2.002960] [c0008480] (gic_handle_irq+0x2c/0x60) from
 [c04f26e4] (__irq_svc+0x44/0x60)
 [2.011718] Exception stack(0xdc851c48 to 0xdc851c90)
 [2.017028] 1c40:   c07a87a0  dc851c80
  c0743f80 

Re: [GPIO] Crashed when not using

2012-07-30 Thread Shilimkar, Santosh
On Mon, Jul 30, 2012 at 10:36 PM, Kevin Hilman khil...@ti.com wrote:

 Poddar, Sourav sourav.pod...@ti.com writes:

  On Mon, Jul 30, 2012 at 3:04 PM, DebBarma, Tarun Kanti
  tarun.ka...@ti.com wrote:
  Sourav,
 
  On Mon, Jul 30, 2012 at 2:13 PM, Poddar, Sourav sourav.pod...@ti.com
  wrote:
  Hi All,
 
  I tried using gpio as an interrupt line for my driver
  (drivers/staging/iio/light/tsl2x7x_core.c) for omap5.
  The interrupt line number was directly passed to the driver using
  device tree. But what I observed
  is the following crash..
 
 
  [1.599273] mousedev: PS/2 mouse device common for all mice
  [1.607513] i2c /dev entries driver
  [1.613739] Driver for 1-wire Dallas network protocol.
  [1.622650] usbcore: registered new interface driver usbhid
  [1.628540] usbhid: USB HID core driver
  [1.633728] Unhandled fault: imprecise external abort (0x1406) at
  0x
  [1.641113] Internal error: : 1406 [#1] SMP ARM
  [1.645874] Modules linked in:
  [1.649078] CPU: 0Not tainted  (3.5.0-02045-g0b474d6-dirty
  #415)
  [1.655761] PC is at _set_gpio_triggering+0x44/0x264
  [1.660980] LR is at gpio_irq_type+0xb8/0x160
  [1.665527] pc : [c02dbb68]lr : [c02dc2dc]psr: 6093
  [1.665527] sp : dc851df0  ip : c07a8f00  fp : 
  [1.677581] r10: 0081  r9 :   r8 : dc8ffc10
  [1.683074] r7 : 2093  r6 :   r5 : 0001  r4 :
  fa05b000
  [1.689910] r3 : dc8ffc10  r2 : 0002  r1 : 0002  r0 :
  0140
  [1.696746] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
  Segment kernel
  [1.704528] Control: 10c53c7d  Table: 8000406a  DAC: 0017
  [1.710540] Process swapper/0 (pid: 1, stack limit = 0xdc8502f8)
  [1.716857] Stack: (0xdc851df0 to 0xdc852000)
  [1.721405] 1de0: 0002
  c0731280 dc8ffc6c 2093
  [1.730010] 1e00: c02dc224 c0731280 dc8d4980  c07a8e50
  0141 0002 c00a37b8
  [1.738586] 1e20: 2002 c0731280 dc8d4980 0141 c07312d4
  c07312b4 4013 c00a3d7c
  [1.747161] 1e40: 0141 c06728c0  c0090578 c247f000
  c00a2d5c c0412258 0141
  [1.755737] 1e60: c0731280 c0537818 dc8d4980 c00a3fe4 c07bf6a0
  2002 c071bed8 c247f000
  [1.764312] 1e80: dc9df000 0004 c07bf6a0 dc9df020 c247f3c0
  c04ea344 c06728c0 c247f000
  [1.772888] 1ea0:  09090578 c07bf6a0 dc9df004 dc9df000
  c04ea194 0091 c071bed8
  [1.781494] 1ec0: c06f89f4 c03e13c0 c03e1314 dc9df020 c0d1afd8
  dc9df054 c07bf60c c03272ac
  [1.790069] 1ee0: dc9df020 c07bf60c dc9df054  0091
  c03274c0 c07bf60c dc851f08
  [1.798645] 1f00: c032742c c0325b10 dc8f26a8 dc9ef790 
  c07bf60c c07bcea8 c243d6c0
  [1.807220] 1f20:  c0326240 c0672958 c02bce08 c07bf5e4
  c07bf60c c03e12a0 
  [1.815795] 1f40: 0091 c071bed8 c06f89f4 c0327ab0 c07bf5e4
  0007 c07c8c40 
  [1.824401] 1f60: 0091 c03e1738  dc85 0007
  c0008648  c112c9f0
  [1.832977] 1f80: c06a6d58 c06f89f4 0001 6013 c06694c8
   0006 0006
  [1.841552] 1fa0: 6013 c0700a20 0007 c07c8c40 c06d020c
  0091 c071bed8 c0700a28
  [1.850128] 1fc0:  c06d0380 0006 0006 c06d020c
    c06d028c
  [1.858703] 1fe0: c001548c 0013   
  c001548c 3f3f3f3f 3f3f3f3f
  [1.867309] [c02dbb68] (_set_gpio_triggering+0x44/0x264) from
  [c02dc224] (gpio_irq_type+0x0/0x160)
  [1.877075] [c02dc224] (gpio_irq_type+0x0/0x160) from
  [2002] (0x2002)
  [1.884552] Code: e3120008 11816006 01c66001 e7846000 (e593c0fc)
  [1.890960] [ cut here ]
  [1.895812] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:113
  l3_interrupt_handler+0x184/0x1bc()
  [1.905029] L3 custom error: MASTER:MPU TARGET:L4 PER2
  [1.910430] Modules linked in:
  [1.913635] [c001bd5c] (unwind_backtrace+0x0/0xf4) from
  [c00414c4] (warn_slowpath_common+0x4c/0x64)
  [1.923492] [c00414c4] (warn_slowpath_common+0x4c/0x64) from
  [c0041570] (warn_slowpath_fmt+0x30/0x40)
  [1.933563] [c0041570] (warn_slowpath_fmt+0x30/0x40) from
  [c0035de4] (l3_interrupt_handler+0x184/0x1bc)
  [1.943786] [c0035de4] (l3_interrupt_handler+0x184/0x1bc) from
  [c00a28b8] (handle_irq_event_percpu+0x64/0x24c)
  [1.954650] [c00a28b8] (handle_irq_event_percpu+0x64/0x24c) from
  [c00a2adc] (handle_irq_event+0x3c/0x5c)
  [1.964965] [c00a2adc] (handle_irq_event+0x3c/0x5c) from
  [c00a56a8] (handle_fasteoi_irq+0x98/0x13c)
  [1.974822] [c00a56a8] (handle_fasteoi_irq+0x98/0x13c) from
  [c00a235c] (generic_handle_irq+0x34/0x44)
  [1.984863] [c00a235c] (generic_handle_irq+0x34/0x44) from
  [c00153a0] (handle_IRQ+0x4c/0xac)
  [1.994110] [c00153a0] (handle_IRQ+0x4c/0xac) from [c0008480]
  (gic_handle_irq+0x2c/0x60)
  [2.002960] [c0008480] (gic_handle_irq+0x2c/0x60) from
  

Re: [GPIO] Crashed when not using

2012-07-30 Thread Poddar, Sourav
Hi Kevin,

On Tue, Jul 31, 2012 at 2:06 AM, Kevin Hilman khil...@ti.com wrote:
 Poddar, Sourav sourav.pod...@ti.com writes:

 On Mon, Jul 30, 2012 at 3:04 PM, DebBarma, Tarun Kanti
 tarun.ka...@ti.com wrote:
 Sourav,

 On Mon, Jul 30, 2012 at 2:13 PM, Poddar, Sourav sourav.pod...@ti.com 
 wrote:
 Hi All,

 I tried using gpio as an interrupt line for my driver
 (drivers/staging/iio/light/tsl2x7x_core.c) for omap5.
 The interrupt line number was directly passed to the driver using
 device tree. But what I observed
 is the following crash..


 [1.599273] mousedev: PS/2 mouse device common for all mice
 [1.607513] i2c /dev entries driver
 [1.613739] Driver for 1-wire Dallas network protocol.
 [1.622650] usbcore: registered new interface driver usbhid
 [1.628540] usbhid: USB HID core driver
 [1.633728] Unhandled fault: imprecise external abort (0x1406) at 
 0x
 [1.641113] Internal error: : 1406 [#1] SMP ARM
 [1.645874] Modules linked in:
 [1.649078] CPU: 0Not tainted  (3.5.0-02045-g0b474d6-dirty #415)
 [1.655761] PC is at _set_gpio_triggering+0x44/0x264
 [1.660980] LR is at gpio_irq_type+0xb8/0x160
 [1.665527] pc : [c02dbb68]lr : [c02dc2dc]psr: 6093
 [1.665527] sp : dc851df0  ip : c07a8f00  fp : 
 [1.677581] r10: 0081  r9 :   r8 : dc8ffc10
 [1.683074] r7 : 2093  r6 :   r5 : 0001  r4 : fa05b000
 [1.689910] r3 : dc8ffc10  r2 : 0002  r1 : 0002  r0 : 0140
 [1.696746] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
 Segment kernel
 [1.704528] Control: 10c53c7d  Table: 8000406a  DAC: 0017
 [1.710540] Process swapper/0 (pid: 1, stack limit = 0xdc8502f8)
 [1.716857] Stack: (0xdc851df0 to 0xdc852000)
 [1.721405] 1de0: 0002
 c0731280 dc8ffc6c 2093
 [1.730010] 1e00: c02dc224 c0731280 dc8d4980  c07a8e50
 0141 0002 c00a37b8
 [1.738586] 1e20: 2002 c0731280 dc8d4980 0141 c07312d4
 c07312b4 4013 c00a3d7c
 [1.747161] 1e40: 0141 c06728c0  c0090578 c247f000
 c00a2d5c c0412258 0141
 [1.755737] 1e60: c0731280 c0537818 dc8d4980 c00a3fe4 c07bf6a0
 2002 c071bed8 c247f000
 [1.764312] 1e80: dc9df000 0004 c07bf6a0 dc9df020 c247f3c0
 c04ea344 c06728c0 c247f000
 [1.772888] 1ea0:  09090578 c07bf6a0 dc9df004 dc9df000
 c04ea194 0091 c071bed8
 [1.781494] 1ec0: c06f89f4 c03e13c0 c03e1314 dc9df020 c0d1afd8
 dc9df054 c07bf60c c03272ac
 [1.790069] 1ee0: dc9df020 c07bf60c dc9df054  0091
 c03274c0 c07bf60c dc851f08
 [1.798645] 1f00: c032742c c0325b10 dc8f26a8 dc9ef790 
 c07bf60c c07bcea8 c243d6c0
 [1.807220] 1f20:  c0326240 c0672958 c02bce08 c07bf5e4
 c07bf60c c03e12a0 
 [1.815795] 1f40: 0091 c071bed8 c06f89f4 c0327ab0 c07bf5e4
 0007 c07c8c40 
 [1.824401] 1f60: 0091 c03e1738  dc85 0007
 c0008648  c112c9f0
 [1.832977] 1f80: c06a6d58 c06f89f4 0001 6013 c06694c8
  0006 0006
 [1.841552] 1fa0: 6013 c0700a20 0007 c07c8c40 c06d020c
 0091 c071bed8 c0700a28
 [1.850128] 1fc0:  c06d0380 0006 0006 c06d020c
   c06d028c
 [1.858703] 1fe0: c001548c 0013   
 c001548c 3f3f3f3f 3f3f3f3f
 [1.867309] [c02dbb68] (_set_gpio_triggering+0x44/0x264) from
 [c02dc224] (gpio_irq_type+0x0/0x160)
 [1.877075] [c02dc224] (gpio_irq_type+0x0/0x160) from [2002] 
 (0x2002)
 [1.884552] Code: e3120008 11816006 01c66001 e7846000 (e593c0fc)
 [1.890960] [ cut here ]
 [1.895812] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:113
 l3_interrupt_handler+0x184/0x1bc()
 [1.905029] L3 custom error: MASTER:MPU TARGET:L4 PER2
 [1.910430] Modules linked in:
 [1.913635] [c001bd5c] (unwind_backtrace+0x0/0xf4) from
 [c00414c4] (warn_slowpath_common+0x4c/0x64)
 [1.923492] [c00414c4] (warn_slowpath_common+0x4c/0x64) from
 [c0041570] (warn_slowpath_fmt+0x30/0x40)
 [1.933563] [c0041570] (warn_slowpath_fmt+0x30/0x40) from
 [c0035de4] (l3_interrupt_handler+0x184/0x1bc)
 [1.943786] [c0035de4] (l3_interrupt_handler+0x184/0x1bc) from
 [c00a28b8] (handle_irq_event_percpu+0x64/0x24c)
 [1.954650] [c00a28b8] (handle_irq_event_percpu+0x64/0x24c) from
 [c00a2adc] (handle_irq_event+0x3c/0x5c)
 [1.964965] [c00a2adc] (handle_irq_event+0x3c/0x5c) from
 [c00a56a8] (handle_fasteoi_irq+0x98/0x13c)
 [1.974822] [c00a56a8] (handle_fasteoi_irq+0x98/0x13c) from
 [c00a235c] (generic_handle_irq+0x34/0x44)
 [1.984863] [c00a235c] (generic_handle_irq+0x34/0x44) from
 [c00153a0] (handle_IRQ+0x4c/0xac)
 [1.994110] [c00153a0] (handle_IRQ+0x4c/0xac) from [c0008480]
 (gic_handle_irq+0x2c/0x60)
 [2.002960] [c0008480] (gic_handle_irq+0x2c/0x60) from
 [c04f26e4] (__irq_svc+0x44/0x60)
 [2.011718] Exception stack(0xdc851c48 to 0xdc851c90)
 [