Re: [PATCH linux-2.6.13-rc3] SATA: rewritten sil24 driver

From: Tejun Heo
Date: Wed Aug 03 2005 - 21:22:01 EST


Hello, Edward.

One more question.

> > >
> > >I think this will work (adapted from sil_interrupt():
> > >
> > >static void sil_irq_clear(struct ata_port *ap)
> > >{
> > > struct sil_port_priv *pp = ap->private_data;
> > > struct Port_Registers *port_base = pp->pregs;
> > > unsigned long port_int;
> > >
> > > port_int = readl((void *)&port_base->IntStatus);
> > > writel(port_int, &port_base->IntStatus);
> > >}
> > >
> > >I'm assuming that this entry point is expected to clear all interrupts, no?
> >
> > Correct.
> >
>
> I'll verify with the error register clearing part of the original
> driver and submit a patch.
>

Command completion interrupt is automatcally cleared by reading
PORT_SLOT_STAT register (SlotStatus in the original driver), and error
registers should be manually cleared by writing to PORT_IRQ_STAT
(IntStatus).

I agree that above code should clear both. Just wanna verify. Have
you tested it and/or do you have any information confirming this? If
we don't have any further info, I think we should read PORT_SLOT_STAT
before clearing PORT_IRQ_STAT to be on the safe side.

Thanks.

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/