forked from luck/tmp_suning_uos_patched
ahci: port_no should be used when clearing IRQ in ahci_thaw()
ap->id is logcial port ID which is unique among all ATA ports and doesn't have anything to do with hardware port index. ap->port_no is the hardware port index and thus should be used when clearing IRQ mask in ahci_thaw(). This problem has been spotted by Jeff Garzik <jgarzik@pobox.com>. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
7d620a4e53
commit
a718728f9e
@ -1282,7 +1282,7 @@ static void ahci_thaw(struct ata_port *ap)
|
|||||||
/* clear IRQ */
|
/* clear IRQ */
|
||||||
tmp = readl(port_mmio + PORT_IRQ_STAT);
|
tmp = readl(port_mmio + PORT_IRQ_STAT);
|
||||||
writel(tmp, port_mmio + PORT_IRQ_STAT);
|
writel(tmp, port_mmio + PORT_IRQ_STAT);
|
||||||
writel(1 << ap->id, mmio + HOST_IRQ_STAT);
|
writel(1 << ap->port_no, mmio + HOST_IRQ_STAT);
|
||||||
|
|
||||||
/* turn IRQ back on */
|
/* turn IRQ back on */
|
||||||
writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
|
writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
|
||||||
|
Loading…
Reference in New Issue
Block a user