Thank you for your replay.
I applied the supplied patches:
0001-mac80211-explicitly-disable-enable-QoS.patch
0002-iwlwifi-manage-QoS-by-mac-stack.patch
(in this order)
to the Debian's linux-2.6-2.6.32 kernel source, but it failed during
iwl-core.c compilation with an error message:
CC [M] drivers/net/wireless/iwlwifi/iwl-core.o
~/tmp/iwl-kernel-patch/linux-2.6-2.6.32/debian/build/source_amd64_none/drivers/net/wireless/iwlwifi/iwl-core.c:
In function ‘iwl_init_drv’:
~/tmp/iwl-kernel-patch/linux-2.6-2.6.32/debian/build/source_amd64_none/drivers/net/wireless/iwlwifi/iwl-core.c:1398:
error: implicit declaration of function ‘iwl_reset_qos’
~/tmp/iwl-kernel-patch/linux-2.6-2.6.32/debian/build/source_amd64_none/drivers/net/wireless/iwlwifi/iwl-core.c:1401:
error: ‘struct iwl_qos_info’ has no member named ‘qos_cap’
make[8]: *** [drivers/net/wireless/iwlwifi/iwl-core.o] Error 1
make[7]: *** [drivers/net/wireless/iwlwifi] Error 2
make[6]: *** [drivers/net/wireless] Error 2
make[5]: *** [drivers/net] Error 2
make[4]: *** [drivers] Error 2
make[3]: *** [sub-make] Error 2
make[2]: *** [all] Error 2
make[2]: Leaving directory
`~/tmp/iwl-kernel-patch/linux-2.6-2.6.32/debian/build/build_amd64_none_amd64'
make[1]: *** [debian/stamps/build_amd64_none_amd64_plain] Error 2
make[1]: Leaving directory `~/tmp/iwl-kernel-patch/linux-2.6-2.6.32'
make: *** [binary-arch_amd64_none_amd64_real] Error 2
If I understand the patches correctly, the 0002...patch removes a "void
iwl_reset_qos(struct iwl_priv *priv)" function and unused qos_cap bits.
But the function is still used in "int iwl_init_drv(struct iwl_priv
*priv)" function in the "iwl-core.c". I removed a part of code:
---
iwl_reset_qos(priv);
priv->qos_data.qos_active = 0;
priv->qos_data.qos_cap.val = 0;
---
as it is done in "int iwl3945_init_drv(struct iwl_priv *priv)" at the
end of the 0002....patch.
With this adjustment (attached
"0002-iwlwifi-manage-QoS-by-mac-stack-adjust.patch" file) I can compile
the source and it works fine with APs with which it didn't work before.
Zdenek
diff -uNr a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1395,11 +1395,6 @@
iwl_init_scan_params(priv);
- iwl_reset_qos(priv);
-
- priv->qos_data.qos_active = 0;
- priv->qos_data.qos_cap.val = 0;
-
priv->rates_mask = IWL_RATES_MASK;
/* Set the tx_power_user_lmt to the lowest power level
* this value will get overwritten by channel max power avg