summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjdolecek <jdolecek@NetBSD.org>2018-06-21 21:52:15 +0000
committerjdolecek <jdolecek@NetBSD.org>2018-06-21 21:52:15 +0000
commita293f3bbc4091d916ea526e5ea93d16deb5fc3b2 (patch)
tree6256458af90e9c5728a6761ad4503ca6af2716ba
parent82dc3e154e0a4a768436dd3fcf2f2dfd7c2c842c (diff)
split the port status reporting to new function sata_interpret_det()
so it can be called separately from sata_reset_interface() do not treat PHY offline as an error, it's pretty normal when there is no device actually connected debugging aid for PR kern/52372
-rw-r--r--sys/dev/ata/sata_subr.c15
-rw-r--r--sys/dev/ata/satavar.h3
2 files changed, 13 insertions, 5 deletions
diff --git a/sys/dev/ata/sata_subr.c b/sys/dev/ata/sata_subr.c
index 771a2b0b4e9..cb023ef8f6d 100644
--- a/sys/dev/ata/sata_subr.c
+++ b/sys/dev/ata/sata_subr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sata_subr.c,v 1.23 2017/10/07 16:05:32 jdolecek Exp $ */
+/* $NetBSD: sata_subr.c,v 1.24 2018/06/21 21:52:15 jdolecek Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
* Common functions for Serial ATA.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sata_subr.c,v 1.23 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sata_subr.c,v 1.24 2018/06/21 21:52:15 jdolecek Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -121,6 +121,14 @@ sata_reset_interface(struct ata_channel *chp, bus_space_tag_t sata_t,
}
}
+ sata_interpret_det(chp, sstatus);
+
+ return (sstatus & SStatus_DET_mask);
+}
+
+void
+sata_interpret_det(struct ata_channel *chp, uint32_t sstatus)
+{
switch (sstatus & SStatus_DET_mask) {
case SStatus_DET_NODEV:
/* No Device; be silent. */
@@ -133,7 +141,7 @@ sata_reset_interface(struct ata_channel *chp, bus_space_tag_t sata_t,
break;
case SStatus_DET_OFFLINE:
- aprint_error("%s port %d: PHY offline\n",
+ aprint_normal("%s port %d: PHY offline\n",
device_xname(chp->ch_atac->atac_dev), chp->ch_channel);
break;
@@ -147,7 +155,6 @@ sata_reset_interface(struct ata_channel *chp, bus_space_tag_t sata_t,
device_xname(chp->ch_atac->atac_dev), chp->ch_channel,
sstatus);
}
- return(sstatus & SStatus_DET_mask);
}
void
diff --git a/sys/dev/ata/satavar.h b/sys/dev/ata/satavar.h
index 8564bf43e44..d24d50f4bdd 100644
--- a/sys/dev/ata/satavar.h
+++ b/sys/dev/ata/satavar.h
@@ -1,4 +1,4 @@
-/* $NetBSD: satavar.h,v 1.9 2013/04/03 17:15:07 bouyer Exp $ */
+/* $NetBSD: satavar.h,v 1.10 2018/06/21 21:52:15 jdolecek Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -42,6 +42,7 @@
const char *sata_speed(uint32_t);
uint32_t sata_reset_interface(struct ata_channel *, bus_space_tag_t,
bus_space_handle_t, bus_space_handle_t, int);
+void sata_interpret_det(struct ata_channel *, uint32_t);
void sata_interpret_sig(struct ata_channel *, int, uint32_t);
#endif /* _DEV_ATA_SATAVAR_H_ */