Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic Simplify activation hook. Replace each use of sc...
details: https://anonhg.NetBSD.org/src/rev/84b3a67a09be
branches: trunk
changeset: 748987:84b3a67a09be
user: dyoung <dyoung%NetBSD.org@localhost>
date: Thu Nov 12 19:32:14 2009 +0000
description:
Simplify activation hook. Replace each use of sc_invalid by either
calling config_deactivate(9) or device_is_active(9).
diffstat:
sys/dev/ic/awi.c | 49 +++++++++++++++++++++----------------------------
sys/dev/ic/awivar.h | 5 ++---
2 files changed, 23 insertions(+), 31 deletions(-)
diffs (188 lines):
diff -r 97a4a46774aa -r 84b3a67a09be sys/dev/ic/awi.c
--- a/sys/dev/ic/awi.c Thu Nov 12 19:30:49 2009 +0000
+++ b/sys/dev/ic/awi.c Thu Nov 12 19:32:14 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: awi.c,v 1.84 2009/09/15 18:37:02 dyoung Exp $ */
+/* $NetBSD: awi.c,v 1.85 2009/11/12 19:32:14 dyoung Exp $ */
/*-
* Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.84 2009/09/15 18:37:02 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.85 2009/11/12 19:32:14 dyoung Exp $");
#include "opt_inet.h"
#include "bpfilter.h"
@@ -202,13 +202,13 @@
sc->sc_attached = 0;
sc->sc_substate = AWI_ST_NONE;
if ((error = awi_hw_init(sc)) != 0) {
- sc->sc_invalid = 1;
+ config_deactivate(&sc->sc_dev);
splx(s);
return error;
}
error = awi_init_mibs(sc);
if (error != 0) {
- sc->sc_invalid = 1;
+ config_deactivate(&sc->sc_dev);
splx(s);
return error;
}
@@ -303,7 +303,6 @@
return 0;
s = splnet();
- sc->sc_invalid = 1;
awi_stop(ifp, 1);
while (sc->sc_sleep_cnt > 0) {
@@ -323,21 +322,14 @@
awi_activate(device_t self, enum devact act)
{
struct awi_softc *sc = device_private(self);
- struct ifnet *ifp = &sc->sc_if;
- int s, error = 0;
- s = splnet();
switch (act) {
- case DVACT_ACTIVATE:
- error = EOPNOTSUPP;
- break;
case DVACT_DEACTIVATE:
- sc->sc_invalid = 1;
- if_deactivate(ifp);
- break;
+ if_deactivate(&sc->sc_if);
+ return 0;
+ default:
+ return EOPNOTSUPP;
}
- splx(s);
- return error;
}
void
@@ -397,10 +389,12 @@
};
#endif
- if (!sc->sc_enabled || !sc->sc_enab_intr || sc->sc_invalid) {
+ if (!sc->sc_enabled || !sc->sc_enab_intr ||
+ !device_is_active(&sc->sc_dev)) {
DPRINTF(("awi_intr: stray interrupt: "
"enabled %d enab_intr %d invalid %d\n",
- sc->sc_enabled, sc->sc_enab_intr, sc->sc_invalid));
+ sc->sc_enabled, sc->sc_enab_intr,
+ !device_is_active(&sc->sc_dev)));
return 0;
}
@@ -619,7 +613,7 @@
ieee80211_new_state(&sc->sc_ic, IEEE80211_S_INIT, -1);
- if (!sc->sc_invalid) {
+ if (device_is_active(&sc->sc_dev)) {
if (sc->sc_cmd_inprog)
(void)awi_cmd_wait(sc);
(void)awi_cmd(sc, AWI_CMD_KILL_RX, AWI_WAIT);
@@ -641,7 +635,7 @@
IFQ_PURGE(&ifp->if_snd);
if (disable) {
- if (!sc->sc_invalid)
+ if (device_is_active(&sc->sc_dev))
am79c930_gcr_setbits(&sc->sc_chip,
AM79C930_GCR_CORESET);
if (sc->sc_disable)
@@ -663,7 +657,7 @@
u_int32_t txd, frame, ntxd;
u_int8_t rate;
- if (!sc->sc_enabled || sc->sc_invalid)
+ if (!sc->sc_enabled || !device_is_active(&sc->sc_dev))
return;
for (;;) {
@@ -797,7 +791,7 @@
int ocansleep;
ifp->if_timer = 0;
- if (!sc->sc_enabled || sc->sc_invalid)
+ if (!sc->sc_enabled || !device_is_active(&sc->sc_dev))
return;
ocansleep = sc->sc_cansleep;
@@ -1258,7 +1252,6 @@
int i, error;
sc->sc_enab_intr = 0;
- sc->sc_invalid = 0; /* XXX: really? */
awi_drvstate(sc, AWI_DRV_RESET);
/* reset firmware */
@@ -1272,7 +1265,7 @@
/* wait for selftest completion */
for (i = 0; ; i++) {
- if (sc->sc_invalid)
+ if (!device_is_active(&sc->sc_dev))
return ENXIO;
if (i >= AWI_SELFTEST_TIMEOUT*hz/1000) {
printf("%s: failed to complete selftest (timeout)\n",
@@ -1565,12 +1558,12 @@
i = 0;
while (sc->sc_cmd_inprog) {
- if (sc->sc_invalid)
+ if (!device_is_active(&sc->sc_dev))
return ENXIO;
if (awi_read_1(sc, AWI_CMD) != sc->sc_cmd_inprog) {
printf("%s: failed to access hardware\n",
sc->sc_if.if_xname);
- sc->sc_invalid = 1;
+ config_deactivate(&sc->sc_dev);
return ENXIO;
}
if (sc->sc_cansleep) {
@@ -1672,7 +1665,7 @@
* ioctl requests in progress.
*/
if (sc->sc_busy) {
- if (sc->sc_invalid)
+ if (!device_is_active(&sc->sc_dev))
return ENXIO;
return EWOULDBLOCK;
}
@@ -1681,7 +1674,7 @@
return 0;
}
while (sc->sc_busy) {
- if (sc->sc_invalid)
+ if (!device_is_active(&sc->sc_dev))
return ENXIO;
sc->sc_sleep_cnt++;
error = tsleep(sc, PWAIT | PCATCH, "awilck", 0);
diff -r 97a4a46774aa -r 84b3a67a09be sys/dev/ic/awivar.h
--- a/sys/dev/ic/awivar.h Thu Nov 12 19:30:49 2009 +0000
+++ b/sys/dev/ic/awivar.h Thu Nov 12 19:32:14 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: awivar.h,v 1.25 2009/09/15 18:32:00 dyoung Exp $ */
+/* $NetBSD: awivar.h,v 1.26 2009/11/12 19:32:14 dyoung Exp $ */
/*-
* Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc.
@@ -90,8 +90,7 @@
sc_busy:1,
sc_cansleep:1,
sc_enab_intr:1,
- sc_adhoc_ap:1,
- sc_invalid:1;
+ sc_adhoc_ap:1;
enum ieee80211_state sc_nstate;
enum awi_sub_state sc_substate;
int sc_sleep_cnt;
Home |
Main Index |
Thread Index |
Old Index