kern/152817: [ahci] ahci doesn't find disk
Alexander Motin
mav at FreeBSD.org
Mon Jan 24 10:00:22 UTC 2011
The following reply was made to PR kern/152817; it has been noted by GNATS.
From: Alexander Motin <mav at FreeBSD.org>
To: Julian Stecklina <js at alien8.de>
Cc: bug-followup at FreeBSD.org
Subject: Re: kern/152817: [ahci] ahci doesn't find disk
Date: Mon, 24 Jan 2011 11:49:21 +0200
This is a multi-part message in MIME format.
--------------060102030001030602070708
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: 7bit
Julian Stecklina wrote:
> Thus spake Alexander Motin <mav at FreeBSD.org>:
>> Problem looks alike to one workarounded in CURRENT by SVN revision
>> 217444, just with different feature. That patch with such addition
>> should probably help:
>>
>> Try it please, as if it help, send me output of the `camcontrol
>> identify ada0 -v` command for check.
>
> Your fix works. :) All drives are detected. The camcontrol output is
> from an 8.2ish userland, I hope this is ok.
Thank you. Could you try this patch instead? It should be less noisy.
--
Alexander Motin
--------------060102030001030602070708
Content-Type: text/plain;
name="mininit.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="mininit.patch"
--- ata_xpt.c.prev 2011-01-15 11:43:26.000000000 +0200
+++ ata_xpt.c 2011-01-24 11:42:36.000000000 +0200
@@ -988,7 +988,9 @@ noerror:
cts.xport_specific.sata.valid = CTS_SATA_VALID_CAPS;
xpt_action((union ccb *)&cts);
softc->caps = caps;
- if (ident_buf->satasupport & ATA_SUPPORT_IFPWRMNGT) {
+ if ((ident_buf->satasupport & ATA_SUPPORT_IFPWRMNGT) &&
+ (!(softc->caps & CTS_SATA_CAPS_H_PMREQ)) !=
+ (!(ident_buf->sataenabled & ATA_SUPPORT_IFPWRMNGT))) {
PROBE_SET_ACTION(softc, PROBE_SETPM);
xpt_release_ccb(done_ccb);
xpt_schedule(periph, priority);
@@ -997,7 +999,9 @@ noerror:
/* FALLTHROUGH */
case PROBE_SETPM:
if (ident_buf->satacapabilities != 0xffff &&
- ident_buf->satacapabilities & ATA_SUPPORT_DAPST) {
+ (ident_buf->satacapabilities & ATA_SUPPORT_DAPST) &&
+ (!(softc->caps & CTS_SATA_CAPS_H_APST)) !=
+ (!(ident_buf->sataenabled & ATA_ENABLED_DAPST))) {
PROBE_SET_ACTION(softc, PROBE_SETAPST);
xpt_release_ccb(done_ccb);
xpt_schedule(periph, priority);
@@ -1005,7 +1009,9 @@ noerror:
}
/* FALLTHROUGH */
case PROBE_SETAPST:
- if (ident_buf->satasupport & ATA_SUPPORT_AUTOACTIVATE) {
+ if ((ident_buf->satasupport & ATA_SUPPORT_AUTOACTIVATE) &&
+ (!(softc->caps & CTS_SATA_CAPS_H_DMAAA)) !=
+ (!(ident_buf->sataenabled & ATA_SUPPORT_AUTOACTIVATE))) {
PROBE_SET_ACTION(softc, PROBE_SETDMAAA);
xpt_release_ccb(done_ccb);
xpt_schedule(periph, priority);
--------------060102030001030602070708--
More information about the freebsd-bugs
mailing list