summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authormsaitoh <msaitoh@NetBSD.org>2019-03-05 02:13:15 +0000
committermsaitoh <msaitoh@NetBSD.org>2019-03-05 02:13:15 +0000
commit44124f53fa47fc5ef08ccbb3fcbd16355642f97f (patch)
treeab9472fedf438dbb49587ddb89124d4b3cada51c /sys/dev
parent03bbc0809832cfc64ebef984c1dae5d64c95bfca (diff)
mii_phy_add_media() automatically install power handler, but if_media_add()
doesn't. When mii_phy_add_media() isn't used, call pmf_device_register().
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/mii/tlphy.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/dev/mii/tlphy.c b/sys/dev/mii/tlphy.c
index 16be5fc4d73..532ae1fac74 100644
--- a/sys/dev/mii/tlphy.c
+++ b/sys/dev/mii/tlphy.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tlphy.c,v 1.64 2019/02/24 17:22:21 christos Exp $ */
+/* $NetBSD: tlphy.c,v 1.65 2019/03/05 02:13:15 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tlphy.c,v 1.64 2019/02/24 17:22:21 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tlphy.c,v 1.65 2019/03/05 02:13:15 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -180,12 +180,19 @@ tlphyattach(device_t parent, device_t self, void *aux)
if (sc->mii_capabilities & BMSR_MEDIAMASK) {
aprint_normal("%s", sep);
mii_phy_add_media(sc);
- } else if ((tsc->sc_tlphycap &
+ } else {
+ if ((tsc->sc_tlphycap &
(TLPHY_MEDIA_10_2 | TLPHY_MEDIA_10_5)) == 0)
- aprint_error("no media present");
- else if (!pmf_device_register(self, NULL, mii_phy_resume)) {
- aprint_normal("\n");
- aprint_error_dev(self, "couldn't establish power handler");
+ aprint_error("no media present");
+ /*
+ * mii_phy_add_media() automatically install power handler,
+ * but if_media_add() doesn't. Do it now.
+ */
+ if (!pmf_device_register(self, NULL, mii_phy_resume)) {
+ aprint_normal("\n");
+ aprint_error_dev(self,
+ "couldn't establish power handler");
+ }
}
aprint_normal("\n");
#undef ADD