Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ath6kl: add rx data padding support

Needed when using USB.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

+10
+7
drivers/net/wireless/ath/ath6kl/txrx.c
··· 1287 1287 struct wmi_data_hdr *dhdr; 1288 1288 int min_hdr_len; 1289 1289 u8 meta_type, dot11_hdr = 0; 1290 + u8 pad_before_data_start; 1290 1291 int status = packet->status; 1291 1292 enum htc_endpoint_id ept = packet->endpoint; 1292 1293 bool is_amsdu, prev_ps, ps_state = false; ··· 1499 1498 seq_no = wmi_data_hdr_get_seqno(dhdr); 1500 1499 meta_type = wmi_data_hdr_get_meta(dhdr); 1501 1500 dot11_hdr = wmi_data_hdr_get_dot11(dhdr); 1501 + pad_before_data_start = 1502 + (le16_to_cpu(dhdr->info3) >> WMI_DATA_HDR_PAD_BEFORE_DATA_SHIFT) 1503 + & WMI_DATA_HDR_PAD_BEFORE_DATA_MASK; 1504 + 1502 1505 skb_pull(skb, sizeof(struct wmi_data_hdr)); 1503 1506 1504 1507 switch (meta_type) { ··· 1520 1515 default: 1521 1516 break; 1522 1517 } 1518 + 1519 + skb_pull(skb, pad_before_data_start); 1523 1520 1524 1521 if (dot11_hdr) 1525 1522 status = ath6kl_wmi_dot11_hdr_remove(ar->wmi, skb);
+3
drivers/net/wireless/ath/ath6kl/wmi.h
··· 182 182 #define WMI_DATA_HDR_META_MASK 0x7 183 183 #define WMI_DATA_HDR_META_SHIFT 13 184 184 185 + #define WMI_DATA_HDR_PAD_BEFORE_DATA_MASK 0xFF 186 + #define WMI_DATA_HDR_PAD_BEFORE_DATA_SHIFT 0x8 187 + 185 188 /* Macros for operating on WMI_DATA_HDR (info3) field */ 186 189 #define WMI_DATA_HDR_IF_IDX_MASK 0xF 187 190