소스 검색

staging: vt6656: struct vnt_tx_fifo_head fifo_ctl change base type to __le16

Endian is always little add correction in vnt_tx_packet.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Malcolm Priestley 11 년 전
부모
커밋
47e0889452
2개의 변경된 파일15개의 추가작업 그리고 13개의 파일을 삭제
  1. 14 12
      drivers/staging/vt6656/rxtx.c
  2. 1 1
      drivers/staging/vt6656/rxtx.h

+ 14 - 12
drivers/staging/vt6656/rxtx.c

@@ -830,16 +830,16 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
 	if (pkt_type == PK_TYPE_11A)
 		tx_buffer_head->fifo_ctl = 0;
 	else if (pkt_type == PK_TYPE_11B)
-		tx_buffer_head->fifo_ctl = FIFOCTL_11B;
+		tx_buffer_head->fifo_ctl = cpu_to_le16(FIFOCTL_11B);
 	else if (pkt_type == PK_TYPE_11GB)
-		tx_buffer_head->fifo_ctl = FIFOCTL_11GB;
+		tx_buffer_head->fifo_ctl = cpu_to_le16(FIFOCTL_11GB);
 	else if (pkt_type == PK_TYPE_11GA)
-		tx_buffer_head->fifo_ctl = FIFOCTL_11GA;
+		tx_buffer_head->fifo_ctl = cpu_to_le16(FIFOCTL_11GA);
 
 	if (!ieee80211_is_data(hdr->frame_control)) {
-		tx_buffer_head->fifo_ctl |= (FIFOCTL_GENINT |
-			FIFOCTL_ISDMA0);
-		tx_buffer_head->fifo_ctl |= FIFOCTL_TMOEN;
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_GENINT |
+							FIFOCTL_ISDMA0);
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_TMOEN);
 
 		tx_buffer_head->time_stamp =
 			cpu_to_le16(DEFAULT_MGN_LIFETIME_RES_64us);
@@ -849,12 +849,12 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
 	}
 
 	if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) {
-		tx_buffer_head->fifo_ctl |= FIFOCTL_NEEDACK;
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_NEEDACK);
 		tx_context->need_ack = true;
 	}
 
 	if (ieee80211_has_retry(hdr->frame_control))
-		tx_buffer_head->fifo_ctl |= FIFOCTL_LRETRY;
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_LRETRY);
 
 	if (tx_rate->flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE)
 		priv->preamble_type = PREAMBLE_SHORT;
@@ -863,11 +863,11 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
 
 	if (tx_rate->flags & IEEE80211_TX_RC_USE_RTS_CTS) {
 		need_rts = true;
-		tx_buffer_head->fifo_ctl |= FIFOCTL_RTS;
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_RTS);
 	}
 
 	if (ieee80211_has_a4(hdr->frame_control))
-		tx_buffer_head->fifo_ctl |= FIFOCTL_LHEAD;
+		tx_buffer_head->fifo_ctl |= cpu_to_le16(FIFOCTL_LHEAD);
 
 	if (info->flags & IEEE80211_TX_CTL_NO_PS_BUFFER)
 		is_pspoll = true;
@@ -899,7 +899,8 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
 	/* legacy rates TODO use ieee80211_tx_rate */
 	if (current_rate >= RATE_18M && ieee80211_is_data(hdr->frame_control)) {
 		if (priv->auto_fb_ctrl == AUTO_FB_0) {
-			tx_buffer_head->fifo_ctl |= FIFOCTL_AUTO_FB_0;
+			tx_buffer_head->fifo_ctl |=
+						cpu_to_le16(FIFOCTL_AUTO_FB_0);
 
 			priv->tx_rate_fb0 =
 				vnt_fb_opt0[FB_RATE0][current_rate - RATE_18M];
@@ -908,7 +909,8 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
 
 			fb_option = AUTO_FB_0;
 		} else if (priv->auto_fb_ctrl == AUTO_FB_1) {
-			tx_buffer_head->fifo_ctl |= FIFOCTL_AUTO_FB_1;
+			tx_buffer_head->fifo_ctl |=
+						cpu_to_le16(FIFOCTL_AUTO_FB_1);
 
 			priv->tx_rate_fb0 =
 				vnt_fb_opt1[FB_RATE0][current_rate - RATE_18M];

+ 1 - 1
drivers/staging/vt6656/rxtx.h

@@ -222,7 +222,7 @@ union vnt_tx_head {
 
 struct vnt_tx_fifo_head {
 	u8 tx_key[WLAN_KEY_LEN_CCMP];
-	u16 fifo_ctl;
+	__le16 fifo_ctl;
 	__le16 time_stamp;
 	__le16 frag_ctl;
 	__le16 current_rate;