linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Matthieu CASTET <matthieu.castet@parrot.com>
Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org
Subject: Re: ata_piix 2.6.25 sata failure
Date: Thu, 15 May 2008 16:57:41 +0900	[thread overview]
Message-ID: <482BECF5.2070801@gmail.com> (raw)
In-Reply-To: <482BE929.7090009@parrot.com>

[-- Attachment #1: Type: text/plain, Size: 894 bytes --]

Matthieu CASTET wrote:
> Hi Tejun,
> 
> Matthieu CASTET wrote:
>> Hi,
>>
>> the 2.6.25 from debian fail to make work the second port. I got a 
>> "SATA link down (SStatus 61 Scontrol 30)" for ata2. ata1 got "SATA 
>> link up 3.0 Gbps (SStatus 13 SControl 30)"
>> The 2.6.24 works [1]. But some previous kernel (IRRC 2.6.18) had the 
>> same problem, ie ata2 doesn't work.
>>
> I saw you post a patch for macbook for correcting a bug with ata_ppiix.
> But it doesn't seem the same problem. I don't get 0 but others values.
> 
> May be a problem occurs when merging the master and slave status register ?
> 
> 
> Any idea how to debug this.
> 
> For information this happen on a HP Compaq dc7700p, and there no way on 
> the bios to change the controller to ahci mode

Yeah, I wrote a patch for that yesterday and forgot to actually send it. 
  Can you please test the attached patch?

-- 
tejun

[-- Attachment #2: libata-force-hardreset-if-link-pm --]
[-- Type: text/plain, Size: 1512 bytes --]

From: Tejun Heo <teheo@suse.de>
Subject: libata: force hardreset if link is in powersave mode
References: 381795

Inhibiting link PM mode doesn't bring the link back online if it's
already in powersave mode.  If SRST is used in these cases, libata EH
thinks that the link is offline and fails detection.  Force hardreset
if link is in powersave mode.

Signed-off-by: Tejun Heo <teheo@suse.de>
---
 drivers/ata/libata-core.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

Index: linux-2.6.25/drivers/ata/libata-core.c
===================================================================
--- linux-2.6.25.orig/drivers/ata/libata-core.c
+++ linux-2.6.25/drivers/ata/libata-core.c
@@ -3960,6 +3960,7 @@ int ata_std_prereset(struct ata_link *li
 	struct ata_port *ap = link->ap;
 	struct ata_eh_context *ehc = &link->eh_context;
 	const unsigned long *timing = sata_ehc_deb_timing(ehc);
+	u32 sstatus;
 	int rc;
 
 	/* handle link resume */
@@ -3973,6 +3974,17 @@ int ata_std_prereset(struct ata_link *li
 	if (ap->flags & ATA_FLAG_PMP)
 		ehc->i.action |= ATA_EH_HARDRESET;
 
+	/* if link powersave is on, force hardreset */
+	if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0) {
+		u8 ipm = sstatus >> 8;
+
+		if (ipm == 2 || ipm == 6) {
+			ata_link_printk(link, KERN_INFO, "link in powersave "
+				"mode (ipm=%d), forcing hardreset\n", ipm);
+			ehc->i.action |= ATA_EH_HARDRESET;
+		}
+	}
+
 	/* if we're about to do hardreset, nothing more to do */
 	if (ehc->i.action & ATA_EH_HARDRESET)
 		return 0;

  reply	other threads:[~2008-05-15  7:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-13  7:56 ata_piix 2.6.25 sata failure Matthieu CASTET
2008-05-15  7:41 ` Matthieu CASTET
2008-05-15  7:57   ` Tejun Heo [this message]
2008-05-15 11:15     ` Matthieu CASTET

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=482BECF5.2070801@gmail.com \
    --to=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthieu.castet@parrot.com \
    /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).