[ARM][OMAP] TWL4030 IRQ

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

 



(resending wrapped message)

Russell, 
> -----Original Message-----
> From: Shilimkar, Santosh 
> Sent: Saturday, June 20, 2009 8:55 PM
> To: 'Tony Lindgren'; 'linux-omap@xxxxxxxxxxxxxxx'
> Cc: 'Russell King - ARM Linux'
> Subject: [ARM][OMAP] TWL4030 IRQ
> 
> Just to brief you all, I came across a dead lock scenario on 
> the arm-smp kernel. After discussing with Russell on mailing 
> list, the actual bug seems be located in twl4030 IRQ implementation.
> 
> Initially I was suspecting the arm-generic area and hence 
> didn't include linux-omap list in the mail thread
> 
> For more information on this issue, please read this email thread.
> http://marc.info/?l=linux-arm-kernel&m=124550947525299&w=2
> 
> I will create a patch for "twl4030" and also would be 
> correcting upcoming "twl6030" accordingly.
> 
> If anyone on this mailing list has any other opinion, please 
> react to the email thread. 


After digging a bit, the proposed twl_irq change would need some major 
changes.

1. All the T2(TWL)drivers ( rtc, madc, bci, gpio, keypad, usb, mmc)needs
modification.Currently twl_irq fw implements kind of "twl4030_irq_chip" 
which allows all the T2 drivers to get virtual interrupt numbers and can
make use of standard "request_irq" linux api.
2.Above also helps to have useful entries 
like /proc/interrupts/rtc etc.
With proposed change this also won't be available.
3. Register/unregister irq handlers to T2 from all the drivers

On the reported lock-up issue, I tried alternative to call mask/unmask 
functions with disabling local cpu interrupts.
This worked for me but not sure whether it is entirely correct.

Something like this:
 static void handle_twl4030_pih(unsigned int irq, irq_desc_t *desc)
 {
+	unsigned long flags;
+
 	/* Acknowledge, clear *AND* mask the interrupt... */
+	local_irq_save(flags);
 	desc->chip->ack(irq);
+	local_irq_restore(flags);
 	complete(&irq_event);
 }

Do you think above approach is fine to get around the spin-lock lockup
issue ? 
 
Regards,
Santosh--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux