aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/intpm
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2019-03-22 10:38:22 +0000
committerAndriy Gapon <avg@FreeBSD.org>2019-03-22 10:38:22 +0000
commit4c2fb039548b4246a27463721ae2a37c5bcde7ab (patch)
tree6f0fa7890182640d9bb59599aecb7cdac8baedc9 /sys/dev/intpm
parentc1581f4f4dfb307bdea683a4a8bdc94c5f7617a1 (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);