From: Tejun Heo <htejun@gmail.com>
To: Jeff Garzik <jeff@garzik.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
linux-ide@vger.kernel.org, Forrest Zhao <forrest.zhao@gmail.com>
Cc: Tejun Heo <htejun@gmail.com>
Subject: [PATCH 07/21] sata_sil24: replace sil24_update_tf() with sil24_read_tf()
Date: Mon, 16 Jul 2007 14:29:39 +0900 [thread overview]
Message-ID: <11845637791316-git-send-email-htejun@gmail.com> (raw)
In-Reply-To: <11845637782629-git-send-email-htejun@gmail.com>
Replace sil24_update_tf() to sil24_read_tf() which reads TF into
passed int result TF argument and can read TFs of PMP links. This
will be used by PMP support.
Signed-off-by: Tejun Heo <htejun@gmail.com>
---
drivers/ata/sata_sil24.c | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index a11007b..5f8afa9 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -464,15 +464,15 @@ static void sil24_dev_config(struct ata_device *dev)
writel(PORT_CS_CDB16, port + PORT_CTRL_CLR);
}
-static inline void sil24_update_tf(struct ata_port *ap)
+static void sil24_read_tf(struct ata_port *ap, int tag, struct ata_taskfile *tf)
{
- struct sil24_port_priv *pp = ap->private_data;
void __iomem *port = ap->ioaddr.cmd_addr;
- struct sil24_prb __iomem *prb = port;
+ struct sil24_prb __iomem *prb;
u8 fis[6 * 4];
- memcpy_fromio(fis, prb->fis, 6 * 4);
- ata_tf_from_fis(fis, &pp->tf);
+ prb = port + PORT_LRAM + sil24_tag(tag) * PORT_LRAM_SLOT_SZ;
+ memcpy_fromio(fis, prb->fis, sizeof(fis));
+ ata_tf_from_fis(fis, tf);
}
static u8 sil24_check_status(struct ata_port *ap)
@@ -538,6 +538,7 @@ static int sil24_softreset(struct ata_port *ap, unsigned int *class,
struct sil24_port_priv *pp = ap->private_data;
struct sil24_prb *prb = &pp->cmd_block[0].ata.prb;
dma_addr_t paddr = pp->cmd_block_dma;
+ struct ata_taskfile tf;
u32 mask, irq_stat;
const char *reason;
@@ -577,8 +578,8 @@ static int sil24_softreset(struct ata_port *ap, unsigned int *class,
goto err;
}
- sil24_update_tf(ap);
- *class = ata_dev_classify(&pp->tf);
+ sil24_read_tf(ap, 0, &tf);
+ *class = ata_dev_classify(&tf);
if (*class == ATA_DEV_UNKNOWN)
*class = ATA_DEV_NONE;
@@ -754,6 +755,7 @@ static void sil24_thaw(struct ata_port *ap)
static void sil24_error_intr(struct ata_port *ap)
{
void __iomem *port = ap->ioaddr.cmd_addr;
+ struct sil24_port_priv *pp = ap->private_data;
struct ata_eh_info *ehi = &ap->eh_info;
int freeze = 0;
u32 irq_stat;
@@ -808,7 +810,7 @@ static void sil24_error_intr(struct ata_port *ap)
/* record error info */
qc = ata_qc_from_tag(ap, ap->active_tag);
if (qc) {
- sil24_update_tf(ap);
+ sil24_read_tf(ap, qc->tag, &pp->tf);
qc->err_mask |= err_mask;
} else
ehi->err_mask |= err_mask;
@@ -825,8 +827,11 @@ static void sil24_error_intr(struct ata_port *ap)
static void sil24_finish_qc(struct ata_queued_cmd *qc)
{
+ struct ata_port *ap = qc->ap;
+ struct sil24_port_priv *pp = ap->private_data;
+
if (qc->flags & ATA_QCFLAG_RESULT_TF)
- sil24_update_tf(qc->ap);
+ sil24_read_tf(ap, qc->tag, &pp->tf);
}
static inline void sil24_host_intr(struct ata_port *ap)
--
1.5.0.3
next prev parent reply other threads:[~2007-07-16 5:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-16 5:29 [PATCHSET 1/4] libata: misc updates in preparation of PMP support, take #2 Tejun Heo
2007-07-16 5:29 ` [PATCH 02/21] libata: add @is_cmd to ata_tf_to_fis() Tejun Heo
2007-07-20 11:56 ` Jeff Garzik
2007-07-20 12:02 ` Jeff Garzik
2007-07-20 12:18 ` Tejun Heo
2007-07-20 12:20 ` Jeff Garzik
2007-07-16 5:29 ` [PATCH 01/21] ahci: build fix for !CONFIG_PM Tejun Heo
2007-07-16 5:29 ` [PATCH 03/21] ahci: use deadline instead of fixed timeout for 1st FIS for SRST Tejun Heo
2007-07-16 5:29 ` [PATCH 06/21] ahci: separate out ahci_do_softreset() Tejun Heo
2007-07-16 5:29 ` [PATCH 09/21] sata_sil24: separate out sil24_do_softreset() Tejun Heo
2007-07-16 5:29 ` [PATCH 04/21] ahci: separate out ahci_kick_engine() Tejun Heo
2007-07-16 5:29 ` Tejun Heo [this message]
2007-07-16 5:29 ` [PATCH 08/21] sata_sil24: separate out sil24_exec_polled_cmd() Tejun Heo
2007-07-16 5:29 ` [PATCH 10/21] libata: improve EH report formatting Tejun Heo
2007-07-16 5:29 ` [PATCH 05/21] ahci: separate out ahci_exec_polled_cmd() Tejun Heo
2007-07-16 5:29 ` [PATCH 16/21] libata: quickly trigger SATA SPD down after debouncing failed Tejun Heo
2007-07-16 5:29 ` [PATCH 14/21] ahci: implement SCR_NOTIFICATION r/w Tejun Heo
2007-07-16 5:29 ` [PATCH 17/21] libata: improve SCSI scan failure handling Tejun Heo
2007-07-20 12:26 ` Jeff Garzik
2007-07-20 12:28 ` Tejun Heo
2007-07-16 5:29 ` [PATCH 11/21] libata: implement AC_ERR_NCQ Tejun Heo
2007-07-16 5:29 ` [PATCH 15/21] libata: improve SATA PHY speed down logic Tejun Heo
2007-07-20 12:20 ` Jeff Garzik
2007-07-16 5:29 ` [PATCH 12/21] libata: make ->scr_read/write callbacks return error code Tejun Heo
2007-07-20 11:58 ` Jeff Garzik
2007-07-16 5:29 ` [PATCH 18/21] libata: reorganize ata_ehi_hotplugged() Tejun Heo
2007-07-16 5:29 ` [PATCH 13/21] ahci: make NO_NCQ handling more consistent Tejun Heo
2007-07-16 5:29 ` [PATCH 21/21] libata: implement EH fast drain Tejun Heo
2007-07-16 5:29 ` [PATCH 19/21] libata: clear HOTPLUG flag after a reset Tejun Heo
2007-07-16 5:29 ` [PATCH 20/21] libata: schedule probing after SError access failure during autopsy Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11845637791316-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=forrest.zhao@gmail.com \
--cc=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).