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:
Joe Perches
2011-08-24 23:16:48 -07:00
committed by Greg Kroah-Hartman
parent 09ebd6f23b
commit 75bf74b90f
7 changed files with 694 additions and 862 deletions

View File

@@ -86,8 +86,7 @@ brcmf_sdcard_iovar_op(struct brcmf_sdio_dev *sdiodev, const char *name,
if (!set && !(arg && len)) if (!set && !(arg && len))
return -EINVAL; return -EINVAL;
BRCMF_TRACE(("%s: Enter (%s %s)\n", __func__, (set ? "set" : "get"), brcmf_dbg(TRACE, "Enter (%s %s)\n", set ? "set" : "get", name);
name));
vi = brcmu_iovar_lookup(sdioh_iovars, name); vi = brcmu_iovar_lookup(sdioh_iovars, name);
if (vi == NULL) { 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); 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); 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) 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_host(sdiodev->func[1]);
sdio_claim_irq(sdiodev->func[1], brcmf_sdioh_irqhandler); 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) 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_claim_host(sdiodev->func[1]);
sdio_release_irq(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) if (err)
*err = status; *err = status;
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, u8data = 0x%x\n", brcmf_dbg(INFO, "fun = %d, addr = 0x%x, u8data = 0x%x\n",
__func__, fnc_num, addr, data)); fnc_num, addr, data);
return data; return data;
} }
@@ -239,8 +238,8 @@ brcmf_sdcard_cfg_write(struct brcmf_sdio_dev *sdiodev, uint fnc_num, u32 addr,
if (err) if (err)
*err = status; *err = status;
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, u8data = 0x%x\n", brcmf_dbg(INFO, "fun = %d, addr = 0x%x, u8data = 0x%x\n",
__func__, fnc_num, addr, data)); fnc_num, addr, data);
} }
int brcmf_sdcard_cis_read(struct brcmf_sdio_dev *sdiodev, uint func, u8 * cis, 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. */ into the provided buffer. */
tmp_buf = kmalloc(length, GFP_ATOMIC); tmp_buf = kmalloc(length, GFP_ATOMIC);
if (tmp_buf == NULL) { if (tmp_buf == NULL) {
BRCMF_ERROR(("%s: out of memory\n", __func__)); brcmf_dbg(ERROR, "out of memory\n");
return -ENOMEM; return -ENOMEM;
} }
memcpy(tmp_buf, cis, length); 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; u32 word = 0;
uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK; 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 (bar0 != sdiodev->sbwad) {
if (brcmf_sdcard_set_sbaddr_window(sdiodev, bar0)) 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); 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 ok, return appropriately masked word */
if (status == 0) { 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 */ /* otherwise, bad sdio access or invalid size */
BRCMF_ERROR(("%s: error reading addr 0x%04x size %d\n", __func__, brcmf_dbg(ERROR, "error reading addr 0x%04x size %d\n", addr, size);
addr, size));
return 0xFFFFFFFF; 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; uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
int err = 0; int err = 0;
BRCMF_INFO(("%s:fun = 1, addr = 0x%x, uint%ddata = 0x%x\n", brcmf_dbg(INFO, "fun = 1, addr = 0x%x, uint%ddata = 0x%x\n",
__func__, addr, size * 8, data)); addr, size * 8, data);
if (bar0 != sdiodev->sbwad) { if (bar0 != sdiodev->sbwad) {
err = brcmf_sdcard_set_sbaddr_window(sdiodev, bar0); 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) if (status == 0)
return 0; return 0;
BRCMF_ERROR(("%s: error writing 0x%08x to addr 0x%04x size %d\n", brcmf_dbg(ERROR, "error writing 0x%08x to addr 0x%04x size %d\n",
__func__, data, addr, size)); data, addr, size);
return 0xFFFFFFFF; 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; uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
int err = 0; int err = 0;
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, size = %d\n", brcmf_dbg(INFO, "fun = %d, addr = 0x%x, size = %d\n", fn, addr, nbytes);
__func__, fn, addr, nbytes));
/* Async not implemented yet */ /* Async not implemented yet */
if (flags & SDIO_REQ_ASYNC) 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; uint bar0 = addr & ~SBSDIO_SB_OFT_ADDR_MASK;
int err = 0; int err = 0;
BRCMF_INFO(("%s:fun = %d, addr = 0x%x, size = %d\n", brcmf_dbg(INFO, "fun = %d, addr = 0x%x, size = %d\n", fn, addr, nbytes);
__func__, fn, addr, nbytes));
/* Async not implemented yet */ /* Async not implemented yet */
if (flags & SDIO_REQ_ASYNC) 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) int brcmf_sdcard_abort(struct brcmf_sdio_dev *sdiodev, uint fn)
{ {
char t_func = (char)fn; char t_func = (char)fn;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
/* issue abort cmd52 command through F0 */ /* issue abort cmd52 command through F0 */
brcmf_sdioh_request_byte(sdiodev, SDIOH_WRITE, SDIO_FUNC_0, brcmf_sdioh_request_byte(sdiodev, SDIOH_WRITE, SDIO_FUNC_0,
SDIO_CCCR_ABORT, &t_func); SDIO_CCCR_ABORT, &t_func);
BRCMF_TRACE(("%s: Exit\n", __func__)); brcmf_dbg(TRACE, "Exit\n");
return 0; return 0;
} }
@@ -502,7 +498,7 @@ int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
/* try to attach to the target device */ /* try to attach to the target device */
sdiodev->bus = brcmf_sdbrcm_probe(0, 0, 0, 0, regs, sdiodev); sdiodev->bus = brcmf_sdbrcm_probe(0, 0, 0, 0, regs, sdiodev);
if (!sdiodev->bus) { if (!sdiodev->bus) {
BRCMF_ERROR(("%s: device attach failed\n", __func__)); brcmf_dbg(ERROR, "device attach failed\n");
ret = -ENODEV; ret = -ENODEV;
goto out; goto out;
} }

View File

@@ -111,21 +111,21 @@ static int brcmf_sdioh_enablefuncs(struct brcmf_sdio_dev *sdiodev)
u32 fbraddr; u32 fbraddr;
u8 func; u8 func;
BRCMF_TRACE(("%s\n", __func__)); brcmf_dbg(TRACE, "\n");
/* Get the Card's common CIS address */ /* Get the Card's common CIS address */
sdiodev->func_cis_ptr[0] = brcmf_sdioh_get_cisaddr(sdiodev, sdiodev->func_cis_ptr[0] = brcmf_sdioh_get_cisaddr(sdiodev,
SDIO_CCCR_CIS); SDIO_CCCR_CIS);
BRCMF_INFO(("%s: Card's Common CIS Ptr = 0x%x\n", __func__, brcmf_dbg(INFO, "Card's Common CIS Ptr = 0x%x\n",
sdiodev->func_cis_ptr[0])); sdiodev->func_cis_ptr[0]);
/* Get the Card's function CIS (for each function) */ /* Get the Card's function CIS (for each function) */
for (fbraddr = SDIO_FBR_BASE(1), func = 1; for (fbraddr = SDIO_FBR_BASE(1), func = 1;
func <= sdiodev->num_funcs; func++, fbraddr += SDIOD_FBR_SIZE) { func <= sdiodev->num_funcs; func++, fbraddr += SDIOD_FBR_SIZE) {
sdiodev->func_cis_ptr[func] = sdiodev->func_cis_ptr[func] =
brcmf_sdioh_get_cisaddr(sdiodev, SDIO_FBR_CIS + fbraddr); brcmf_sdioh_get_cisaddr(sdiodev, SDIO_FBR_CIS + fbraddr);
BRCMF_INFO(("%s: Function %d CIS Ptr = 0x%x\n", __func__, func, brcmf_dbg(INFO, "Function %d CIS Ptr = 0x%x\n",
sdiodev->func_cis_ptr[func])); func, sdiodev->func_cis_ptr[func]);
} }
/* Enable Function 1 */ /* 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]); err_ret = sdio_enable_func(sdiodev->func[1]);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func[1]);
if (err_ret) if (err_ret)
BRCMF_ERROR(("brcmf_sdioh_enablefuncs: Failed to enable F1 " brcmf_dbg(ERROR, "Failed to enable F1 Err: 0x%08x\n", err_ret);
"Err: 0x%08x\n", err_ret));
return false; return false;
} }
@@ -146,7 +145,7 @@ int brcmf_sdioh_attach(struct brcmf_sdio_dev *sdiodev)
{ {
int err_ret = 0; int err_ret = 0;
BRCMF_TRACE(("%s\n", __func__)); brcmf_dbg(TRACE, "\n");
sdiodev->num_funcs = 2; 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); err_ret = sdio_set_block_size(sdiodev->func[1], 64);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func[1]);
if (err_ret) { if (err_ret) {
BRCMF_ERROR(("%s: Failed to set F1 blocksize\n", __func__)); brcmf_dbg(ERROR, "Failed to set F1 blocksize\n");
goto out; 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); err_ret = sdio_set_block_size(sdiodev->func[2], sd_f2_blocksize);
sdio_release_host(sdiodev->func[2]); sdio_release_host(sdiodev->func[2]);
if (err_ret) { if (err_ret) {
BRCMF_ERROR(("%s: Failed to set F2 blocksize" brcmf_dbg(ERROR, "Failed to set F2 blocksize to %d\n",
" to %d\n", __func__, sd_f2_blocksize)); sd_f2_blocksize);
goto out; goto out;
} }
brcmf_sdioh_enablefuncs(sdiodev); brcmf_sdioh_enablefuncs(sdiodev);
out: out:
BRCMF_TRACE(("%s: Done\n", __func__)); brcmf_dbg(TRACE, "Done\n");
return err_ret; return err_ret;
} }
void brcmf_sdioh_detach(struct brcmf_sdio_dev *sdiodev) void brcmf_sdioh_detach(struct brcmf_sdio_dev *sdiodev)
{ {
BRCMF_TRACE(("%s\n", __func__)); brcmf_dbg(TRACE, "\n");
/* Disable Function 2 */ /* Disable Function 2 */
sdio_claim_host(sdiodev->func[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++) { for (i = 0; i < 3; i++) {
if ((brcmf_sdioh_card_regread(sdiodev, 0, regaddr, 1, if ((brcmf_sdioh_card_regread(sdiodev, 0, regaddr, 1,
&regdata)) != SUCCESS) &regdata)) != SUCCESS)
BRCMF_ERROR(("%s: Can't read!\n", __func__)); brcmf_dbg(ERROR, "Can't read!\n");
*ptr++ = (u8) regdata; *ptr++ = (u8) regdata;
regaddr++; regaddr++;
@@ -220,22 +219,21 @@ brcmf_sdioh_cis_read(struct brcmf_sdio_dev *sdiodev, uint func,
u32 foo; u32 foo;
u8 *cis = cisd; u8 *cis = cisd;
BRCMF_TRACE(("%s: Func = %d\n", __func__, func)); brcmf_dbg(TRACE, "Func = %d\n", func);
if (!sdiodev->func_cis_ptr[func]) { if (!sdiodev->func_cis_ptr[func]) {
memset(cis, 0, length); 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; return -ENOTSUPP;
} }
BRCMF_ERROR(("%s: func_cis_ptr[%d]=0x%04x\n", __func__, func, brcmf_dbg(ERROR, "func_cis_ptr[%d]=0x%04x\n",
sdiodev->func_cis_ptr[func])); func, sdiodev->func_cis_ptr[func]);
for (count = 0; count < length; count++) { for (count = 0; count < length; count++) {
offset = sdiodev->func_cis_ptr[func] + count; offset = sdiodev->func_cis_ptr[func] + count;
if (brcmf_sdioh_card_regread(sdiodev, 0, offset, 1, &foo) < 0) { if (brcmf_sdioh_card_regread(sdiodev, 0, offset, 1, &foo) < 0) {
BRCMF_ERROR(("%s: regread failed: Can't read CIS\n", brcmf_dbg(ERROR, "regread failed: Can't read CIS\n");
__func__));
return -EIO; return -EIO;
} }
@@ -252,8 +250,7 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
{ {
int err_ret; int err_ret;
BRCMF_INFO(("%s: rw=%d, func=%d, addr=0x%05x\n", __func__, rw, func, brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x\n", rw, func, regaddr);
regaddr));
BRCMF_PM_RESUME_WAIT(sdioh_request_byte_wait, sdiodev); BRCMF_PM_RESUME_WAIT(sdioh_request_byte_wait, sdiodev);
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, 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 sdio_enable_func
(sdiodev->func[2]); (sdiodev->func[2]);
if (err_ret) if (err_ret)
BRCMF_ERROR(( brcmf_dbg(ERROR,
"request_byte: " "enable F2 failed:%d\n",
"enable F2 " err_ret);
"failed:%d\n",
err_ret));
} else { } else {
/* Disable Function 2 */ /* Disable Function 2 */
err_ret = err_ret =
sdio_disable_func sdio_disable_func
(sdiodev->func[2]); (sdiodev->func[2]);
if (err_ret) if (err_ret)
BRCMF_ERROR(( brcmf_dbg(ERROR,
"request_byte: " "Disable F2 failed:%d\n",
"Disab F2 " err_ret);
"failed:%d\n",
err_ret));
} }
sdio_release_host(sdiodev->func[2]); 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); regaddr, &err_ret);
sdio_release_host(sdiodev->func[func]); sdio_release_host(sdiodev->func[func]);
} else if (regaddr < 0xF0) { } else if (regaddr < 0xF0) {
BRCMF_ERROR(("brcmf: F0 Wr:0x%02x: write " brcmf_dbg(ERROR, "F0 Wr:0x%02x: write disallowed\n",
"disallowed\n", regaddr)); regaddr);
} else { } else {
/* Claim host controller, perform F0 write, /* Claim host controller, perform F0 write,
and release */ and release */
@@ -341,9 +334,8 @@ brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
} }
if (err_ret) if (err_ret)
BRCMF_ERROR(("brcmf: Failed to %s byte F%d:@0x%05x=%02x, " brcmf_dbg(ERROR, "Failed to %s byte F%d:@0x%05x=%02x, Err: %d\n",
"Err: %d\n", rw ? "Write" : "Read", func, regaddr, rw ? "write" : "read", func, regaddr, *byte, err_ret);
*byte, err_ret));
return 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; int err_ret = -EIO;
if (func == 0) { if (func == 0) {
BRCMF_ERROR(("%s: Only CMD52 allowed to F0.\n", __func__)); brcmf_dbg(ERROR, "Only CMD52 allowed to F0\n");
return -EINVAL; return -EINVAL;
} }
BRCMF_INFO(("%s: cmd_type=%d, rw=%d, func=%d, addr=0x%05x, nbytes=%d\n", brcmf_dbg(INFO, "cmd_type=%d, rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
__func__, cmd_type, rw, func, addr, nbytes)); cmd_type, rw, func, addr, nbytes);
BRCMF_PM_RESUME_WAIT(sdioh_request_word_wait, sdiodev); BRCMF_PM_RESUME_WAIT(sdioh_request_word_wait, sdiodev);
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, 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), sdio_writew(sdiodev->func[func], (*word & 0xFFFF),
addr, &err_ret); addr, &err_ret);
else else
BRCMF_ERROR(("%s: Invalid nbytes: %d\n", brcmf_dbg(ERROR, "Invalid nbytes: %d\n", nbytes);
__func__, nbytes));
} else { /* CMD52 Read */ } else { /* CMD52 Read */
if (nbytes == 4) if (nbytes == 4)
*word = *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, sdio_readw(sdiodev->func[func], addr,
&err_ret) & 0xFFFF; &err_ret) & 0xFFFF;
else else
BRCMF_ERROR(("%s: Invalid nbytes: %d\n", brcmf_dbg(ERROR, "Invalid nbytes: %d\n", nbytes);
__func__, nbytes));
} }
/* Release host controller */ /* Release host controller */
sdio_release_host(sdiodev->func[func]); sdio_release_host(sdiodev->func[func]);
if (err_ret) if (err_ret)
BRCMF_ERROR(("brcmf: Failed to %s word, Err: 0x%08x\n", brcmf_dbg(ERROR, "Failed to %s word, Err: 0x%08x\n",
rw ? "Write" : "Read", err_ret)); rw ? "write" : "read", err_ret);
return 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; 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_WAIT(sdioh_request_packet_wait, sdiodev);
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, 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) { if (err_ret) {
BRCMF_ERROR(("%s: %s FAILED %p[%d], addr=0x%05x, " brcmf_dbg(ERROR, "%s FAILED %p[%d], addr=0x%05x, pkt_len=%d, ERR=0x%08x\n",
"pkt_len=%d, ERR=0x%08x\n", __func__, write ? "TX" : "RX", pnext, SGCount, addr,
(write) ? "TX" : "RX", pkt_len, err_ret);
pnext, SGCount, addr, pkt_len, err_ret));
} else { } else {
BRCMF_TRACE(("%s: %s xfr'd %p[%d], addr=0x%05x, " brcmf_dbg(TRACE, "%s xfr'd %p[%d], addr=0x%05x, len=%d\n",
"len=%d\n", __func__, write ? "TX" : "RX", pnext, SGCount, addr,
(write) ? "TX" : "RX", pkt_len);
pnext, SGCount, addr, pkt_len));
} }
if (!fifo) if (!fifo)
@@ -462,7 +450,7 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc,
/* Release host controller */ /* Release host controller */
sdio_release_host(sdiodev->func[func]); sdio_release_host(sdiodev->func[func]);
BRCMF_TRACE(("%s: Exit\n", __func__)); brcmf_dbg(TRACE, "Exit\n");
return err_ret; return err_ret;
} }
@@ -490,18 +478,18 @@ brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, uint pio_dma,
int Status; int Status;
struct sk_buff *mypkt = NULL; 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_WAIT(sdioh_request_buffer_wait, sdiodev);
BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev); BRCMF_PM_RESUME_RETURN_ERROR(-EIO, sdiodev);
/* Case 1: we don't have a packet. */ /* Case 1: we don't have a packet. */
if (pkt == NULL) { if (pkt == NULL) {
BRCMF_DATA(("%s: Creating new %s Packet, len=%d\n", brcmf_dbg(DATA, "Creating new %s Packet, len=%d\n",
__func__, write ? "TX" : "RX", buflen_u)); write ? "TX" : "RX", buflen_u);
mypkt = brcmu_pkt_buf_get_skb(buflen_u); mypkt = brcmu_pkt_buf_get_skb(buflen_u);
if (!mypkt) { if (!mypkt) {
BRCMF_ERROR(("%s: brcmu_pkt_buf_get_skb failed: " brcmf_dbg(ERROR, "brcmu_pkt_buf_get_skb failed: len %d\n",
"len %d\n", __func__, buflen_u)); buflen_u);
return -EIO; 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. * Case 2: We have a packet, but it is unaligned.
* In this case, we cannot have a chain (pkt->next == NULL) * In this case, we cannot have a chain (pkt->next == NULL)
*/ */
BRCMF_DATA(("%s: Creating aligned %s Packet, len=%d\n", brcmf_dbg(DATA, "Creating aligned %s Packet, len=%d\n",
__func__, write ? "TX" : "RX", pkt->len)); write ? "TX" : "RX", pkt->len);
mypkt = brcmu_pkt_buf_get_skb(pkt->len); mypkt = brcmu_pkt_buf_get_skb(pkt->len);
if (!mypkt) { if (!mypkt) {
BRCMF_ERROR(("%s: brcmu_pkt_buf_get_skb failed: " brcmf_dbg(ERROR, "brcmu_pkt_buf_get_skb failed: len %d\n",
"len %d\n", __func__, pkt->len)); pkt->len);
return -EIO; return -EIO;
} }
@@ -545,8 +533,8 @@ brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, uint pio_dma,
brcmu_pkt_buf_free_skb(mypkt); brcmu_pkt_buf_free_skb(mypkt);
} else { /* case 3: We have a packet and } else { /* case 3: We have a packet and
it is aligned. */ it is aligned. */
BRCMF_DATA(("%s: Aligned %s Packet, direct DMA\n", brcmf_dbg(DATA, "Aligned %s Packet, direct DMA\n",
__func__, write ? "Tx" : "Rx")); write ? "Tx" : "Rx");
Status = brcmf_sdioh_request_packet(sdiodev, fix_inc, write, Status = brcmf_sdioh_request_packet(sdiodev, fix_inc, write,
func, addr, pkt); func, addr, pkt);
} }
@@ -567,14 +555,14 @@ brcmf_sdioh_card_regread(struct brcmf_sdio_dev *sdiodev, int func, u32 regaddr,
&temp); &temp);
*data = temp; *data = temp;
*data &= 0xff; *data &= 0xff;
BRCMF_DATA(("%s: byte read data=0x%02x\n", __func__, *data)); brcmf_dbg(DATA, "byte read data=0x%02x\n", *data);
} else { } else {
brcmf_sdioh_request_word(sdiodev, 0, SDIOH_READ, func, regaddr, brcmf_sdioh_request_word(sdiodev, 0, SDIOH_READ, func, regaddr,
data, regsize); data, regsize);
if (regsize == 2) if (regsize == 2)
*data &= 0xffff; *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; return SUCCESS;
@@ -585,16 +573,15 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
{ {
int ret = 0; int ret = 0;
struct brcmf_sdio_dev *sdiodev; struct brcmf_sdio_dev *sdiodev;
BRCMF_TRACE(("sdio_probe: %s Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
BRCMF_TRACE(("sdio_probe: func->class=%x\n", func->class)); brcmf_dbg(TRACE, "func->class=%x\n", func->class);
BRCMF_TRACE(("sdio_vendor: 0x%04x\n", func->vendor)); brcmf_dbg(TRACE, "sdio_vendor: 0x%04x\n", func->vendor);
BRCMF_TRACE(("sdio_device: 0x%04x\n", func->device)); brcmf_dbg(TRACE, "sdio_device: 0x%04x\n", func->device);
BRCMF_TRACE(("Function#: 0x%04x\n", func->num)); brcmf_dbg(TRACE, "Function#: 0x%04x\n", func->num);
if (func->num == 1) { if (func->num == 1) {
if (dev_get_drvdata(&func->card->dev)) { if (dev_get_drvdata(&func->card->dev)) {
BRCMF_ERROR(("%s: card private drvdata occupied.\n", brcmf_dbg(ERROR, "card private drvdata occupied\n");
__func__));
return -ENXIO; return -ENXIO;
} }
sdiodev = kzalloc(sizeof(struct brcmf_sdio_dev), GFP_KERNEL); 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; sdiodev->func[2] = func;
brcmf_cfg80211_sdio_func(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); 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) static void brcmf_ops_sdio_remove(struct sdio_func *func)
{ {
struct brcmf_sdio_dev *sdiodev; struct brcmf_sdio_dev *sdiodev;
BRCMF_TRACE(("%s Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
BRCMF_INFO(("func->class=%x\n", func->class)); brcmf_dbg(INFO, "func->class=%x\n", func->class);
BRCMF_INFO(("sdio_vendor: 0x%04x\n", func->vendor)); brcmf_dbg(INFO, "sdio_vendor: 0x%04x\n", func->vendor);
BRCMF_INFO(("sdio_device: 0x%04x\n", func->device)); brcmf_dbg(INFO, "sdio_device: 0x%04x\n", func->device);
BRCMF_INFO(("Function#: 0x%04x\n", func->num)); brcmf_dbg(INFO, "Function#: 0x%04x\n", func->num);
if (func->num == 2) { if (func->num == 2) {
sdiodev = dev_get_drvdata(&func->card->dev); 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); brcmf_sdio_remove(sdiodev);
dev_set_drvdata(&func->card->dev, NULL); dev_set_drvdata(&func->card->dev, NULL);
kfree(sdiodev); kfree(sdiodev);
@@ -648,7 +635,7 @@ static int brcmf_sdio_suspend(struct device *dev)
struct sdio_func *func = dev_to_sdio_func(dev); struct sdio_func *func = dev_to_sdio_func(dev);
int ret = 0; int ret = 0;
BRCMF_TRACE(("%s\n", __func__)); brcmf_dbg(TRACE, "\n");
sdiodev = dev_get_drvdata(&func->card->dev); 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]); sdio_flags = sdio_get_host_pm_caps(sdiodev->func[1]);
if (!(sdio_flags & MMC_PM_KEEP_POWER)) { 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; return -EINVAL;
} }
ret = sdio_set_host_pm_flags(sdiodev->func[1], MMC_PM_KEEP_POWER); ret = sdio_set_host_pm_flags(sdiodev->func[1], MMC_PM_KEEP_POWER);
if (ret) { if (ret) {
BRCMF_ERROR(("Failed to set pm_flags\n")); brcmf_dbg(ERROR, "Failed to set pm_flags\n");
return ret; return ret;
} }
@@ -689,7 +676,7 @@ static int brcmf_sdio_resume(struct device *dev)
int brcmf_sdio_function_init(void) int brcmf_sdio_function_init(void)
{ {
int error = 0; 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); error = sdio_register_driver(&brcmf_sdmmc_driver);
@@ -701,7 +688,7 @@ int brcmf_sdio_function_init(void)
*/ */
void brcmf_sdio_function_cleanup(void) void brcmf_sdio_function_cleanup(void)
{ {
BRCMF_TRACE(("%s Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
sdio_unregister_driver(&brcmf_sdmmc_driver); sdio_unregister_driver(&brcmf_sdmmc_driver);
} }

View File

@@ -104,7 +104,7 @@ static int brcmf_proto_cdc_msg(struct brcmf_pub *drvr)
int len = le32_to_cpu(prot->msg.len) + int len = le32_to_cpu(prot->msg.len) +
sizeof(struct brcmf_proto_cdc_ioctl); 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 /* 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 * 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; int ret;
struct brcmf_proto *prot = drvr->prot; struct brcmf_proto *prot = drvr->prot;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
do { do {
ret = brcmf_sdbrcm_bus_rxctl(drvr->bus, 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; int ret = 0, retries = 0;
u32 id, flags = 0; u32 id, flags = 0;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
BRCMF_CTL(("%s: cmd %d len %d\n", __func__, cmd, len)); brcmf_dbg(CTL, "cmd %d len %d\n", cmd, len);
/* Respond "bcmerror" and "bcmerrorstr" with local cache */ /* Respond "bcmerror" and "bcmerrorstr" with local cache */
if (cmd == BRCMF_C_GET_VAR && buf) { 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); ret = brcmf_proto_cdc_msg(drvr);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("brcmf_proto_cdc_query_ioctl: brcmf_proto_cdc_msg " brcmf_dbg(ERROR, "brcmf_proto_cdc_msg failed w/status %d\n",
"failed w/status %d\n", ret)); ret);
goto done; goto done;
} }
@@ -191,9 +191,8 @@ retry:
if ((id < prot->reqid) && (++retries < RETRIES)) if ((id < prot->reqid) && (++retries < RETRIES))
goto retry; goto retry;
if (id != prot->reqid) { if (id != prot->reqid) {
BRCMF_ERROR(("%s: %s: unexpected request id %d (expected %d)\n", brcmf_dbg(ERROR, "%s: unexpected request id %d (expected %d)\n",
brcmf_ifname(drvr, ifidx), __func__, id, brcmf_ifname(drvr, ifidx), id, prot->reqid);
prot->reqid));
ret = -EINVAL; ret = -EINVAL;
goto done; goto done;
} }
@@ -227,8 +226,8 @@ int brcmf_proto_cdc_set_ioctl(struct brcmf_pub *drvr, int ifidx, uint cmd,
int ret = 0; int ret = 0;
u32 flags, id; u32 flags, id;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
BRCMF_CTL(("%s: cmd %d len %d\n", __func__, cmd, len)); brcmf_dbg(CTL, "cmd %d len %d\n", cmd, len);
memset(msg, 0, sizeof(struct brcmf_proto_cdc_ioctl)); 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; id = (flags & CDCF_IOC_ID_MASK) >> CDCF_IOC_ID_SHIFT;
if (id != prot->reqid) { if (id != prot->reqid) {
BRCMF_ERROR(("%s: %s: unexpected request id %d (expected %d)\n", brcmf_dbg(ERROR, "%s: unexpected request id %d (expected %d)\n",
brcmf_ifname(drvr, ifidx), __func__, id, brcmf_ifname(drvr, ifidx), id, prot->reqid);
prot->reqid));
ret = -EINVAL; ret = -EINVAL;
goto done; goto done;
} }
@@ -279,25 +277,23 @@ brcmf_proto_ioctl(struct brcmf_pub *drvr, int ifidx, struct brcmf_ioctl *ioc,
int ret = -1; int ret = -1;
if (drvr->busstate == BRCMF_BUS_DOWN) { if (drvr->busstate == BRCMF_BUS_DOWN) {
BRCMF_ERROR(("%s : bus is down. we have nothing to do\n", brcmf_dbg(ERROR, "bus is down. we have nothing to do.\n");
__func__));
return ret; return ret;
} }
brcmf_os_proto_block(drvr); brcmf_os_proto_block(drvr);
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
if (len > BRCMF_C_IOCTL_MAXLEN) if (len > BRCMF_C_IOCTL_MAXLEN)
goto done; goto done;
if (prot->pending == true) { if (prot->pending == true) {
BRCMF_TRACE(("CDC packet is pending!!!! cmd=0x%x (%lu) " brcmf_dbg(TRACE, "CDC packet is pending!!!! cmd=0x%x (%lu) lastcmd=0x%x (%lu)\n",
"lastcmd=0x%x (%lu)\n",
ioc->cmd, (unsigned long)ioc->cmd, prot->lastcmd, ioc->cmd, (unsigned long)ioc->cmd, prot->lastcmd,
(unsigned long)prot->lastcmd)); (unsigned long)prot->lastcmd);
if ((ioc->cmd == BRCMF_C_SET_VAR) || if ((ioc->cmd == BRCMF_C_SET_VAR) ||
(ioc->cmd == BRCMF_C_GET_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; goto done;
} }
@@ -358,7 +354,7 @@ void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx,
{ {
struct brcmf_proto_bdc_header *h; 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 */ /* 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; 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 */ /* Pop BDC header used to convey priority for buses that don't */
if (pktbuf->len < BDC_HEADER_LEN) { if (pktbuf->len < BDC_HEADER_LEN) {
BRCMF_ERROR(("%s: rx data too short (%d < %d)\n", __func__, brcmf_dbg(ERROR, "rx data too short (%d < %d)\n",
pktbuf->len, BDC_HEADER_LEN)); pktbuf->len, BDC_HEADER_LEN);
return -EBADE; return -EBADE;
} }
@@ -395,22 +391,20 @@ int brcmf_proto_hdrpull(struct brcmf_pub *drvr, int *ifidx,
*ifidx = BDC_GET_IF_IDX(h); *ifidx = BDC_GET_IF_IDX(h);
if (*ifidx >= BRCMF_MAX_IFS) { if (*ifidx >= BRCMF_MAX_IFS) {
BRCMF_ERROR(("%s: rx data ifnum out of range (%d)\n", brcmf_dbg(ERROR, "rx data ifnum out of range (%d)\n", *ifidx);
__func__, *ifidx));
return -EBADE; return -EBADE;
} }
if (((h->flags & BDC_FLAG_VER_MASK) >> BDC_FLAG_VER_SHIFT) != if (((h->flags & BDC_FLAG_VER_MASK) >> BDC_FLAG_VER_SHIFT) !=
BDC_PROTO_VER) { BDC_PROTO_VER) {
BRCMF_ERROR(("%s: non-BDC packet received, flags 0x%x\n", brcmf_dbg(ERROR, "%s: non-BDC packet received, flags 0x%x\n",
brcmf_ifname(drvr, *ifidx), h->flags)); brcmf_ifname(drvr, *ifidx), h->flags);
return -EBADE; return -EBADE;
} }
if (h->flags & BDC_FLAG_SUM_GOOD) { if (h->flags & BDC_FLAG_SUM_GOOD) {
BRCMF_INFO(("%s: BDC packet received with good rx-csum, " brcmf_dbg(INFO, "%s: BDC packet received with good rx-csum, flags 0x%x\n",
"flags 0x%x\n", brcmf_ifname(drvr, *ifidx), h->flags);
brcmf_ifname(drvr, *ifidx), h->flags));
PKTSETSUMGOOD(pktbuf, true); PKTSETSUMGOOD(pktbuf, true);
} }
@@ -427,13 +421,13 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
cdc = kzalloc(sizeof(struct brcmf_proto), GFP_ATOMIC); cdc = kzalloc(sizeof(struct brcmf_proto), GFP_ATOMIC);
if (!cdc) { if (!cdc) {
BRCMF_ERROR(("%s: kmalloc failed\n", __func__)); brcmf_dbg(ERROR, "kmalloc failed\n");
goto fail; goto fail;
} }
/* ensure that the msg buf directly follows the cdc msg struct */ /* ensure that the msg buf directly follows the cdc msg struct */
if ((unsigned long)(&cdc->msg + 1) != (unsigned long)cdc->buf) { 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; goto fail;
} }
@@ -472,7 +466,7 @@ int brcmf_proto_init(struct brcmf_pub *drvr)
int ret = 0; int ret = 0;
char buf[128]; char buf[128];
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
brcmf_os_proto_block(drvr); brcmf_os_proto_block(drvr);

View File

@@ -172,7 +172,7 @@ brcmf_c_doiovar(struct brcmf_pub *drvr, const struct brcmu_iovar *vi,
int bcmerror = 0; int bcmerror = 0;
s32 int_val = 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)); bcmerror = brcmu_iovar_lencheck(vi, arg, len, IOV_ISSET(actionid));
if (bcmerror != 0) 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) : p = discard_oldest ? brcmu_pktq_pdeq(q, eprec) :
brcmu_pktq_pdeq_tail(q, eprec); brcmu_pktq_pdeq_tail(q, eprec);
if (p == NULL) if (p == NULL)
BRCMF_ERROR(("%s: brcmu_pktq_penq() failed, oldest %d.", brcmf_dbg(ERROR, "brcmu_pktq_penq() failed, oldest %d\n",
__func__, discard_oldest)); discard_oldest);
brcmu_pkt_buf_free_skb(p); brcmu_pkt_buf_free_skb(p);
} }
@@ -276,7 +276,7 @@ bool brcmf_c_prec_enq(struct brcmf_pub *drvr, struct pktq *q,
/* Enqueue */ /* Enqueue */
p = brcmu_pktq_penq(q, prec, pkt); p = brcmu_pktq_penq(q, prec, pkt);
if (p == NULL) if (p == NULL)
BRCMF_ERROR(("%s: brcmu_pktq_penq() failed.", __func__)); brcmf_dbg(ERROR, "brcmu_pktq_penq() failed\n");
return p != NULL; return p != NULL;
} }
@@ -290,7 +290,7 @@ brcmf_c_iovar_op(struct brcmf_pub *drvr, const char *name,
const struct brcmu_iovar *vi = NULL; const struct brcmu_iovar *vi = NULL;
u32 actionid; u32 actionid;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
if (name == NULL || len < 0) if (name == NULL || len < 0)
return -EINVAL; return -EINVAL;
@@ -309,8 +309,8 @@ brcmf_c_iovar_op(struct brcmf_pub *drvr, const char *name,
goto exit; goto exit;
} }
BRCMF_CTL(("%s: %s %s, len %d plen %d\n", __func__, brcmf_dbg(CTL, "%s %s, len %d plen %d\n",
name, (set ? "set" : "get"), len, plen)); name, set ? "set" : "get", len, plen);
/* set up 'params' pointer in case this is a set command so that /* 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 * 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; int bcmerror = 0;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
if (!buf) if (!buf)
return -EINVAL; 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; event_name = event_names[i].event_name;
} }
BRCMF_EVENT(("EVENT: %s, event ID = %d\n", event_name, event_type)); brcmf_dbg(EVENT, "EVENT: %s, event ID = %d\n", event_name, event_type);
BRCMF_EVENT(("flags 0x%04x, status %d, reason %d, auth_type %d" brcmf_dbg(EVENT, "flags 0x%04x, status %d, reason %d, auth_type %d MAC %s\n",
" MAC %s\n", flags, status, reason, auth_type, eabuf)); flags, status, reason, auth_type, eabuf);
if (flags & BRCMF_EVENT_MSG_LINK) if (flags & BRCMF_EVENT_MSG_LINK)
link = true; 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_START:
case BRCMF_E_DEAUTH: case BRCMF_E_DEAUTH:
case BRCMF_E_DISASSOC: 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; break;
case BRCMF_E_ASSOC_IND: case BRCMF_E_ASSOC_IND:
case BRCMF_E_REASSOC_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; break;
case BRCMF_E_ASSOC: case BRCMF_E_ASSOC:
case BRCMF_E_REASSOC: case BRCMF_E_REASSOC:
if (status == BRCMF_E_STATUS_SUCCESS) if (status == BRCMF_E_STATUS_SUCCESS)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, SUCCESS\n", brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, SUCCESS\n",
event_name, eabuf)); event_name, eabuf);
else if (status == BRCMF_E_STATUS_TIMEOUT) else if (status == BRCMF_E_STATUS_TIMEOUT)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, TIMEOUT\n", brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, TIMEOUT\n",
event_name, eabuf)); event_name, eabuf);
else if (status == BRCMF_E_STATUS_FAIL) else if (status == BRCMF_E_STATUS_FAIL)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, FAILURE," brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, FAILURE, reason %d\n",
" reason %d\n", event_name, eabuf, event_name, eabuf, (int)reason);
(int)reason));
else else
BRCMF_EVENT(("MACEVENT: %s, MAC %s, unexpected status " brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, unexpected status %d\n",
"%d\n", event_name, eabuf, (int)status)); event_name, eabuf, (int)status);
break; break;
case BRCMF_E_DEAUTH_IND: case BRCMF_E_DEAUTH_IND:
case BRCMF_E_DISASSOC_IND: case BRCMF_E_DISASSOC_IND:
BRCMF_EVENT(("MACEVENT: %s, MAC %s, reason %d\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, reason %d\n",
eabuf, (int)reason)); event_name, eabuf, (int)reason);
break; break;
case BRCMF_E_AUTH: 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; auth_str = err_msg;
} }
if (event_type == BRCMF_E_AUTH_IND) if (event_type == BRCMF_E_AUTH_IND)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s\n",
eabuf, auth_str)); event_name, eabuf, auth_str);
else if (status == BRCMF_E_STATUS_SUCCESS) else if (status == BRCMF_E_STATUS_SUCCESS)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, SUCCESS\n", brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, SUCCESS\n",
event_name, eabuf, auth_str)); event_name, eabuf, auth_str);
else if (status == BRCMF_E_STATUS_TIMEOUT) else if (status == BRCMF_E_STATUS_TIMEOUT)
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, TIMEOUT\n", brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, TIMEOUT\n",
event_name, eabuf, auth_str)); event_name, eabuf, auth_str);
else if (status == BRCMF_E_STATUS_FAIL) { else if (status == BRCMF_E_STATUS_FAIL) {
BRCMF_EVENT(("MACEVENT: %s, MAC %s, %s, FAILURE, " brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, %s, FAILURE, reason %d\n",
"reason %d\n", event_name, eabuf, auth_str, (int)reason);
event_name, eabuf, auth_str, (int)reason));
} }
break; 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_ROAM:
case BRCMF_E_SET_SSID: case BRCMF_E_SET_SSID:
if (status == BRCMF_E_STATUS_SUCCESS) if (status == BRCMF_E_STATUS_SUCCESS)
BRCMF_EVENT(("MACEVENT: %s, MAC %s\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s\n",
eabuf)); event_name, eabuf);
else if (status == BRCMF_E_STATUS_FAIL) 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) else if (status == BRCMF_E_STATUS_NO_NETWORKS)
BRCMF_EVENT(("MACEVENT: %s, no networks found\n", brcmf_dbg(EVENT, "MACEVENT: %s, no networks found\n",
event_name)); event_name);
else else
BRCMF_EVENT(("MACEVENT: %s, unexpected status %d\n", brcmf_dbg(EVENT, "MACEVENT: %s, unexpected status %d\n",
event_name, (int)status)); event_name, (int)status);
break; break;
case BRCMF_E_BEACON_RX: case BRCMF_E_BEACON_RX:
if (status == BRCMF_E_STATUS_SUCCESS) 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) 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 else
BRCMF_EVENT(("MACEVENT: %s, status %d\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s, status %d\n",
status)); event_name, status);
break; break;
case BRCMF_E_LINK: case BRCMF_E_LINK:
BRCMF_EVENT(("MACEVENT: %s %s\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s %s\n",
link ? "UP" : "DOWN")); event_name, link ? "UP" : "DOWN");
break; break;
case BRCMF_E_MIC_ERROR: case BRCMF_E_MIC_ERROR:
BRCMF_EVENT(("MACEVENT: %s, MAC %s, Group %d, Flush %d\n", brcmf_dbg(EVENT, "MACEVENT: %s, MAC %s, Group %d, Flush %d\n",
event_name, eabuf, group, flush_txq)); event_name, eabuf, group, flush_txq);
break; break;
case BRCMF_E_ICV_ERROR: case BRCMF_E_ICV_ERROR:
case BRCMF_E_UNICAST_DECODE_ERROR: case BRCMF_E_UNICAST_DECODE_ERROR:
case BRCMF_E_MULTICAST_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; break;
case BRCMF_E_TXFAIL: 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; break;
case BRCMF_E_SCAN_COMPLETE: case BRCMF_E_SCAN_COMPLETE:
case BRCMF_E_PMKID_CACHE: case BRCMF_E_PMKID_CACHE:
BRCMF_EVENT(("MACEVENT: %s\n", event_name)); brcmf_dbg(EVENT, "MACEVENT: %s\n", event_name);
break; break;
case BRCMF_E_PFN_NET_FOUND: case BRCMF_E_PFN_NET_FOUND:
case BRCMF_E_PFN_NET_LOST: case BRCMF_E_PFN_NET_LOST:
case BRCMF_E_PFN_SCAN_COMPLETE: case BRCMF_E_PFN_SCAN_COMPLETE:
BRCMF_EVENT(("PNOEVENT: %s\n", event_name)); brcmf_dbg(EVENT, "PNOEVENT: %s\n", event_name);
break; break;
case BRCMF_E_PSK_SUP: case BRCMF_E_PSK_SUP:
case BRCMF_E_PRUNE: case BRCMF_E_PRUNE:
BRCMF_EVENT(("MACEVENT: %s, status %d, reason %d\n", brcmf_dbg(EVENT, "MACEVENT: %s, status %d, reason %d\n",
event_name, (int)status, (int)reason)); event_name, (int)status, (int)reason);
break; break;
case BRCMF_E_TRACE: 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)); memcpy(&hdr, buf, sizeof(struct msgtrace_hdr));
if (hdr.version != MSGTRACE_VERSION) { if (hdr.version != MSGTRACE_VERSION) {
BRCMF_ERROR( brcmf_dbg(ERROR, "MACEVENT: %s [unsupported version --> brcmf version:%d dongle version:%d]\n",
("\nMACEVENT: %s [unsupported version --> " event_name,
"brcmf version:%d dongle version:%d]\n", MSGTRACE_VERSION, hdr.version);
event_name, MSGTRACE_VERSION, hdr.version)
);
/* Reset datalen to avoid display below */ /* Reset datalen to avoid display below */
datalen = 0; datalen = 0;
break; 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) if (be32_to_cpu(hdr.discarded_bytes)
|| be32_to_cpu(hdr.discarded_printf)) || be32_to_cpu(hdr.discarded_printf))
BRCMF_ERROR(("\nWLC_E_TRACE: [Discarded traces " brcmf_dbg(ERROR, "WLC_E_TRACE: [Discarded traces in dongle --> discarded_bytes %d discarded_printf %d]\n",
"in dongle -->discarded_bytes %d "
"discarded_printf %d]\n",
be32_to_cpu(hdr.discarded_bytes), be32_to_cpu(hdr.discarded_bytes),
be32_to_cpu(hdr.discarded_printf))) be32_to_cpu(hdr.discarded_printf));
;
nblost = be32_to_cpu(hdr.seqnum) - seqnum_prev - 1; nblost = be32_to_cpu(hdr.seqnum) - seqnum_prev - 1;
if (nblost > 0) if (nblost > 0)
BRCMF_ERROR(("\nWLC_E_TRACE: [Event lost --> " brcmf_dbg(ERROR, "WLC_E_TRACE: [Event lost --> seqnum %d nblost %d\n",
"seqnum %d nblost %d\n", be32_to_cpu(hdr.seqnum), nblost);
be32_to_cpu(hdr.seqnum), nblost));
seqnum_prev = be32_to_cpu(hdr.seqnum); seqnum_prev = be32_to_cpu(hdr.seqnum);
/* Display the trace buffer. Advance from \n to \n to /* 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; break;
case BRCMF_E_RSSI: case BRCMF_E_RSSI:
BRCMF_EVENT(("MACEVENT: %s %d\n", event_name, brcmf_dbg(EVENT, "MACEVENT: %s %d\n",
be32_to_cpu(*((int *)event_data)))); event_name, be32_to_cpu(*((int *)event_data)));
break; break;
default: default:
BRCMF_EVENT(("MACEVENT: %s %d, MAC %s, status %d, reason %d, " brcmf_dbg(EVENT, "MACEVENT: %s %d, MAC %s, status %d, reason %d, auth %d\n",
"auth %d\n", event_name, event_type, eabuf, event_name, event_type, eabuf,
(int)status, (int)reason, (int)auth_type)); (int)status, (int)reason, (int)auth_type);
break; break;
} }
/* show any appended data */ /* show any appended data */
if (datalen) { if (datalen) {
buf = (unsigned char *) event_data; buf = (unsigned char *) event_data;
BRCMF_EVENT((" data (%d) : ", datalen)); brcmf_dbg(EVENT, " data (%d) : ", datalen);
for (i = 0; i < datalen; i++) for (i = 0; i < datalen; i++)
BRCMF_EVENT((" 0x%02x ", *buf++)); brcmf_dbg(EVENT, " 0x%02x ", *buf++);
BRCMF_EVENT(("\n")); brcmf_dbg(EVENT, "\n");
} }
} }
#endif /* SHOW_EVENTS */ #endif /* SHOW_EVENTS */
@@ -727,14 +719,14 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
int evlen; int evlen;
if (memcmp(BRCM_OUI, &pvt_data->hdr.oui[0], DOT11_OUI_LEN)) { 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; return -EBADE;
} }
/* BRCM event pkt may be unaligned - use xxx_ua to load user_subtype. */ /* BRCM event pkt may be unaligned - use xxx_ua to load user_subtype. */
if (get_unaligned_be16(&pvt_data->hdr.usr_subtype) != if (get_unaligned_be16(&pvt_data->hdr.usr_subtype) !=
BCMILCP_BCM_SUBTYPE_EVENT) { BCMILCP_BCM_SUBTYPE_EVENT) {
BRCMF_ERROR(("%s: mismatched subtype, bailing\n", __func__)); brcmf_dbg(ERROR, "mismatched subtype, bailing\n");
return -EBADE; 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 *ifevent =
(struct brcmf_if_event *) event_data; (struct brcmf_if_event *) event_data;
BRCMF_TRACE(("%s: if event\n", __func__)); brcmf_dbg(TRACE, "if event\n");
if (ifevent->ifidx > 0 && if (ifevent->ifidx > 0 &&
ifevent->ifidx < BRCMF_MAX_IFS) { ifevent->ifidx < BRCMF_MAX_IFS) {
@@ -768,9 +760,8 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
else else
brcmf_del_if(drvr_priv, ifevent->ifidx); brcmf_del_if(drvr_priv, ifevent->ifidx);
} else { } else {
BRCMF_ERROR(("%s: Invalid ifidx %d for %s\n", brcmf_dbg(ERROR, "Invalid ifidx %d for %s\n",
__func__, ifevent->ifidx, ifevent->ifidx, event->ifname);
event->ifname));
} }
} }
/* send up the if event: btamp user needs it */ /* 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_ */ /* Fall through: this should get _everything_ */
*ifidx = brcmf_ifname2idx(drvr_priv, event->ifname); *ifidx = brcmf_ifname2idx(drvr_priv, event->ifname);
BRCMF_TRACE(("%s: MAC event %d, flags %x, status %x\n", brcmf_dbg(TRACE, "MAC event %d, flags %x, status %x\n",
__func__, type, flags, status)); type, flags, status);
/* put it back to BRCMF_E_NDIS_LINK */ /* put it back to BRCMF_E_NDIS_LINK */
if (type == BRCMF_E_NDIS_LINK) { if (type == BRCMF_E_NDIS_LINK) {
u32 temp; u32 temp;
temp = get_unaligned_be32(&event->event_type); temp = get_unaligned_be32(&event->event_type);
BRCMF_TRACE(("Converted to WLC_E_LINK type %d\n", brcmf_dbg(TRACE, "Converted to WLC_E_LINK type %d\n",
temp)); temp);
temp = be32_to_cpu(BRCMF_E_NDIS_LINK); temp = be32_to_cpu(BRCMF_E_NDIS_LINK);
memcpy((void *)(&pvt_data->msg.event_type), &temp, memcpy((void *)(&pvt_data->msg.event_type), &temp,
@@ -817,12 +808,12 @@ static int brcmf_c_pattern_atoh(char *src, char *dst)
{ {
int i; int i;
if (strncmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) { 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; return -EINVAL;
} }
src = src + 2; /* Skip past 0x */ src = src + 2; /* Skip past 0x */
if (strlen(src) % 2 != 0) { 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; return -EINVAL;
} }
for (i = 0; *src != '\0'; i++) { 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); arg_save = kmalloc(strlen(arg) + 1, GFP_ATOMIC);
if (!arg_save) { if (!arg_save) {
BRCMF_ERROR(("%s: kmalloc failed\n", __func__)); brcmf_dbg(ERROR, "kmalloc failed\n");
goto fail; goto fail;
} }
arg_org = arg_save; arg_org = arg_save;
@@ -866,7 +857,7 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
i = 0; i = 0;
if (NULL == argv[i]) { if (NULL == argv[i]) {
BRCMF_ERROR(("No args provided\n")); brcmf_dbg(ERROR, "No args provided\n");
goto fail; 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 = brcmf_proto_cdc_set_ioctl(drvr, 0, BRCMF_C_SET_VAR, buf, buf_len);
rc = rc >= 0 ? 0 : rc; rc = rc >= 0 ? 0 : rc;
if (rc) if (rc)
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n", brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
__func__, arg, rc)); arg, rc);
else else
BRCMF_TRACE(("%s: successfully added pktfilter %s\n", brcmf_dbg(TRACE, "successfully added pktfilter %s\n", arg);
__func__, arg));
/* Contorl the master mode */ /* Contorl the master mode */
brcmu_mkiovar("pkt_filter_mode", (char *)&master_mode, 4, buf, 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)); sizeof(buf));
rc = rc >= 0 ? 0 : rc; rc = rc >= 0 ? 0 : rc;
if (rc) if (rc)
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n", brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
__func__, arg, rc)); arg, rc);
fail: fail:
kfree(arg_org); 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); arg_save = kstrdup(arg, GFP_ATOMIC);
if (!arg_save) { if (!arg_save) {
BRCMF_ERROR(("%s: kmalloc failed\n", __func__)); brcmf_dbg(ERROR, "kmalloc failed\n");
goto fail; 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); buf = kmalloc(PKTFILTER_BUF_SIZE, GFP_ATOMIC);
if (!buf) { if (!buf) {
BRCMF_ERROR(("%s: kmalloc failed\n", __func__)); brcmf_dbg(ERROR, "kmalloc failed\n");
goto fail; goto fail;
} }
@@ -948,7 +938,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
i = 0; i = 0;
if (NULL == argv[i]) { if (NULL == argv[i]) {
BRCMF_ERROR(("No args provided\n")); brcmf_dbg(ERROR, "No args provided\n");
goto fail; goto fail;
} }
@@ -965,7 +955,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
pkt_filter.id = (u32)res; pkt_filter.id = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Polarity not provided\n")); brcmf_dbg(ERROR, "Polarity not provided\n");
goto fail; goto fail;
} }
@@ -975,7 +965,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
pkt_filter.negate_match = (u32)res; pkt_filter.negate_match = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Filter type not provided\n")); brcmf_dbg(ERROR, "Filter type not provided\n");
goto fail; goto fail;
} }
@@ -985,7 +975,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
pkt_filter.type = (u32)res; pkt_filter.type = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Offset not provided\n")); brcmf_dbg(ERROR, "Offset not provided\n");
goto fail; 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; pkt_filter.u.pattern.offset = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Bitmask not provided\n")); brcmf_dbg(ERROR, "Bitmask not provided\n");
goto fail; 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); (argv[i], (char *)pkt_filterp->u.pattern.mask_and_pattern);
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Pattern not provided\n")); brcmf_dbg(ERROR, "Pattern not provided\n");
goto fail; goto fail;
} }
@@ -1016,7 +1006,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
mask_and_pattern[mask_size]); mask_and_pattern[mask_size]);
if (mask_size != pattern_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; goto fail;
} }
@@ -1037,11 +1027,10 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
rc = rc >= 0 ? 0 : rc; rc = rc >= 0 ? 0 : rc;
if (rc) if (rc)
BRCMF_TRACE(("%s: failed to add pktfilter %s, retcode = %d\n", brcmf_dbg(TRACE, "failed to add pktfilter %s, retcode = %d\n",
__func__, arg, rc)); arg, rc);
else else
BRCMF_TRACE(("%s: successfully added pktfilter %s\n", brcmf_dbg(TRACE, "successfully added pktfilter %s\n", arg);
__func__, arg));
fail: fail:
kfree(arg_org); kfree(arg_org);
@@ -1059,11 +1048,11 @@ void brcmf_c_arp_offload_set(struct brcmf_pub *drvr, int arp_mode)
iovbuf, sizeof(iovbuf)); iovbuf, sizeof(iovbuf));
retcode = retcode >= 0 ? 0 : retcode; retcode = retcode >= 0 ? 0 : retcode;
if (retcode) if (retcode)
BRCMF_TRACE(("%s: failed to set ARP offload mode to 0x%x, " brcmf_dbg(TRACE, "failed to set ARP offload mode to 0x%x, retcode = %d\n",
"retcode = %d\n", __func__, arp_mode, retcode)); arp_mode, retcode);
else else
BRCMF_TRACE(("%s: successfully set ARP offload mode to 0x%x\n", brcmf_dbg(TRACE, "successfully set ARP offload mode to 0x%x\n",
__func__, arp_mode)); arp_mode);
} }
void brcmf_c_arp_offload_enable(struct brcmf_pub *drvr, int arp_enable) 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)); iovbuf, sizeof(iovbuf));
retcode = retcode >= 0 ? 0 : retcode; retcode = retcode >= 0 ? 0 : retcode;
if (retcode) if (retcode)
BRCMF_TRACE(("%s: failed to enabe ARP offload to %d, " brcmf_dbg(TRACE, "failed to enable ARP offload to %d, retcode = %d\n",
"retcode = %d\n", __func__, arp_enable, retcode)); arp_enable, retcode);
else else
BRCMF_TRACE(("%s: successfully enabed ARP offload to %d\n", brcmf_dbg(TRACE, "successfully enabled ARP offload to %d\n",
__func__, arp_enable)); arp_enable);
} }
int brcmf_c_preinit_ioctls(struct brcmf_pub *drvr) 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, if (brcmf_proto_cdc_set_ioctl(drvr, 0, BRCMF_C_SET_COUNTRY,
drvr->country_code, drvr->country_code,
sizeof(drvr->country_code)) < 0) sizeof(drvr->country_code)) < 0)
BRCMF_ERROR(("%s: country code setting failed\n", brcmf_dbg(ERROR, "country code setting failed\n");
__func__));
} }
/* query for 'ver' to get version info from firmware */ /* 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)); brcmf_proto_cdc_query_ioctl(drvr, 0, BRCMF_C_GET_VAR, buf, sizeof(buf));
strsep(&ptr, "\n"); strsep(&ptr, "\n");
/* Print fw version info */ /* 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 */ /* Match Host and Dongle rx alignment */
brcmu_mkiovar("bus:txglomalign", (char *)&dongle_align, 4, iovbuf, brcmu_mkiovar("bus:txglomalign", (char *)&dongle_align, 4, iovbuf,

View File

@@ -19,25 +19,21 @@
#if defined(BCMDBG) #if defined(BCMDBG)
#define BRCMF_ERROR(args) \ #define brcmf_dbg(level, fmt, ...) \
do {if ((brcmf_msg_level & BRCMF_ERROR_VAL) && (net_ratelimit())) \ do { \
printk args; } while (0) if (BRCMF_ERROR_VAL == BRCMF_##level##_VAL) { \
#define BRCMF_TRACE(args) do {if (brcmf_msg_level & BRCMF_TRACE_VAL) \ if (brcmf_msg_level & BRCMF_##level##_VAL) { \
printk args; } while (0) if (net_ratelimit()) \
#define BRCMF_INFO(args) do {if (brcmf_msg_level & BRCMF_INFO_VAL) \ printk(KERN_DEBUG "%s: " fmt, \
printk args; } while (0) __func__, ##__VA_ARGS__); \
#define BRCMF_DATA(args) do {if (brcmf_msg_level & BRCMF_DATA_VAL) \ } \
printk args; } while (0) } else { \
#define BRCMF_CTL(args) do {if (brcmf_msg_level & BRCMF_CTL_VAL) \ if (brcmf_msg_level & BRCMF_##level##_VAL) { \
printk args; } while (0) printk(KERN_DEBUG "%s: " fmt, \
#define BRCMF_TIMER(args) do {if (brcmf_msg_level & BRCMF_TIMER_VAL) \ __func__, ##__VA_ARGS__); \
printk args; } while (0) } \
#define BRCMF_INTR(args) do {if (brcmf_msg_level & BRCMF_INTR_VAL) \ } \
printk args; } while (0) } 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_DATA_ON() (brcmf_msg_level & BRCMF_DATA_VAL) #define BRCMF_DATA_ON() (brcmf_msg_level & BRCMF_DATA_VAL)
#define BRCMF_CTL_ON() (brcmf_msg_level & BRCMF_CTL_VAL) #define BRCMF_CTL_ON() (brcmf_msg_level & BRCMF_CTL_VAL)
@@ -47,15 +43,7 @@
#else /* (defined BCMDBG) || (defined BCMDBG) */ #else /* (defined BCMDBG) || (defined BCMDBG) */
#define BRCMF_ERROR(args) do {if (net_ratelimit()) printk args; } while (0) #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
#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_DATA_ON() 0 #define BRCMF_DATA_ON() 0
#define BRCMF_CTL_ON() 0 #define BRCMF_CTL_ON() 0

