Lines 1703-1708
Link Here
|
1703 |
/* FALLTHROUGH */ |
1703 |
/* FALLTHROUGH */ |
1704 |
case IEEE80211_S_AUTH: |
1704 |
case IEEE80211_S_AUTH: |
1705 |
/* |
1705 |
/* |
|
|
1706 |
* NB: do not optimize AUTH -> AUTH state transmission - |
1707 |
* this will break powersave with non-QoS AP! |
1708 |
*/ |
1709 |
|
1710 |
/* |
1706 |
* The node must be registered in the firmware before auth. |
1711 |
* The node must be registered in the firmware before auth. |
1707 |
* Also the associd must be cleared on RUN -> ASSOC |
1712 |
* Also the associd must be cleared on RUN -> ASSOC |
1708 |
* transitions. |
1713 |
* transitions. |
Lines 2609-2615
Link Here
|
2609 |
|
2614 |
|
2610 |
/* Select EDCA Access Category and TX ring for this frame. */ |
2615 |
/* Select EDCA Access Category and TX ring for this frame. */ |
2611 |
if (IEEE80211_QOS_HAS_SEQ(wh)) { |
2616 |
if (IEEE80211_QOS_HAS_SEQ(wh)) { |
2612 |
qos = ((const struct ieee80211_qosframe *)wh)->i_qos[0]; |
2617 |
qos = ((const struct ieee80211_qosframe *)wh)->i_qos[0]; |
2613 |
tid = qos & IEEE80211_QOS_TID; |
2618 |
tid = qos & IEEE80211_QOS_TID; |
2614 |
} else { |
2619 |
} else { |
2615 |
qos = 0; |
2620 |
qos = 0; |
Lines 3764-3770
Link Here
|
3764 |
sc->rxon.filter |= WPI_FILTER_ASSOC | WPI_FILTER_PROMISC; |
3769 |
sc->rxon.filter |= WPI_FILTER_ASSOC | WPI_FILTER_PROMISC; |
3765 |
break; |
3770 |
break; |
3766 |
case IEEE80211_M_AHDEMO: |
3771 |
case IEEE80211_M_AHDEMO: |
3767 |
/* XXX workaround for passive channels selection */ |
|
|
3768 |
sc->rxon.mode = WPI_MODE_HOSTAP; |
3772 |
sc->rxon.mode = WPI_MODE_HOSTAP; |
3769 |
break; |
3773 |
break; |
3770 |
case IEEE80211_M_MONITOR: |
3774 |
case IEEE80211_M_MONITOR: |
Lines 4664-4670
Link Here
|
4664 |
|
4668 |
|
4665 |
/* NB: Runtime firmware must be up and running. */ |
4669 |
/* NB: Runtime firmware must be up and running. */ |
4666 |
if (!(wpi_prph_read(sc, WPI_APMG_RFKILL) & 1)) { |
4670 |
if (!(wpi_prph_read(sc, WPI_APMG_RFKILL) & 1)) { |
4667 |
device_printf(sc->sc_dev, |
4671 |
device_printf(sc->sc_dev, |
4668 |
"RF switch: radio disabled (%s)\n", __func__); |
4672 |
"RF switch: radio disabled (%s)\n", __func__); |
4669 |
wpi_nic_unlock(sc); |
4673 |
wpi_nic_unlock(sc); |
4670 |
return EPERM; /* :-) */ |
4674 |
return EPERM; /* :-) */ |
Lines 4988-4994
Link Here
|
4988 |
|
4992 |
|
4989 |
/* Stop busmaster DMA activity. */ |
4993 |
/* Stop busmaster DMA activity. */ |
4990 |
WPI_SETBITS(sc, WPI_RESET, WPI_RESET_STOP_MASTER); |
4994 |
WPI_SETBITS(sc, WPI_RESET, WPI_RESET_STOP_MASTER); |
4991 |
|
4995 |
|
4992 |
if ((WPI_READ(sc, WPI_GP_CNTRL) & WPI_GP_CNTRL_PS_MASK) == |
4996 |
if ((WPI_READ(sc, WPI_GP_CNTRL) & WPI_GP_CNTRL_PS_MASK) == |
4993 |
WPI_GP_CNTRL_MAC_PS) |
4997 |
WPI_GP_CNTRL_MAC_PS) |
4994 |
return; /* Already asleep. */ |
4998 |
return; /* Already asleep. */ |