aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2010-12-22 06:38:52 -0500
committerLuciano Coelho <coelho@ti.com>2011-01-24 15:11:46 -0500
commit6177eaea277527e48753d050723cd138494c98a8 (patch)
tree372618c1d42e264f00d20060441f61d3fdf3e1d1
parent0dd386676497fb3097e6fbb3de6090c948c0df30 (diff)
wl12xx: fix some sparse warnings
Note that wl1271_write32() calls cpu_to_le32() by itself, so calling wl1271_write32(addr, cpu_to_le32(val)) is in fact a bug on BE systems. Fix the following sparse warnings: drivers/net/wireless/wl12xx/cmd.c:662:16: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:662:16: expected unsigned short [unsigned] [addressable] [usertype] llc_type drivers/net/wireless/wl12xx/cmd.c:662:16: got restricted __be16 [usertype] <noident> drivers/net/wireless/wl12xx/cmd.c:674:17: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:674:17: expected unsigned int [unsigned] [addressable] [usertype] sender_ip drivers/net/wireless/wl12xx/cmd.c:674:17: got restricted __be32 [usertype] ip_addr drivers/net/wireless/wl12xx/rx.c:202:4: warning: incorrect type in argument 3 (different base types) drivers/net/wireless/wl12xx/rx.c:202:4: expected unsigned int [unsigned] [usertype] val drivers/net/wireless/wl12xx/rx.c:202:4: got restricted __le32 [usertype] <noident> drivers/net/wireless/wl12xx/acx.c:1247:23: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/acx.c:1247:23: expected restricted __le32 [usertype] ht_capabilites drivers/net/wireless/wl12xx/acx.c:1247:23: got unsigned long drivers/net/wireless/wl12xx/acx.c:1250:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1250:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1250:24: right side has type unsigned long drivers/net/wireless/wl12xx/acx.c:1253:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1253:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1253:24: right side has type unsigned long drivers/net/wireless/wl12xx/acx.c:1256:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1256:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1256:24: right side has type unsigned long Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r--drivers/net/wireless/wl12xx/acx.c13
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c8
-rw-r--r--drivers/net/wireless/wl12xx/rx.c3
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx_80211.h6
4 files changed, 15 insertions, 15 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.c b/drivers/net/wireless/wl12xx/acx.c
index cc4068d2b4a8..17f6a63fbdea 100644
--- a/drivers/net/wireless/wl12xx/acx.c
+++ b/drivers/net/wireless/wl12xx/acx.c
@@ -1233,6 +1233,7 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
1233 struct wl1271_acx_ht_capabilities *acx; 1233 struct wl1271_acx_ht_capabilities *acx;
1234 u8 mac_address[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; 1234 u8 mac_address[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
1235 int ret = 0; 1235 int ret = 0;
1236 u32 ht_capabilites = 0;
1236 1237
1237 wl1271_debug(DEBUG_ACX, "acx ht capabilities setting"); 1238 wl1271_debug(DEBUG_ACX, "acx ht capabilities setting");
1238 1239
@@ -1244,16 +1245,16 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
1244 1245
1245 /* Allow HT Operation ? */ 1246 /* Allow HT Operation ? */
1246 if (allow_ht_operation) { 1247 if (allow_ht_operation) {
1247 acx->ht_capabilites = 1248 ht_capabilites =
1248 WL1271_ACX_FW_CAP_HT_OPERATION; 1249 WL1271_ACX_FW_CAP_HT_OPERATION;
1249 if (ht_cap->cap & IEEE80211_HT_CAP_GRN_FLD) 1250 if (ht_cap->cap & IEEE80211_HT_CAP_GRN_FLD)
1250 acx->ht_capabilites |= 1251 ht_capabilites |=
1251 WL1271_ACX_FW_CAP_GREENFIELD_FRAME_FORMAT; 1252 WL1271_ACX_FW_CAP_GREENFIELD_FRAME_FORMAT;
1252 if (ht_cap->cap & IEEE80211_HT_CAP_SGI_20) 1253 if (ht_cap->cap & IEEE80211_HT_CAP_SGI_20)
1253 acx->ht_capabilites |= 1254 ht_capabilites |=
1254 WL1271_ACX_FW_CAP_SHORT_GI_FOR_20MHZ_PACKETS; 1255 WL1271_ACX_FW_CAP_SHORT_GI_FOR_20MHZ_PACKETS;
1255 if (ht_cap->cap & IEEE80211_HT_CAP_LSIG_TXOP_PROT) 1256 if (ht_cap->cap & IEEE80211_HT_CAP_LSIG_TXOP_PROT)
1256 acx->ht_capabilites |= 1257 ht_capabilites |=
1257 WL1271_ACX_FW_CAP_LSIG_TXOP_PROTECTION; 1258 WL1271_ACX_FW_CAP_LSIG_TXOP_PROTECTION;
1258 1259
1259 /* get data from A-MPDU parameters field */ 1260 /* get data from A-MPDU parameters field */
@@ -1261,10 +1262,10 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
1261 acx->ampdu_min_spacing = ht_cap->ampdu_density; 1262 acx->ampdu_min_spacing = ht_cap->ampdu_density;
1262 1263
1263 memcpy(acx->mac_address, mac_address, ETH_ALEN); 1264 memcpy(acx->mac_address, mac_address, ETH_ALEN);
1264 } else { /* HT operations are not allowed */
1265 acx->ht_capabilites = 0;
1266 } 1265 }
1267 1266
1267 acx->ht_capabilites = cpu_to_le32(ht_capabilites);
1268
1268 ret = wl1271_cmd_configure(wl, ACX_PEER_HT_CAP, acx, sizeof(*acx)); 1269 ret = wl1271_cmd_configure(wl, ACX_PEER_HT_CAP, acx, sizeof(*acx));
1269 if (ret < 0) { 1270 if (ret < 0) {
1270 wl1271_warning("acx ht capabilities setting failed: %d", ret); 1271 wl1271_warning("acx ht capabilities setting failed: %d", ret);
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index 0106628aa5a2..52a6bcd5c309 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -659,15 +659,15 @@ int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr)
659 659
660 /* llc layer */ 660 /* llc layer */
661 memcpy(tmpl.llc_hdr, rfc1042_header, sizeof(rfc1042_header)); 661 memcpy(tmpl.llc_hdr, rfc1042_header, sizeof(rfc1042_header));
662 tmpl.llc_type = htons(ETH_P_ARP); 662 tmpl.llc_type = cpu_to_be16(ETH_P_ARP);
663 663
664 /* arp header */ 664 /* arp header */
665 arp_hdr = &tmpl.arp_hdr; 665 arp_hdr = &tmpl.arp_hdr;
666 arp_hdr->ar_hrd = htons(ARPHRD_ETHER); 666 arp_hdr->ar_hrd = cpu_to_be16(ARPHRD_ETHER);
667 arp_hdr->ar_pro = htons(ETH_P_IP); 667 arp_hdr->ar_pro = cpu_to_be16(ETH_P_IP);
668 arp_hdr->ar_hln = ETH_ALEN; 668 arp_hdr->ar_hln = ETH_ALEN;
669 arp_hdr->ar_pln = 4; 669 arp_hdr->ar_pln = 4;
670 arp_hdr->ar_op = htons(ARPOP_REPLY); 670 arp_hdr->ar_op = cpu_to_be16(ARPOP_REPLY);
671 671
672 /* arp payload */ 672 /* arp payload */
673 memcpy(tmpl.sender_hw, wl->vif->addr, ETH_ALEN); 673 memcpy(tmpl.sender_hw, wl->vif->addr, ETH_ALEN);
diff --git a/drivers/net/wireless/wl12xx/rx.c b/drivers/net/wireless/wl12xx/rx.c
index ec8d843d41cf..c6402529eac8 100644
--- a/drivers/net/wireless/wl12xx/rx.c
+++ b/drivers/net/wireless/wl12xx/rx.c
@@ -198,6 +198,5 @@ void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status)
198 pkt_offset += pkt_length; 198 pkt_offset += pkt_length;
199 } 199 }
200 } 200 }
201 wl1271_write32(wl, RX_DRIVER_COUNTER_ADDRESS, 201 wl1271_write32(wl, RX_DRIVER_COUNTER_ADDRESS, wl->rx_counter);
202 cpu_to_le32(wl->rx_counter));
203} 202}
diff --git a/drivers/net/wireless/wl12xx/wl12xx_80211.h b/drivers/net/wireless/wl12xx/wl12xx_80211.h
index be21032f4dc1..e2b26fbf68c1 100644
--- a/drivers/net/wireless/wl12xx/wl12xx_80211.h
+++ b/drivers/net/wireless/wl12xx/wl12xx_80211.h
@@ -138,13 +138,13 @@ struct wl12xx_arp_rsp_template {
138 struct ieee80211_hdr_3addr hdr; 138 struct ieee80211_hdr_3addr hdr;
139 139
140 u8 llc_hdr[sizeof(rfc1042_header)]; 140 u8 llc_hdr[sizeof(rfc1042_header)];
141 u16 llc_type; 141 __be16 llc_type;
142 142
143 struct arphdr arp_hdr; 143 struct arphdr arp_hdr;
144 u8 sender_hw[ETH_ALEN]; 144 u8 sender_hw[ETH_ALEN];
145 u32 sender_ip; 145 __be32 sender_ip;
146 u8 target_hw[ETH_ALEN]; 146 u8 target_hw[ETH_ALEN];
147 u32 target_ip; 147 __be32 target_ip;
148} __packed; 148} __packed;
149 149
150 150