carl9170: support firmware-based rx filter
The hardware rx-filter was essentially disabled, because of a serve, yet unidentifiable problem with iwlagn. Due to these circumstances the driver and mac80211 were left with the job of filtering. This is very unfortunate and has proven to be expensive in terms of latency, memory and load. Therefore the new 1.8.8.3 firmware introduces a flexible filtering infrastructure which allows the driver to offload some of the checks (FCS & PLCP crc check, RA match, control frame filter, etc...) whenever possible. Note: This patch also includes all changes to the shared headers files since the inclusion. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
这个提交包含在:
@@ -59,6 +59,16 @@ static inline int carl9170_flush_cab(struct ar9170 *ar,
|
||||
return carl9170_bcn_ctrl(ar, vif_id, CARL9170_BCN_CTRL_DRAIN, 0, 0);
|
||||
}
|
||||
|
||||
static inline int carl9170_rx_filter(struct ar9170 *ar,
|
||||
const unsigned int _rx_filter)
|
||||
{
|
||||
__le32 rx_filter = cpu_to_le32(_rx_filter);
|
||||
|
||||
return carl9170_exec_cmd(ar, CARL9170_CMD_RX_FILTER,
|
||||
sizeof(rx_filter), (u8 *)&rx_filter,
|
||||
0, NULL);
|
||||
}
|
||||
|
||||
struct carl9170_cmd *carl9170_cmd_buf(struct ar9170 *ar,
|
||||
const enum carl9170_cmd_oids cmd, const unsigned int len);
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户