aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/intpm
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2019-06-06 11:38:53 +0000
committerAndriy Gapon <avg@FreeBSD.org>2019-06-06 11:38:53 +0000
commitb28f237bc53416d07673fb6d523d7c3d7069d581 (patch)
tree76751b92545893e933d061540c2d5522ceed2edc /sys/dev/intpm
parentf1f99643daa2687c93c665b81dadc1171a010aab (diff)
Notes
Diffstat (limited to 'sys/dev/intpm')
-rw-r--r--sys/dev/intpm/intpm.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/intpm/intpm.c b/sys/dev/intpm/intpm.c
index 15da5e861a07..5ab2249c6691 100644
--- a/sys/dev/intpm/intpm.c
+++ b/sys/dev/intpm/intpm.c
@@ -525,12 +525,19 @@ intsmb_error(device_t dev, int status)
{
int error = 0;
+ /*
+ * PIIX4_SMBHSTSTAT_ERR can mean either of
+ * - SMB_ENOACK ("Unclaimed cycle"),
+ * - SMB_ETIMEOUT ("Host device time-out"),
+ * - SMB_EINVAL ("Illegal command field").
+ * SMB_ENOACK seems to be most typical.
+ */
if (status & PIIX4_SMBHSTSTAT_ERR)
- error |= SMB_EBUSERR;
+ error |= SMB_ENOACK;
if (status & PIIX4_SMBHSTSTAT_BUSC)
error |= SMB_ECOLLI;
if (status & PIIX4_SMBHSTSTAT_FAIL)
- error |= SMB_ENOACK;
+ error |= SMB_EABORT;
if (error != 0 && bootverbose)
device_printf(dev, "error = %d, status = %#x\n", error, status);