View File

@@ -163,7 +163,7 @@ int brcmf_ifname2idx(struct brcmf_info *drvr_priv, char *name)
&& !strncmp(drvr_priv->iflist[i]->name, name, IFNAMSIZ)) && !strncmp(drvr_priv->iflist[i]->name, name, IFNAMSIZ))
break; 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 */ 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; struct brcmf_info *drvr_priv = drvr->info;
if (ifidx < 0 || ifidx >= BRCMF_MAX_IFS) { 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>"; return "<if_bad>";
} }
if (drvr_priv->iflist[ifidx] == NULL) { 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>"; 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); buflen = sizeof("mcast_list") + sizeof(cnt) + (cnt * ETH_ALEN);
bufp = buf = kmalloc(buflen, GFP_ATOMIC); bufp = buf = kmalloc(buflen, GFP_ATOMIC);
if (!bufp) { if (!bufp) {
BRCMF_ERROR(("%s: out of memory for mcast_list, cnt %d\n", brcmf_dbg(ERROR, "%s: out of memory for mcast_list, cnt %d\n",
brcmf_ifname(&drvr_priv->pub, ifidx), cnt)); brcmf_ifname(&drvr_priv->pub, ifidx), cnt);
return; 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("%s: set mcast_list failed, cnt %d\n", brcmf_dbg(ERROR, "%s: set mcast_list failed, cnt %d\n",
brcmf_ifname(&drvr_priv->pub, ifidx), cnt)); brcmf_ifname(&drvr_priv->pub, ifidx), cnt);
allmulti = cnt ? true : allmulti; 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); buflen = sizeof("allmulti") + sizeof(allmulti);
buf = kmalloc(buflen, GFP_ATOMIC); buf = kmalloc(buflen, GFP_ATOMIC);
if (!buf) { if (!buf) {
BRCMF_ERROR(("%s: out of memory for allmulti\n", brcmf_dbg(ERROR, "%s: out of memory for allmulti\n",
brcmf_ifname(&drvr_priv->pub, ifidx))); brcmf_ifname(&drvr_priv->pub, ifidx));
return; return;
} }
allmulti = cpu_to_le32(allmulti); allmulti = cpu_to_le32(allmulti);
if (!brcmu_mkiovar if (!brcmu_mkiovar
("allmulti", (void *)&allmulti, sizeof(allmulti), buf, buflen)) { ("allmulti", (void *)&allmulti, sizeof(allmulti), buf, buflen)) {
BRCMF_ERROR(("%s: mkiovar failed for allmulti, datalen %d " brcmf_dbg(ERROR, "%s: mkiovar failed for allmulti, datalen %d buflen %u\n",
"buflen %u\n",
brcmf_ifname(&drvr_priv->pub, ifidx), brcmf_ifname(&drvr_priv->pub, ifidx),
(int)sizeof(allmulti), buflen)); (int)sizeof(allmulti), buflen);
kfree(buf); kfree(buf);
return; 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("%s: set allmulti %d failed\n", brcmf_dbg(ERROR, "%s: set allmulti %d failed\n",
brcmf_ifname(&drvr_priv->pub, ifidx), brcmf_ifname(&drvr_priv->pub, ifidx),
le32_to_cpu(allmulti))); le32_to_cpu(allmulti));
} }
kfree(buf); 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("%s: set promisc %d failed\n", brcmf_dbg(ERROR, "%s: set promisc %d failed\n",
brcmf_ifname(&drvr_priv->pub, ifidx), brcmf_ifname(&drvr_priv->pub, ifidx),
le32_to_cpu(allmulti))); 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; struct brcmf_ioctl ioc;
int ret; int ret;
BRCMF_TRACE(("%s enter\n", __func__)); brcmf_dbg(TRACE, "enter\n");
if (!brcmu_mkiovar if (!brcmu_mkiovar("cur_etheraddr", (char *)addr, ETH_ALEN, buf, 32)) {
("cur_etheraddr", (char *)addr, ETH_ALEN, buf, 32)) { brcmf_dbg(ERROR, "%s: mkiovar failed for cur_etheraddr\n",
BRCMF_ERROR(("%s: mkiovar failed for cur_etheraddr\n", brcmf_ifname(&drvr_priv->pub, ifidx));
brcmf_ifname(&drvr_priv->pub, ifidx)));
return -1; return -1;
} }
memset(&ioc, 0, sizeof(ioc)); 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) if (ret < 0)
BRCMF_ERROR(("%s: set cur_etheraddr failed\n", brcmf_dbg(ERROR, "%s: set cur_etheraddr failed\n",
brcmf_ifname(&drvr_priv->pub, ifidx))); brcmf_ifname(&drvr_priv->pub, ifidx));
else else
memcpy(drvr_priv->iflist[ifidx]->net->dev_addr, addr, ETH_ALEN); 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; 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) { switch (ifp->state) {
case BRCMF_E_IF_ADD: 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. * in case we missed the BRCMF_E_IF_DEL event.
*/ */
if (ifp->net != NULL) { if (ifp->net != NULL) {
BRCMF_ERROR(("%s: ERROR: netdev:%s already exists, " brcmf_dbg(ERROR, "ERROR: netdev:%s already exists, try free & unregister\n",
"try free & unregister\n", ifp->net->name);
__func__, ifp->net->name));
netif_stop_queue(ifp->net); netif_stop_queue(ifp->net);
unregister_netdev(ifp->net); unregister_netdev(ifp->net);
free_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 */ /* Allocate etherdev, including space for private structure */
ifp->net = alloc_etherdev(sizeof(drvr_priv)); ifp->net = alloc_etherdev(sizeof(drvr_priv));
if (!ifp->net) { if (!ifp->net) {
BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__)); brcmf_dbg(ERROR, "OOM - alloc_etherdev\n");
ret = -ENOMEM; ret = -ENOMEM;
} }
if (ret == 0) { if (ret == 0) {
@@ -374,9 +371,8 @@ static void brcmf_op_if(struct brcmf_if *ifp)
sizeof(drvr_priv)); sizeof(drvr_priv));
err = brcmf_net_attach(&drvr_priv->pub, ifp->idx); err = brcmf_net_attach(&drvr_priv->pub, ifp->idx);
if (err != 0) { if (err != 0) {
BRCMF_ERROR(("%s: brcmf_net_attach failed, " brcmf_dbg(ERROR, "brcmf_net_attach failed, err %d\n",
"err %d\n", err);
__func__, err));
ret = -EOPNOTSUPP; ret = -EOPNOTSUPP;
} else { } else {
#ifdef SOFTAP #ifdef SOFTAP
@@ -391,17 +387,15 @@ static void brcmf_op_if(struct brcmf_if *ifp)
wl0.1 is ready */ wl0.1 is ready */
up(&ap_eth_sema); up(&ap_eth_sema);
#endif #endif
BRCMF_TRACE(("\n ==== pid:%x, net_device for " brcmf_dbg(TRACE, " ==== pid:%x, net_device for if:%s created ===\n",
"if:%s created ===\n\n", current->pid, ifp->net->name);
current->pid, ifp->net->name));
ifp->state = 0; ifp->state = 0;
} }
} }
break; break;
case BRCMF_E_IF_DEL: case BRCMF_E_IF_DEL:
if (ifp->net != NULL) { if (ifp->net != NULL) {
BRCMF_TRACE(("\n%s: got 'WLC_E_IF_DEL' state\n", brcmf_dbg(TRACE, "got 'WLC_E_IF_DEL' state\n");
__func__));
netif_stop_queue(ifp->net); netif_stop_queue(ifp->net);
unregister_netdev(ifp->net); unregister_netdev(ifp->net);
ret = BRCMF_DEL_IF; /* Make sure the free_netdev() ret = BRCMF_DEL_IF; /* Make sure the free_netdev()
@@ -409,7 +403,7 @@ static void brcmf_op_if(struct brcmf_if *ifp)
} }
break; break;
default: default:
BRCMF_ERROR(("%s: bad op %d\n", __func__, ifp->state)); brcmf_dbg(ERROR, "bad op %d\n", ifp->state);
break; break;
} }
@@ -458,26 +452,21 @@ static int _brcmf_sysioc_thread(void *data)
brcmf_op_if(ifentry); brcmf_op_if(ifentry);
#ifdef SOFTAP #ifdef SOFTAP
if (drvr_priv->iflist[i] == NULL) { if (drvr_priv->iflist[i] == NULL) {
BRCMF_TRACE(("\n\n %s: interface %d " brcmf_dbg(TRACE, "interface %d removed!\n",
"removed!\n", __func__, i);
i));
continue; continue;
} }
if (in_ap && drvr_priv->set_macaddress) { if (in_ap && drvr_priv->set_macaddress) {
BRCMF_TRACE(("attempt to set MAC for" brcmf_dbg(TRACE, "attempt to set MAC for %s in AP Mode, blocked.\n",
" %s in AP Mode," ifentry->net->name);
" blocked.\n",
ifentry->net->name));
drvr_priv->set_macaddress = false; drvr_priv->set_macaddress = false;
continue; continue;
} }
if (in_ap && drvr_priv->set_multicast) { if (in_ap && drvr_priv->set_multicast) {
BRCMF_TRACE(("attempt to set MULTICAST " brcmf_dbg(TRACE, "attempt to set MULTICAST list for %s in AP Mode, blocked.\n",
"list for %s in AP Mode, " ifentry->net->name);
"blocked.\n",
ifentry->net->name));
drvr_priv->set_multicast = false; drvr_priv->set_multicast = false;
continue; 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); struct brcmf_info *drvr_priv = *(struct brcmf_info **) netdev_priv(net);
int ifidx; int ifidx;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
/* Reject if down */ /* Reject if down */
if (!drvr_priv->pub.up || (drvr_priv->pub.busstate == BRCMF_BUS_DOWN)) { if (!drvr_priv->pub.up || (drvr_priv->pub.busstate == BRCMF_BUS_DOWN)) {
BRCMF_ERROR(("%s: xmit rejected pub.up=%d busstate=%d\n", brcmf_dbg(ERROR, "xmit rejected pub.up=%d busstate=%d\n",
__func__, drvr_priv->pub.up, drvr_priv->pub.up, drvr_priv->pub.busstate);
drvr_priv->pub.busstate));
netif_stop_queue(net); netif_stop_queue(net);
return -ENODEV; return -ENODEV;
} }
ifidx = brcmf_net2idx(drvr_priv, net); ifidx = brcmf_net2idx(drvr_priv, net);
if (ifidx == BRCMF_BAD_IF) { 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); netif_stop_queue(net);
return -ENODEV; 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) { if (skb_headroom(skb) < drvr_priv->pub.hdrlen) {
struct sk_buff *skb2; struct sk_buff *skb2;
BRCMF_INFO(("%s: insufficient headroom\n", brcmf_dbg(INFO, "%s: insufficient headroom\n",
brcmf_ifname(&drvr_priv->pub, ifidx))); brcmf_ifname(&drvr_priv->pub, ifidx));
drvr_priv->pub.tx_realloc++; drvr_priv->pub.tx_realloc++;
skb2 = skb_realloc_headroom(skb, drvr_priv->pub.hdrlen); skb2 = skb_realloc_headroom(skb, drvr_priv->pub.hdrlen);
dev_kfree_skb(skb); dev_kfree_skb(skb);
skb = skb2; skb = skb2;
if (skb == NULL) { if (skb == NULL) {
BRCMF_ERROR(("%s: skb_realloc_headroom failed\n", brcmf_dbg(ERROR, "%s: skb_realloc_headroom failed\n",
brcmf_ifname(&drvr_priv->pub, ifidx))); brcmf_ifname(&drvr_priv->pub, ifidx));
ret = -ENOMEM; ret = -ENOMEM;
goto done; goto done;
} }
@@ -614,7 +602,7 @@ void brcmf_txflowcontrol(struct brcmf_pub *drvr, int ifidx, bool state)
struct net_device *net; struct net_device *net;
struct brcmf_info *drvr_priv = drvr->info; struct brcmf_info *drvr_priv = drvr->info;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
drvr->txoff = state; drvr->txoff = state;
net = drvr_priv->iflist[ifidx]->net; 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_if *ifp;
struct brcmf_event_msg event; struct brcmf_event_msg event;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
save_pktbuf = skb; save_pktbuf = skb;
@@ -728,7 +716,7 @@ static struct net_device_stats *brcmf_netdev_get_stats(struct net_device *net)
struct brcmf_if *ifp; struct brcmf_if *ifp;
int ifidx; int ifidx;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
ifidx = brcmf_net2idx(drvr_priv, net); ifidx = brcmf_net2idx(drvr_priv, net);
if (ifidx == BRCMF_BAD_IF) 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) { if (ret < 0) {
/* Check for older dongle image that doesn't support toe_ol */ /* Check for older dongle image that doesn't support toe_ol */
if (ret == -EIO) { if (ret == -EIO) {
BRCMF_ERROR(("%s: toe not supported by device\n", brcmf_dbg(ERROR, "%s: toe not supported by device\n",
brcmf_ifname(&drvr_priv->pub, ifidx))); brcmf_ifname(&drvr_priv->pub, ifidx));
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
BRCMF_INFO(("%s: could not get toe_ol: ret=%d\n", brcmf_dbg(INFO, "%s: could not get toe_ol: ret=%d\n",
brcmf_ifname(&drvr_priv->pub, ifidx), ret)); brcmf_ifname(&drvr_priv->pub, ifidx), ret);
return 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("%s: could not set toe_ol: ret=%d\n", brcmf_dbg(ERROR, "%s: could not set toe_ol: ret=%d\n",
brcmf_ifname(&drvr_priv->pub, ifidx), ret)); brcmf_ifname(&drvr_priv->pub, ifidx), ret);
return 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); ret = brcmf_proto_ioctl(&drvr_priv->pub, ifidx, &ioc, ioc.buf, ioc.len);
if (ret < 0) { if (ret < 0) {
BRCMF_ERROR(("%s: could not set toe: ret=%d\n", brcmf_dbg(ERROR, "%s: could not set toe: ret=%d\n",
brcmf_ifname(&drvr_priv->pub, ifidx), ret)); brcmf_ifname(&drvr_priv->pub, ifidx), ret);
return ret; return ret;
} }
@@ -857,7 +845,7 @@ static int brcmf_ethtool(struct brcmf_info *drvr_priv, void *uaddr)
u32 toe_cmpnt, csum_dir; u32 toe_cmpnt, csum_dir;
int ret; int ret;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
/* all ethtool calls start with a cmd word */ /* all ethtool calls start with a cmd word */
if (copy_from_user(&cmd, uaddr, sizeof(u32))) 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 */ /* otherwise, require dongle to be up */
else if (!drvr_priv->pub.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; 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); sprintf(info.version, "%lu", drvr_priv->pub.drv_version);
if (copy_to_user(uaddr, &info, sizeof(info))) if (copy_to_user(uaddr, &info, sizeof(info)))
return -EFAULT; return -EFAULT;
BRCMF_CTL(("%s: given %*s, returning %s\n", __func__, brcmf_dbg(CTL, "given %*s, returning %s\n",
(int)sizeof(drvname), drvname, info.driver)); (int)sizeof(drvname), drvname, info.driver);
break; break;
/* Get toe offload components from dongle */ /* 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; bool is_set_key_cmd;
ifidx = brcmf_net2idx(drvr_priv, net); 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) if (ifidx == BRCMF_BAD_IF)
return -1; 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) */ /* send to dongle (must be up, and wl) */
if ((drvr_priv->pub.busstate != BRCMF_BUS_DATA)) { if ((drvr_priv->pub.busstate != BRCMF_BUS_DATA)) {
BRCMF_ERROR(("%s DONGLE_DOWN,__func__\n", __func__)); brcmf_dbg(ERROR, "DONGLE_DOWN\n");
bcmerror = -EIO; bcmerror = -EIO;
goto done; goto done;
} }
@@ -1080,7 +1068,7 @@ static int brcmf_netdev_stop(struct net_device *net)
#if !defined(IGNORE_ETH0_DOWN) #if !defined(IGNORE_ETH0_DOWN)
struct brcmf_info *drvr_priv = *(struct brcmf_info **) netdev_priv(net); 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(); brcmf_cfg80211_down();
if (drvr_priv->pub.up == 0) if (drvr_priv->pub.up == 0)
return 0; return 0;
@@ -1089,8 +1077,7 @@ static int brcmf_netdev_stop(struct net_device *net)
drvr_priv->pub.up = 0; drvr_priv->pub.up = 0;
netif_stop_queue(net); netif_stop_queue(net);
#else #else
BRCMF_ERROR(("BYPASS %s:due to BRCM compilation: under investigation\n", brcmf_dbg(ERROR, "BYPASSed due to BRCM compilation: under investigation\n");
__func__));
#endif /* !defined(IGNORE_ETH0_DOWN) */ #endif /* !defined(IGNORE_ETH0_DOWN) */
return 0; return 0;
@@ -1103,15 +1090,14 @@ static int brcmf_netdev_open(struct net_device *net)
int ifidx = brcmf_net2idx(drvr_priv, net); int ifidx = brcmf_net2idx(drvr_priv, net);
s32 ret = 0; 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 */ if (ifidx == 0) { /* do it only for primary eth0 */
/* try to bring up bus */ /* try to bring up bus */
ret = brcmf_bus_start(&drvr_priv->pub); ret = brcmf_bus_start(&drvr_priv->pub);
if (ret != 0) { if (ret != 0) {
BRCMF_ERROR(("%s: failed with code %d\n", brcmf_dbg(ERROR, "failed with code %d\n", ret);
__func__, ret));
return -1; return -1;
} }
atomic_set(&drvr_priv->pend_8021x_cnt, 0); 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); netif_start_queue(net);
drvr_priv->pub.up = 1; drvr_priv->pub.up = 1;
if (unlikely(brcmf_cfg80211_up())) { if (unlikely(brcmf_cfg80211_up())) {
BRCMF_ERROR(("%s: failed to bring up cfg80211\n", brcmf_dbg(ERROR, "failed to bring up cfg80211\n");
__func__));
return -1; return -1;
} }
@@ -1145,13 +1130,13 @@ brcmf_add_if(struct brcmf_info *drvr_priv, int ifidx, struct net_device *net,
{ {
struct brcmf_if *ifp; 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]; ifp = drvr_priv->iflist[ifidx];
if (!ifp) { if (!ifp) {
ifp = kmalloc(sizeof(struct brcmf_if), GFP_ATOMIC); ifp = kmalloc(sizeof(struct brcmf_if), GFP_ATOMIC);
if (!ifp) { if (!ifp) {
BRCMF_ERROR(("%s: OOM - struct brcmf_if\n", __func__)); brcmf_dbg(ERROR, "OOM - struct brcmf_if\n");
return -ENOMEM; return -ENOMEM;
} }
} }
@@ -1177,11 +1162,11 @@ void brcmf_del_if(struct brcmf_info *drvr_priv, int ifidx)
{ {
struct brcmf_if *ifp; struct brcmf_if *ifp;
BRCMF_TRACE(("%s: idx %d\n", __func__, ifidx)); brcmf_dbg(TRACE, "idx %d\n", ifidx);
ifp = drvr_priv->iflist[ifidx]; ifp = drvr_priv->iflist[ifidx];
if (!ifp) { if (!ifp) {
BRCMF_ERROR(("%s: Null interface\n", __func__)); brcmf_dbg(ERROR, "Null interface\n");
return; return;
} }
@@ -1195,19 +1180,19 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
struct brcmf_info *drvr_priv = NULL; struct brcmf_info *drvr_priv = NULL;
struct net_device *net; struct net_device *net;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
/* Allocate etherdev, including space for private structure */ /* Allocate etherdev, including space for private structure */
net = alloc_etherdev(sizeof(drvr_priv)); net = alloc_etherdev(sizeof(drvr_priv));
if (!net) { if (!net) {
BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__)); brcmf_dbg(ERROR, "OOM - alloc_etherdev\n");
goto fail; goto fail;
} }
/* Allocate primary brcmf_info */ /* Allocate primary brcmf_info */
drvr_priv = kzalloc(sizeof(struct brcmf_info), GFP_ATOMIC); drvr_priv = kzalloc(sizeof(struct brcmf_info), GFP_ATOMIC);
if (!drvr_priv) { if (!drvr_priv) {
BRCMF_ERROR(("%s: OOM - alloc brcmf_info\n", __func__)); brcmf_dbg(ERROR, "OOM - alloc brcmf_info\n");
goto fail; goto fail;
} }
@@ -1244,13 +1229,13 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
/* Attach and link in the protocol */ /* Attach and link in the protocol */
if (brcmf_proto_attach(&drvr_priv->pub) != 0) { 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; goto fail;
} }
/* Attach and link in the cfg80211 */ /* Attach and link in the cfg80211 */
if (unlikely(brcmf_cfg80211_attach(net, &drvr_priv->pub))) { 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; goto fail;
} }
@@ -1289,19 +1274,18 @@ int brcmf_bus_start(struct brcmf_pub *drvr)
/* Room for "event_msgs" + '\0' + bitvec */ /* Room for "event_msgs" + '\0' + bitvec */
char iovbuf[BRCMF_EVENTING_MASK_LEN + 12]; char iovbuf[BRCMF_EVENTING_MASK_LEN + 12];
BRCMF_TRACE(("%s:\n", __func__)); brcmf_dbg(TRACE, "\n");
/* Bring up the bus */ /* Bring up the bus */
ret = brcmf_sdbrcm_bus_init(&drvr_priv->pub, true); ret = brcmf_sdbrcm_bus_init(&drvr_priv->pub, true);
if (ret != 0) { if (ret != 0) {
BRCMF_ERROR(("%s, brcmf_sdbrcm_bus_init failed %d\n", __func__, brcmf_dbg(ERROR, "brcmf_sdbrcm_bus_init failed %d\n", ret);
ret));
return ret; return ret;
} }
/* If bus is not ready, can't come up */ /* If bus is not ready, can't come up */
if (drvr_priv->pub.busstate != BRCMF_BUS_DATA) { 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; return -ENODEV;
} }
@@ -1361,7 +1345,7 @@ int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
u8 temp_addr[ETH_ALEN] = { u8 temp_addr[ETH_ALEN] = {
0x00, 0x90, 0x4c, 0x11, 0x22, 0x33}; 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 = drvr_priv->iflist[ifidx]->net;
net->netdev_ops = &brcmf_netdev_ops_pri; net->netdev_ops = &brcmf_netdev_ops_pri;
@@ -1376,7 +1360,7 @@ int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
} }
if (ifidx == 1) { if (ifidx == 1) {
BRCMF_TRACE(("%s ACCESS POINT MAC:\n", __func__)); brcmf_dbg(TRACE, "ACCESS POINT MAC:\n");
/* ACCESSPOINT INTERFACE CASE */ /* ACCESSPOINT INTERFACE CASE */
temp_addr[0] |= 0X02; /* set bit 2 , temp_addr[0] |= 0X02; /* set bit 2 ,
- Locally Administered address */ - 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); memcpy(net->dev_addr, temp_addr, ETH_ALEN);
if (register_netdev(net) != 0) { if (register_netdev(net) != 0) {
BRCMF_ERROR(("%s: couldn't register the net device\n", brcmf_dbg(ERROR, "couldn't register the net device\n");
__func__));
goto fail; 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; return 0;
@@ -1409,7 +1392,7 @@ static void brcmf_bus_detach(struct brcmf_pub *drvr)
{ {
struct brcmf_info *drvr_priv; struct brcmf_info *drvr_priv;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
if (drvr) { if (drvr) {
drvr_priv = drvr->info; drvr_priv = drvr->info;
@@ -1427,7 +1410,7 @@ void brcmf_detach(struct brcmf_pub *drvr)
{ {
struct brcmf_info *drvr_priv; struct brcmf_info *drvr_priv;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
if (drvr) { if (drvr) {
drvr_priv = drvr->info; drvr_priv = drvr->info;
@@ -1467,7 +1450,7 @@ void brcmf_detach(struct brcmf_pub *drvr)
static void __exit brcmf_module_cleanup(void) static void __exit brcmf_module_cleanup(void)
{ {
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
brcmf_bus_unregister(); brcmf_bus_unregister();
} }
@@ -1476,12 +1459,12 @@ static int __init brcmf_module_init(void)
{ {
int error; int error;
BRCMF_TRACE(("%s: Enter\n", __func__)); brcmf_dbg(TRACE, "Enter\n");
error = brcmf_bus_register(); error = brcmf_bus_register();
if (error) { if (error) {
BRCMF_ERROR(("%s: brcmf_bus_register failed\n", __func__)); brcmf_dbg(ERROR, "brcmf_bus_register failed\n");
goto failed; goto failed;
} }
return 0; return 0;
@@ -1583,7 +1566,7 @@ int brcmf_write_to_file(struct brcmf_pub *drvr, u8 *buf, int size)
/* open file to write */ /* open file to write */
fp = filp_open("/tmp/mem_dump", O_WRONLY | O_CREAT, 0640); fp = filp_open("/tmp/mem_dump", O_WRONLY | O_CREAT, 0640);
if (!fp) { if (!fp) {
BRCMF_ERROR(("%s: open file error\n", __func__)); brcmf_dbg(ERROR, "open file error\n");
ret = -1; ret = -1;
goto exit; goto exit;
} }

File diff suppressed because it is too large Load Diff