Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 158501
b: refs/heads/master
c: 2fc37ad
h: refs/heads/master
i:
  158499: 0b8b23e
v: v3
  • Loading branch information
Jeff Garzik authored and Jeff Garzik committed Sep 1, 2009
1 parent fa8223b commit 013fe02
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 54c38444fad6a99b4b19512f8f0055d69115e69e
refs/heads/master: 2fc37adba0fb05760b8635c6706773af828ccf3c
13 changes: 13 additions & 0 deletions trunk/drivers/ata/sata_sil.c
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,19 @@ static void sil_freeze(struct ata_port *ap)
tmp |= SIL_MASK_IDE0_INT << ap->port_no;
writel(tmp, mmio_base + SIL_SYSCFG);
readl(mmio_base + SIL_SYSCFG); /* flush */

/* Ensure DMA_ENABLE is off.
*
* This is because the controller will not give us access to the
* taskfile registers while a DMA is in progress
*/
iowrite8(ioread8(ap->ioaddr.bmdma_addr) & ~SIL_DMA_ENABLE,
ap->ioaddr.bmdma_addr);

/* According to ata_bmdma_stop, an HDMA transition requires
* on PIO cycle. But we can't read a taskfile register.
*/
ioread8(ap->ioaddr.bmdma_addr);
}

static void sil_thaw(struct ata_port *ap)
Expand Down

0 comments on commit 013fe02

Please sign in to comment.