- Fix compile if WPI_DEBUG is not defined
- Allow debug.wpi to be set from a tunable - Put ring reset messages back under debug - Add more debug output around channel init
This commit is contained in:
parent
bd4328d3a6
commit
6845408d73
@ -108,6 +108,7 @@ __FBSDID("$FreeBSD$");
|
||||
#ifdef WPI_DEBUG
|
||||
#define DPRINTF(x) do { if (wpi_debug != 0) printf x; } while (0)
|
||||
#define DPRINTFN(n, x) do { if (wpi_debug & n) printf x; } while (0)
|
||||
#define WPI_DEBUG_SET (wpi_debug != 0)
|
||||
|
||||
enum {
|
||||
WPI_DEBUG_UNUSED = 0x00000001, /* Unused */
|
||||
@ -125,12 +126,14 @@ enum {
|
||||
WPI_DEBUG_ANY = 0xffffffff
|
||||
};
|
||||
|
||||
int wpi_debug = 0;
|
||||
static int wpi_debug = 1;
|
||||
SYSCTL_INT(_debug, OID_AUTO, wpi, CTLFLAG_RW, &wpi_debug, 0, "wpi debug level");
|
||||
TUNABLE_INT("debug.wpi", &wpi_debug);
|
||||
|
||||
#else
|
||||
#define DPRINTF(x)
|
||||
#define DPRINTFN(n, x)
|
||||
#define WPI_DEBUG_SET 0
|
||||
#endif
|
||||
|
||||
struct wpi_ident {
|
||||
@ -239,7 +242,9 @@ static void wpi_calib_timeout(void *);
|
||||
static void wpi_power_calibration(struct wpi_softc *, int);
|
||||
static int wpi_get_power_index(struct wpi_softc *,
|
||||
struct wpi_power_group *, struct ieee80211_channel *, int);
|
||||
#ifdef WPI_DEBUG
|
||||
static const char *wpi_cmd_str(int);
|
||||
#endif
|
||||
static int wpi_probe(device_t);
|
||||
static int wpi_attach(device_t);
|
||||
static int wpi_detach(device_t);
|
||||
@ -491,7 +496,7 @@ wpi_attach(device_t dev)
|
||||
|
||||
sc->sc_dev = dev;
|
||||
|
||||
if (bootverbose || wpi_debug)
|
||||
if (bootverbose || WPI_DEBUG_SET)
|
||||
device_printf(sc->sc_dev,"Driver Revision %s\n", VERSION);
|
||||
|
||||
/*
|
||||
@ -578,7 +583,7 @@ wpi_attach(device_t dev)
|
||||
|
||||
wpi_mem_lock(sc);
|
||||
tmp = wpi_mem_read(sc, WPI_MEM_PCIDEV);
|
||||
if (bootverbose || wpi_debug)
|
||||
if (bootverbose || WPI_DEBUG_SET)
|
||||
device_printf(sc->sc_dev, "Hardware Revision (0x%X)\n", tmp);
|
||||
|
||||
wpi_mem_unlock(sc);
|
||||
@ -647,7 +652,7 @@ wpi_attach(device_t dev)
|
||||
*/
|
||||
wpi_read_eeprom(sc);
|
||||
|
||||
if (bootverbose || wpi_debug) {
|
||||
if (bootverbose || WPI_DEBUG_SET) {
|
||||
device_printf(sc->sc_dev, "Regulatory Domain: %.4s\n", sc->domain);
|
||||
device_printf(sc->sc_dev, "Hardware Type: %c\n",
|
||||
sc->type > 1 ? 'B': '?');
|
||||
@ -1053,7 +1058,7 @@ wpi_reset_rx_ring(struct wpi_softc *sc, struct wpi_rx_ring *ring)
|
||||
wpi_mem_unlock(sc);
|
||||
|
||||
#ifdef WPI_DEBUG
|
||||
if (ntries == 100)
|
||||
if (ntries == 100 && wpi_debug > 0)
|
||||
device_printf(sc->sc_dev, "timeout resetting Rx ring\n");
|
||||
#endif
|
||||
|
||||
@ -1159,7 +1164,7 @@ wpi_reset_tx_ring(struct wpi_softc *sc, struct wpi_tx_ring *ring)
|
||||
DELAY(10);
|
||||
}
|
||||
#ifdef WPI_DEBUG
|
||||
if (ntries == 100)
|
||||
if (ntries == 100 && wpi_debug > 0)
|
||||
device_printf(sc->sc_dev, "timeout resetting Tx ring %d\n",
|
||||
ring->qid);
|
||||
#endif
|
||||
@ -1703,8 +1708,10 @@ wpi_notif_intr(struct wpi_softc *sc)
|
||||
}
|
||||
case WPI_START_SCAN:
|
||||
{
|
||||
#ifdef WPI_DEBUG
|
||||
struct wpi_start_scan *scan =
|
||||
(struct wpi_start_scan *)(desc + 1);
|
||||
#endif
|
||||
|
||||
DPRINTFN(WPI_DEBUG_SCANNING,
|
||||
("scanning channel %d status %x\n",
|
||||
@ -1713,8 +1720,10 @@ wpi_notif_intr(struct wpi_softc *sc)
|
||||
}
|
||||
case WPI_STOP_SCAN:
|
||||
{
|
||||
#ifdef WPI_DEBUG
|
||||
struct wpi_stop_scan *scan =
|
||||
(struct wpi_stop_scan *)(desc + 1);
|
||||
#endif
|
||||
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
|
||||
|
||||
DPRINTFN(WPI_DEBUG_SCANNING,
|
||||
@ -2604,12 +2613,14 @@ wpi_scan(struct wpi_softc *sc)
|
||||
hdr->scan_essids[i].esslen = MIN(ss->ss_ssid[i].len, 32);
|
||||
memcpy(hdr->scan_essids[i].essid, ss->ss_ssid[i].ssid,
|
||||
hdr->scan_essids[i].esslen);
|
||||
#ifdef WPI_DEBUG
|
||||
if (wpi_debug & WPI_DEBUG_SCANNING) {
|
||||
printf("Scanning Essid: ");
|
||||
ieee80211_print_essid(hdr->scan_essids[i].essid,
|
||||
hdr->scan_essids[i].esslen);
|
||||
printf("\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -3292,7 +3303,8 @@ wpi_read_eeprom_channels(struct wpi_softc *sc, int n)
|
||||
struct ieee80211com *ic = ifp->if_l2com;
|
||||
const struct wpi_chan_band *band = &wpi_bands[n];
|
||||
struct wpi_eeprom_chan channels[WPI_MAX_CHAN_PER_BAND];
|
||||
int chan, i, offset, passive;
|
||||
struct ieee80211_channel *c;
|
||||
int chan, i, passive;
|
||||
|
||||
wpi_read_prom_data(sc, band->addr, channels,
|
||||
band->nchan * sizeof (struct wpi_eeprom_chan));
|
||||
@ -3307,7 +3319,7 @@ wpi_read_eeprom_channels(struct wpi_softc *sc, int n)
|
||||
|
||||
passive = 0;
|
||||
chan = band->chan[i];
|
||||
offset = ic->ic_nchans;
|
||||
c = &ic->ic_channels[ic->ic_nchans++];
|
||||
|
||||
/* is active scan allowed on this channel? */
|
||||
if (!(channels[i].flags & WPI_EEPROM_CHAN_ACTIVE)) {
|
||||
@ -3315,16 +3327,16 @@ wpi_read_eeprom_channels(struct wpi_softc *sc, int n)
|
||||
}
|
||||
|
||||
if (n == 0) { /* 2GHz band */
|
||||
ic->ic_channels[offset].ic_ieee = chan;
|
||||
ic->ic_channels[offset].ic_freq =
|
||||
ieee80211_ieee2mhz(chan, IEEE80211_CHAN_2GHZ);
|
||||
ic->ic_channels[offset].ic_flags = IEEE80211_CHAN_B | passive;
|
||||
offset++;
|
||||
ic->ic_channels[offset].ic_ieee = chan;
|
||||
ic->ic_channels[offset].ic_freq =
|
||||
ieee80211_ieee2mhz(chan, IEEE80211_CHAN_2GHZ);
|
||||
ic->ic_channels[offset].ic_flags = IEEE80211_CHAN_G | passive;
|
||||
offset++;
|
||||
c->ic_ieee = chan;
|
||||
c->ic_freq = ieee80211_ieee2mhz(chan,
|
||||
IEEE80211_CHAN_2GHZ);
|
||||
c->ic_flags = IEEE80211_CHAN_B | passive;
|
||||
|
||||
c = &ic->ic_channels[ic->ic_nchans++];
|
||||
c->ic_ieee = chan;
|
||||
c->ic_freq = ieee80211_ieee2mhz(chan,
|
||||
IEEE80211_CHAN_2GHZ);
|
||||
c->ic_flags = IEEE80211_CHAN_G | passive;
|
||||
|
||||
} else { /* 5GHz band */
|
||||
/*
|
||||
@ -3337,18 +3349,15 @@ wpi_read_eeprom_channels(struct wpi_softc *sc, int n)
|
||||
if (chan <= 14)
|
||||
continue;
|
||||
|
||||
ic->ic_channels[offset].ic_ieee = chan;
|
||||
ic->ic_channels[offset].ic_freq =
|
||||
ieee80211_ieee2mhz(chan, IEEE80211_CHAN_5GHZ);
|
||||
ic->ic_channels[offset].ic_flags = IEEE80211_CHAN_A | passive;
|
||||
offset++;
|
||||
c->ic_ieee = chan;
|
||||
c->ic_freq = ieee80211_ieee2mhz(chan,
|
||||
IEEE80211_CHAN_5GHZ);
|
||||
c->ic_flags = IEEE80211_CHAN_A | passive;
|
||||
}
|
||||
|
||||
/* save maximum allowed power for this channel */
|
||||
sc->maxpwr[chan] = channels[i].maxpwr;
|
||||
|
||||
ic->ic_nchans = offset;
|
||||
|
||||
#if 0
|
||||
// XXX We can probably use this an get rid of maxpwr - ben 20070617
|
||||
ic->ic_channels[chan].ic_maxpower = channels[i].maxpwr;
|
||||
@ -3356,8 +3365,11 @@ wpi_read_eeprom_channels(struct wpi_softc *sc, int n)
|
||||
//ic->ic_channels[chan].ic_maxregtxpower...
|
||||
#endif
|
||||
|
||||
DPRINTF(("adding chan %d flags=0x%x maxpwr=%d, offset %d\n",
|
||||
chan, channels[i].flags, sc->maxpwr[chan], offset));
|
||||
DPRINTF(("adding chan %d (%dMHz) flags=0x%x maxpwr=%d"
|
||||
" passive=%d, offset %d\n", chan, c->ic_freq,
|
||||
channels[i].flags, sc->maxpwr[chan],
|
||||
(c->ic_flags & IEEE80211_CHAN_PASSIVE) != 0,
|
||||
ic->ic_nchans));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user