Messages in this thread |  | | | Date | Thu, 4 Aug 2005 11:20:25 +0900 | | From | Tejun Heo <> | | Subject | Re: [PATCH linux-2.6.13-rc3] SATA: rewritten sil24 driver |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |