aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/siis
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2011-04-13 16:20:54 +0000
committerAlexander Motin <mav@FreeBSD.org>2011-04-13 16:20:54 +0000
commit8d169381e427bddf2b46c862fb721fa76ffac8f3 (patch)
tree50152a120489fd01d6729de29dac3161f46fd826 /sys/dev/siis
parent235ab70e0a6c67b0529450bfd7717cd99bcf09eb (diff)
downloadsrc-8d169381e427bddf2b46c862fb721fa76ffac8f3.tar.gz
src-8d169381e427bddf2b46c862fb721fa76ffac8f3.zip
Notes
Diffstat (limited to 'sys/dev/siis')
-rw-r--r--sys/dev/siis/siis.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c
index 03c6127054d2..b974cf2eae2e 100644
--- a/sys/dev/siis/siis.c
+++ b/sys/dev/siis/siis.c
@@ -474,6 +474,7 @@ siis_ch_attach(device_t dev)
ch->curr[i] = ch->user[i];
if (ch->pm_level)
ch->user[i].caps = CTS_SATA_CAPS_H_PMREQ;
+ ch->user[i].caps |= CTS_SATA_CAPS_H_AN;
}
mtx_init(&ch->mtx, "SIIS channel lock", NULL, MTX_DEF);
rid = ch->unit;
@@ -1869,6 +1870,7 @@ siisaction(struct cam_sim *sim, union ccb *ccb)
cts->xport_specific.sata.caps = d->caps & CTS_SATA_CAPS_D;
if (ch->pm_level)
cts->xport_specific.sata.caps |= CTS_SATA_CAPS_H_PMREQ;
+ cts->xport_specific.sata.caps |= CTS_SATA_CAPS_H_AN;
cts->xport_specific.sata.caps &=
ch->user[ccb->ccb_h.target_id].caps;
cts->xport_specific.sata.valid |= CTS_SATA_VALID_CAPS;
@@ -1876,6 +1878,9 @@ siisaction(struct cam_sim *sim, union ccb *ccb)
cts->xport_specific.sata.revision = d->revision;
cts->xport_specific.sata.valid |= CTS_SATA_VALID_REVISION;
cts->xport_specific.sata.caps = d->caps;
+ if (cts->type == CTS_TYPE_CURRENT_SETTINGS &&
+ (ch->quirks & SIIS_Q_SNTF) == 0)
+ cts->xport_specific.sata.caps &= ~CTS_SATA_CAPS_H_AN;
cts->xport_specific.sata.valid |= CTS_SATA_VALID_CAPS;
}
cts->xport_specific.sata.mode = d->mode;