Commit 1a09404a authored by Michael Buesch's avatar Michael Buesch Committed by David S. Miller

[B43]: Fix sparse warnings.

The remaining warning in phy.c will be fixed later.
Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fb8e4444
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
/* The root directory. */ /* The root directory. */
struct dentry *rootdir; static struct dentry *rootdir;
struct b43_debugfs_fops { struct b43_debugfs_fops {
ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize); ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
...@@ -76,7 +76,8 @@ struct b43_dfs_file * fops_to_dfs_file(struct b43_wldev *dev, ...@@ -76,7 +76,8 @@ struct b43_dfs_file * fops_to_dfs_file(struct b43_wldev *dev,
/* wl->irq_lock is locked */ /* wl->irq_lock is locked */
ssize_t tsf_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t tsf_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
ssize_t count = 0; ssize_t count = 0;
u64 tsf; u64 tsf;
...@@ -90,7 +91,8 @@ ssize_t tsf_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) ...@@ -90,7 +91,8 @@ ssize_t tsf_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
} }
/* wl->irq_lock is locked */ /* wl->irq_lock is locked */
int tsf_write_file(struct b43_wldev *dev, const char *buf, size_t count) static int tsf_write_file(struct b43_wldev *dev,
const char *buf, size_t count)
{ {
u64 tsf; u64 tsf;
...@@ -102,7 +104,8 @@ int tsf_write_file(struct b43_wldev *dev, const char *buf, size_t count) ...@@ -102,7 +104,8 @@ int tsf_write_file(struct b43_wldev *dev, const char *buf, size_t count)
} }
/* wl->irq_lock is locked */ /* wl->irq_lock is locked */
ssize_t ucode_regs_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t ucode_regs_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
ssize_t count = 0; ssize_t count = 0;
int i; int i;
...@@ -116,7 +119,8 @@ ssize_t ucode_regs_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) ...@@ -116,7 +119,8 @@ ssize_t ucode_regs_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
} }
/* wl->irq_lock is locked */ /* wl->irq_lock is locked */
ssize_t shm_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t shm_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
ssize_t count = 0; ssize_t count = 0;
int i; int i;
...@@ -135,7 +139,8 @@ ssize_t shm_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) ...@@ -135,7 +139,8 @@ ssize_t shm_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
return count; return count;
} }
ssize_t txstat_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t txstat_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
struct b43_txstatus_log *log = &dev->dfsentry->txstatlog; struct b43_txstatus_log *log = &dev->dfsentry->txstatlog;
ssize_t count = 0; ssize_t count = 0;
...@@ -182,7 +187,8 @@ out_unlock: ...@@ -182,7 +187,8 @@ out_unlock:
return count; return count;
} }
ssize_t txpower_g_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t txpower_g_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
ssize_t count = 0; ssize_t count = 0;
...@@ -214,7 +220,8 @@ out: ...@@ -214,7 +220,8 @@ out:
return count; return count;
} }
int txpower_g_write_file(struct b43_wldev *dev, const char *buf, size_t count) static int txpower_g_write_file(struct b43_wldev *dev,
const char *buf, size_t count)
{ {
unsigned long flags; unsigned long flags;
unsigned long phy_flags; unsigned long phy_flags;
...@@ -262,7 +269,8 @@ out_unlock: ...@@ -262,7 +269,8 @@ out_unlock:
} }
/* wl->irq_lock is locked */ /* wl->irq_lock is locked */
int restart_write_file(struct b43_wldev *dev, const char *buf, size_t count) static int restart_write_file(struct b43_wldev *dev,
const char *buf, size_t count)
{ {
int err = 0; int err = 0;
...@@ -294,7 +302,8 @@ static ssize_t append_lo_table(ssize_t count, char *buf, const size_t bufsize, ...@@ -294,7 +302,8 @@ static ssize_t append_lo_table(ssize_t count, char *buf, const size_t bufsize,
return count; return count;
} }
ssize_t loctls_read_file(struct b43_wldev *dev, char *buf, size_t bufsize) static ssize_t loctls_read_file(struct b43_wldev *dev,
char *buf, size_t bufsize)
{ {
ssize_t count = 0; ssize_t count = 0;
struct b43_txpower_lo_control *lo; struct b43_txpower_lo_control *lo;
...@@ -383,6 +392,8 @@ static ssize_t b43_debugfs_read(struct file *file, char __user *userbuf, ...@@ -383,6 +392,8 @@ static ssize_t b43_debugfs_read(struct file *file, char __user *userbuf,
err = -ENOMEM; err = -ENOMEM;
goto out_unlock; goto out_unlock;
} }
/* Sparse warns about the following memset, because it has a big
* size value. That warning is bogus, so I will ignore it. --mb */
memset(buf, 0, bufsize); memset(buf, 0, bufsize);
if (dfops->take_irqlock) { if (dfops->take_irqlock) {
spin_lock_irq(&dev->wl->irq_lock); spin_lock_irq(&dev->wl->irq_lock);
......
...@@ -32,14 +32,13 @@ ...@@ -32,14 +32,13 @@
static void b43_led_changestate(struct b43_led *led) static void b43_led_changestate(struct b43_led *led)
{ {
struct b43_wldev *dev = led->dev; struct b43_wldev *dev = led->dev;
const int index = b43_led_index(led); const int index = led->index;
const u16 mask = (1 << index);
u16 ledctl; u16 ledctl;
B43_WARN_ON(!(index >= 0 && index < B43_NR_LEDS)); B43_WARN_ON(!(index >= 0 && index < B43_NR_LEDS));
B43_WARN_ON(!led->blink_interval); B43_WARN_ON(!led->blink_interval);
ledctl = b43_read16(dev, B43_MMIO_GPIO_CONTROL); ledctl = b43_read16(dev, B43_MMIO_GPIO_CONTROL);
ledctl = (ledctl & mask) ? (ledctl & ~mask) : (ledctl | mask); ledctl ^= (1 << index);
b43_write16(dev, B43_MMIO_GPIO_CONTROL, ledctl); b43_write16(dev, B43_MMIO_GPIO_CONTROL, ledctl);
} }
...@@ -70,7 +69,7 @@ static void b43_led_blink_start(struct b43_led *led, unsigned long interval) ...@@ -70,7 +69,7 @@ static void b43_led_blink_start(struct b43_led *led, unsigned long interval)
static void b43_led_blink_stop(struct b43_led *led, int sync) static void b43_led_blink_stop(struct b43_led *led, int sync)
{ {
struct b43_wldev *dev = led->dev; struct b43_wldev *dev = led->dev;
const int index = b43_led_index(led); const int index = led->index;
u16 ledctl; u16 ledctl;
if (!led->blink_interval) if (!led->blink_interval)
...@@ -139,6 +138,7 @@ int b43_leds_init(struct b43_wldev *dev) ...@@ -139,6 +138,7 @@ int b43_leds_init(struct b43_wldev *dev)
for (i = 0; i < B43_NR_LEDS; i++) { for (i = 0; i < B43_NR_LEDS; i++) {
led = &(dev->leds[i]); led = &(dev->leds[i]);
led->index = i;
led->dev = dev; led->dev = dev;
setup_timer(&led->blink_timer, setup_timer(&led->blink_timer,
b43_led_blink, (unsigned long)led); b43_led_blink, (unsigned long)led);
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
#include <linux/timer.h> #include <linux/timer.h>
struct b43_led { struct b43_led {
u8 behaviour:7; u8 behaviour;
u8 activelow:1; bool activelow;
/* Index in the "leds" array in b43_wldev */
u8 index;
struct b43_wldev *dev; struct b43_wldev *dev;
struct timer_list blink_timer; struct timer_list blink_timer;
unsigned long blink_interval; unsigned long blink_interval;
}; };
#define b43_led_index(led) ((int)((led) - (led)->dev->leds))
/* Delay between state changes when blinking in jiffies */ /* Delay between state changes when blinking in jiffies */
#define B43_LEDBLINK_SLOW (HZ / 1) #define B43_LEDBLINK_SLOW (HZ / 1)
......
...@@ -1062,7 +1062,7 @@ static void handle_irq_noise(struct b43_wldev *dev) ...@@ -1062,7 +1062,7 @@ static void handle_irq_noise(struct b43_wldev *dev)
B43_WARN_ON(!dev->noisecalc.calculation_running); B43_WARN_ON(!dev->noisecalc.calculation_running);
if (dev->noisecalc.channel_at_start != phy->channel) if (dev->noisecalc.channel_at_start != phy->channel)
goto drop_calculation; goto drop_calculation;
*((u32 *) noise) = cpu_to_le32(b43_jssi_read(dev)); *((__le32 *)noise) = cpu_to_le32(b43_jssi_read(dev));
if (noise[0] == 0x7F || noise[1] == 0x7F || if (noise[0] == 0x7F || noise[1] == 0x7F ||
noise[2] == 0x7F || noise[3] == 0x7F) noise[2] == 0x7F || noise[3] == 0x7F)
goto generate_new; goto generate_new;
...@@ -1598,8 +1598,7 @@ static int do_request_fw(struct b43_wldev *dev, ...@@ -1598,8 +1598,7 @@ static int do_request_fw(struct b43_wldev *dev,
const char *name, const char *name,
const struct firmware **fw) const struct firmware **fw)
{ {
const size_t plen = sizeof(modparam_fwpostfix) + 32; char path[sizeof(modparam_fwpostfix) + 32];
char path[plen];
struct b43_fw_header *hdr; struct b43_fw_header *hdr;
u32 size; u32 size;
int err; int err;
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
*/ */
#include "pcmcia.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <pcmcia/cs_types.h> #include <pcmcia/cs_types.h>
...@@ -30,6 +32,7 @@ ...@@ -30,6 +32,7 @@
#include <pcmcia/ds.h> #include <pcmcia/ds.h>
#include <pcmcia/cisreg.h> #include <pcmcia/cisreg.h>
static /*const */ struct pcmcia_device_id b43_pcmcia_tbl[] = { static /*const */ struct pcmcia_device_id b43_pcmcia_tbl[] = {
PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448), PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448),
PCMCIA_DEVICE_NULL, PCMCIA_DEVICE_NULL,
......
...@@ -60,7 +60,7 @@ static u16 tx_get_next_word(const u8 * txhdr, ...@@ -60,7 +60,7 @@ static u16 tx_get_next_word(const u8 * txhdr,
source = packet; source = packet;
i -= txhdr_size; i -= txhdr_size;
} }
ret = le16_to_cpu(*((u16 *) (source + i))); ret = le16_to_cpu(*((__le16 *)(source + i)));
*pos += 2; *pos += 2;
return ret; return ret;
...@@ -104,7 +104,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue, ...@@ -104,7 +104,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue,
struct b43_pio_txpacket *packet) struct b43_pio_txpacket *packet)
{ {
u16 cookie = 0x0000; u16 cookie = 0x0000;
int packetindex; u16 packetindex;
/* We use the upper 4 bits for the PIO /* We use the upper 4 bits for the PIO
* controller ID and the lower 12 bits * controller ID and the lower 12 bits
...@@ -125,7 +125,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue, ...@@ -125,7 +125,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue,
default: default:
B43_WARN_ON(1); B43_WARN_ON(1);
} }
packetindex = pio_txpacket_getindex(packet); packetindex = packet->index;
B43_WARN_ON(packetindex & ~0x0FFF); B43_WARN_ON(packetindex & ~0x0FFF);
cookie |= (u16) packetindex; cookie |= (u16) packetindex;
...@@ -286,6 +286,7 @@ static void setup_txqueues(struct b43_pioqueue *queue) ...@@ -286,6 +286,7 @@ static void setup_txqueues(struct b43_pioqueue *queue)
packet->queue = queue; packet->queue = queue;
INIT_LIST_HEAD(&packet->list); INIT_LIST_HEAD(&packet->list);
packet->index = i;
list_add(&packet->list, &queue->txfree); list_add(&packet->list, &queue->txfree);
} }
...@@ -518,9 +519,10 @@ static void pio_rx_error(struct b43_pioqueue *queue, ...@@ -518,9 +519,10 @@ static void pio_rx_error(struct b43_pioqueue *queue,
void b43_pio_rx(struct b43_pioqueue *queue) void b43_pio_rx(struct b43_pioqueue *queue)
{ {
u16 preamble[21] = { 0 }; __le16 preamble[21] = { 0 };
struct b43_rxhdr_fw4 *rxhdr; struct b43_rxhdr_fw4 *rxhdr;
u16 tmp, len, macstat; u16 tmp, len;
u32 macstat;
int i, preamble_readwords; int i, preamble_readwords;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -537,7 +539,7 @@ void b43_pio_rx(struct b43_pioqueue *queue) ...@@ -537,7 +539,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
} }
b43dbg(queue->dev->wl, "PIO RX timed out\n"); b43dbg(queue->dev->wl, "PIO RX timed out\n");
return; return;
data_ready: data_ready:
len = b43_pio_read(queue, B43_PIO_RXDATA); len = b43_pio_read(queue, B43_PIO_RXDATA);
if (unlikely(len > 0x700)) { if (unlikely(len > 0x700)) {
...@@ -558,7 +560,7 @@ void b43_pio_rx(struct b43_pioqueue *queue) ...@@ -558,7 +560,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
preamble[i + 1] = cpu_to_le16(tmp); preamble[i + 1] = cpu_to_le16(tmp);
} }
rxhdr = (struct b43_rxhdr_fw4 *)preamble; rxhdr = (struct b43_rxhdr_fw4 *)preamble;
macstat = le16_to_cpu(rxhdr->mac_status); macstat = le32_to_cpu(rxhdr->mac_status);
if (macstat & B43_RX_MAC_FCSERR) { if (macstat & B43_RX_MAC_FCSERR) {
pio_rx_error(queue, pio_rx_error(queue,
(queue->mmio_base == B43_MMIO_PIO1_BASE), (queue->mmio_base == B43_MMIO_PIO1_BASE),
...@@ -583,7 +585,7 @@ void b43_pio_rx(struct b43_pioqueue *queue) ...@@ -583,7 +585,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
skb_put(skb, len); skb_put(skb, len);
for (i = 0; i < len - 1; i += 2) { for (i = 0; i < len - 1; i += 2) {
tmp = b43_pio_read(queue, B43_PIO_RXDATA); tmp = b43_pio_read(queue, B43_PIO_RXDATA);
*((u16 *) (skb->data + i)) = cpu_to_le16(tmp); *((__le16 *)(skb->data + i)) = cpu_to_le16(tmp);
} }
if (len % 2) { if (len % 2) {
tmp = b43_pio_read(queue, B43_PIO_RXDATA); tmp = b43_pio_read(queue, B43_PIO_RXDATA);
......
...@@ -39,10 +39,9 @@ struct b43_pio_txpacket { ...@@ -39,10 +39,9 @@ struct b43_pio_txpacket {
struct sk_buff *skb; struct sk_buff *skb;
struct ieee80211_tx_status txstat; struct ieee80211_tx_status txstat;
struct list_head list; struct list_head list;
u16 index; /* Index in the tx_packets_cache */
}; };
#define pio_txpacket_getindex(packet) ((int)((packet) - (packet)->queue->tx_packets_cache))
struct b43_pioqueue { struct b43_pioqueue {
struct b43_wldev *dev; struct b43_wldev *dev;
u16 mmio_base; u16 mmio_base;
......
...@@ -121,10 +121,12 @@ void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp, ...@@ -121,10 +121,12 @@ void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp,
__u8 *raw = plcp->raw; __u8 *raw = plcp->raw;
if (b43_is_ofdm_rate(bitrate)) { if (b43_is_ofdm_rate(bitrate)) {
*data = b43_plcp_get_ratecode_ofdm(bitrate); u32 d;
d = b43_plcp_get_ratecode_ofdm(bitrate);
B43_WARN_ON(octets & 0xF000); B43_WARN_ON(octets & 0xF000);
*data |= (octets << 5); d |= (octets << 5);
*data = cpu_to_le32(*data); *data = cpu_to_le32(d);
} else { } else {
u32 plen; u32 plen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment