wil6210: more Rx descriptor accessor functions
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Thu, 18 Apr 2013 11:33:53 +0000 (14:33 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 22 Apr 2013 19:20:25 +0000 (15:20 -0400)
Helpers to fetch various fields from the Rx descriptor

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/wil6210/txrx.h

index f0cc48a..adef12f 100644 (file)
@@ -339,19 +339,19 @@ union vring_desc {
        struct vring_rx_desc rx;
 } __packed;
 
-static inline int wil_rxdesc_phy_length(struct vring_rx_desc *d)
+static inline int wil_rxdesc_tid(struct vring_rx_desc *d)
 {
-       return WIL_GET_BITS(d->dma.d0, 16, 29);
+       return WIL_GET_BITS(d->mac.d0, 0, 3);
 }
 
-static inline int wil_rxdesc_mcs(struct vring_rx_desc *d)
+static inline int wil_rxdesc_cid(struct vring_rx_desc *d)
 {
-       return WIL_GET_BITS(d->mac.d1, 21, 24);
+       return WIL_GET_BITS(d->mac.d0, 4, 6);
 }
 
-static inline int wil_rxdesc_ds_bits(struct vring_rx_desc *d)
+static inline int wil_rxdesc_mid(struct vring_rx_desc *d)
 {
-       return WIL_GET_BITS(d->mac.d1, 8, 9);
+       return WIL_GET_BITS(d->mac.d0, 8, 9);
 }
 
 static inline int wil_rxdesc_ftype(struct vring_rx_desc *d)
@@ -359,6 +359,36 @@ static inline int wil_rxdesc_ftype(struct vring_rx_desc *d)
        return WIL_GET_BITS(d->mac.d0, 10, 11);
 }
 
+static inline int wil_rxdesc_subtype(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->mac.d0, 12, 15);
+}
+
+static inline int wil_rxdesc_seq(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->mac.d0, 16, 27);
+}
+
+static inline int wil_rxdesc_ext_subtype(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->mac.d0, 28, 31);
+}
+
+static inline int wil_rxdesc_ds_bits(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->mac.d1, 8, 9);
+}
+
+static inline int wil_rxdesc_mcs(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->mac.d1, 21, 24);
+}
+
+static inline int wil_rxdesc_phy_length(struct vring_rx_desc *d)
+{
+       return WIL_GET_BITS(d->dma.d0, 16, 29);
+}
+
 static inline struct vring_rx_desc *wil_skb_rxdesc(struct sk_buff *skb)
 {
        return (void *)skb->cb;