View | Details | Raw Unified | Return to bug 197143 | Differences between
and this patch

Collapse All | Expand All

(-)sys/dev/wpi/if_wpi.c (-4 / +8 lines)
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. */

Return to bug 197143