From c0b34ad2956036cdba87792d6c46d8f491539df1 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Thu, 4 Aug 2005 09:04:56 +0200 Subject: [PATCH] [PATCH] Fix HD activity LED with ahci Patch: fix wrong HD activity control by ahci driver The ahci driver 1.0 sets the SActive bit on every transaction, causing the LED to light up. The SActive bit is used only for native command queuing (NCQ) which the current driver version doesn't implement. Resetting the SActive bit is the device's responsibility (by sending a "Set Device Bits FIS" to the host adapter) but this is not required in response to non-NCQ commands, and (most) devices don't. Thus the LED stays always on. This patch fixes the LED behavior. Spec references: http://www.intel.com/technology/serialata/pdf/rev1_1.pdf, sec. 3.3.13, 5.5.1 http://www.serialata.org/docs/serialata10a.pdf http://www.intel.com/design/storage/papers/25266401.pdf Signed-off-by: Martin.Wilck@fujitsu-siemens.com Signed-off-by: Jeff Garzik --- drivers/scsi/ahci.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 0c79cafb13..0b228ff671 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c @@ -698,9 +698,6 @@ static int ahci_qc_issue(struct ata_queued_cmd *qc) struct ata_port *ap = qc->ap; void *port_mmio = (void *) ap->ioaddr.cmd_addr; - writel(1, port_mmio + PORT_SCR_ACT); - readl(port_mmio + PORT_SCR_ACT); /* flush */ - writel(1, port_mmio + PORT_CMD_ISSUE); readl(port_mmio + PORT_CMD_ISSUE); /* flush */ -- 2.39.5