Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 35360
b: refs/heads/master
c: d8fcd11
h: refs/heads/master
v: v3
  • Loading branch information
Tejun Heo authored and Jeff Garzik committed Jul 29, 2006
1 parent d99fab1 commit 85243dd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 19 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: 254950cd56fee220c9d548f3e57211b95976ba64
refs/heads/master: d8fcd116d203dfe2f6c272d0cd67724b172f1bc2
27 changes: 9 additions & 18 deletions trunk/drivers/scsi/ahci.c
Original file line number Diff line number Diff line change
Expand Up @@ -410,30 +410,23 @@ static int ahci_start_engine(void __iomem *port_mmio)
{
u32 tmp;

/*
* Get current status
*/
/* get current status */
tmp = readl(port_mmio + PORT_CMD);

/*
* AHCI rev 1.1 section 10.3.1:
/* AHCI rev 1.1 section 10.3.1:
* Software shall not set PxCMD.ST to '1' until it verifies
* that PxCMD.CR is '0' and has set PxCMD.FRE to '1'
*/
if ((tmp & PORT_CMD_FIS_RX) == 0)
return -EPERM;

/*
* wait for engine to become idle.
*/
/* wait for engine to become idle */
tmp = ata_wait_register(port_mmio + PORT_CMD,
PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1,500);
if(tmp & PORT_CMD_LIST_ON)
if (tmp & PORT_CMD_LIST_ON)
return -EBUSY;

/*
* Start DMA
*/
/* start DMA */
tmp |= PORT_CMD_START;
writel(tmp, port_mmio + PORT_CMD);
readl(port_mmio + PORT_CMD); /* flush */
Expand All @@ -447,20 +440,18 @@ static int ahci_stop_engine(void __iomem *port_mmio)

tmp = readl(port_mmio + PORT_CMD);

/* Check if the HBA is idle */
/* check if the HBA is idle */
if ((tmp & (PORT_CMD_START | PORT_CMD_LIST_ON)) == 0)
return 0;

/* Setting HBA to idle */
/* setting HBA to idle */
tmp &= ~PORT_CMD_START;
writel(tmp, port_mmio + PORT_CMD);

/* wait for engine to stop. This could be
* as long as 500 msec
*/
/* wait for engine to stop. This could be as long as 500 msec */
tmp = ata_wait_register(port_mmio + PORT_CMD,
PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500);
if(tmp & PORT_CMD_LIST_ON)
if (tmp & PORT_CMD_LIST_ON)
return -EIO;

return 0;
Expand Down

0 comments on commit 85243dd

Please sign in to comment.