staging: brcmfmac: Consolidate debugging macros
Convert multiple BRCMF_<debug_level> macros to a single brcmf_dbg(level, fmt, ...) macro. Remove the now unnecessary double parentheses in the uses of the old macros when converting to brcmf_dbg. Delete all uses of "%s: [fmt]", __func__, args... and move the "%s: ", __func__ to the macro for consistency. Coalesce long formats. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
09ebd6f23b
commit
75bf74b90f
7 changed files with 694 additions and 862 deletions
drivers/staging/brcm80211/brcmfmac
|
@ -86,8 +86,7 @@ brcmf_sdcard_iovar_op(struct brcmf_sdio_dev *sdiodev, const char *name,
|
|||
if (!set && !(arg && len))
|
||||
return -EINVAL;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter (%s %s)\n", __func__, (set ? "set" : "get"),
|
||||
name));
|
||||
brcmf_dbg(TRACE, "Enter (%s %s)\n", set ? "set" : "get", name);
|
||||
|
||||
vi = brcmu_iovar_lookup(sdioh_iovars, name);
|
||||
if (vi == NULL) {
|
||||
|
@ -168,7 +167,7 @@ static void brcmf_sdioh_irqhandler(struct sdio_func *func)
|
|||
{
|
||||
struct brcmf_sdio_dev *sdiodev = dev_get_drvdata(&func->card->dev);
|
||||
|
||||
BRCMF_TRACE(("brcmf: ***IRQHandler\n"));
|
||||
brcmf_dbg(TRACE, "***IRQHandler\n");
|
||||
|
||||
sdio_release_host(func);
|
||||
|
||||
|
@ -179,7 +178,7 @@ static void brcmf_sdioh_irqhandler(struct sdio_func *func)
|
|||
|
||||
int brcmf_sdcard_intr_reg(struct brcmf_sdio_dev *sdiodev)
|
||||
{
|
||||
BRCMF_TRACE(("%s: Entering\n", __func__));
|
||||
brcmf_dbg(TRACE, "Entering\n");
|
||||
|
||||
sdio_claim_host(sdiodev->func[1]);
|
||||
sdio_claim_irq(sdiodev->func[1], brcmf_sdioh_irqhandler);
|
||||
|
@ -190,7 +189,7 @@ int brcmf_sdcard_intr_reg(struct brcmf_sdio_dev *sdiodev)
|
|||
|
||||
int brcmf_sdcard_intr_dereg(struct brcmf_sdio_dev *sdiodev)
|
||||
{
|
||||
BRCMF_TRACE(("%s: Entering\n", __func__));
|
||||
brcmf_dbg(TRACE, "Entering\n");
|
||||
|
||||
sdio_claim_host(sdiodev->func[1]);
|
||||
sdio_release_irq(sdiodev->func[1]);
|
||||
|
@ -216,8 +215,8 @@ u8 brcmf_sdcard_cfg_read(struct brcmf_sdio_dev *sdiodev, uint fnc_num, u32 addr,
|
|||
if (err)
|
||||
*err = status;
|
||||
|
||||
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, u8data = 0x%x\n",
|
||||
__func__, fnc_num, addr, data));
|
||||
brcmf_dbg(INFO, "fun = %d, addr = 0x%x, u8data = 0x%x\n",
|
||||
fnc_num, addr, data);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
@ -239,8 +238,8 @@ brcmf_sdcard_cfg_write(struct brcmf_sdio_dev *sdiodev, uint fnc_num, u32 addr,
|
|||
if (err)
|
||||
*err = status;
|
||||
|
||||
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, u8data = 0x%x\n",
|
||||
__func__, fnc_num, addr, data));
|
||||
brcmf_dbg(INFO, "fun = %d, addr = 0x%x, u8data = 0x%x\n",
|
||||
fnc_num, addr, data);
|
||||
}
|
||||
|
||||
int brcmf_sdcard_cis_read(struct brcmf_sdio_dev *sdiodev, uint func, u8 * cis,
|
||||
|
@ -260,7 +259,7 @@ int brcmf_sdcard_cis_read(struct brcmf_sdio_dev *sdiodev, uint func, u8 * cis,
|
|||
into the provided buffer. */
|
||||
tmp_buf = kmalloc(length, GFP_ATOMIC);
|
||||
if (tmp_buf == NULL) {
|
||||
BRCMF_ERROR(("%s: out of memory\n", __func__));
|
||||
brcmf_dbg(ERROR, "out of memory\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memcpy(tmp_buf, cis, length);
|
||||
|
@ -302,7 +301,7 @@ u32 brcmf_sdcard_reg_read(struct brcmf_sdio_dev *sdiodev, u32 addr, uint size)
|
|||
u32 word = 0;
|
||||
uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
|
||||
|
||||
BRCMF_INFO(("%s:fun = 1, addr = 0x%x, ", __func__, addr));
|
||||
brcmf_dbg(INFO, "fun = 1, addr = 0x%x\n", addr);
|
||||
|
||||
if (bar0 != sdiodev->sbwad) {
|
||||
if (brcmf_sdcard_set_sbaddr_window(sdiodev, bar0))
|
||||
|
@ -320,7 +319,7 @@ u32 brcmf_sdcard_reg_read(struct brcmf_sdio_dev *sdiodev, u32 addr, uint size)
|
|||
|
||||
sdiodev->regfail = (status != 0);
|
||||
|
||||
BRCMF_INFO(("u32data = 0x%x\n", word));
|
||||
brcmf_dbg(INFO, "u32data = 0x%x\n", word);
|
||||
|
||||
/* if ok, return appropriately masked word */
|
||||
if (status == 0) {
|
||||
|
@ -338,8 +337,7 @@ u32 brcmf_sdcard_reg_read(struct brcmf_sdio_dev *sdiodev, u32 addr, uint size)
|
|||
}
|
||||
|
||||
/* otherwise, bad sdio access or invalid size */
|
||||
BRCMF_ERROR(("%s: error reading addr 0x%04x size %d\n", __func__,
|
||||
addr, size));
|
||||
brcmf_dbg(ERROR, "error reading addr 0x%04x size %d\n", addr, size);
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
|
@ -350,8 +348,8 @@ u32 brcmf_sdcard_reg_write(struct brcmf_sdio_dev *sdiodev, u32 addr, uint size,
|
|||
uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
|
||||
int err = 0;
|
||||
|
||||
BRCMF_INFO(("%s:fun = 1, addr = 0x%x, uint%ddata = 0x%x\n",
|
||||
__func__, addr, size * 8, data));
|
||||
brcmf_dbg(INFO, "fun = 1, addr = 0x%x, uint%ddata = 0x%x\n",
|
||||
addr, size * 8, data);
|
||||
|
||||
if (bar0 != sdiodev->sbwad) {
|
||||
err = brcmf_sdcard_set_sbaddr_window(sdiodev, bar0);
|
||||
|
@ -372,8 +370,8 @@ u32 brcmf_sdcard_reg_write(struct brcmf_sdio_dev *sdiodev, u32 addr, uint size,
|
|||
if (status == 0)
|
||||
return 0;
|
||||
|
||||
BRCMF_ERROR(("%s: error writing 0x%08x to addr 0x%04x size %d\n",
|
||||
__func__, data, addr, size));
|
||||
brcmf_dbg(ERROR, "error writing 0x%08x to addr 0x%04x size %d\n",
|
||||
data, addr, size);
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
|
@ -393,8 +391,7 @@ brcmf_sdcard_recv_buf(struct brcmf_sdio_dev *sdiodev, u32 addr, uint fn,
|
|||
uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
|
||||
int err = 0;
|
||||
|
||||
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, size = %d\n",
|
||||
__func__, fn, addr, nbytes));
|
||||
brcmf_dbg(INFO, "fun = %d, addr = 0x%x, size = %d\n", fn, addr, nbytes);
|
||||
|
||||
/* Async not implemented yet */
|
||||
if (flags & SDIO_REQ_ASYNC)
|
||||
|
@ -430,8 +427,7 @@ brcmf_sdcard_send_buf(struct brcmf_sdio_dev *sdiodev, u32 addr, uint fn,
|
|||
uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
|
||||
int err = 0;
|
||||
|
||||
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, size = %d\n",
|
||||
__func__, fn, addr, nbytes));
|
||||
brcmf_dbg(INFO, "fun = %d, addr = 0x%x, size = %d\n", fn, addr, nbytes);
|
||||
|
||||
/* Async not implemented yet */
|
||||
if (flags & SDIO_REQ_ASYNC)
|
||||
|
@ -470,13 +466,13 @@ int brcmf_sdcard_rwdata(struct brcmf_sdio_dev *sdiodev, uint rw, u32 addr,
|
|||
int brcmf_sdcard_abort(struct brcmf_sdio_dev *sdiodev, uint fn)
|
||||
{
|
||||
char t_func = (char)fn;
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* issue abort cmd52 command through F0 */
|
||||
brcmf_sdioh_request_byte(sdiodev, SDIOH_WRITE, SDIO_FUNC_0,
|
||||
SDIO_CCCR_ABORT, &t_func);
|
||||
|
||||
BRCMF_TRACE(("%s: Exit\n", __func__));
|
||||
brcmf_dbg(TRACE, "Exit\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -502,7 +498,7 @@ int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
|||
/* try to attach to the target device */
|
||||
sdiodev->bus = brcmf_sdbrcm_probe(0, 0, 0, 0, regs, sdiodev);
|
||||
if (!sdiodev->bus) {
|
||||
BRCMF_ERROR(("%s: device attach failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "device attach failed\n");
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
@ -111,21 +111,21 @@ static int brcmf_sdioh_enablefuncs(struct brcmf_sdio_dev *sdiodev)
|
|||
u32 fbraddr;
|
||||
u8 func;
|
||||
|
||||
BRCMF_TRACE(("%s\n", __func__));
|
||||
brcmf_dbg(TRACE, "\n");
|
||||
|
||||
/* Get the Card's common CIS address */
|
||||
sdiodev->func_cis_ptr[0] = brcmf_sdioh_get_cisaddr(sdiodev,
|
||||
SDIO_CCCR_CIS);
|
||||
BRCMF_INFO(("%s: Card's Common CIS Ptr = 0x%x\n", __func__,
|
||||
sdiodev->func_cis_ptr[0]));
|
||||
brcmf_dbg(INFO, "Card's Common CIS Ptr = 0x%x\n",
|
||||
sdiodev->func_cis_ptr[0]);
|
||||
|
||||
/* Get the Card's function CIS (for each function) */
|
||||
for (fbraddr = SDIO_FBR_BASE(1), func = 1;
|
||||
func <= sdiodev->num_funcs; func++, fbraddr += SDIOD_FBR_SIZE) {
|
||||
sdiodev->func_cis_ptr[func] =
|
||||
brcmf_sdioh_get_cisaddr(sdiodev, SDIO_FBR_CIS + fbraddr);
|
||||
BRCMF_INFO(("%s: Function %d CIS Ptr = 0x%x\n", __func__, func,
|
||||
sdiodev->func_cis_ptr[func]));
|
||||
brcmf_dbg(INFO, "Function %d CIS Ptr = 0x%x\n",
|
||||
func, sdiodev->func_cis_ptr[func]);
|
||||
}
|
||||
|
||||
/* Enable Function 1 */
|
||||
|
@ -133,8 +133,7 @@ static int brcmf_sdioh_enablefuncs(struct brcmf_sdio_dev *sdiodev)
|
|||
err_ret = sdio_enable_func(sdiodev->func[1]);
|
||||
sdio_release_host(sdiodev->func[1]);
|
||||
if (err_ret)
|
||||
BRCMF_ERROR(("brcmf_sdioh_enablefuncs: Failed to enable F1 "
|
||||
"Err: 0x%08x\n", err_ret));
|
||||
brcmf_dbg(ERROR, "Failed to enable F1 Err: 0x%08x\n", err_ret);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -146,7 +145,7 @@ int brcmf_sdioh_attach(struct brcmf_sdio_dev *sdiodev)
|
|||
{
|
||||
int err_ret = 0;
|
||||
|
||||
BRCMF_TRACE(("%s\n", __func__));
|
||||
brcmf_dbg(TRACE, "\n");
|
||||
|
||||
sdiodev->num_funcs = 2;
|
||||
|
||||
|
@ -154,7 +153,7 @@ int brcmf_sdioh_attach(struct brcmf_sdio_dev *sdiodev)
|
|||
err_ret = sdio_set_block_size(sdiodev->func[1], 64);
|
||||
sdio_release_host(sdiodev->func[1]);
|
||||
if (err_ret) {
|
||||
BRCMF_ERROR(("%s: Failed to set F1 blocksize\n", __func__));
|
||||
brcmf_dbg(ERROR, "Failed to set F1 blocksize\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -162,21 +161,21 @@ int brcmf_sdioh_attach(struct brcmf_sdio_dev *sdiodev)
|
|||
err_ret = sdio_set_block_size(sdiodev->func[2], sd_f2_blocksize);
|
||||
sdio_release_host(sdiodev->func[2]);
|
||||
if (err_ret) {
|
||||
BRCMF_ERROR(("%s: Failed to set F2 blocksize"
|
||||
" to %d\n", __func__, sd_f2_blocksize));
|
||||
brcmf_dbg(ERROR, "Failed to set F2 blocksize to %d\n",
|
||||
sd_f2_blocksize);
|
||||
goto out;
|
||||
}
|
||||
|
||||
brcmf_sdioh_enablefuncs(sdiodev);
|
||||
|
||||
out:
|
||||
BRCMF_TRACE(("%s: Done\n", __func__));
|
||||
brcmf_dbg(TRACE, "Done\n");
|
||||
return err_ret;
|
||||
}
|
||||
|
||||
void brcmf_sdioh_detach(struct brcmf_sdio_dev *sdiodev)
|
||||
{
|
||||
BRCMF_TRACE(("%s\n", __func__));
|
||||
brcmf_dbg(TRACE, "\n");
|
||||
|
||||
/* Disable Function 2 */
|
||||
sdio_claim_host(sdiodev->func[2]);
|
||||
|
@ -199,7 +198,7 @@ static int brcmf_sdioh_get_cisaddr(struct brcmf_sdio_dev *sdiodev, u32 regaddr)
|
|||
for (i = 0; i < 3; i++) {
|
||||
if ((brcmf_sdioh_card_regread(sdiodev, 0, regaddr, 1,
|
||||
®data)) != SUCCESS)
|
||||
BRCMF_ERROR(("%s: Can't read!\n", __func__));
|
||||
brcmf_dbg(ERROR, "Can't read!\n");
|
||||
|
||||
*ptr++ = (u8) regdata;
|
||||
regaddr++;
|
||||
|
@ -220,22 +219,21 @@ brcmf_sdioh_cis_read(struct brcmf_sdio_dev *sdiodev, uint func,
|
|||
u32 foo;
|
||||
u8 *cis = cisd;
|
||||
|
||||
BRCMF_TRACE(("%s: Func = %d\n", __func__, func));
|
||||
brcmf_dbg(TRACE, "Func = %d\n", func);
|
||||
|
||||
if (!sdiodev->func_cis_ptr[func]) {
|
||||
memset(cis, 0, length);
|
||||
BRCMF_ERROR(("%s: no func_cis_ptr[%d]\n", __func__, func));
|
||||
brcmf_dbg(ERROR, "no func_cis_ptr[%d]\n", func);
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
BRCMF_ERROR(("%s: func_cis_ptr[%d]=0x%04x\n", __func__, func,
|
||||
sdiodev->func_cis_ptr[func]));
|
||||
brcmf_dbg(ERROR, "func_cis_ptr[%d]=0x%04x\n",
|
||||
func, sdiodev->func_cis_ptr[func]);
|
||||
|
||||
for (count = 0; count < length; count++) {
|
||||
offset = sdiodev->func_cis_ptr[func] + count;
|
||||
if (brcmf_sdioh_card_regread(sdiodev, 0, offset, 1, &foo) < 0) {
|
||||
BRCMF_ERROR(("%s: regread failed: Can't read CIS\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "regread failed: Can't read CIS\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -252,8 +250,7 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
|
|||
{
|
||||
int err_ret;
|
||||
|
||||
BRCMF_INFO(("%s: rw=%d, func=%d, addr=0x%05x\n", __func__, rw, func,
|
||||
regaddr));
|
||||
brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x\n", rw, func, regaddr);
|
||||
|
||||
BRCMF_PM_RESUME_WAIT(sdioh_request_byte_wait, sdiodev);
|
||||
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev);
|
||||
|
@ -272,22 +269,18 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
|
|||
sdio_enable_func
|
||||
(sdiodev->func[2]);
|
||||
if (err_ret)
|
||||
BRCMF_ERROR((
|
||||
"request_byte: "
|
||||
"enable F2 "
|
||||
"failed:%d\n",
|
||||
err_ret));
|
||||
brcmf_dbg(ERROR,
|
||||
"enable F2 failed:%d\n",
|
||||
err_ret);
|
||||
} else {
|
||||
/* Disable Function 2 */
|
||||
err_ret =
|
||||
sdio_disable_func
|
||||
(sdiodev->func[2]);
|
||||
if (err_ret)
|
||||
BRCMF_ERROR((
|
||||
"request_byte: "
|
||||
"Disab F2 "
|
||||
"failed:%d\n",
|
||||
err_ret));
|
||||
brcmf_dbg(ERROR,
|
||||
"Disable F2 failed:%d\n",
|
||||
err_ret);
|
||||
}
|
||||
sdio_release_host(sdiodev->func[2]);
|
||||
}
|
||||
|
@ -305,8 +298,8 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
|
|||
regaddr, &err_ret);
|
||||
sdio_release_host(sdiodev->func[func]);
|
||||
} else if (regaddr < 0xF0) {
|
||||
BRCMF_ERROR(("brcmf: F0 Wr:0x%02x: write "
|
||||
"disallowed\n", regaddr));
|
||||
brcmf_dbg(ERROR, "F0 Wr:0x%02x: write disallowed\n",
|
||||
regaddr);
|
||||
} else {
|
||||
/* Claim host controller, perform F0 write,
|
||||
and release */
|
||||
|
@ -341,9 +334,8 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
|
|||
}
|
||||
|
||||
if (err_ret)
|
||||
BRCMF_ERROR(("brcmf: Failed to %s byte F%d:@0x%05x=%02x, "
|
||||
"Err: %d\n", rw ? "Write" : "Read", func, regaddr,
|
||||
*byte, err_ret));
|
||||
brcmf_dbg(ERROR, "Failed to %s byte F%d:@0x%05x=%02x, Err: %d\n",
|
||||
rw ? "write" : "read", func, regaddr, *byte, err_ret);
|
||||
|
||||
return err_ret;
|
||||
}
|
||||
|
@ -355,12 +347,12 @@ brcmf_sdioh_request_word(struct brcmf_sdio_dev *sdiodev, uint cmd_type, uint rw,
|
|||
int err_ret = -EIO;
|
||||
|
||||
if (func == 0) {
|
||||
BRCMF_ERROR(("%s: Only CMD52 allowed to F0.\n", __func__));
|
||||
brcmf_dbg(ERROR, "Only CMD52 allowed to F0\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
BRCMF_INFO(("%s: cmd_type=%d, rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
|
||||
__func__, cmd_type, rw, func, addr, nbytes));
|
||||
brcmf_dbg(INFO, "cmd_type=%d, rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
|
||||
cmd_type, rw, func, addr, nbytes);
|
||||
|
||||
BRCMF_PM_RESUME_WAIT(sdioh_request_word_wait, sdiodev);
|
||||
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev);
|
||||
|
@ -375,8 +367,7 @@ brcmf_sdioh_request_word(struct brcmf_sdio_dev *sdiodev, uint cmd_type, uint rw,
|
|||
sdio_writew(sdiodev->func[func], (*word & 0xFFFF),
|
||||
addr, &err_ret);
|
||||
else
|
||||
BRCMF_ERROR(("%s: Invalid nbytes: %d\n",
|
||||
__func__, nbytes));
|
||||
brcmf_dbg(ERROR, "Invalid nbytes: %d\n", nbytes);
|
||||
} else { /* CMD52 Read */
|
||||
if (nbytes == 4)
|
||||
*word =
|
||||
|
@ -386,16 +377,15 @@ brcmf_sdioh_request_word(struct brcmf_sdio_dev *sdiodev, uint cmd_type, uint rw,
|
|||
sdio_readw(sdiodev->func[func], addr,
|
||||
&err_ret) & 0xFFFF;
|
||||
else
|
||||
BRCMF_ERROR(("%s: Invalid nbytes: %d\n",
|
||||
__func__, nbytes));
|
||||
brcmf_dbg(ERROR, "Invalid nbytes: %d\n", nbytes);
|
||||
}
|
||||
|
||||
/* Release host controller */
|
||||
sdio_release_host(sdiodev->func[func]);
|
||||
|
||||
if (err_ret)
|
||||
BRCMF_ERROR(("brcmf: Failed to %s word, Err: 0x%08x\n",
|
||||
rw ? "Write" : "Read", err_ret));
|
||||
brcmf_dbg(ERROR, "Failed to %s word, Err: 0x%08x\n",
|
||||
rw ? "write" : "read", err_ret);
|
||||
|
||||
return err_ret;
|
||||
}
|
||||
|
@ -411,7 +401,7 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc,
|
|||
|
||||
struct sk_buff *pnext;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
BRCMF_PM_RESUME_WAIT(sdioh_request_packet_wait, sdiodev);
|
||||
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev);
|
||||
|
@ -442,15 +432,13 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc,
|
|||
}
|
||||
|
||||
if (err_ret) {
|
||||
BRCMF_ERROR(("%s: %s FAILED %p[%d], addr=0x%05x, "
|
||||
"pkt_len=%d, ERR=0x%08x\n", __func__,
|
||||
(write) ? "TX" : "RX",
|
||||
pnext, SGCount, addr, pkt_len, err_ret));
|
||||
brcmf_dbg(ERROR, "%s FAILED %p[%d], addr=0x%05x, pkt_len=%d, ERR=0x%08x\n",
|
||||
write ? "TX" : "RX", pnext, SGCount, addr,
|
||||
pkt_len, err_ret);
|
||||
} else {
|
||||
BRCMF_TRACE(("%s: %s xfr'd %p[%d], addr=0x%05x, "
|
||||
"len=%d\n", __func__,
|
||||
(write) ? "TX" : "RX",
|
||||
pnext, SGCount, addr, pkt_len));
|
||||
brcmf_dbg(TRACE, "%s xfr'd %p[%d], addr=0x%05x, len=%d\n",
|
||||
write ? "TX" : "RX", pnext, SGCount, addr,
|
||||
pkt_len);
|
||||
}
|
||||
|
||||
if (!fifo)
|
||||
|
@ -462,7 +450,7 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc,
|
|||
/* Release host controller */
|
||||
sdio_release_host(sdiodev->func[func]);
|
||||
|
||||
BRCMF_TRACE(("%s: Exit\n", __func__));
|
||||
brcmf_dbg(TRACE, "Exit\n");
|
||||
return err_ret;
|
||||
}
|
||||
|
||||
|
@ -490,18 +478,18 @@ brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, uint pio_dma,
|
|||
int Status;
|
||||
struct sk_buff *mypkt = NULL;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
BRCMF_PM_RESUME_WAIT(sdioh_request_buffer_wait, sdiodev);
|
||||
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev);
|
||||
/* Case 1: we don't have a packet. */
|
||||
if (pkt == NULL) {
|
||||
BRCMF_DATA(("%s: Creating new %s Packet, len=%d\n",
|
||||
__func__, write ? "TX" : "RX", buflen_u));
|
||||
brcmf_dbg(DATA, "Creating new %s Packet, len=%d\n",
|
||||
write ? "TX" : "RX", buflen_u);
|
||||
mypkt = brcmu_pkt_buf_get_skb(buflen_u);
|
||||
if (!mypkt) {
|
||||
BRCMF_ERROR(("%s: brcmu_pkt_buf_get_skb failed: "
|
||||
"len %d\n", __func__, buflen_u));
|
||||
brcmf_dbg(ERROR, "brcmu_pkt_buf_get_skb failed: len %d\n",
|
||||
buflen_u);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -522,12 +510,12 @@ brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, uint pio_dma,
|
|||
* Case 2: We have a packet, but it is unaligned.
|
||||
* In this case, we cannot have a chain (pkt->next == NULL)
|
||||
*/
|
||||
BRCMF_DATA(("%s: Creating aligned %s Packet, len=%d\n",
|
||||
__func__, write ? "TX" : "RX", pkt->len));
|
||||
brcmf_dbg(DATA, "Creating aligned %s Packet, len=%d\n",
|
||||
write ? "TX" : "RX", pkt->len);
|
||||
mypkt = brcmu_pkt_buf_get_skb(pkt->len);
|
||||
if (!mypkt) {
|
||||
BRCMF_ERROR(("%s: brcmu_pkt_buf_get_skb failed: "
|
||||
"len %d\n", __func__, pkt->len));
|
||||
brcmf_dbg(ERROR, "brcmu_pkt_buf_get_skb failed: len %d\n",
|
||||
pkt->len);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -545,8 +533,8 @@ brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, uint pio_dma,
|
|||
brcmu_pkt_buf_free_skb(mypkt);
|
||||
} else { /* case 3: We have a packet and
|
||||
it is aligned. */
|
||||
BRCMF_DATA(("%s: Aligned %s Packet, direct DMA\n",
|
||||
__func__, write ? "Tx" : "Rx"));
|
||||
brcmf_dbg(DATA, "Aligned %s Packet, direct DMA\n",
|
||||
write ? "Tx" : "Rx");
|
||||
Status = brcmf_sdioh_request_packet(sdiodev, fix_inc, write,
|
||||
func, addr, pkt);
|
||||
}
|
||||
|
@ -567,14 +555,14 @@ brcmf_sdioh_card_regread(struct brcmf_sdio_dev *sdiodev, int func, u32 regaddr,
|
|||
&temp);
|
||||
*data = temp;
|
||||
*data &= 0xff;
|
||||
BRCMF_DATA(("%s: byte read data=0x%02x\n", __func__, *data));
|
||||
brcmf_dbg(DATA, "byte read data=0x%02x\n", *data);
|
||||
} else {
|
||||
brcmf_sdioh_request_word(sdiodev, 0, SDIOH_READ, func, regaddr,
|
||||
data, regsize);
|
||||
if (regsize == 2)
|
||||
*data &= 0xffff;
|
||||
|
||||
BRCMF_DATA(("%s: word read data=0x%08x\n", __func__, *data));
|
||||
brcmf_dbg(DATA, "word read data=0x%08x\n", *data);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
|
@ -585,16 +573,15 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
|
|||
{
|
||||
int ret = 0;
|
||||
struct brcmf_sdio_dev *sdiodev;
|
||||
BRCMF_TRACE(("sdio_probe: %s Enter\n", __func__));
|
||||
BRCMF_TRACE(("sdio_probe: func->class=%x\n", func->class));
|
||||
BRCMF_TRACE(("sdio_vendor: 0x%04x\n", func->vendor));
|
||||
BRCMF_TRACE(("sdio_device: 0x%04x\n", func->device));
|
||||
BRCMF_TRACE(("Function#: 0x%04x\n", func->num));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
brcmf_dbg(TRACE, "func->class=%x\n", func->class);
|
||||
brcmf_dbg(TRACE, "sdio_vendor: 0x%04x\n", func->vendor);
|
||||
brcmf_dbg(TRACE, "sdio_device: 0x%04x\n", func->device);
|
||||
brcmf_dbg(TRACE, "Function#: 0x%04x\n", func->num);
|
||||
|
||||
if (func->num == 1) {
|
||||
if (dev_get_drvdata(&func->card->dev)) {
|
||||
BRCMF_ERROR(("%s: card private drvdata occupied.\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "card private drvdata occupied\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
sdiodev = kzalloc(sizeof(struct brcmf_sdio_dev), GFP_KERNEL);
|
||||
|
@ -614,7 +601,7 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
|
|||
sdiodev->func[2] = func;
|
||||
|
||||
brcmf_cfg80211_sdio_func(func);
|
||||
BRCMF_TRACE(("F2 found, calling brcmf_sdio_probe...\n"));
|
||||
brcmf_dbg(TRACE, "F2 found, calling brcmf_sdio_probe...\n");
|
||||
ret = brcmf_sdio_probe(sdiodev);
|
||||
}
|
||||
|
||||
|
@ -624,15 +611,15 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
|
|||
static void brcmf_ops_sdio_remove(struct sdio_func *func)
|
||||
{
|
||||
struct brcmf_sdio_dev *sdiodev;
|
||||
BRCMF_TRACE(("%s Enter\n", __func__));
|
||||
BRCMF_INFO(("func->class=%x\n", func->class));
|
||||
BRCMF_INFO(("sdio_vendor: 0x%04x\n", func->vendor));
|
||||
BRCMF_INFO(("sdio_device: 0x%04x\n", func->device));
|
||||
BRCMF_INFO(("Function#: 0x%04x\n", func->num));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
brcmf_dbg(INFO, "func->class=%x\n", func->class);
|
||||
brcmf_dbg(INFO, "sdio_vendor: 0x%04x\n", func->vendor);
|
||||
brcmf_dbg(INFO, "sdio_device: 0x%04x\n", func->device);
|
||||
brcmf_dbg(INFO, "Function#: 0x%04x\n", func->num);
|
||||
|
||||
if (func->num == 2) {
|
||||
sdiodev = dev_get_drvdata(&func->card->dev);
|
||||
BRCMF_TRACE(("F2 found, calling brcmf_sdio_remove...\n"));
|
||||
brcmf_dbg(TRACE, "F2 found, calling brcmf_sdio_remove...\n");
|
||||
brcmf_sdio_remove(sdiodev);
|
||||
dev_set_drvdata(&func->card->dev, NULL);
|
||||
kfree(sdiodev);
|
||||
|
@ -648,7 +635,7 @@ static int brcmf_sdio_suspend(struct device *dev)
|
|||
struct sdio_func *func = dev_to_sdio_func(dev);
|
||||
int ret = 0;
|
||||
|
||||
BRCMF_TRACE(("%s\n", __func__));
|
||||
brcmf_dbg(TRACE, "\n");
|
||||
|
||||
sdiodev = dev_get_drvdata(&func->card->dev);
|
||||
|
||||
|
@ -656,13 +643,13 @@ static int brcmf_sdio_suspend(struct device *dev)
|
|||
|
||||
sdio_flags = sdio_get_host_pm_caps(sdiodev->func[1]);
|
||||
if (!(sdio_flags & MMC_PM_KEEP_POWER)) {
|
||||
BRCMF_ERROR(("Host can't keep power while suspended\n"));
|
||||
brcmf_dbg(ERROR, "Host can't keep power while suspended\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = sdio_set_host_pm_flags(sdiodev->func[1], MMC_PM_KEEP_POWER);
|
||||
if (ret) {
|
||||
BRCMF_ERROR(("Failed to set pm_flags\n"));
|
||||
brcmf_dbg(ERROR, "Failed to set pm_flags\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -689,7 +676,7 @@ static int brcmf_sdio_resume(struct device *dev)
|
|||
int brcmf_sdio_function_init(void)
|
||||
{
|
||||
int error = 0;
|
||||
BRCMF_TRACE(("brcmf_sdio_function_init: %s Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
error = sdio_register_driver(&brcmf_sdmmc_driver);
|
||||
|
||||
|
@ -701,7 +688,7 @@ int brcmf_sdio_function_init(void)
|
|||
*/
|
||||
void brcmf_sdio_function_cleanup(void)
|
||||
{
|
||||
BRCMF_TRACE(("%s Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
sdio_unregister_driver(&brcmf_sdmmc_driver);
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ static int brcmf_proto_cdc_msg(struct brcmf_pub *drvr)
|
|||
int len = le32_to_cpu(prot->msg.len) +
|
||||
sizeof(struct brcmf_proto_cdc_ioctl);
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* NOTE : cdc->msg.len holds the desired length of the buffer to be
|
||||
* returned. Only up to CDC_MAX_MSG_SIZE of this buffer area
|
||||
|
@ -123,7 +123,7 @@ static int brcmf_proto_cdc_cmplt(struct brcmf_pub *drvr, u32 id, u32 len)
|
|||
int ret;
|
||||
struct brcmf_proto *prot = drvr->prot;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
do {
|
||||
ret = brcmf_sdbrcm_bus_rxctl(drvr->bus,
|
||||
|
@ -146,8 +146,8 @@ brcmf_proto_cdc_query_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
|
|||
int ret = 0, retries = 0;
|
||||
u32 id, flags = 0;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
BRCMF_CTL(("%s: cmd %d len %d\n", __func__, cmd, len));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
brcmf_dbg(CTL, "cmd %d len %d\n", cmd, len);
|
||||
|
||||
/* Respond "bcmerror" and "bcmerrorstr" with local cache */
|
||||
if (cmd == BRCMF_C_GET_VAR && buf) {
|
||||
|
@ -174,8 +174,8 @@ brcmf_proto_cdc_query_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
|
|||
|
||||
ret = brcmf_proto_cdc_msg(drvr);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("brcmf_proto_cdc_query_ioctl: brcmf_proto_cdc_msg "
|
||||
"failed w/status %d\n", ret));
|
||||
brcmf_dbg(ERROR, "brcmf_proto_cdc_msg failed w/status %d\n",
|
||||
ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -191,9 +191,8 @@ brcmf_proto_cdc_query_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
|
|||
if ((id < prot->reqid) && (++retries < RETRIES))
|
||||
goto retry;
|
||||
if (id != prot->reqid) {
|
||||
BRCMF_ERROR(("%s: %s: unexpected request id %d (expected %d)\n",
|
||||
brcmf_ifname(drvr, ifidx), __func__, id,
|
||||
prot->reqid));
|
||||
brcmf_dbg(ERROR, "%s: unexpected request id %d (expected %d)\n",
|
||||
brcmf_ifname(drvr, ifidx), id, prot->reqid);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
@ -227,8 +226,8 @@ int brcmf_proto_cdc_set_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
|
|||
int ret = 0;
|
||||
u32 flags, id;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
BRCMF_CTL(("%s: cmd %d len %d\n", __func__, cmd, len));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
brcmf_dbg(CTL, "cmd %d len %d\n", cmd, len);
|
||||
|
||||
memset(msg, 0, sizeof(struct brcmf_proto_cdc_ioctl));
|
||||
|
||||
|
@ -253,9 +252,8 @@ int brcmf_proto_cdc_set_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
|
|||
id = (flags & CDCF_IOC_ID_MASK) >> CDCF_IOC_ID_SHIFT;
|
||||
|
||||
if (id != prot->reqid) {
|
||||
BRCMF_ERROR(("%s: %s: unexpected request id %d (expected %d)\n",
|
||||
brcmf_ifname(drvr, ifidx), __func__, id,
|
||||
prot->reqid));
|
||||
brcmf_dbg(ERROR, "%s: unexpected request id %d (expected %d)\n",
|
||||
brcmf_ifname(drvr, ifidx), id, prot->reqid);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
@ -279,25 +277,23 @@ brcmf_proto_ioctl(struct brcmf_pub *drvr, int ifidx, struct brcmf_ioctl *ioc,
|
|||
int ret = -1;
|
||||
|
||||
if (drvr->busstate == BRCMF_BUS_DOWN) {
|
||||
BRCMF_ERROR(("%s : bus is down. we have nothing to do\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "bus is down. we have nothing to do.\n");
|
||||
return ret;
|
||||
}
|
||||
brcmf_os_proto_block(drvr);
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (len > BRCMF_C_IOCTL_MAXLEN)
|
||||
goto done;
|
||||
|
||||
if (prot->pending == true) {
|
||||
BRCMF_TRACE(("CDC packet is pending!!!! cmd=0x%x (%lu) "
|
||||
"lastcmd=0x%x (%lu)\n",
|
||||
ioc->cmd, (unsigned long)ioc->cmd, prot->lastcmd,
|
||||
(unsigned long)prot->lastcmd));
|
||||
brcmf_dbg(TRACE, "CDC packet is pending!!!! cmd=0x%x (%lu) lastcmd=0x%x (%lu)\n",
|
||||
ioc->cmd, (unsigned long)ioc->cmd, prot->lastcmd,
|
||||
(unsigned long)prot->lastcmd);
|
||||
if ((ioc->cmd == BRCMF_C_SET_VAR) ||
|
||||
(ioc->cmd == BRCMF_C_GET_VAR))
|
||||
BRCMF_TRACE(("iovar cmd=%s\n", (char *)buf));
|
||||
brcmf_dbg(TRACE, "iovar cmd=%s\n", (char *)buf);
|
||||
|
||||
goto done;
|
||||
}
|
||||
|
@ -358,7 +354,7 @@ void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx,
|
|||
{
|
||||
struct brcmf_proto_bdc_header *h;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* Push BDC header used to convey priority for buses that don't */
|
||||
|
||||
|
@ -381,13 +377,13 @@ int brcmf_proto_hdrpull(struct brcmf_pub *drvr, int *ifidx,
|
|||
{
|
||||
struct brcmf_proto_bdc_header *h;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* Pop BDC header used to convey priority for buses that don't */
|
||||
|
||||
if (pktbuf->len < BDC_HEADER_LEN) {
|
||||
BRCMF_ERROR(("%s: rx data too short (%d < %d)\n", __func__,
|
||||
pktbuf->len, BDC_HEADER_LEN));
|
||||
brcmf_dbg(ERROR, "rx data too short (%d < %d)\n",
|
||||
pktbuf->len, BDC_HEADER_LEN);
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
|
@ -395,22 +391,20 @@ int brcmf_proto_hdrpull(struct brcmf_pub *drvr, int *ifidx,
|
|||
|
||||
*ifidx = BDC_GET_IF_IDX(h);
|
||||
if (*ifidx >= BRCMF_MAX_IFS) {
|
||||
BRCMF_ERROR(("%s: rx data ifnum out of range (%d)\n",
|
||||
__func__, *ifidx));
|
||||
brcmf_dbg(ERROR, "rx data ifnum out of range (%d)\n", *ifidx);
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
if (((h->flags & BDC_FLAG_VER_MASK) >> BDC_FLAG_VER_SHIFT) !=
|
||||
BDC_PROTO_VER) {
|
||||
BRCMF_ERROR(("%s: non-BDC packet received, flags 0x%x\n",
|
||||
brcmf_ifname(drvr, *ifidx), h->flags));
|
||||
brcmf_dbg(ERROR, "%s: non-BDC packet received, flags 0x%x\n",
|
||||
brcmf_ifname(drvr, *ifidx), h->flags);
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
if (h->flags & BDC_FLAG_SUM_GOOD) {
|
||||
BRCMF_INFO(("%s: BDC packet received with good rx-csum, "
|
||||
"flags 0x%x\n",
|
||||
brcmf_ifname(drvr, *ifidx), h->flags));
|
||||
brcmf_dbg(INFO, "%s: BDC packet received with good rx-csum, flags 0x%x\n",
|
||||
brcmf_ifname(drvr, *ifidx), h->flags);
|
||||
PKTSETSUMGOOD(pktbuf, true);
|
||||
}
|
||||
|
||||
|
@ -427,13 +421,13 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
|
|||
|
||||
cdc = kzalloc(sizeof(struct brcmf_proto), GFP_ATOMIC);
|
||||
if (!cdc) {
|
||||
BRCMF_ERROR(("%s: kmalloc failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "kmalloc failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* ensure that the msg buf directly follows the cdc msg struct */
|
||||
if ((unsigned long)(&cdc->msg + 1) != (unsigned long)cdc->buf) {
|
||||
BRCMF_ERROR(("struct brcmf_proto is not correctly defined\n"));
|
||||
brcmf_dbg(ERROR, "struct brcmf_proto is not correctly defined\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -472,7 +466,7 @@ int brcmf_proto_init(struct brcmf_pub *drvr)
|
|||
int ret = 0;
|
||||
char buf[128];
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
brcmf_os_proto_block(drvr);
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ brcmf_c_doiovar(struct brcmf_pub *drvr, const struct brcmu_iovar *vi,
|
|||
int bcmerror = 0;
|
||||
s32 int_val = 0;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
bcmerror = brcmu_iovar_lencheck(vi, arg, len, IOV_ISSET(actionid));
|
||||
if (bcmerror != 0)
|
||||
|
@ -267,8 +267,8 @@ bool brcmf_c_prec_enq(struct brcmf_pub *drvr, struct pktq *q,
|
|||
p = discard_oldest ? brcmu_pktq_pdeq(q, eprec) :
|
||||
brcmu_pktq_pdeq_tail(q, eprec);
|
||||
if (p == NULL)
|
||||
BRCMF_ERROR(("%s: brcmu_pktq_penq() failed, oldest %d.",
|
||||
__func__, discard_oldest));
|
||||
brcmf_dbg(ERROR, "brcmu_pktq_penq() failed, oldest %d\n",
|
||||
discard_oldest);
|
||||
|
||||
brcmu_pkt_buf_free_skb(p);
|
||||
}
|
||||
|
@ -276,7 +276,7 @@ bool brcmf_c_prec_enq(struct brcmf_pub *drvr, struct pktq *q,
|
|||
/* Enqueue */
|
||||
p = brcmu_pktq_penq(q, prec, pkt);
|
||||
if (p == NULL)
|
||||
BRCMF_ERROR(("%s: brcmu_pktq_penq() failed.", __func__));
|
||||
brcmf_dbg(ERROR, "brcmu_pktq_penq() failed\n");
|
||||
|
||||
return p != NULL;
|
||||
}
|
||||
|
@ -290,7 +290,7 @@ brcmf_c_iovar_op(struct brcmf_pub *drvr, const char *name,
|
|||
const struct brcmu_iovar *vi = NULL;
|
||||
u32 actionid;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (name == NULL || len < 0)
|
||||
return -EINVAL;
|
||||
|
@ -309,8 +309,8 @@ brcmf_c_iovar_op(struct brcmf_pub *drvr, const char *name,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
BRCMF_CTL(("%s: %s %s, len %d plen %d\n", __func__,
|
||||
name, (set ? "set" : "get"), len, plen));
|
||||
brcmf_dbg(CTL, "%s %s, len %d plen %d\n",
|
||||
name, set ? "set" : "get", len, plen);
|
||||
|
||||
/* set up 'params' pointer in case this is a set command so that
|
||||
* the convenience int and bool code can be common to set and get
|
||||
|
@ -342,7 +342,7 @@ int brcmf_c_ioctl(struct brcmf_pub *drvr, struct brcmf_c_ioctl *ioc, void *buf,
|
|||
{
|
||||
int bcmerror = 0;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (!buf)
|
||||
return -EINVAL;
|
||||
|
@ -498,9 +498,9 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
event_name = event_names[i].event_name;
|
||||
}
|
||||
|
||||
BRCMF_EVENT(("EVENT: %s, event ID = %d\n", event_name, event_type));
|
||||
BRCMF_EVENT(("flags 0x%04x, status %d, reason %d, auth_type %d"
|
||||
" MAC %s\n", flags, status, reason, auth_type, eabuf));
|
||||
brcmf_dbg(EVENT, "EVENT: %s, event ID = %d\n", event_name, event_type);
|
||||
brcmf_dbg(EVENT, "flags 0x%04x, status %d, reason %d, auth_type %d MAC %s\n",
|
||||
flags, status, reason, auth_type, eabuf);
|
||||
|
||||
if (flags & BRCMF_EVENT_MSG_LINK)
|
||||
link = true;
|
||||
|
@ -513,35 +513,34 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
case BRCMF_E_START:
|
||||
case BRCMF_E_DEAUTH:
|
||||
case BRCMF_E_DISASSOC:
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s\n", event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s\n", event_name, eabuf);
|
||||
break;
|
||||
|
||||
case BRCMF_E_ASSOC_IND:
|
||||
case BRCMF_E_REASSOC_IND:
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s\n", event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s\n", event_name, eabuf);
|
||||
break;
|
||||
|
||||
case BRCMF_E_ASSOC:
|
||||
case BRCMF_E_REASSOC:
|
||||
if (status == BRCMF_E_STATUS_SUCCESS)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, SUCCESS\n",
|
||||
event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, SUCCESS\n",
|
||||
event_name, eabuf);
|
||||
else if (status == BRCMF_E_STATUS_TIMEOUT)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, TIMEOUT\n",
|
||||
event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, TIMEOUT\n",
|
||||
event_name, eabuf);
|
||||
else if (status == BRCMF_E_STATUS_FAIL)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, FAILURE,"
|
||||
" reason %d\n", event_name, eabuf,
|
||||
(int)reason));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, FAILURE, reason %d\n",
|
||||
event_name, eabuf, (int)reason);
|
||||
else
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, unexpected status "
|
||||
"%d\n", event_name, eabuf, (int)status));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, unexpected status %d\n",
|
||||
event_name, eabuf, (int)status);
|
||||
break;
|
||||
|
||||
case BRCMF_E_DEAUTH_IND:
|
||||
case BRCMF_E_DISASSOC_IND:
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, reason %d\n", event_name,
|
||||
eabuf, (int)reason));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, reason %d\n",
|
||||
event_name, eabuf, (int)reason);
|
||||
break;
|
||||
|
||||
case BRCMF_E_AUTH:
|
||||
|
@ -555,18 +554,17 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
auth_str = err_msg;
|
||||
}
|
||||
if (event_type == BRCMF_E_AUTH_IND)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s\n", event_name,
|
||||
eabuf, auth_str));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s\n",
|
||||
event_name, eabuf, auth_str);
|
||||
else if (status == BRCMF_E_STATUS_SUCCESS)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, SUCCESS\n",
|
||||
event_name, eabuf, auth_str));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, SUCCESS\n",
|
||||
event_name, eabuf, auth_str);
|
||||
else if (status == BRCMF_E_STATUS_TIMEOUT)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, TIMEOUT\n",
|
||||
event_name, eabuf, auth_str));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, TIMEOUT\n",
|
||||
event_name, eabuf, auth_str);
|
||||
else if (status == BRCMF_E_STATUS_FAIL) {
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, FAILURE, "
|
||||
"reason %d\n",
|
||||
event_name, eabuf, auth_str, (int)reason));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, FAILURE, reason %d\n",
|
||||
event_name, eabuf, auth_str, (int)reason);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -575,63 +573,63 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
case BRCMF_E_ROAM:
|
||||
case BRCMF_E_SET_SSID:
|
||||
if (status == BRCMF_E_STATUS_SUCCESS)
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s\n", event_name,
|
||||
eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s\n",
|
||||
event_name, eabuf);
|
||||
else if (status == BRCMF_E_STATUS_FAIL)
|
||||
BRCMF_EVENT(("MACEVENT: %s, failed\n", event_name));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, failed\n", event_name);
|
||||
else if (status == BRCMF_E_STATUS_NO_NETWORKS)
|
||||
BRCMF_EVENT(("MACEVENT: %s, no networks found\n",
|
||||
event_name));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, no networks found\n",
|
||||
event_name);
|
||||
else
|
||||
BRCMF_EVENT(("MACEVENT: %s, unexpected status %d\n",
|
||||
event_name, (int)status));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, unexpected status %d\n",
|
||||
event_name, (int)status);
|
||||
break;
|
||||
|
||||
case BRCMF_E_BEACON_RX:
|
||||
if (status == BRCMF_E_STATUS_SUCCESS)
|
||||
BRCMF_EVENT(("MACEVENT: %s, SUCCESS\n", event_name));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, SUCCESS\n", event_name);
|
||||
else if (status == BRCMF_E_STATUS_FAIL)
|
||||
BRCMF_EVENT(("MACEVENT: %s, FAIL\n", event_name));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, FAIL\n", event_name);
|
||||
else
|
||||
BRCMF_EVENT(("MACEVENT: %s, status %d\n", event_name,
|
||||
status));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, status %d\n",
|
||||
event_name, status);
|
||||
break;
|
||||
|
||||
case BRCMF_E_LINK:
|
||||
BRCMF_EVENT(("MACEVENT: %s %s\n", event_name,
|
||||
link ? "UP" : "DOWN"));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s %s\n",
|
||||
event_name, link ? "UP" : "DOWN");
|
||||
break;
|
||||
|
||||
case BRCMF_E_MIC_ERROR:
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s, Group %d, Flush %d\n",
|
||||
event_name, eabuf, group, flush_txq));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, Group %d, Flush %d\n",
|
||||
event_name, eabuf, group, flush_txq);
|
||||
break;
|
||||
|
||||
case BRCMF_E_ICV_ERROR:
|
||||
case BRCMF_E_UNICAST_DECODE_ERROR:
|
||||
case BRCMF_E_MULTICAST_DECODE_ERROR:
|
||||
BRCMF_EVENT(("MACEVENT: %s, MAC %s\n", event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s\n", event_name, eabuf);
|
||||
break;
|
||||
|
||||
case BRCMF_E_TXFAIL:
|
||||
BRCMF_EVENT(("MACEVENT: %s, RA %s\n", event_name, eabuf));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, RA %s\n", event_name, eabuf);
|
||||
break;
|
||||
|
||||
case BRCMF_E_SCAN_COMPLETE:
|
||||
case BRCMF_E_PMKID_CACHE:
|
||||
BRCMF_EVENT(("MACEVENT: %s\n", event_name));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s\n", event_name);
|
||||
break;
|
||||
|
||||
case BRCMF_E_PFN_NET_FOUND:
|
||||
case BRCMF_E_PFN_NET_LOST:
|
||||
case BRCMF_E_PFN_SCAN_COMPLETE:
|
||||
BRCMF_EVENT(("PNOEVENT: %s\n", event_name));
|
||||
brcmf_dbg(EVENT, "PNOEVENT: %s\n", event_name);
|
||||
break;
|
||||
|
||||
case BRCMF_E_PSK_SUP:
|
||||
case BRCMF_E_PRUNE:
|
||||
BRCMF_EVENT(("MACEVENT: %s, status %d, reason %d\n",
|
||||
event_name, (int)status, (int)reason));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s, status %d, reason %d\n",
|
||||
event_name, (int)status, (int)reason);
|
||||
break;
|
||||
|
||||
case BRCMF_E_TRACE:
|
||||
|
@ -645,11 +643,9 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
memcpy(&hdr, buf, sizeof(struct msgtrace_hdr));
|
||||
|
||||
if (hdr.version != MSGTRACE_VERSION) {
|
||||
BRCMF_ERROR(
|
||||
("\nMACEVENT: %s [unsupported version --> "
|
||||
"brcmf version:%d dongle version:%d]\n",
|
||||
event_name, MSGTRACE_VERSION, hdr.version)
|
||||
);
|
||||
brcmf_dbg(ERROR, "MACEVENT: %s [unsupported version --> brcmf version:%d dongle version:%d]\n",
|
||||
event_name,
|
||||
MSGTRACE_VERSION, hdr.version);
|
||||
/* Reset datalen to avoid display below */
|
||||
datalen = 0;
|
||||
break;
|
||||
|
@ -661,18 +657,14 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
|
||||
if (be32_to_cpu(hdr.discarded_bytes)
|
||||
|| be32_to_cpu(hdr.discarded_printf))
|
||||
BRCMF_ERROR(("\nWLC_E_TRACE: [Discarded traces "
|
||||
"in dongle -->discarded_bytes %d "
|
||||
"discarded_printf %d]\n",
|
||||
be32_to_cpu(hdr.discarded_bytes),
|
||||
be32_to_cpu(hdr.discarded_printf)))
|
||||
;
|
||||
brcmf_dbg(ERROR, "WLC_E_TRACE: [Discarded traces in dongle --> discarded_bytes %d discarded_printf %d]\n",
|
||||
be32_to_cpu(hdr.discarded_bytes),
|
||||
be32_to_cpu(hdr.discarded_printf));
|
||||
|
||||
nblost = be32_to_cpu(hdr.seqnum) - seqnum_prev - 1;
|
||||
if (nblost > 0)
|
||||
BRCMF_ERROR(("\nWLC_E_TRACE: [Event lost --> "
|
||||
"seqnum %d nblost %d\n",
|
||||
be32_to_cpu(hdr.seqnum), nblost));
|
||||
brcmf_dbg(ERROR, "WLC_E_TRACE: [Event lost --> seqnum %d nblost %d\n",
|
||||
be32_to_cpu(hdr.seqnum), nblost);
|
||||
seqnum_prev = be32_to_cpu(hdr.seqnum);
|
||||
|
||||
/* Display the trace buffer. Advance from \n to \n to
|
||||
|
@ -693,24 +685,24 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||
break;
|
||||
|
||||
case BRCMF_E_RSSI:
|
||||
BRCMF_EVENT(("MACEVENT: %s %d\n", event_name,
|
||||
be32_to_cpu(*((int *)event_data))));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s %d\n",
|
||||
event_name, be32_to_cpu(*((int *)event_data)));
|
||||
break;
|
||||
|
||||
default:
|
||||
BRCMF_EVENT(("MACEVENT: %s %d, MAC %s, status %d, reason %d, "
|
||||
"auth %d\n", event_name, event_type, eabuf,
|
||||
(int)status, (int)reason, (int)auth_type));
|
||||
brcmf_dbg(EVENT, "MACEVENT: %s %d, MAC %s, status %d, reason %d, auth %d\n",
|
||||
event_name, event_type, eabuf,
|
||||
(int)status, (int)reason, (int)auth_type);
|
||||
break;
|
||||
}
|
||||
|
||||
/* show any appended data */
|
||||
if (datalen) {
|
||||
buf = (unsigned char *) event_data;
|
||||
BRCMF_EVENT((" data (%d) : ", datalen));
|
||||
brcmf_dbg(EVENT, " data (%d) : ", datalen);
|
||||
for (i = 0; i < datalen; i++)
|
||||
BRCMF_EVENT((" 0x%02x ", *buf++));
|
||||
BRCMF_EVENT(("\n"));
|
||||
brcmf_dbg(EVENT, " 0x%02x ", *buf++);
|
||||
brcmf_dbg(EVENT, "\n");
|
||||
}
|
||||
}
|
||||
#endif /* SHOW_EVENTS */
|
||||
|
@ -727,14 +719,14 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
|
|||
int evlen;
|
||||
|
||||
if (memcmp(BRCM_OUI, &pvt_data->hdr.oui[0], DOT11_OUI_LEN)) {
|
||||
BRCMF_ERROR(("%s: mismatched OUI, bailing\n", __func__));
|
||||
brcmf_dbg(ERROR, "mismatched OUI, bailing\n");
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
/* BRCM event pkt may be unaligned - use xxx_ua to load user_subtype. */
|
||||
if (get_unaligned_be16(&pvt_data->hdr.usr_subtype) !=
|
||||
BCMILCP_BCM_SUBTYPE_EVENT) {
|
||||
BRCMF_ERROR(("%s: mismatched subtype, bailing\n", __func__));
|
||||
brcmf_dbg(ERROR, "mismatched subtype, bailing\n");
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
|
@ -755,7 +747,7 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
|
|||
{
|
||||
struct brcmf_if_event *ifevent =
|
||||
(struct brcmf_if_event *) event_data;
|
||||
BRCMF_TRACE(("%s: if event\n", __func__));
|
||||
brcmf_dbg(TRACE, "if event\n");
|
||||
|
||||
if (ifevent->ifidx > 0 &&
|
||||
ifevent->ifidx < BRCMF_MAX_IFS) {
|
||||
|
@ -768,9 +760,8 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
|
|||
else
|
||||
brcmf_del_if(drvr_priv, ifevent->ifidx);
|
||||
} else {
|
||||
BRCMF_ERROR(("%s: Invalid ifidx %d for %s\n",
|
||||
__func__, ifevent->ifidx,
|
||||
event->ifname));
|
||||
brcmf_dbg(ERROR, "Invalid ifidx %d for %s\n",
|
||||
ifevent->ifidx, event->ifname);
|
||||
}
|
||||
}
|
||||
/* send up the if event: btamp user needs it */
|
||||
|
@ -787,16 +778,16 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
|
|||
/* Fall through: this should get _everything_ */
|
||||
|
||||
*ifidx = brcmf_ifname2idx(drvr_priv, event->ifname);
|
||||
BRCMF_TRACE(("%s: MAC event %d, flags %x, status %x\n",
|
||||
__func__, type, flags, status));
|
||||
brcmf_dbg(TRACE, "MAC event %d, flags %x, status %x\n",
|
||||
type, flags, status);
|
||||
|
||||
/* put it back to BRCMF_E_NDIS_LINK */
|
||||
if (type == BRCMF_E_NDIS_LINK) {
|
||||
u32 temp;
|
||||
|
||||
temp = get_unaligned_be32(&event->event_type);
|
||||
BRCMF_TRACE(("Converted to WLC_E_LINK type %d\n",
|
||||
temp));
|
||||
brcmf_dbg(TRACE, "Converted to WLC_E_LINK type %d\n",
|
||||
temp);
|
||||
|
||||
temp = be32_to_cpu(BRCMF_E_NDIS_LINK);
|
||||
memcpy((void *)(&pvt_data->msg.event_type), &temp,
|
||||
|
@ -817,12 +808,12 @@ static int brcmf_c_pattern_atoh(char *src, char *dst)
|
|||
{
|
||||
int i;
|
||||
if (strncmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) {
|
||||
BRCMF_ERROR(("Mask invalid format. Needs to start with 0x\n"));
|
||||
brcmf_dbg(ERROR, "Mask invalid format. Needs to start with 0x\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
src = src + 2; /* Skip past 0x */
|
||||
if (strlen(src) % 2 != 0) {
|
||||
BRCMF_ERROR(("Mask invalid format. Length must be even.\n"));
|
||||
brcmf_dbg(ERROR, "Mask invalid format. Length must be even.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
for (i = 0; *src != '\0'; i++) {
|
||||
|
@ -856,7 +847,7 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
|
|||
|
||||
arg_save = kmalloc(strlen(arg) + 1, GFP_ATOMIC);
|
||||
if (!arg_save) {
|
||||
BRCMF_ERROR(("%s: kmalloc failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "kmalloc failed\n");
|
||||
goto fail;
|
||||
}
|
||||
arg_org = arg_save;
|
||||
|
@ -866,7 +857,7 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
|
|||
|
||||
i = 0;
|
||||
if (NULL == argv[i]) {
|
||||
BRCMF_ERROR(("No args provided\n"));
|
||||
brcmf_dbg(ERROR, "No args provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -893,11 +884,10 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
|
|||
rc = brcmf_proto_cdc_set_ioctl(drvr, 0, BRCMF_C_SET_VAR, buf, buf_len);
|
||||
rc = rc >= 0 ? 0 : rc;
|
||||
if (rc)
|
||||
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n",
|
||||
__func__, arg, rc));
|
||||
brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
|
||||
arg, rc);
|
||||
else
|
||||
BRCMF_TRACE(("%s: successfully added pktfilter %s\n",
|
||||
__func__, arg));
|
||||
brcmf_dbg(TRACE, "successfully added pktfilter %s\n", arg);
|
||||
|
||||
/* Contorl the master mode */
|
||||
brcmu_mkiovar("pkt_filter_mode", (char *)&master_mode, 4, buf,
|
||||
|
@ -906,8 +896,8 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
|
|||
sizeof(buf));
|
||||
rc = rc >= 0 ? 0 : rc;
|
||||
if (rc)
|
||||
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n",
|
||||
__func__, arg, rc));
|
||||
brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
|
||||
arg, rc);
|
||||
|
||||
fail:
|
||||
kfree(arg_org);
|
||||
|
@ -930,7 +920,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
|
||||
arg_save = kstrdup(arg, GFP_ATOMIC);
|
||||
if (!arg_save) {
|
||||
BRCMF_ERROR(("%s: kmalloc failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "kmalloc failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -938,7 +928,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
|
||||
buf = kmalloc(PKTFILTER_BUF_SIZE, GFP_ATOMIC);
|
||||
if (!buf) {
|
||||
BRCMF_ERROR(("%s: kmalloc failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "kmalloc failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -948,7 +938,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
|
||||
i = 0;
|
||||
if (NULL == argv[i]) {
|
||||
BRCMF_ERROR(("No args provided\n"));
|
||||
brcmf_dbg(ERROR, "No args provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -965,7 +955,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
pkt_filter.id = (u32)res;
|
||||
|
||||
if (NULL == argv[++i]) {
|
||||
BRCMF_ERROR(("Polarity not provided\n"));
|
||||
brcmf_dbg(ERROR, "Polarity not provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -975,7 +965,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
pkt_filter.negate_match = (u32)res;
|
||||
|
||||
if (NULL == argv[++i]) {
|
||||
BRCMF_ERROR(("Filter type not provided\n"));
|
||||
brcmf_dbg(ERROR, "Filter type not provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -985,7 +975,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
pkt_filter.type = (u32)res;
|
||||
|
||||
if (NULL == argv[++i]) {
|
||||
BRCMF_ERROR(("Offset not provided\n"));
|
||||
brcmf_dbg(ERROR, "Offset not provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -995,7 +985,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
pkt_filter.u.pattern.offset = (u32)res;
|
||||
|
||||
if (NULL == argv[++i]) {
|
||||
BRCMF_ERROR(("Bitmask not provided\n"));
|
||||
brcmf_dbg(ERROR, "Bitmask not provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1005,7 +995,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
(argv[i], (char *)pkt_filterp->u.pattern.mask_and_pattern);
|
||||
|
||||
if (NULL == argv[++i]) {
|
||||
BRCMF_ERROR(("Pattern not provided\n"));
|
||||
brcmf_dbg(ERROR, "Pattern not provided\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1016,7 +1006,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
mask_and_pattern[mask_size]);
|
||||
|
||||
if (mask_size != pattern_size) {
|
||||
BRCMF_ERROR(("Mask and pattern not the same size\n"));
|
||||
brcmf_dbg(ERROR, "Mask and pattern not the same size\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1037,11 +1027,10 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
|
|||
rc = rc >= 0 ? 0 : rc;
|
||||
|
||||
if (rc)
|
||||
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n",
|
||||
__func__, arg, rc));
|
||||
brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
|
||||
arg, rc);
|
||||
else
|
||||
BRCMF_TRACE(("%s: successfully added pktfilter %s\n",
|
||||
__func__, arg));
|
||||
brcmf_dbg(TRACE, "successfully added pktfilter %s\n", arg);
|
||||
|
||||
fail:
|
||||
kfree(arg_org);
|
||||
|
@ -1059,11 +1048,11 @@ void brcmf_c_arp_offload_set(struct brcmf_pub *drvr, int arp_mode)
|
|||
iovbuf, sizeof(iovbuf));
|
||||
retcode = retcode >= 0 ? 0 : retcode;
|
||||
if (retcode)
|
||||
BRCMF_TRACE(("%s: failed to set ARP offload mode to 0x%x, "
|
||||
"retcode = %d\n", __func__, arp_mode, retcode));
|
||||
brcmf_dbg(TRACE, "failed to set ARP offload mode to 0x%x, retcode = %d\n",
|
||||
arp_mode, retcode);
|
||||
else
|
||||
BRCMF_TRACE(("%s: successfully set ARP offload mode to 0x%x\n",
|
||||
__func__, arp_mode));
|
||||
brcmf_dbg(TRACE, "successfully set ARP offload mode to 0x%x\n",
|
||||
arp_mode);
|
||||
}
|
||||
|
||||
void brcmf_c_arp_offload_enable(struct brcmf_pub *drvr, int arp_enable)
|
||||
|
@ -1076,11 +1065,11 @@ void brcmf_c_arp_offload_enable(struct brcmf_pub *drvr, int arp_enable)
|
|||
iovbuf, sizeof(iovbuf));
|
||||
retcode = retcode >= 0 ? 0 : retcode;
|
||||
if (retcode)
|
||||
BRCMF_TRACE(("%s: failed to enabe ARP offload to %d, "
|
||||
"retcode = %d\n", __func__, arp_enable, retcode));
|
||||
brcmf_dbg(TRACE, "failed to enable ARP offload to %d, retcode = %d\n",
|
||||
arp_enable, retcode);
|
||||
else
|
||||
BRCMF_TRACE(("%s: successfully enabed ARP offload to %d\n",
|
||||
__func__, arp_enable));
|
||||
brcmf_dbg(TRACE, "successfully enabled ARP offload to %d\n",
|
||||
arp_enable);
|
||||
}
|
||||
|
||||
int brcmf_c_preinit_ioctls(struct brcmf_pub *drvr)
|
||||
|
@ -1103,8 +1092,7 @@ int brcmf_c_preinit_ioctls(struct brcmf_pub *drvr)
|
|||
if (brcmf_proto_cdc_set_ioctl(drvr, 0, BRCMF_C_SET_COUNTRY,
|
||||
drvr->country_code,
|
||||
sizeof(drvr->country_code)) < 0)
|
||||
BRCMF_ERROR(("%s: country code setting failed\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "country code setting failed\n");
|
||||
}
|
||||
|
||||
/* query for 'ver' to get version info from firmware */
|
||||
|
@ -1114,7 +1102,7 @@ int brcmf_c_preinit_ioctls(struct brcmf_pub *drvr)
|
|||
brcmf_proto_cdc_query_ioctl(drvr, 0, BRCMF_C_GET_VAR, buf, sizeof(buf));
|
||||
strsep(&ptr, "\n");
|
||||
/* Print fw version info */
|
||||
BRCMF_ERROR(("Firmware version = %s\n", buf));
|
||||
brcmf_dbg(ERROR, "Firmware version = %s\n", buf);
|
||||
|
||||
/* Match Host and Dongle rx alignment */
|
||||
brcmu_mkiovar("bus:txglomalign", (char *)&dongle_align, 4, iovbuf,
|
||||
|
|
|
@ -19,25 +19,21 @@
|
|||
|
||||
#if defined(BCMDBG)
|
||||
|
||||
#define BRCMF_ERROR(args) \
|
||||
do {if ((brcmf_msg_level & BRCMF_ERROR_VAL) && (net_ratelimit())) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_TRACE(args) do {if (brcmf_msg_level & BRCMF_TRACE_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_INFO(args) do {if (brcmf_msg_level & BRCMF_INFO_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_DATA(args) do {if (brcmf_msg_level & BRCMF_DATA_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_CTL(args) do {if (brcmf_msg_level & BRCMF_CTL_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_TIMER(args) do {if (brcmf_msg_level & BRCMF_TIMER_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_INTR(args) do {if (brcmf_msg_level & BRCMF_INTR_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_GLOM(args) do {if (brcmf_msg_level & BRCMF_GLOM_VAL) \
|
||||
printk args; } while (0)
|
||||
#define BRCMF_EVENT(args) do {if (brcmf_msg_level & BRCMF_EVENT_VAL) \
|
||||
printk args; } while (0)
|
||||
#define brcmf_dbg(level, fmt, ...) \
|
||||
do { \
|
||||
if (BRCMF_ERROR_VAL == BRCMF_##level##_VAL) { \
|
||||
if (brcmf_msg_level & BRCMF_##level##_VAL) { \
|
||||
if (net_ratelimit()) \
|
||||
printk(KERN_DEBUG "%s: " fmt, \
|
||||
__func__, ##__VA_ARGS__); \
|
||||
} \
|
||||
} else { \
|
||||
if (brcmf_msg_level & BRCMF_##level##_VAL) { \
|
||||
printk(KERN_DEBUG "%s: " fmt, \
|
||||
__func__, ##__VA_ARGS__); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define BRCMF_DATA_ON() (brcmf_msg_level & BRCMF_DATA_VAL)
|
||||
#define BRCMF_CTL_ON() (brcmf_msg_level & BRCMF_CTL_VAL)
|
||||
|
@ -47,20 +43,12 @@
|
|||
|
||||
#else /* (defined BCMDBG) || (defined BCMDBG) */
|
||||
|
||||
#define BRCMF_ERROR(args) do {if (net_ratelimit()) printk args; } while (0)
|
||||
#define BRCMF_TRACE(args)
|
||||
#define BRCMF_INFO(args)
|
||||
#define BRCMF_DATA(args)
|
||||
#define BRCMF_CTL(args)
|
||||
#define BRCMF_TIMER(args)
|
||||
#define BRCMF_INTR(args)
|
||||
#define BRCMF_GLOM(args)
|
||||
#define BRCMF_EVENT(args)
|
||||
#define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
|
||||
|
||||
#define BRCMF_DATA_ON() 0
|
||||
#define BRCMF_CTL_ON() 0
|
||||
#define BRCMF_HDRS_ON() 0
|
||||
#define BRCMF_BYTES_ON() 0
|
||||
#define BRCMF_BYTES_ON() 0
|
||||
#define BRCMF_GLOM_ON() 0
|
||||
|
||||
#endif /* defined(BCMDBG) */
|
||||
|
|
|
@ -163,7 +163,7 @@ int brcmf_ifname2idx(struct brcmf_info *drvr_priv, char *name)
|
|||
&& !strncmp(drvr_priv->iflist[i]->name, name, IFNAMSIZ))
|
||||
break;
|
||||
|
||||
BRCMF_TRACE(("%s: return idx %d for \"%s\"\n", __func__, i, name));
|
||||
brcmf_dbg(TRACE, "return idx %d for \"%s\"\n", i, name);
|
||||
|
||||
return i; /* default - the primary interface */
|
||||
}
|
||||
|
@ -173,12 +173,12 @@ char *brcmf_ifname(struct brcmf_pub *drvr, int ifidx)
|
|||
struct brcmf_info *drvr_priv = drvr->info;
|
||||
|
||||
if (ifidx < 0 || ifidx >= BRCMF_MAX_IFS) {
|
||||
BRCMF_ERROR(("%s: ifidx %d out of range\n", __func__, ifidx));
|
||||
brcmf_dbg(ERROR, "ifidx %d out of range\n", ifidx);
|
||||
return "<if_bad>";
|
||||
}
|
||||
|
||||
if (drvr_priv->iflist[ifidx] == NULL) {
|
||||
BRCMF_ERROR(("%s: null i/f %d\n", __func__, ifidx));
|
||||
brcmf_dbg(ERROR, "null i/f %d\n", ifidx);
|
||||
return "<if_null>";
|
||||
}
|
||||
|
||||
|
@ -210,8 +210,8 @@ static void _brcmf_set_multicast_list(struct brcmf_info *drvr_priv, int ifidx)
|
|||
buflen = sizeof("mcast_list") + sizeof(cnt) + (cnt * ETH_ALEN);
|
||||
bufp = buf = kmalloc(buflen, GFP_ATOMIC);
|
||||
if (!bufp) {
|
||||
BRCMF_ERROR(("%s: out of memory for mcast_list, cnt %d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), cnt));
|
||||
brcmf_dbg(ERROR, "%s: out of memory for mcast_list, cnt %d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), cnt);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -238,8 +238,8 @@ static void _brcmf_set_multicast_list(struct brcmf_info *drvr_priv, int ifidx)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("%s: set mcast_list failed, cnt %d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), cnt));
|
||||
brcmf_dbg(ERROR, "%s: set mcast_list failed, cnt %d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), cnt);
|
||||
allmulti = cnt ? true : allmulti;
|
||||
}
|
||||
|
||||
|
@ -253,18 +253,17 @@ static void _brcmf_set_multicast_list(struct brcmf_info *drvr_priv, int ifidx)
|
|||
buflen = sizeof("allmulti") + sizeof(allmulti);
|
||||
buf = kmalloc(buflen, GFP_ATOMIC);
|
||||
if (!buf) {
|
||||
BRCMF_ERROR(("%s: out of memory for allmulti\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(ERROR, "%s: out of memory for allmulti\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
return;
|
||||
}
|
||||
allmulti = cpu_to_le32(allmulti);
|
||||
|
||||
if (!brcmu_mkiovar
|
||||
("allmulti", (void *)&allmulti, sizeof(allmulti), buf, buflen)) {
|
||||
BRCMF_ERROR(("%s: mkiovar failed for allmulti, datalen %d "
|
||||
"buflen %u\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
(int)sizeof(allmulti), buflen));
|
||||
brcmf_dbg(ERROR, "%s: mkiovar failed for allmulti, datalen %d buflen %u\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
(int)sizeof(allmulti), buflen);
|
||||
kfree(buf);
|
||||
return;
|
||||
}
|
||||
|
@ -277,9 +276,9 @@ static void _brcmf_set_multicast_list(struct brcmf_info *drvr_priv, int ifidx)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("%s: set allmulti %d failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
le32_to_cpu(allmulti)));
|
||||
brcmf_dbg(ERROR, "%s: set allmulti %d failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
le32_to_cpu(allmulti));
|
||||
}
|
||||
|
||||
kfree(buf);
|
||||
|
@ -298,9 +297,9 @@ static void _brcmf_set_multicast_list(struct brcmf_info *drvr_priv, int ifidx)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("%s: set promisc %d failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
le32_to_cpu(allmulti)));
|
||||
brcmf_dbg(ERROR, "%s: set promisc %d failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx),
|
||||
le32_to_cpu(allmulti));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -311,11 +310,10 @@ _brcmf_set_mac_address(struct brcmf_info *drvr_priv, int ifidx, u8 *addr)
|
|||
struct brcmf_ioctl ioc;
|
||||
int ret;
|
||||
|
||||
BRCMF_TRACE(("%s enter\n", __func__));
|
||||
if (!brcmu_mkiovar
|
||||
("cur_etheraddr", (char *)addr, ETH_ALEN, buf, 32)) {
|
||||
BRCMF_ERROR(("%s: mkiovar failed for cur_etheraddr\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(TRACE, "enter\n");
|
||||
if (!brcmu_mkiovar("cur_etheraddr", (char *)addr, ETH_ALEN, buf, 32)) {
|
||||
brcmf_dbg(ERROR, "%s: mkiovar failed for cur_etheraddr\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
return -1;
|
||||
}
|
||||
memset(&ioc, 0, sizeof(ioc));
|
||||
|
@ -326,8 +324,8 @@ _brcmf_set_mac_address(struct brcmf_info *drvr_priv, int ifidx, u8 *addr)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0)
|
||||
BRCMF_ERROR(("%s: set cur_etheraddr failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(ERROR, "%s: set cur_etheraddr failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
else
|
||||
memcpy(drvr_priv->iflist[ifidx]->net->dev_addr, addr, ETH_ALEN);
|
||||
|
||||
|
@ -346,7 +344,7 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
|
||||
drvr_priv = ifp->info;
|
||||
|
||||
BRCMF_TRACE(("%s: idx %d, state %d\n", __func__, ifp->idx, ifp->state));
|
||||
brcmf_dbg(TRACE, "idx %d, state %d\n", ifp->idx, ifp->state);
|
||||
|
||||
switch (ifp->state) {
|
||||
case BRCMF_E_IF_ADD:
|
||||
|
@ -355,9 +353,8 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
* in case we missed the BRCMF_E_IF_DEL event.
|
||||
*/
|
||||
if (ifp->net != NULL) {
|
||||
BRCMF_ERROR(("%s: ERROR: netdev:%s already exists, "
|
||||
"try free & unregister\n",
|
||||
__func__, ifp->net->name));
|
||||
brcmf_dbg(ERROR, "ERROR: netdev:%s already exists, try free & unregister\n",
|
||||
ifp->net->name);
|
||||
netif_stop_queue(ifp->net);
|
||||
unregister_netdev(ifp->net);
|
||||
free_netdev(ifp->net);
|
||||
|
@ -365,7 +362,7 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
/* Allocate etherdev, including space for private structure */
|
||||
ifp->net = alloc_etherdev(sizeof(drvr_priv));
|
||||
if (!ifp->net) {
|
||||
BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__));
|
||||
brcmf_dbg(ERROR, "OOM - alloc_etherdev\n");
|
||||
ret = -ENOMEM;
|
||||
}
|
||||
if (ret == 0) {
|
||||
|
@ -374,9 +371,8 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
sizeof(drvr_priv));
|
||||
err = brcmf_net_attach(&drvr_priv->pub, ifp->idx);
|
||||
if (err != 0) {
|
||||
BRCMF_ERROR(("%s: brcmf_net_attach failed, "
|
||||
"err %d\n",
|
||||
__func__, err));
|
||||
brcmf_dbg(ERROR, "brcmf_net_attach failed, err %d\n",
|
||||
err);
|
||||
ret = -EOPNOTSUPP;
|
||||
} else {
|
||||
#ifdef SOFTAP
|
||||
|
@ -391,17 +387,15 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
wl0.1 is ready */
|
||||
up(&ap_eth_sema);
|
||||
#endif
|
||||
BRCMF_TRACE(("\n ==== pid:%x, net_device for "
|
||||
"if:%s created ===\n\n",
|
||||
current->pid, ifp->net->name));
|
||||
brcmf_dbg(TRACE, " ==== pid:%x, net_device for if:%s created ===\n",
|
||||
current->pid, ifp->net->name);
|
||||
ifp->state = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BRCMF_E_IF_DEL:
|
||||
if (ifp->net != NULL) {
|
||||
BRCMF_TRACE(("\n%s: got 'WLC_E_IF_DEL' state\n",
|
||||
__func__));
|
||||
brcmf_dbg(TRACE, "got 'WLC_E_IF_DEL' state\n");
|
||||
netif_stop_queue(ifp->net);
|
||||
unregister_netdev(ifp->net);
|
||||
ret = BRCMF_DEL_IF; /* Make sure the free_netdev()
|
||||
|
@ -409,7 +403,7 @@ static void brcmf_op_if(struct brcmf_if *ifp)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
BRCMF_ERROR(("%s: bad op %d\n", __func__, ifp->state));
|
||||
brcmf_dbg(ERROR, "bad op %d\n", ifp->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -458,26 +452,21 @@ static int _brcmf_sysioc_thread(void *data)
|
|||
brcmf_op_if(ifentry);
|
||||
#ifdef SOFTAP
|
||||
if (drvr_priv->iflist[i] == NULL) {
|
||||
BRCMF_TRACE(("\n\n %s: interface %d "
|
||||
"removed!\n", __func__,
|
||||
i));
|
||||
brcmf_dbg(TRACE, "interface %d removed!\n",
|
||||
i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (in_ap && drvr_priv->set_macaddress) {
|
||||
BRCMF_TRACE(("attempt to set MAC for"
|
||||
" %s in AP Mode,"
|
||||
" blocked.\n",
|
||||
ifentry->net->name));
|
||||
brcmf_dbg(TRACE, "attempt to set MAC for %s in AP Mode, blocked.\n",
|
||||
ifentry->net->name);
|
||||
drvr_priv->set_macaddress = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (in_ap && drvr_priv->set_multicast) {
|
||||
BRCMF_TRACE(("attempt to set MULTICAST "
|
||||
"list for %s in AP Mode, "
|
||||
"blocked.\n",
|
||||
ifentry->net->name));
|
||||
brcmf_dbg(TRACE, "attempt to set MULTICAST list for %s in AP Mode, blocked.\n",
|
||||
ifentry->net->name);
|
||||
drvr_priv->set_multicast = false;
|
||||
continue;
|
||||
}
|
||||
|
@ -561,20 +550,19 @@ static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *net)
|
|||
struct brcmf_info *drvr_priv = *(struct brcmf_info **) netdev_priv(net);
|
||||
int ifidx;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* Reject if down */
|
||||
if (!drvr_priv->pub.up || (drvr_priv->pub.busstate == BRCMF_BUS_DOWN)) {
|
||||
BRCMF_ERROR(("%s: xmit rejected pub.up=%d busstate=%d\n",
|
||||
__func__, drvr_priv->pub.up,
|
||||
drvr_priv->pub.busstate));
|
||||
brcmf_dbg(ERROR, "xmit rejected pub.up=%d busstate=%d\n",
|
||||
drvr_priv->pub.up, drvr_priv->pub.busstate);
|
||||
netif_stop_queue(net);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ifidx = brcmf_net2idx(drvr_priv, net);
|
||||
if (ifidx == BRCMF_BAD_IF) {
|
||||
BRCMF_ERROR(("%s: bad ifidx %d\n", __func__, ifidx));
|
||||
brcmf_dbg(ERROR, "bad ifidx %d\n", ifidx);
|
||||
netif_stop_queue(net);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
@ -583,15 +571,15 @@ static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *net)
|
|||
if (skb_headroom(skb) < drvr_priv->pub.hdrlen) {
|
||||
struct sk_buff *skb2;
|
||||
|
||||
BRCMF_INFO(("%s: insufficient headroom\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(INFO, "%s: insufficient headroom\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
drvr_priv->pub.tx_realloc++;
|
||||
skb2 = skb_realloc_headroom(skb, drvr_priv->pub.hdrlen);
|
||||
dev_kfree_skb(skb);
|
||||
skb = skb2;
|
||||
if (skb == NULL) {
|
||||
BRCMF_ERROR(("%s: skb_realloc_headroom failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(ERROR, "%s: skb_realloc_headroom failed\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
ret = -ENOMEM;
|
||||
goto done;
|
||||
}
|
||||
|
@ -614,7 +602,7 @@ void brcmf_txflowcontrol(struct brcmf_pub *drvr, int ifidx, bool state)
|
|||
struct net_device *net;
|
||||
struct brcmf_info *drvr_priv = drvr->info;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
drvr->txoff = state;
|
||||
net = drvr_priv->iflist[ifidx]->net;
|
||||
|
@ -636,7 +624,7 @@ void brcmf_rx_frame(struct brcmf_pub *drvr, int ifidx, struct sk_buff *skb,
|
|||
struct brcmf_if *ifp;
|
||||
struct brcmf_event_msg event;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
save_pktbuf = skb;
|
||||
|
||||
|
@ -728,7 +716,7 @@ static struct net_device_stats *brcmf_netdev_get_stats(struct net_device *net)
|
|||
struct brcmf_if *ifp;
|
||||
int ifidx;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
ifidx = brcmf_net2idx(drvr_priv, net);
|
||||
if (ifidx == BRCMF_BAD_IF)
|
||||
|
@ -774,13 +762,13 @@ static int brcmf_toe_get(struct brcmf_info *drvr_priv, int ifidx, u32 *toe_ol)
|
|||
if (ret < 0) {
|
||||
/* Check for older dongle image that doesn't support toe_ol */
|
||||
if (ret == -EIO) {
|
||||
BRCMF_ERROR(("%s: toe not supported by device\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx)));
|
||||
brcmf_dbg(ERROR, "%s: toe not supported by device\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx));
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
BRCMF_INFO(("%s: could not get toe_ol: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret));
|
||||
brcmf_dbg(INFO, "%s: could not get toe_ol: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -810,8 +798,8 @@ static int brcmf_toe_set(struct brcmf_info *drvr_priv, int ifidx, u32 toe_ol)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("%s: could not set toe_ol: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret));
|
||||
brcmf_dbg(ERROR, "%s: could not set toe_ol: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -824,8 +812,8 @@ static int brcmf_toe_set(struct brcmf_info *drvr_priv, int ifidx, u32 toe_ol)
|
|||
|
||||
ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
|
||||
if (ret < 0) {
|
||||
BRCMF_ERROR(("%s: could not set toe: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret));
|
||||
brcmf_dbg(ERROR, "%s: could not set toe: ret=%d\n",
|
||||
brcmf_ifname(&drvr_priv->pub, ifidx), ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -857,7 +845,7 @@ static int brcmf_ethtool(struct brcmf_info *drvr_priv, void *uaddr)
|
|||
u32 toe_cmpnt, csum_dir;
|
||||
int ret;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* all ethtool calls start with a cmd word */
|
||||
if (copy_from_user(&cmd, uaddr, sizeof(u32)))
|
||||
|
@ -883,7 +871,7 @@ static int brcmf_ethtool(struct brcmf_info *drvr_priv, void *uaddr)
|
|||
|
||||
/* otherwise, require dongle to be up */
|
||||
else if (!drvr_priv->pub.up) {
|
||||
BRCMF_ERROR(("%s: dongle is not up\n", __func__));
|
||||
brcmf_dbg(ERROR, "dongle is not up\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
@ -896,8 +884,8 @@ static int brcmf_ethtool(struct brcmf_info *drvr_priv, void *uaddr)
|
|||
sprintf(info.version, "%lu", drvr_priv->pub.drv_version);
|
||||
if (copy_to_user(uaddr, &info, sizeof(info)))
|
||||
return -EFAULT;
|
||||
BRCMF_CTL(("%s: given %*s, returning %s\n", __func__,
|
||||
(int)sizeof(drvname), drvname, info.driver));
|
||||
brcmf_dbg(CTL, "given %*s, returning %s\n",
|
||||
(int)sizeof(drvname), drvname, info.driver);
|
||||
break;
|
||||
|
||||
/* Get toe offload components from dongle */
|
||||
|
@ -972,7 +960,7 @@ static int brcmf_netdev_ioctl_entry(struct net_device *net, struct ifreq *ifr,
|
|||
bool is_set_key_cmd;
|
||||
|
||||
ifidx = brcmf_net2idx(drvr_priv, net);
|
||||
BRCMF_TRACE(("%s: ifidx %d, cmd 0x%04x\n", __func__, ifidx, cmd));
|
||||
brcmf_dbg(TRACE, "ifidx %d, cmd 0x%04x\n", ifidx, cmd);
|
||||
|
||||
if (ifidx == BRCMF_BAD_IF)
|
||||
return -1;
|
||||
|
@ -1036,7 +1024,7 @@ static int brcmf_netdev_ioctl_entry(struct net_device *net, struct ifreq *ifr,
|
|||
|
||||
/* send to dongle (must be up, and wl) */
|
||||
if ((drvr_priv->pub.busstate != BRCMF_BUS_DATA)) {
|
||||
BRCMF_ERROR(("%s DONGLE_DOWN,__func__\n", __func__));
|
||||
brcmf_dbg(ERROR, "DONGLE_DOWN\n");
|
||||
bcmerror = -EIO;
|
||||
goto done;
|
||||
}
|
||||
|
@ -1080,7 +1068,7 @@ static int brcmf_netdev_stop(struct net_device *net)
|
|||
#if !defined(IGNORE_ETH0_DOWN)
|
||||
struct brcmf_info *drvr_priv = *(struct brcmf_info **) netdev_priv(net);
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
brcmf_cfg80211_down();
|
||||
if (drvr_priv->pub.up == 0)
|
||||
return 0;
|
||||
|
@ -1089,8 +1077,7 @@ static int brcmf_netdev_stop(struct net_device *net)
|
|||
drvr_priv->pub.up = 0;
|
||||
netif_stop_queue(net);
|
||||
#else
|
||||
BRCMF_ERROR(("BYPASS %s:due to BRCM compilation: under investigation\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "BYPASSed due to BRCM compilation: under investigation\n");
|
||||
#endif /* !defined(IGNORE_ETH0_DOWN) */
|
||||
|
||||
return 0;
|
||||
|
@ -1103,15 +1090,14 @@ static int brcmf_netdev_open(struct net_device *net)
|
|||
int ifidx = brcmf_net2idx(drvr_priv, net);
|
||||
s32 ret = 0;
|
||||
|
||||
BRCMF_TRACE(("%s: ifidx %d\n", __func__, ifidx));
|
||||
brcmf_dbg(TRACE, "ifidx %d\n", ifidx);
|
||||
|
||||
if (ifidx == 0) { /* do it only for primary eth0 */
|
||||
|
||||
/* try to bring up bus */
|
||||
ret = brcmf_bus_start(&drvr_priv->pub);
|
||||
if (ret != 0) {
|
||||
BRCMF_ERROR(("%s: failed with code %d\n",
|
||||
__func__, ret));
|
||||
brcmf_dbg(ERROR, "failed with code %d\n", ret);
|
||||
return -1;
|
||||
}
|
||||
atomic_set(&drvr_priv->pend_8021x_cnt, 0);
|
||||
|
@ -1131,8 +1117,7 @@ static int brcmf_netdev_open(struct net_device *net)
|
|||
netif_start_queue(net);
|
||||
drvr_priv->pub.up = 1;
|
||||
if (unlikely(brcmf_cfg80211_up())) {
|
||||
BRCMF_ERROR(("%s: failed to bring up cfg80211\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "failed to bring up cfg80211\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -1145,13 +1130,13 @@ brcmf_add_if(struct brcmf_info *drvr_priv, int ifidx, struct net_device *net,
|
|||
{
|
||||
struct brcmf_if *ifp;
|
||||
|
||||
BRCMF_TRACE(("%s: idx %d, handle->%p\n", __func__, ifidx, net));
|
||||
brcmf_dbg(TRACE, "idx %d, handle->%p\n", ifidx, net);
|
||||
|
||||
ifp = drvr_priv->iflist[ifidx];
|
||||
if (!ifp) {
|
||||
ifp = kmalloc(sizeof(struct brcmf_if), GFP_ATOMIC);
|
||||
if (!ifp) {
|
||||
BRCMF_ERROR(("%s: OOM - struct brcmf_if\n", __func__));
|
||||
brcmf_dbg(ERROR, "OOM - struct brcmf_if\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
@ -1177,11 +1162,11 @@ void brcmf_del_if(struct brcmf_info *drvr_priv, int ifidx)
|
|||
{
|
||||
struct brcmf_if *ifp;
|
||||
|
||||
BRCMF_TRACE(("%s: idx %d\n", __func__, ifidx));
|
||||
brcmf_dbg(TRACE, "idx %d\n", ifidx);
|
||||
|
||||
ifp = drvr_priv->iflist[ifidx];
|
||||
if (!ifp) {
|
||||
BRCMF_ERROR(("%s: Null interface\n", __func__));
|
||||
brcmf_dbg(ERROR, "Null interface\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1195,19 +1180,19 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
|
|||
struct brcmf_info *drvr_priv = NULL;
|
||||
struct net_device *net;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
/* Allocate etherdev, including space for private structure */
|
||||
net = alloc_etherdev(sizeof(drvr_priv));
|
||||
if (!net) {
|
||||
BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__));
|
||||
brcmf_dbg(ERROR, "OOM - alloc_etherdev\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* Allocate primary brcmf_info */
|
||||
drvr_priv = kzalloc(sizeof(struct brcmf_info), GFP_ATOMIC);
|
||||
if (!drvr_priv) {
|
||||
BRCMF_ERROR(("%s: OOM - alloc brcmf_info\n", __func__));
|
||||
brcmf_dbg(ERROR, "OOM - alloc brcmf_info\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1244,13 +1229,13 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
|
|||
|
||||
/* Attach and link in the protocol */
|
||||
if (brcmf_proto_attach(&drvr_priv->pub) != 0) {
|
||||
BRCMF_ERROR(("brcmf_prot_attach failed\n"));
|
||||
brcmf_dbg(ERROR, "brcmf_prot_attach failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* Attach and link in the cfg80211 */
|
||||
if (unlikely(brcmf_cfg80211_attach(net, &drvr_priv->pub))) {
|
||||
BRCMF_ERROR(("wl_cfg80211_attach failed\n"));
|
||||
brcmf_dbg(ERROR, "wl_cfg80211_attach failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1289,19 +1274,18 @@ int brcmf_bus_start(struct brcmf_pub *drvr)
|
|||
/* Room for "event_msgs" + '\0' + bitvec */
|
||||
char iovbuf[BRCMF_EVENTING_MASK_LEN + 12];
|
||||
|
||||
BRCMF_TRACE(("%s:\n", __func__));
|
||||
brcmf_dbg(TRACE, "\n");
|
||||
|
||||
/* Bring up the bus */
|
||||
ret = brcmf_sdbrcm_bus_init(&drvr_priv->pub, true);
|
||||
if (ret != 0) {
|
||||
BRCMF_ERROR(("%s, brcmf_sdbrcm_bus_init failed %d\n", __func__,
|
||||
ret));
|
||||
brcmf_dbg(ERROR, "brcmf_sdbrcm_bus_init failed %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* If bus is not ready, can't come up */
|
||||
if (drvr_priv->pub.busstate != BRCMF_BUS_DATA) {
|
||||
BRCMF_ERROR(("%s failed bus is not ready\n", __func__));
|
||||
brcmf_dbg(ERROR, "failed bus is not ready\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
@ -1361,7 +1345,7 @@ int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
|
|||
u8 temp_addr[ETH_ALEN] = {
|
||||
0x00, 0x90, 0x4c, 0x11, 0x22, 0x33};
|
||||
|
||||
BRCMF_TRACE(("%s: ifidx %d\n", __func__, ifidx));
|
||||
brcmf_dbg(TRACE, "ifidx %d\n", ifidx);
|
||||
|
||||
net = drvr_priv->iflist[ifidx]->net;
|
||||
net->netdev_ops = &brcmf_netdev_ops_pri;
|
||||
|
@ -1376,7 +1360,7 @@ int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
|
|||
}
|
||||
|
||||
if (ifidx == 1) {
|
||||
BRCMF_TRACE(("%s ACCESS POINT MAC:\n", __func__));
|
||||
brcmf_dbg(TRACE, "ACCESS POINT MAC:\n");
|
||||
/* ACCESSPOINT INTERFACE CASE */
|
||||
temp_addr[0] |= 0X02; /* set bit 2 ,
|
||||
- Locally Administered address */
|
||||
|
@ -1391,12 +1375,11 @@ int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
|
|||
memcpy(net->dev_addr, temp_addr, ETH_ALEN);
|
||||
|
||||
if (register_netdev(net) != 0) {
|
||||
BRCMF_ERROR(("%s: couldn't register the net device\n",
|
||||
__func__));
|
||||
brcmf_dbg(ERROR, "couldn't register the net device\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
BRCMF_INFO(("%s: Broadcom Dongle Host Driver\n", net->name));
|
||||
brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", net->name);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -1409,7 +1392,7 @@ static void brcmf_bus_detach(struct brcmf_pub *drvr)
|
|||
{
|
||||
struct brcmf_info *drvr_priv;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (drvr) {
|
||||
drvr_priv = drvr->info;
|
||||
|
@ -1427,7 +1410,7 @@ void brcmf_detach(struct brcmf_pub *drvr)
|
|||
{
|
||||
struct brcmf_info *drvr_priv;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (drvr) {
|
||||
drvr_priv = drvr->info;
|
||||
|
@ -1467,7 +1450,7 @@ void brcmf_detach(struct brcmf_pub *drvr)
|
|||
|
||||
static void __exit brcmf_module_cleanup(void)
|
||||
{
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
brcmf_bus_unregister();
|
||||
}
|
||||
|
@ -1476,12 +1459,12 @@ static int __init brcmf_module_init(void)
|
|||
{
|
||||
int error;
|
||||
|
||||
BRCMF_TRACE(("%s: Enter\n", __func__));
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
error = brcmf_bus_register();
|
||||
|
||||
if (error) {
|
||||
BRCMF_ERROR(("%s: brcmf_bus_register failed\n", __func__));
|
||||
brcmf_dbg(ERROR, "brcmf_bus_register failed\n");
|
||||
goto failed;
|
||||
}
|
||||
return 0;
|
||||
|
@ -1583,7 +1566,7 @@ int brcmf_write_to_file(struct brcmf_pub *drvr, u8 *buf, int size)
|
|||
/* open file to write */
|
||||
fp = filp_open("/tmp/mem_dump", O_WRONLY | O_CREAT, 0640);
|
||||
if (!fp) {
|
||||
BRCMF_ERROR(("%s: open file error\n", __func__));
|
||||
brcmf_dbg(ERROR, "open file error\n");
|
||||
ret = -1;
|
||||
goto exit;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue