Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4695dc91 authored by Kalle Valo's avatar Kalle Valo Committed by John W. Linville
Browse files

wl1271: enable U-APSD



wl1271 supports U-APSD similarly as wl1251, so let's enable it.

Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
Reviewed-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: default avatarLuciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 522ac250
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -1781,6 +1781,7 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
			     const struct ieee80211_tx_queue_params *params)
			     const struct ieee80211_tx_queue_params *params)
{
{
	struct wl1271 *wl = hw->priv;
	struct wl1271 *wl = hw->priv;
	u8 ps_scheme;
	int ret;
	int ret;


	mutex_lock(&wl->mutex);
	mutex_lock(&wl->mutex);
@@ -1798,11 +1799,15 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
	if (ret < 0)
	if (ret < 0)
		goto out_sleep;
		goto out_sleep;


	if (params->uapsd)
		ps_scheme = CONF_PS_SCHEME_UPSD_TRIGGER;
	else
		ps_scheme = CONF_PS_SCHEME_LEGACY;

	ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue),
	ret = wl1271_acx_tid_cfg(wl, wl1271_tx_get_queue(queue),
				 CONF_CHANNEL_TYPE_EDCF,
				 CONF_CHANNEL_TYPE_EDCF,
				 wl1271_tx_get_queue(queue),
				 wl1271_tx_get_queue(queue),
				 CONF_PS_SCHEME_LEGACY,
				 ps_scheme, CONF_ACK_POLICY_LEGACY, 0, 0);
				 CONF_ACK_POLICY_LEGACY, 0, 0);
	if (ret < 0)
	if (ret < 0)
		goto out_sleep;
		goto out_sleep;


@@ -2083,6 +2088,7 @@ int wl1271_init_ieee80211(struct wl1271 *wl)
		IEEE80211_HW_NOISE_DBM |
		IEEE80211_HW_NOISE_DBM |
		IEEE80211_HW_BEACON_FILTER |
		IEEE80211_HW_BEACON_FILTER |
		IEEE80211_HW_SUPPORTS_PS |
		IEEE80211_HW_SUPPORTS_PS |
		IEEE80211_HW_SUPPORTS_UAPSD |
		IEEE80211_HW_HAS_RATE_CONTROL;
		IEEE80211_HW_HAS_RATE_CONTROL;


	wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
	wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |