linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/12] ata/sata_fsl: Update for ata_link introduction
@ 2007-10-31 11:27 Li Yang
  2007-10-31 11:27 ` [PATCH 02/12] ata/sata_fsl: Remove deprecated hooks Li Yang
  2007-11-03 12:48 ` [PATCH 01/12] ata/sata_fsl: Update for ata_link introduction Jeff Garzik
  0 siblings, 2 replies; 13+ messages in thread
From: Li Yang @ 2007-10-31 11:27 UTC (permalink / raw)
  To: jgarzik, linux-ide; +Cc: Li Yang

Update the driver to use the newly added ata_link structure.

Signed-off-by: Li Yang <leoli@freescale.com>
---
 drivers/ata/sata_fsl.c |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index b4c37b9..8a8ce9d 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -34,7 +34,8 @@ enum {
 
 	SATA_FSL_HOST_FLAGS	= (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
 				ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
-				ATA_FLAG_NCQ  | ATA_FLAG_SKIP_D2H_BSY),
+				ATA_FLAG_NCQ),
+	SATA_FSL_HOST_LFLAGS	= ATA_LFLAG_SKIP_D2H_BSY,
 
 	SATA_FSL_MAX_CMDS	= SATA_FSL_QUEUE_DEPTH,
 	SATA_FSL_CMD_HDR_SIZE	= 16,	/* 4 DWORDS */
@@ -728,9 +729,10 @@ static unsigned int sata_fsl_dev_classify(struct ata_port *ap)
 	return ata_dev_classify(&tf);
 }
 
-static int sata_fsl_softreset(struct ata_port *ap, unsigned int *class,
+static int sata_fsl_softreset(struct ata_link *link, unsigned int *class,
 			      unsigned long deadline)
 {
+	struct ata_port *ap = link->ap;
 	struct sata_fsl_port_priv *pp = ap->private_data;
 	struct sata_fsl_host_priv *host_priv = ap->host->private_data;
 	void __iomem *hcr_base = host_priv->hcr_base;
@@ -811,7 +813,7 @@ try_offline_again:
 	 */
 
 	temp = ata_wait_register(hcr_base + HSTATUS, 0xFF, 0, 1, 500);
-	if ((!(temp & 0x10)) || ata_port_offline(ap)) {
+	if ((!(temp & 0x10)) || ata_link_offline(link)) {
 		ata_port_printk(ap, KERN_WARNING,
 				"No Device OR PHYRDY change,Hstatus = 0x%x\n",
 				ioread32(hcr_base + HSTATUS));
@@ -842,12 +844,12 @@ try_offline_again:
 	 * reached here, we can send a command to the target device
 	 */
 
-	if (ap->sactive)
+	if (link->sactive)
 		goto skip_srst_do_ncq_error_handling;
 
 	DPRINTK("Sending SRST/device reset\n");
 
-	ata_tf_init(ap->device, &tf);
+	ata_tf_init(link->device, &tf);
 	cfis = (u8 *) & pp->cmdentry->cfis;
 
 	/* device reset/SRST is a control register update FIS, uses tag0 */
@@ -919,7 +921,7 @@ skip_srst_do_ncq_error_handling:
 	VPRINTK("Sending read log ext(10h) command\n");
 
 	memset(&qc, 0, sizeof(struct ata_queued_cmd));
-	ata_tf_init(ap->device, &tf);
+	ata_tf_init(link->device, &tf);
 
 	tf.command = ATA_CMD_READ_LOG_EXT;
 	tf.lbal = ATA_LOG_SATA_NCQ;
@@ -931,7 +933,7 @@ skip_srst_do_ncq_error_handling:
 	qc.tag = ATA_TAG_INTERNAL;
 	qc.scsicmd = NULL;
 	qc.ap = ap;
-	qc.dev = ap->device;
+	qc.dev = link->device;
 
 	qc.tf = tf;
 	qc.flags |= ATA_QCFLAG_RESULT_TF;
@@ -981,7 +983,7 @@ skip_srst_do_ncq_error_handling:
 	*class = ATA_DEV_NONE;
 
 	/* Verify if SStatus indicates device presence */
-	if (ata_port_online(ap)) {
+	if (ata_link_online(link)) {
 		/*
 		 * if we are here, device presence has been detected,
 		 * 1st D2H FIS would have been received, but sfis in
@@ -1042,7 +1044,8 @@ static void sata_fsl_irq_clear(struct ata_port *ap)
 
 static void sata_fsl_error_intr(struct ata_port *ap)
 {
-	struct ata_eh_info *ehi = &ap->eh_info;
+	struct ata_link *link = &ap->link;
+	struct ata_eh_info *ehi = &link->eh_info;
 	struct sata_fsl_host_priv *host_priv = ap->host->private_data;
 	void __iomem *hcr_base = host_priv->hcr_base;
 	u32 hstatus, dereg, cereg = 0, SError = 0;
@@ -1111,7 +1114,7 @@ static void sata_fsl_error_intr(struct ata_port *ap)
 	}
 
 	/* record error info */
-	qc = ata_qc_from_tag(ap, ap->active_tag);
+	qc = ata_qc_from_tag(ap, link->active_tag);
 
 	if (qc) {
 		sata_fsl_cache_taskfile_from_d2h_fis(qc, qc->ap);
@@ -1139,6 +1142,7 @@ static void sata_fsl_qc_complete(struct ata_queued_cmd *qc)
 
 static void sata_fsl_host_intr(struct ata_port *ap)
 {
+	struct ata_link *link = &ap->link;
 	struct sata_fsl_host_priv *host_priv = ap->host->private_data;
 	void __iomem *hcr_base = host_priv->hcr_base;
 	u32 hstatus, qc_active = 0;
@@ -1161,7 +1165,7 @@ static void sata_fsl_host_intr(struct ata_port *ap)
 		return;
 	}
 
-	if (ap->sactive) {	/* only true for NCQ commands */
+	if (link->sactive) {	/* only true for NCQ commands */
 		int i;
 		/* Read command completed register */
 		qc_active = ioread32(hcr_base + CC);
@@ -1190,10 +1194,10 @@ static void sata_fsl_host_intr(struct ata_port *ap)
 
 	} else if (ap->qc_active) {
 		iowrite32(1, hcr_base + CC);
-		qc = ata_qc_from_tag(ap, ap->active_tag);
+		qc = ata_qc_from_tag(ap, link->active_tag);
 
 		DPRINTK("completing non-ncq cmd, tag=%d,CC=0x%x\n",
-			ap->active_tag, ioread32(hcr_base + CC));
+			link->active_tag, ioread32(hcr_base + CC));
 
 		if (qc) {
 			sata_fsl_qc_complete(qc);
@@ -1348,6 +1352,7 @@ static const struct ata_port_operations sata_fsl_ops = {
 static const struct ata_port_info sata_fsl_port_info[] = {
 	{
 	 .flags = SATA_FSL_HOST_FLAGS,
+	 .link_flags = SATA_FSL_HOST_LFLAGS,
 	 .pio_mask = 0x1f,	/* pio 0-4 */
 	 .udma_mask = 0x7f,	/* udma 0-6 */
 	 .port_ops = &sata_fsl_ops,
-- 
1.5.3.2.104.g41ef


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2007-11-03 12:48 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-31 11:27 [PATCH 01/12] ata/sata_fsl: Update for ata_link introduction Li Yang
2007-10-31 11:27 ` [PATCH 02/12] ata/sata_fsl: Remove deprecated hooks Li Yang
2007-10-31 11:27   ` [PATCH 03/12] ata/sata_fsl: save irq in private data for irq unmapping Li Yang
2007-10-31 11:27     ` [PATCH 04/12] ata/sata_fsl: Kill ata_sg_is_last() Li Yang
2007-10-31 11:27       ` [PATCH 05/12] ata/sata_fsl: Remove unnecessary SCR cases Li Yang
2007-10-31 11:27         ` [PATCH 06/12] ata/sata_fsl: cleanup needless casts to/from void __iomem * Li Yang
2007-10-31 11:27           ` [PATCH 07/12] ata/sata_fsl: remove unneeded on-stack copy of FIS Li Yang
2007-10-31 11:28             ` [PATCH 08/12] ata/sata_fsl: remove unneeded sata_fsl_hardreset() Li Yang
2007-10-31 11:28               ` [PATCH 09/12] ata/sata_fsl: cleanup style problem Li Yang
2007-10-31 11:28                 ` [PATCH 10/12] ata/sata_fsl: Move MPC8315DS link speed limit workaround to specific ifdef Li Yang
2007-10-31 11:28                   ` [PATCH 11/12] ata/sata_fsl: Remove sending LOG EXT command in sata_fsl_softreset() Li Yang
2007-10-31 11:28                     ` [PATCH 12/12] ata/sata_fsl: Remove ata_scsi_suspend/resume callbacks Li Yang
2007-11-03 12:48 ` [PATCH 01/12] ata/sata_fsl: Update for ata_link introduction Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).