Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 42146
b: refs/heads/master
c: 0f0a3ad
h: refs/heads/master
v: v3
  • Loading branch information
Tejun Heo committed Dec 3, 2006
1 parent 9a0ee37 commit 029f2aa
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ea54763f8a7c51b9f8fcb14431812ae63fcbaf96
refs/heads/master: 0f0a3ad3741fd93461fcfb85dc577103c58d9be8
5 changes: 2 additions & 3 deletions trunk/drivers/ata/libata-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -5681,9 +5681,8 @@ int ata_device_add(const struct ata_probe_ent *ent)
ap->ioaddr.bmdma_addr,
irq_line);

ata_chk_status(ap);
host->ops->irq_clear(ap);
ata_eh_freeze_port(ap); /* freeze port before requesting IRQ */
/* freeze port before requesting IRQ */
ata_eh_freeze_port(ap);
}

/* obtain irq, that may be shared between channels */
Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/ata/libata-sff.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,14 @@ void ata_bmdma_freeze(struct ata_port *ap)
writeb(ap->ctl, (void __iomem *)ioaddr->ctl_addr);
else
outb(ap->ctl, ioaddr->ctl_addr);

/* Under certain circumstances, some controllers raise IRQ on
* ATA_NIEN manipulation. Also, many controllers fail to mask
* previously pending IRQ on ATA_NIEN assertion. Clear it.
*/
ata_chk_status(ap);

ap->ops->irq_clear(ap);
}

/**
Expand Down

0 comments on commit 029f2aa

Please sign in to comment.