kill @force_restart and refine CLO for ahci_kick_engine()
PATCH 1/1 kill @force_restart and refine CLO for ahci_kick_engine()
This patch refines ahci_kick_engine() after discussion with Tejun about FBS(FIS-based switching) support preparation:
a. Kill @force_restart and always kick the engine. The only case where
@force_restart is zero is when it's called from ahci_p5wdh_hardreset() Actually at that point, BSY is pretty much guaranteed to be set.
b. If PMP is attached, ignore busy and always do CLO. (AHCI-1.3 9.2)
drivers/ata/ahci.c +10 -12
@@ -1578,7 +1578,7 @@ pp->cmd_slot[tag].tbl_addr_hi =cpu_to_le32 ((cmd_tbl_dma >>16 ) >>16 ); } -static int ahci_kick_engine (struct ata_port *ap,int force_restart) +static int ahci_kick_engine (struct ata_port *ap) {void __iomem *port_mmio =ahci_port_base (ap);struct ahci_host_priv *hpriv = ap->host->private_data;
@@ -1586,18 +1586,16 @@u32 tmp;int busy, rc; -/* do we need to kick the port? */ - busy = status & (ATA_BUSY |ATA_DRQ ); -if (!busy && !force_restart) -return 0 ; -/* stop engine */ rc =ahci_stop_engine (ap);if (rc) goto out_restart; -/* need to do CLO? */ -if (!busy) { +/* need to do CLO? +* always do CLO if PMP is attached (AHCI-1.3 9.2) +*/ + busy = status & (ATA_BUSY |ATA_DRQ ); +if (!busy && !sata_pmp_attached (ap)) { rc =0 ; goto out_restart; }
@@ -1645,7 +1643,7 @@ tmp =ata_wait_register (port_mmio +PORT_CMD_ISSUE ,0x1 ,0x1 ,1 , timeout_msec);if (tmp &0x1 ) { -ahci_kick_engine (ap,1 ); +ahci_kick_engine (ap);return -EBUSY ; } }else
@@ -1667,7 +1665,7 @@DPRINTK ("ENTER\n" );/* prepare for SRST (AHCI-1.1 10.4.1) */ - rc =ahci_kick_engine (ap,1 ); + rc =ahci_kick_engine (ap);if (rc && rc != -EOPNOTSUPP )ata_link_printk (link,KERN_WARNING ,"failed to reset engine (errno=%d)\n" , rc);
@@ -1873,7 +1871,7 @@ rc =ata_wait_after_reset (link, jiffies +2 *HZ , ahci_check_ready);if (rc) -ahci_kick_engine (ap,0 ); +ahci_kick_engine (ap); }return rc; }
@@ -2254,7 +2252,7 @@/* make DMA engine forget about the failed command */ if (qc->flags &ATA_QCFLAG_FAILED ) -ahci_kick_engine (ap,1 ); +ahci_kick_engine (ap); }static void ahci_pmp_attach (struct ata_port *ap)
Hello, Shane.
Please make the subject look like,
[PATCH #upstream] ahci: kill @force_restart....
Quoted 9 lines · Shane Huang
This patch refines
ahci_kick_engine()after discussion with Tejun about FBS(FIS-based switching) support preparation:
a. Kill @force_restart and always kick the engine. The only case where
@force_restart is zero is when it's called fromahci_p5wdh_hardreset()Actually at that point, BSY is pretty much guaranteed to be set.
b. If PMP is attached, ignore busy and always do CLO. (AHCI-1.3 9.2)Signed-off-by Shane Huang <[email protected]>Cc Tejun Heo <[email protected]>
And put the followings here
---
DIFFSTAT OUTPUT
drivers/ata/ahci.c
Quoted 5 lines
diff -ruN
a/drivers/ata/ahci.cb/drivers/ata/ahci.cdrivers/ata/ahci.c +0
-0@@ -1578,7 +1578,7 @@
and use -p when generating diffs. It's usually best to generate diff from a git tree.
Other than the above peripheral issues,
Thanks.
Signature · 1 line
tejun
Tejun,
Quoted 34 lines
-----Original Message-----
From: Tejun Heo [mailto:[email protected]]Please make the subject look like,
[PATCH #upstream] ahci: kill @force_restart....
Quoted 1 line · Shane Huang
This patch refines
ahci_kick_engine()after discussion withTejun about
Quoted 2 lines
FBS(FIS-based switching) support preparation:
a. Kill @force_restart and always kick the engine. The onlycase where
Quoted 1 line
@force_restart is zero is when it's called from
ahci_p5wdh_hardreset()Quoted 5 lines
Actually at that point, BSY is pretty much guaranteed to be set.
b. If PMP is attached, ignore busy and always do CLO. (AHCI-1.3 9.2)Signed-off-by Shane Huang <[email protected]>Cc Tejun Heo <[email protected]>And put the followings here
---
DIFFSTAT OUTPUTdrivers/ata/ahci.c
Quoted 5 lines
diff -ruN
a/drivers/ata/ahci.cb/drivers/ata/ahci.cdrivers/ata/ahci.c +0
-0@@ -1578,7 +1578,7 @@and use -p when generating diffs. It's usually best to generate diff from a git tree.
Quoted 3 lines
Other than the above peripheral issues,
Acked-by Tejun Heo <[email protected]>
OK, I will follow your suggestions next time when I submit patches, for this patch, I will not re-submit.
Thanks
Shane