[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ide
Subject:    [PATCH] Re: AHCI: support for tf_read (RFC)
From:       Jeff Garzik <jgarzik () pobox ! com>
Date:       2005-02-25 23:19:14
Message-ID: 421FB272.4030502 () pobox ! com
[Download RAW message or body]

Brett Russ wrote:
> I coded this because ata_pass_thru_cc() (in the dev branch) and other
> functions call tf_read() which is supported for most except ahci.
> I've been unable to test because I'm leaving on vacation and am in a
> last minute rush but wanted to get this out there for comments.
> 
> Signed-off-by: Brett Russ <russb@emc.com>

I checked the attached patch into a local repository, but haven't yet 
merged it into libata-dev-2.6, or tested it.

	Jeff



["patch" (text/plain)]

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/02/25 18:18:09-05:00 jgarzik@pobox.com 
#   [libata ahci] support ->tf_read hook
# 
# drivers/scsi/ahci.c
#   2005/02/25 18:18:03-05:00 jgarzik@pobox.com +11 -0
#   [libata ahci] support ->tf_read hook
# 
diff -Nru a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
--- a/drivers/scsi/ahci.c	2005-02-25 18:18:23 -05:00
+++ b/drivers/scsi/ahci.c	2005-02-25 18:18:23 -05:00
@@ -177,6 +177,7 @@
 static int ahci_port_start(struct ata_port *ap);
 static void ahci_port_stop(struct ata_port *ap);
 static void ahci_host_stop(struct ata_host_set *host_set);
+static void ahci_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
 static void ahci_qc_prep(struct ata_queued_cmd *qc);
 static u8 ahci_check_status(struct ata_port *ap);
 static u8 ahci_check_err(struct ata_port *ap);
@@ -209,6 +210,8 @@
 	.check_err		= ahci_check_err,
 	.dev_select		= ata_noop_dev_select,
 
+	.tf_read		= ahci_tf_read,
+
 	.phy_reset		= ahci_phy_reset,
 
 	.qc_prep		= ahci_qc_prep,
@@ -460,6 +463,14 @@
 	void *mmio = (void *) ap->ioaddr.cmd_addr;
 
 	return (readl(mmio + PORT_TFDATA) >> 8) & 0xFF;
+}
+
+static void ahci_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
+{
+	struct ahci_port_priv *pp = ap->private_data;
+	u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
+
+	ata_tf_from_fis(d2h_fis, tf);
 }
 
 static void ahci_fill_sg(struct ata_queued_cmd *qc)

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic