123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- From 8602e62441aba276cafd68034b72162fbc5ca0a6 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
- Date: Wed, 6 Feb 2019 12:28:16 +0100
- Subject: [PATCH] brcmfmac: pass bus to the __brcmf_err() in pcie.c
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- This enables dev_err() usage (instead of pr_err()) in the __brcmf_err().
- It makes error messages more meaningful and is important for debugging
- errors/bugs on systems with multiple brcmfmac supported devices.
- All bus files should follow & get updated similarly (soon).
- Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
- Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
- ---
- .../broadcom/brcm80211/brcmfmac/debug.h | 2 +
- .../broadcom/brcm80211/brcmfmac/pcie.c | 59 +++++++++++--------
- 2 files changed, 38 insertions(+), 23 deletions(-)
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
- @@ -52,6 +52,7 @@ void __brcmf_err(struct brcmf_bus *bus,
- /* Macro for error messages. When debugging / tracing the driver all error
- * messages are important to us.
- */
- +#ifndef brcmf_err
- #define brcmf_err(fmt, ...) \
- do { \
- if (IS_ENABLED(CPTCFG_BRCMDBG) || \
- @@ -59,6 +60,7 @@ void __brcmf_err(struct brcmf_bus *bus,
- net_ratelimit()) \
- __brcmf_err(NULL, __func__, fmt, ##__VA_ARGS__);\
- } while (0)
- +#endif
-
- #if defined(DEBUG) || defined(CPTCFG_BRCM_TRACING)
-
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
- @@ -30,6 +30,15 @@
- #include <brcmu_wifi.h>
- #include <brcm_hw_ids.h>
-
- +/* Custom brcmf_err() that takes bus arg and passes it further */
- +#define brcmf_err(bus, fmt, ...) \
- + do { \
- + if (IS_ENABLED(CPTCFG_BRCMDBG) || \
- + IS_ENABLED(CPTCFG_BRCM_TRACING) || \
- + net_ratelimit()) \
- + __brcmf_err(bus, __func__, fmt, ##__VA_ARGS__); \
- + } while (0)
- +
- #include "debug.h"
- #include "bus.h"
- #include "commonring.h"
- @@ -529,6 +538,7 @@ static void
- brcmf_pcie_select_core(struct brcmf_pciedev_info *devinfo, u16 coreid)
- {
- const struct pci_dev *pdev = devinfo->pdev;
- + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev);
- struct brcmf_core *core;
- u32 bar0_win;
-
- @@ -546,7 +556,7 @@ brcmf_pcie_select_core(struct brcmf_pcie
- }
- }
- } else {
- - brcmf_err("Unsupported core selected %x\n", coreid);
- + brcmf_err(bus, "Unsupported core selected %x\n", coreid);
- }
- }
-
- @@ -840,9 +850,8 @@ static irqreturn_t brcmf_pcie_isr_thread
-
- static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo)
- {
- - struct pci_dev *pdev;
- -
- - pdev = devinfo->pdev;
- + struct pci_dev *pdev = devinfo->pdev;
- + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev);
-
- brcmf_pcie_intr_disable(devinfo);
-
- @@ -853,7 +862,7 @@ static int brcmf_pcie_request_irq(struct
- brcmf_pcie_isr_thread, IRQF_SHARED,
- "brcmf_pcie_intr", devinfo)) {
- pci_disable_msi(pdev);
- - brcmf_err("Failed to request IRQ %d\n", pdev->irq);
- + brcmf_err(bus, "Failed to request IRQ %d\n", pdev->irq);
- return -EIO;
- }
- devinfo->irq_allocated = true;
- @@ -863,15 +872,14 @@ static int brcmf_pcie_request_irq(struct
-
- static void brcmf_pcie_release_irq(struct brcmf_pciedev_info *devinfo)
- {
- - struct pci_dev *pdev;
- + struct pci_dev *pdev = devinfo->pdev;
- + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev);
- u32 status;
- u32 count;
-
- if (!devinfo->irq_allocated)
- return;
-
- - pdev = devinfo->pdev;
- -
- brcmf_pcie_intr_disable(devinfo);
- free_irq(pdev->irq, devinfo);
- pci_disable_msi(pdev);
- @@ -883,7 +891,7 @@ static void brcmf_pcie_release_irq(struc
- count++;
- }
- if (devinfo->in_irq)
- - brcmf_err("Still in IRQ (processing) !!!\n");
- + brcmf_err(bus, "Still in IRQ (processing) !!!\n");
-
- status = brcmf_pcie_read_reg32(devinfo, BRCMF_PCIE_PCIE2REG_MAILBOXINT);
- brcmf_pcie_write_reg32(devinfo, BRCMF_PCIE_PCIE2REG_MAILBOXINT, status);
- @@ -1094,6 +1102,7 @@ static void brcmf_pcie_release_ringbuffe
-
- static int brcmf_pcie_init_ringbuffers(struct brcmf_pciedev_info *devinfo)
- {
- + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev);
- struct brcmf_pcie_ringbuf *ring;
- struct brcmf_pcie_ringbuf *rings;
- u32 d2h_w_idx_ptr;
- @@ -1246,7 +1255,7 @@ static int brcmf_pcie_init_ringbuffers(s
- return 0;
-
- fail:
- - brcmf_err("Allocating ring buffers failed\n");
- + brcmf_err(bus, "Allocating ring buffers failed\n");
- brcmf_pcie_release_ringbuffers(devinfo);
- return -ENOMEM;
- }
- @@ -1269,6 +1278,7 @@ brcmf_pcie_release_scratchbuffers(struct
-
- static int brcmf_pcie_init_scratchbuffers(struct brcmf_pciedev_info *devinfo)
- {
- + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev);
- u64 address;
- u32 addr;
-
- @@ -1308,7 +1318,7 @@ static int brcmf_pcie_init_scratchbuffer
- return 0;
-
- fail:
- - brcmf_err("Allocating scratch buffers failed\n");
- + brcmf_err(bus, "Allocating scratch buffers failed\n");
- brcmf_pcie_release_scratchbuffers(devinfo);
- return -ENOMEM;
- }
- @@ -1409,6 +1419,7 @@ static int
- brcmf_pcie_init_share_ram_info(struct brcmf_pciedev_info *devinfo,
- u32 sharedram_addr)
- {
- + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev);
- struct brcmf_pcie_shared_info *shared;
- u32 addr;
-
- @@ -1420,7 +1431,8 @@ brcmf_pcie_init_share_ram_info(struct br
- brcmf_dbg(PCIE, "PCIe protocol version %d\n", shared->version);
- if ((shared->version > BRCMF_PCIE_MAX_SHARED_VERSION) ||
- (shared->version < BRCMF_PCIE_MIN_SHARED_VERSION)) {
- - brcmf_err("Unsupported PCIE version %d\n", shared->version);
- + brcmf_err(bus, "Unsupported PCIE version %d\n",
- + shared->version);
- return -EINVAL;
- }
-
- @@ -1462,6 +1474,7 @@ static int brcmf_pcie_download_fw_nvram(
- const struct firmware *fw, void *nvram,
- u32 nvram_len)
- {
- + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev);
- u32 sharedram_addr;
- u32 sharedram_addr_written;
- u32 loop_counter;
- @@ -1516,7 +1529,7 @@ static int brcmf_pcie_download_fw_nvram(
- loop_counter--;
- }
- if (sharedram_addr == sharedram_addr_written) {
- - brcmf_err("FW failed to initialize\n");
- + brcmf_err(bus, "FW failed to initialize\n");
- return -ENODEV;
- }
- brcmf_dbg(PCIE, "Shared RAM addr: 0x%08x\n", sharedram_addr);
- @@ -1527,16 +1540,15 @@ static int brcmf_pcie_download_fw_nvram(
-
- static int brcmf_pcie_get_resource(struct brcmf_pciedev_info *devinfo)
- {
- - struct pci_dev *pdev;
- + struct pci_dev *pdev = devinfo->pdev;
- + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev);
- int err;
- phys_addr_t bar0_addr, bar1_addr;
- ulong bar1_size;
-
- - pdev = devinfo->pdev;
- -
- err = pci_enable_device(pdev);
- if (err) {
- - brcmf_err("pci_enable_device failed err=%d\n", err);
- + brcmf_err(bus, "pci_enable_device failed err=%d\n", err);
- return err;
- }
-
- @@ -1549,7 +1561,7 @@ static int brcmf_pcie_get_resource(struc
- /* read Bar-1 mapped memory range */
- bar1_size = pci_resource_len(pdev, 2);
- if ((bar1_size == 0) || (bar1_addr == 0)) {
- - brcmf_err("BAR1 Not enabled, device size=%ld, addr=%#016llx\n",
- + brcmf_err(bus, "BAR1 Not enabled, device size=%ld, addr=%#016llx\n",
- bar1_size, (unsigned long long)bar1_addr);
- return -EINVAL;
- }
- @@ -1558,7 +1570,7 @@ static int brcmf_pcie_get_resource(struc
- devinfo->tcm = ioremap_nocache(bar1_addr, bar1_size);
-
- if (!devinfo->regs || !devinfo->tcm) {
- - brcmf_err("ioremap() failed (%p,%p)\n", devinfo->regs,
- + brcmf_err(bus, "ioremap() failed (%p,%p)\n", devinfo->regs,
- devinfo->tcm);
- return -EINVAL;
- }
- @@ -1585,16 +1597,17 @@ static void brcmf_pcie_release_resource(
-
- static int brcmf_pcie_attach_bus(struct brcmf_pciedev_info *devinfo)
- {
- + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev);
- int ret;
-
- /* Attach to the common driver interface */
- ret = brcmf_attach(&devinfo->pdev->dev, devinfo->settings);
- if (ret) {
- - brcmf_err("brcmf_attach failed\n");
- + brcmf_err(bus, "brcmf_attach failed\n");
- } else {
- ret = brcmf_bus_started(&devinfo->pdev->dev);
- if (ret)
- - brcmf_err("dongle is not responding\n");
- + brcmf_err(bus, "dongle is not responding\n");
- }
-
- return ret;
- @@ -1823,7 +1836,7 @@ fail_bus:
- kfree(bus->msgbuf);
- kfree(bus);
- fail:
- - brcmf_err("failed %x:%x\n", pdev->vendor, pdev->device);
- + brcmf_err(NULL, "failed %x:%x\n", pdev->vendor, pdev->device);
- brcmf_pcie_release_resource(devinfo);
- if (devinfo->ci)
- brcmf_chip_detach(devinfo->ci);
- @@ -1897,7 +1910,7 @@ static int brcmf_pcie_pm_enter_D3(struct
- wait_event_timeout(devinfo->mbdata_resp_wait, devinfo->mbdata_completed,
- BRCMF_PCIE_MBDATA_TIMEOUT);
- if (!devinfo->mbdata_completed) {
- - brcmf_err("Timeout on response for entering D3 substate\n");
- + brcmf_err(bus, "Timeout on response for entering D3 substate\n");
- brcmf_bus_change_state(bus, BRCMF_BUS_UP);
- return -EIO;
- }
- @@ -1942,7 +1955,7 @@ cleanup:
-
- err = brcmf_pcie_probe(pdev, NULL);
- if (err)
- - brcmf_err("probe after resume failed, err=%d\n", err);
- + brcmf_err(bus, "probe after resume failed, err=%d\n", err);
-
- return err;
- }
- @@ -2014,7 +2027,8 @@ void brcmf_pcie_register(void)
- brcmf_dbg(PCIE, "Enter\n");
- err = pci_register_driver(&brcmf_pciedrvr);
- if (err)
- - brcmf_err("PCIE driver registration failed, err=%d\n", err);
- + brcmf_err(NULL, "PCIE driver registration failed, err=%d\n",
- + err);
- }
-
-
|