Message ID | 20240828-wireless-mainline-v13-4-9998b19cfe7e@wesion.com (mailing list archive) |
---|---|
State | Deferred |
Delegated to: | Kalle Valo |
Headers | show |
Series | Add AP6276P wireless support | expand |
On Wed, Aug 28, 2024 at 04:49:25PM +0800, Jacobe Zang wrote: > WiFi modules often require 32kHz clock to function. Add support to > enable the clock to PCIe driver and move "brcm,bcm4329-fmac" check > to the top of brcmf_of_probe. Change function prototypes from void > to int and add appropriate errno's for return values that will be > send to bus when error occurred. > > Co-developed-by: Ondrej Jirman <megi@xff.cz> > Signed-off-by: Ondrej Jirman <megi@xff.cz> > Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com> > Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> > Reviewed-by: Sai Krishna <saikrishnag@marvell.com> > Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com> ... > @@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) > /* Allocate private bus interface state */ > bus = kzalloc(sizeof(*bus), GFP_ATOMIC); > if (!bus) > + ret = -ENOMEM; > goto fail; > + } > Perhaps a local change didn't make it into git, or something like that. But this does not compile. As was also the case in v12. Please take time to test your patches, not just the local tree. > bus->sdiodev = sdiodev; > sdiodev->bus = bus;
On 2024/8/28 23:20, Simon Horman wrote: > On Wed, Aug 28, 2024 at 04:49:25PM +0800, Jacobe Zang wrote: >> WiFi modules often require 32kHz clock to function. Add support to >> enable the clock to PCIe driver and move "brcm,bcm4329-fmac" check >> to the top of brcmf_of_probe. Change function prototypes from void >> to int and add appropriate errno's for return values that will be >> send to bus when error occurred. >> >> Co-developed-by: Ondrej Jirman <megi@xff.cz> >> Signed-off-by: Ondrej Jirman <megi@xff.cz> >> Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com> >> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> >> Reviewed-by: Sai Krishna <saikrishnag@marvell.com> >> Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com> > > ... > >> @@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) >> /* Allocate private bus interface state */ >> bus = kzalloc(sizeof(*bus), GFP_ATOMIC); >> if (!bus) >> + ret = -ENOMEM; >> goto fail; >> + } >> > > Perhaps a local change didn't make it into git, or something like that. > But this does not compile. As was also the case in v12. > Please take time to test your patches, not just the local tree. > Thanks for your correction. I will fix it. >> bus->sdiodev = sdiodev; >> sdiodev->bus = bus; >
Hi Jacobe, kernel test robot noticed the following build errors: [auto build test ERROR on dabcfd5e116800496eb9bec2ba7c015ca2043aa0] url: https://github.com/intel-lab-lkp/linux/commits/Jacobe-Zang/dt-bindings-net-wireless-brcm4329-fmac-add-pci14e4-449d/20240828-165201 base: dabcfd5e116800496eb9bec2ba7c015ca2043aa0 patch link: https://lore.kernel.org/r/20240828-wireless-mainline-v13-4-9998b19cfe7e%40wesion.com patch subject: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240830/202408300052.uYcuFzk0-lkp@intel.com/config) compiler: m68k-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240830/202408300052.uYcuFzk0-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202408300052.uYcuFzk0-lkp@intel.com/ All error/warnings (new ones prefixed by >>): drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: In function 'brcmf_sdio_probe': >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4456:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 4456 | if (!bus) | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 4458 | goto fail; | ^~~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: error: label 'fail' used but not defined >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4450:34: warning: unused variable 'fwreq' [-Wunused-variable] 4450 | struct brcmf_fw_request *fwreq; | ^~~~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4449:34: warning: unused variable 'wq' [-Wunused-variable] 4449 | struct workqueue_struct *wq; | ^~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4447:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable] 4447 | int ret; | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: At top level: >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4461:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4461 | bus->sdiodev = sdiodev; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4462:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4462 | sdiodev->bus = bus; | ^~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4463:29: error: expected declaration specifiers or '...' before '&' token 4463 | skb_queue_head_init(&bus->glom); | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4464:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4464 | bus->txbound = BRCMF_TXBOUND; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4465:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4465 | bus->rxbound = BRCMF_RXBOUND; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4466:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4466 | bus->txminmax = BRCMF_TXMINMAX; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4467:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4467 | bus->tx_seq = SDPCM_SEQ_WRAP - 1; | ^~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: warning: data definition has no type or storage class 4470 | wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI, | ^~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: error: type defaults to 'int' in declaration of 'wq' [-Wimplicit-int] In file included from include/linux/netdevice.h:35, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:12: >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4471:48: error: 'sdiodev' undeclared here (not in a function) 4471 | dev_name(&sdiodev->func1->dev)); | ^~~~~~~ include/linux/workqueue.h:524:72: note: in definition of macro 'alloc_ordered_workqueue' 524 | alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args) | ^~~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4472:9: error: expected identifier or '(' before 'if' 4472 | if (!wq) { | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: data definition has no type or storage class 4477 | brcmf_sdiod_freezer_count(sdiodev); | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: type defaults to 'int' in declaration of 'brcmf_sdiod_freezer_count' [-Wimplicit-int] >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type] >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: conflicting types for 'brcmf_sdiod_freezer_count'; have 'int()' In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:32: drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:355:6: note: previous declaration of 'brcmf_sdiod_freezer_count' with type 'void(struct brcmf_sdio_dev *)' 355 | void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev); | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> include/linux/workqueue.h:301:9: error: expected identifier or '(' before 'do' 301 | do { \ | ^~ include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK' 308 | __INIT_WORK((_work), (_func), 0) | ^~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK' 4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); | ^~~~~~~~~ >> include/linux/workqueue.h:305:11: error: expected identifier or '(' before 'while' 305 | } while (0) | ^~~~~ include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK' 308 | __INIT_WORK((_work), (_func), 0) | ^~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK' 4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); | ^~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4479:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4479 | bus->brcmf_wq = wq; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: warning: data definition has no type or storage class 4482 | ret = brcmf_sdio_probe_attach(bus); | ^~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: error: type defaults to 'int' in declaration of 'ret' [-Wimplicit-int] >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:39: error: 'bus' undeclared here (not in a function) 4482 | ret = brcmf_sdio_probe_attach(bus); | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4483:9: error: expected identifier or '(' before 'if' 4483 | if (ret < 0) { | ^~ In file included from include/linux/sched.h:2148, from include/linux/kthread.h:6, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:9: >> include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do' 332 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init' 4488 | spin_lock_init(&bus->rxctl_lock); | ^~~~~~~~~~~~~~ >> include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while' 337 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init' 4488 | spin_lock_init(&bus->rxctl_lock); | ^~~~~~~~~~~~~~ include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do' 332 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init' 4489 | spin_lock_init(&bus->txq_lock); | ^~~~~~~~~~~~~~ include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while' 337 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init' 4489 | spin_lock_init(&bus->txq_lock); | ^~~~~~~~~~~~~~ In file included from include/linux/sysctl.h:27, from include/net/net_namespace.h:12, from include/linux/netdevice.h:38: include/linux/wait.h:65:9: error: expected identifier or '(' before 'do' 65 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head' 4490 | init_waitqueue_head(&bus->ctrl_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:69:11: error: expected identifier or '(' before 'while' 69 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head' 4490 | init_waitqueue_head(&bus->ctrl_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:65:9: error: expected identifier or '(' before 'do' 65 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head' 4491 | init_waitqueue_head(&bus->dcmd_resp_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:69:11: error: expected identifier or '(' before 'while' 69 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head' 4491 | init_waitqueue_head(&bus->dcmd_resp_wait); | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/netdevice.h:24: include/linux/timer.h:105:24: error: expected declaration specifiers or '...' before '(' token 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ include/linux/timer.h:105:34: error: expected declaration specifiers or '...' before '(' token 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ include/linux/timer.h:105:41: error: expected declaration specifiers or '...' before '(' token 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ In file included from include/uapi/linux/posix_types.h:5, from include/uapi/linux/types.h:14, from include/linux/types.h:6, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:6: include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token 8 | #define NULL ((void *)0) | ^ include/linux/timer.h:105:51: note: in expansion of macro 'NULL' 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^~~~ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token 8 | #define NULL ((void *)0) | ^ include/linux/timer.h:105:57: note: in expansion of macro 'NULL' 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^~~~ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ vim +/fail +4458 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c 2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4444 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4445 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4446 { 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4447 int ret; e92eedf4e080fc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-11-22 4448 struct brcmf_sdio *bus; 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4449 struct workqueue_struct *wq; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4450 struct brcmf_fw_request *fwreq; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4451 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4452 brcmf_dbg(TRACE, "Enter\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4453 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4454 /* Allocate private bus interface state */ dcb77f854ae086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Erick Archer 2024-05-27 4455 bus = kzalloc(sizeof(*bus), GFP_ATOMIC); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4456 if (!bus) b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4457 ret = -ENOMEM; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4458 goto fail; b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4459 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4460 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4461 bus->sdiodev = sdiodev; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4462 sdiodev->bus = bus; b83db862ffb871 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-19 @4463 skb_queue_head_init(&bus->glom); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4464 bus->txbound = BRCMF_TXBOUND; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4465 bus->rxbound = BRCMF_RXBOUND; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4466 bus->txminmax = BRCMF_TXMINMAX; 6bc52319c2c688 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 @4467 bus->tx_seq = SDPCM_SEQ_WRAP - 1; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4468 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4469 /* single-threaded workqueue */ 41b637bac0b0a9 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Sean Anderson 2021-08-02 @4470 wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI, c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 @4471 dev_name(&sdiodev->func1->dev)); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4472 if (!wq) { 5e8149f5036afe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2012-12-07 4473 brcmf_err("insufficient memory to create txworkqueue\n"); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4474 ret = -ENOMEM; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4475 goto fail; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4476 } 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4477 brcmf_sdiod_freezer_count(sdiodev); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4478 INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4479 bus->brcmf_wq = wq; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4480 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4481 /* attempt to attach to the dongle */ b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 @4482 ret = brcmf_sdio_probe_attach(bus); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4483 if (ret < 0) { 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4484 brcmf_err("brcmf_sdio_probe_attach failed\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4485 goto fail; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4486 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4487 dd43a01c5cdb81 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2012-11-05 4488 spin_lock_init(&bus->rxctl_lock); fed7ec44e7ef64 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2014-03-15 4489 spin_lock_init(&bus->txq_lock); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4490 init_waitqueue_head(&bus->ctrl_wait); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4491 init_waitqueue_head(&bus->dcmd_resp_wait); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4492 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4493 /* Set up the watchdog timer */ e99e88a9d2b067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Kees Cook 2017-10-16 4494 timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4495 /* Initialize watchdog thread */ 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4496 init_completion(&bus->watchdog_wait); 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4497 bus->watchdog_tsk = kthread_run(brcmf_sdio_watchdog_thread, 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4498 bus, "brcmf_wdog/%s", c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4499 dev_name(&sdiodev->func1->dev)); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4500 if (IS_ERR(bus->watchdog_tsk)) { 02f77195db6ce2 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Joe Perches 2012-01-15 4501 pr_warn("brcmf_watchdog thread failed to start\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4502 bus->watchdog_tsk = NULL; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4503 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4504 /* Initialize DPC thread */ 2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4505 bus->dpc_triggered = false; 2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4506 bus->dpc_running = false; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4507 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4508 /* default sdio bus header length for tx packet */ 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4509 bus->tx_hdrlen = SDPCM_HWHDR_LEN + SDPCM_SWHDR_LEN; 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4510 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4511 /* Query the F2 block size, set roundup accordingly */ c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4512 bus->blocksize = bus->sdiodev->func2->cur_blksize; 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 @4513 bus->roundup = min(max_roundup, bus->blocksize); 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4514 c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 @4515 sdio_claim_host(bus->sdiodev->func1); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4516 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4517 /* Disable F2 to clear any intermediate frame state on the dongle */ c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4518 sdio_disable_func(bus->sdiodev->func2); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4519 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4520 bus->rxflow = false; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4521 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4522 /* Done with backplane-dependent accesses, can drop clock... */ 71bd508d7ded8c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Ian Molton 2017-12-08 4523 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4524 c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4525 sdio_release_host(bus->sdiodev->func1); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4526 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4527 /* ...and initialize clock/power states */ fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4528 bus->clkstate = CLK_SDONLY; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4529 bus->idletime = BRCMF_IDLE_INTERVAL; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4530 bus->idleclock = BRCMF_IDLE_ACTIVE; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4531 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4532 /* SR state */ fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4533 bus->sr_enabled = false; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4534 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4535 brcmf_dbg(INFO, "completed!!\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4536 2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4537 fwreq = brcmf_sdio_prepare_fw_request(bus); d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4538 if (!fwreq) { d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4539 ret = -ENOMEM; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4540 goto fail; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4541 } d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4542 d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4543 ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4544 brcmf_sdio_firmware_callback); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4545 if (ret != 0) { bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4546 brcmf_err("async firmware request failed: %d\n", ret); d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4547 kfree(fwreq); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4548 goto fail; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4549 } 15d45b6fbd01ec drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-10-21 4550 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4551 return bus; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4552 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4553 fail: 9fbe2a6dc71d85 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4554 brcmf_sdio_remove(bus); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4555 return ERR_PTR(ret); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4556 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4557
Hi Jacobe, kernel test robot noticed the following build warnings: [auto build test WARNING on dabcfd5e116800496eb9bec2ba7c015ca2043aa0] url: https://github.com/intel-lab-lkp/linux/commits/Jacobe-Zang/dt-bindings-net-wireless-brcm4329-fmac-add-pci14e4-449d/20240828-165201 base: dabcfd5e116800496eb9bec2ba7c015ca2043aa0 patch link: https://lore.kernel.org/r/20240828-wireless-mainline-v13-4-9998b19cfe7e%40wesion.com patch subject: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20240830/202408300014.XUogBpfg-lkp@intel.com/config) compiler: alpha-linux-gcc (GCC) 13.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240830/202408300014.XUogBpfg-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202408300014.XUogBpfg-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: In function 'brcmf_sdio_probe': drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4456:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 4456 | if (!bus) | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 4458 | goto fail; | ^~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: error: label 'fail' used but not defined drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4450:34: warning: unused variable 'fwreq' [-Wunused-variable] 4450 | struct brcmf_fw_request *fwreq; | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4449:34: warning: unused variable 'wq' [-Wunused-variable] 4449 | struct workqueue_struct *wq; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4447:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable] 4447 | int ret; | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: At top level: drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4461:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4461 | bus->sdiodev = sdiodev; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4462:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4462 | sdiodev->bus = bus; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4463:29: error: expected declaration specifiers or '...' before '&' token 4463 | skb_queue_head_init(&bus->glom); | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4464:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4464 | bus->txbound = BRCMF_TXBOUND; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4465:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4465 | bus->rxbound = BRCMF_RXBOUND; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4466:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4466 | bus->txminmax = BRCMF_TXMINMAX; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4467:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4467 | bus->tx_seq = SDPCM_SEQ_WRAP - 1; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: warning: data definition has no type or storage class 4470 | wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI, | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: error: type defaults to 'int' in declaration of 'wq' [-Werror=implicit-int] In file included from include/linux/netdevice.h:35, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:12: drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4471:48: error: 'sdiodev' undeclared here (not in a function) 4471 | dev_name(&sdiodev->func1->dev)); | ^~~~~~~ include/linux/workqueue.h:524:72: note: in definition of macro 'alloc_ordered_workqueue' 524 | alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args) | ^~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4472:9: error: expected identifier or '(' before 'if' 4472 | if (!wq) { | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: data definition has no type or storage class 4477 | brcmf_sdiod_freezer_count(sdiodev); | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: type defaults to 'int' in declaration of 'brcmf_sdiod_freezer_count' [-Werror=implicit-int] >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: parameter names (without types) in function declaration drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: conflicting types for 'brcmf_sdiod_freezer_count'; have 'int()' In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:32: drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:355:6: note: previous declaration of 'brcmf_sdiod_freezer_count' with type 'void(struct brcmf_sdio_dev *)' 355 | void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev); | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/workqueue.h:301:9: error: expected identifier or '(' before 'do' 301 | do { \ | ^~ include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK' 308 | __INIT_WORK((_work), (_func), 0) | ^~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK' 4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); | ^~~~~~~~~ include/linux/workqueue.h:305:11: error: expected identifier or '(' before 'while' 305 | } while (0) | ^~~~~ include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK' 308 | __INIT_WORK((_work), (_func), 0) | ^~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK' 4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); | ^~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4479:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4479 | bus->brcmf_wq = wq; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: warning: data definition has no type or storage class 4482 | ret = brcmf_sdio_probe_attach(bus); | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: error: type defaults to 'int' in declaration of 'ret' [-Werror=implicit-int] drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:39: error: 'bus' undeclared here (not in a function) 4482 | ret = brcmf_sdio_probe_attach(bus); | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4483:9: error: expected identifier or '(' before 'if' 4483 | if (ret < 0) { | ^~ In file included from include/linux/sched.h:2148, from include/linux/kthread.h:6, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:9: include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do' 332 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init' 4488 | spin_lock_init(&bus->rxctl_lock); | ^~~~~~~~~~~~~~ include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while' 337 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init' 4488 | spin_lock_init(&bus->rxctl_lock); | ^~~~~~~~~~~~~~ include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do' 332 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init' 4489 | spin_lock_init(&bus->txq_lock); | ^~~~~~~~~~~~~~ include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while' 337 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init' 4489 | spin_lock_init(&bus->txq_lock); | ^~~~~~~~~~~~~~ In file included from include/linux/sysctl.h:27, from include/net/net_namespace.h:12, from include/linux/netdevice.h:38: include/linux/wait.h:65:9: error: expected identifier or '(' before 'do' 65 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head' 4490 | init_waitqueue_head(&bus->ctrl_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:69:11: error: expected identifier or '(' before 'while' 69 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head' 4490 | init_waitqueue_head(&bus->ctrl_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:65:9: error: expected identifier or '(' before 'do' 65 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head' 4491 | init_waitqueue_head(&bus->dcmd_resp_wait); | ^~~~~~~~~~~~~~~~~~~ include/linux/wait.h:69:11: error: expected identifier or '(' before 'while' 69 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head' 4491 | init_waitqueue_head(&bus->dcmd_resp_wait); | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/netdevice.h:24: include/linux/timer.h:105:24: error: expected declaration specifiers or '...' before '(' token 105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL) | ^ include/linux/timer.h:121:9: note: in expansion of macro '__init_timer' 121 | __init_timer((timer), (callback), (flags)) | ^~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup' 4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); | ^~~~~~~~~~~ -- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4512:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4512 | bus->blocksize = bus->sdiodev->func2->cur_blksize; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4513:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4513 | bus->roundup = min(max_roundup, bus->blocksize); | ^~ In file included from include/linux/kernel.h:28, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:8: include/linux/minmax.h:53:41: error: expected identifier or '(' before ')' token 53 | __cmp(op, unique_x, unique_y); }) | ^ include/linux/minmax.h:58:17: note: in expansion of macro '__cmp_once' 58 | __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y))) | ^~~~~~~~~~ include/linux/minmax.h:85:25: note: in expansion of macro '__careful_cmp' 85 | #define min(x, y) __careful_cmp(min, x, y) | ^~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4513:24: note: in expansion of macro 'min' 4513 | bus->roundup = min(max_roundup, bus->blocksize); | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4515:28: error: expected ')' before '->' token 4515 | sdio_claim_host(bus->sdiodev->func1); | ^~ | ) drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4518:30: error: expected ')' before '->' token 4518 | sdio_disable_func(bus->sdiodev->func2); | ^~ | ) drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4520:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4520 | bus->rxflow = false; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:21: error: expected declaration specifiers or '...' before '(' token 304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb' 4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); | ^~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:39: error: expected declaration specifiers or '...' before '(' token 304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb' 4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); | ^~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:44: error: expected declaration specifiers or '...' before '(' token 304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb' 4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); | ^~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:52: error: expected declaration specifiers or '...' before '(' token 304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb' 4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); | ^~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4525:30: error: expected ')' before '->' token 4525 | sdio_release_host(bus->sdiodev->func1); | ^~ | ) drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4528:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4528 | bus->clkstate = CLK_SDONLY; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4529:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4529 | bus->idletime = BRCMF_IDLE_INTERVAL; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4530:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4530 | bus->idleclock = BRCMF_IDLE_ACTIVE; | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4533:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token 4533 | bus->sr_enabled = false; | ^~ In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h:12, from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:112: drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:75:1: error: expected identifier or '(' before 'do' 75 | do { \ | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4535:9: note: in expansion of macro 'brcmf_dbg' 4535 | brcmf_dbg(INFO, "completed!!\n"); | ^~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:78:3: error: expected identifier or '(' before 'while' 78 | } while (0) | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4535:9: note: in expansion of macro 'brcmf_dbg' 4535 | brcmf_dbg(INFO, "completed!!\n"); | ^~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4537:9: warning: data definition has no type or storage class 4537 | fwreq = brcmf_sdio_prepare_fw_request(bus); | ^~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4537:9: error: type defaults to 'int' in declaration of 'fwreq' [-Werror=implicit-int] drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4538:9: error: expected identifier or '(' before 'if' 4538 | if (!fwreq) { | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: warning: data definition has no type or storage class 4543 | ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, | ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: error: type defaults to 'int' in declaration of 'ret' [-Werror=implicit-int] drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: error: redefinition of 'ret' drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: note: previous definition of 'ret' with type 'int' 4482 | ret = brcmf_sdio_probe_attach(bus); | ^~~ >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:52: warning: passing argument 2 of 'brcmf_fw_get_firmwares' makes pointer from integer without a cast [-Wint-conversion] 4543 | ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, | ^~~~~ | | | int In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:11: drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h:91:73: note: expected 'struct brcmf_fw_request *' but argument is of type 'int' 91 | int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req, | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4545:9: error: expected identifier or '(' before 'if' 4545 | if (ret != 0) { | ^~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4551:9: error: expected identifier or '(' before 'return' 4551 | return bus; | ^~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4553:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token 4553 | fail: | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4555:9: error: expected identifier or '(' before 'return' 4555 | return ERR_PTR(ret); | ^~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4556:1: error: expected identifier or '(' before '}' token 4556 | } | ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4122:1: warning: 'brcmf_sdio_watchdog' defined but not used [-Wunused-function] 4122 | brcmf_sdio_watchdog(struct timer_list *t) | ^~~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4095:1: warning: 'brcmf_sdio_watchdog_thread' defined but not used [-Wunused-function] 4095 | brcmf_sdio_watchdog_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:3753:13: warning: 'brcmf_sdio_dataworker' defined but not used [-Wunused-function] 3753 | static void brcmf_sdio_dataworker(struct work_struct *work) | ^~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:544:19: warning: 'max_roundup' defined but not used [-Wunused-const-variable=] 544 | static const uint max_roundup = 512; | ^~~~~~~~~~~ cc1: some warnings being treated as errors vim +4477 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c 2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4444 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4445 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4446 { 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4447 int ret; e92eedf4e080fc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-11-22 4448 struct brcmf_sdio *bus; 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4449 struct workqueue_struct *wq; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4450 struct brcmf_fw_request *fwreq; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4451 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4452 brcmf_dbg(TRACE, "Enter\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4453 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4454 /* Allocate private bus interface state */ dcb77f854ae086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Erick Archer 2024-05-27 4455 bus = kzalloc(sizeof(*bus), GFP_ATOMIC); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4456 if (!bus) b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4457 ret = -ENOMEM; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4458 goto fail; b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4459 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4460 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4461 bus->sdiodev = sdiodev; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4462 sdiodev->bus = bus; b83db862ffb871 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-19 4463 skb_queue_head_init(&bus->glom); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4464 bus->txbound = BRCMF_TXBOUND; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4465 bus->rxbound = BRCMF_RXBOUND; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4466 bus->txminmax = BRCMF_TXMINMAX; 6bc52319c2c688 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4467 bus->tx_seq = SDPCM_SEQ_WRAP - 1; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4468 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4469 /* single-threaded workqueue */ 41b637bac0b0a9 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Sean Anderson 2021-08-02 4470 wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI, c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4471 dev_name(&sdiodev->func1->dev)); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4472 if (!wq) { 5e8149f5036afe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2012-12-07 4473 brcmf_err("insufficient memory to create txworkqueue\n"); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4474 ret = -ENOMEM; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4475 goto fail; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4476 } 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4477 brcmf_sdiod_freezer_count(sdiodev); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4478 INIT_WORK(&bus->datawork, brcmf_sdio_dataworker); 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4479 bus->brcmf_wq = wq; 37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4480 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4481 /* attempt to attach to the dongle */ b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4482 ret = brcmf_sdio_probe_attach(bus); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4483 if (ret < 0) { 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4484 brcmf_err("brcmf_sdio_probe_attach failed\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4485 goto fail; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4486 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4487 dd43a01c5cdb81 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2012-11-05 4488 spin_lock_init(&bus->rxctl_lock); fed7ec44e7ef64 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2014-03-15 4489 spin_lock_init(&bus->txq_lock); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4490 init_waitqueue_head(&bus->ctrl_wait); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4491 init_waitqueue_head(&bus->dcmd_resp_wait); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4492 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4493 /* Set up the watchdog timer */ e99e88a9d2b067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Kees Cook 2017-10-16 4494 timer_setup(&bus->timer, brcmf_sdio_watchdog, 0); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4495 /* Initialize watchdog thread */ 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4496 init_completion(&bus->watchdog_wait); 82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4497 bus->watchdog_tsk = kthread_run(brcmf_sdio_watchdog_thread, 9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4498 bus, "brcmf_wdog/%s", c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4499 dev_name(&sdiodev->func1->dev)); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4500 if (IS_ERR(bus->watchdog_tsk)) { 02f77195db6ce2 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Joe Perches 2012-01-15 4501 pr_warn("brcmf_watchdog thread failed to start\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4502 bus->watchdog_tsk = NULL; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4503 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4504 /* Initialize DPC thread */ 2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4505 bus->dpc_triggered = false; 2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4506 bus->dpc_running = false; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4507 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4508 /* default sdio bus header length for tx packet */ 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4509 bus->tx_hdrlen = SDPCM_HWHDR_LEN + SDPCM_SWHDR_LEN; 706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4510 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4511 /* Query the F2 block size, set roundup accordingly */ c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4512 bus->blocksize = bus->sdiodev->func2->cur_blksize; 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4513 bus->roundup = min(max_roundup, bus->blocksize); 7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4514 c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4515 sdio_claim_host(bus->sdiodev->func1); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4516 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4517 /* Disable F2 to clear any intermediate frame state on the dongle */ c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4518 sdio_disable_func(bus->sdiodev->func2); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4519 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4520 bus->rxflow = false; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4521 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4522 /* Done with backplane-dependent accesses, can drop clock... */ 71bd508d7ded8c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Ian Molton 2017-12-08 4523 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4524 c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4525 sdio_release_host(bus->sdiodev->func1); fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4526 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4527 /* ...and initialize clock/power states */ fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4528 bus->clkstate = CLK_SDONLY; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4529 bus->idletime = BRCMF_IDLE_INTERVAL; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4530 bus->idleclock = BRCMF_IDLE_ACTIVE; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4531 fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4532 /* SR state */ fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4533 bus->sr_enabled = false; fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4534 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4535 brcmf_dbg(INFO, "completed!!\n"); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4536 2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4537 fwreq = brcmf_sdio_prepare_fw_request(bus); d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4538 if (!fwreq) { d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4539 ret = -ENOMEM; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4540 goto fail; d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4541 } d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4542 d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4543 ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq, bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4544 brcmf_sdio_firmware_callback); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4545 if (ret != 0) { bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4546 brcmf_err("async firmware request failed: %d\n", ret); d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4547 kfree(fwreq); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4548 goto fail; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4549 } 15d45b6fbd01ec drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-10-21 4550 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4551 return bus; 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4552 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4553 fail: 9fbe2a6dc71d85 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4554 brcmf_sdio_remove(bus); b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4555 return ERR_PTR(ret); 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4556 } 5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4557
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c index d35262335eaf7..17f6b33beabd8 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -947,8 +947,8 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) /* try to attach to the target device */ sdiodev->bus = brcmf_sdio_probe(sdiodev); - if (!sdiodev->bus) { - ret = -ENODEV; + if (IS_ERR(sdiodev->bus)) { + ret = PTR_ERR(sdiodev->bus); goto out; } brcmf_sdiod_host_fixup(sdiodev->func2->card->host); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c index b24faae35873d..58d50918dd177 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c @@ -561,7 +561,8 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev, if (!found) { /* No platform data for this device, try OF and DMI data */ brcmf_dmi_probe(settings, chip, chiprev); - brcmf_of_probe(dev, bus_type, settings); + if (brcmf_of_probe(dev, bus_type, settings) == -EPROBE_DEFER) + return ERR_PTR(-EPROBE_DEFER); brcmf_acpi_probe(dev, bus_type, settings); } return settings; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c index fe4f657561056..c1285adabf72b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c @@ -6,6 +6,7 @@ #include <linux/of.h> #include <linux/of_irq.h> #include <linux/of_net.h> +#include <linux/clk.h> #include <defs.h> #include "debug.h" @@ -65,18 +66,22 @@ static int brcmf_of_get_country_codes(struct device *dev, return 0; } -void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, - struct brcmf_mp_device *settings) +int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, + struct brcmf_mp_device *settings) { struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio; struct device_node *root, *np = dev->of_node; struct of_phandle_args oirq; + struct clk *clk; const char *prop; int irq; int err; u32 irqf; u32 val; + if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac")) + return 0; + /* Apple ARM64 platforms have their own idea of board type, passed in * via the device tree. They also have an antenna SKU parameter */ @@ -106,7 +111,7 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, board_type = devm_kstrdup(dev, tmp, GFP_KERNEL); if (!board_type) { of_node_put(root); - return; + return 0; } strreplace(board_type, '/', '-'); settings->board_type = board_type; @@ -114,33 +119,39 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, of_node_put(root); } - if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac")) - return; - err = brcmf_of_get_country_codes(dev, settings); if (err) brcmf_err("failed to get OF country code map (err=%d)\n", err); of_get_mac_address(np, settings->mac); + clk = devm_clk_get_optional_enabled(dev, "lpo"); + if (IS_ERR(clk)) + return PTR_ERR(clk); + + brcmf_dbg(INFO, "%s LPO clock\n", clk ? "enable" : "no"); + clk_set_rate(clk, 32768); + if (bus_type != BRCMF_BUSTYPE_SDIO) - return; + return 0; if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0) sdio->drive_strength = val; /* make sure there are interrupts defined in the node */ if (of_irq_parse_one(np, 0, &oirq)) - return; + return 0; irq = irq_create_of_mapping(&oirq); if (!irq) { brcmf_err("interrupt could not be mapped\n"); - return; + return 0; } irqf = irqd_get_trigger_type(irq_get_irq_data(irq)); sdio->oob_irq_supported = true; sdio->oob_irq_nr = irq; sdio->oob_irq_flags = irqf; + + return 0; } diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h index 10bf52253337e..ae124c73fc3b7 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h @@ -3,11 +3,12 @@ * Copyright (c) 2014 Broadcom Corporation */ #ifdef CONFIG_OF -void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, - struct brcmf_mp_device *settings); +int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, + struct brcmf_mp_device *settings); #else -static void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, - struct brcmf_mp_device *settings) +static int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, + struct brcmf_mp_device *settings) { + return 0; } #endif /* CONFIG_OF */ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index ce482a3877e90..190e8990618c5 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -2452,6 +2452,9 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) ret = -ENOMEM; goto fail; } + ret = PTR_ERR_OR_ZERO(devinfo->settings); + if (ret < 0) + goto fail; bus = kzalloc(sizeof(*bus), GFP_KERNEL); if (!bus) { diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 1461dc453ac22..59c77645e2183 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -3943,7 +3943,7 @@ static const struct brcmf_buscore_ops brcmf_sdio_buscore_ops = { .write32 = brcmf_sdio_buscore_write32, }; -static bool +static int brcmf_sdio_probe_attach(struct brcmf_sdio *bus) { struct brcmf_sdio_dev *sdiodev; @@ -3953,6 +3953,7 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus) u32 reg_val; u32 drivestrength; u32 enum_base; + int ret = -EBADE; sdiodev = bus->sdiodev; sdio_claim_host(sdiodev->func1); @@ -4001,8 +4002,9 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus) BRCMF_BUSTYPE_SDIO, bus->ci->chip, bus->ci->chiprev); - if (!sdiodev->settings) { + if (IS_ERR_OR_NULL(sdiodev->settings)) { brcmf_err("Failed to get device parameters\n"); + ret = PTR_ERR_OR_ZERO(sdiodev->settings); goto fail; } /* platform specific configuration: @@ -4071,7 +4073,7 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus) /* allocate header buffer */ bus->hdrbuf = kzalloc(MAX_HDR_READ + bus->head_align, GFP_KERNEL); if (!bus->hdrbuf) - return false; + return -ENOMEM; /* Locate an appropriately-aligned portion of hdrbuf */ bus->rxhdr = (u8 *) roundup((unsigned long)&bus->hdrbuf[0], bus->head_align); @@ -4082,11 +4084,11 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus) if (bus->poll) bus->pollrate = 1; - return true; + return 0; fail: sdio_release_host(sdiodev->func1); - return false; + return ret; } static int @@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) /* Allocate private bus interface state */ bus = kzalloc(sizeof(*bus), GFP_ATOMIC); if (!bus) + ret = -ENOMEM; goto fail; + } bus->sdiodev = sdiodev; sdiodev->bus = bus; @@ -4467,6 +4471,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) dev_name(&sdiodev->func1->dev)); if (!wq) { brcmf_err("insufficient memory to create txworkqueue\n"); + ret = -ENOMEM; goto fail; } brcmf_sdiod_freezer_count(sdiodev); @@ -4474,7 +4479,8 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) bus->brcmf_wq = wq; /* attempt to attach to the dongle */ - if (!(brcmf_sdio_probe_attach(bus))) { + ret = brcmf_sdio_probe_attach(bus); + if (ret < 0) { brcmf_err("brcmf_sdio_probe_attach failed\n"); goto fail; } @@ -4546,7 +4552,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) fail: brcmf_sdio_remove(bus); - return NULL; + return ERR_PTR(ret); } /* Detach and free everything */ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c index 8afbf529c7450..2821c27f317ee 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c @@ -1272,6 +1272,9 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo, ret = -ENOMEM; goto fail; } + ret = PTR_ERR_OR_ZERO(devinfo->settings); + if (ret < 0) + goto fail; if (!brcmf_usb_dlneeded(devinfo)) { ret = brcmf_alloc(devinfo->dev, devinfo->settings);