3 @@ -2996,6 +2996,19 @@ ath_fetch_idle_time(struct ath_softc *sc
8 +ath_set_silent(struct ath_softc *sc)
10 + struct ath_hal *ah = sc->sc_ah;
15 + del_timer_sync(&sc->sc_bcntimer);
16 + ath_hal_intrset(ah, 0);
17 + OS_REG_WRITE(ah, 0x8048, 0x60); /* set tx loopback and rx disable */
21 * Reset the hardware w/o losing operational state. This is
22 * basically a more efficient way of doing ath_stop, ath_init,
23 @@ -3073,6 +3086,7 @@ ath_reset(struct net_device *dev)
24 ath_grppoll_start(vap, sc->sc_xrpollcount);
31 @@ -10972,6 +10986,7 @@ enum {
32 * mirrored in /proc/sys.
39 @@ -11294,6 +11309,13 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
40 sc->sc_ctstimeconf = 0;
44 + sc->sc_silent = !!val;
48 + ath_reset(sc->sc_dev);
52 sc->sc_coverage = ((val - 1) / 300) + 1;
53 @@ -11477,6 +11499,9 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
55 val = ath_hal_getctstimeout(ah);
58 + val = sc->sc_silent;
63 @@ -11598,6 +11623,12 @@ static const ctl_table ath_sysctl_templa
64 .extra2 = (void *)ATH_DISTANCE,
66 { .ctl_name = CTL_AUTO,
67 + .procname = "silent",
69 + .proc_handler = ath_sysctl_halparam,
70 + .extra2 = (void *)ATH_SILENT,
72 + { .ctl_name = CTL_AUTO,
73 .procname = "softled",
75 .proc_handler = ath_sysctl_halparam,
78 @@ -737,6 +737,7 @@ struct ath_softc {
79 * 'channel availability check' indefinately,
80 * reporting radar and interference detections.
82 + unsigned int sc_silent:1; /* Turn RF silent */
83 unsigned int sc_txcont_power; /* Continuous transmit power in 0.5dBm units */
84 unsigned int sc_txcont_rate; /* Continuous transmit rate in Mbps */