/* Is this interrupt for us? */
- if ( h->access.intr_pending(h) == 0)
+ if (( h->access.intr_pending(h) == 0) || (h->interrupts_enabled == 0))
return IRQ_NONE;
/*
unsigned long io_mem_length;
CfgTable_struct *cfgtable;
int intr;
-
+ int interrupts_enabled;
int max_commands;
int commands_outstanding;
int max_outstanding; /* Debug */
{
if (val)
{ /* Turn interrupts on */
+ h->interrupts_enabled = 1;
writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
} else /* Turn them off */
{
+ h->interrupts_enabled = 0;
writel( SA5_INTR_OFF,
h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
}
{
if (val)
{ /* Turn interrupts on */
+ h->interrupts_enabled = 1;
writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
} else /* Turn them off */
{
+ h->interrupts_enabled = 0;
writel( SA5B_INTR_OFF,
h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
}