Shared IRQ Problem

Pavel Roskin proski
Tue Jan 2 20:41:40 PST 2007


On Sat, 2006-12-30 at 12:02 +0200, Jar wrote:
> > pcmcia: request for exclusive IRQ could not be fulfilled.
> > pcmcia: the driver needs updating to supported shared IRQ lines.
> 
> So...hostap_cs doesn't support shared IRQs or what?

I think it doesn't.  Most PCMCIA drivers don't.  PCMCIA usually gives an
exclusive IRQ to the card.

It seems to me that hostap_cs.c does the same thing as other PCMCIA
wireless drivers do.  None of the wireless drivers sets
IRQ_TYPE_DYNAMIC_SHARING, which would prevent the warning.

Looking at prism2_interrupt(), it seems that it would be able to handle
shared interrupts because it does essentially nothing if no events are
waiting.

So maybe this patch would help (completely untested):

diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 8d8f4b9..6eca6ac 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -695,7 +695,8 @@ static int prism2_config(struct pcmcia_device *link)
 	 * irq structure is initialized.
 	 */
 	if (link->conf.Attributes & CONF_ENABLE_IRQ) {
-		link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
+		link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING |
+				       IRQ_FIRST_SHARED | IRQ_HANDLE_PRESENT;
 		link->irq.IRQInfo1 = IRQ_LEVEL_ID;
 		link->irq.Handler = prism2_interrupt;
 		link->irq.Instance = dev;

-- 
Regards,
Pavel Roskin






More information about the Hostap mailing list