OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | From 8602e62441aba276cafd68034b72162fbc5ca0a6 Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> |
||
3 | Date: Wed, 6 Feb 2019 12:28:16 +0100 |
||
4 | Subject: [PATCH] brcmfmac: pass bus to the __brcmf_err() in pcie.c |
||
5 | MIME-Version: 1.0 |
||
6 | Content-Type: text/plain; charset=UTF-8 |
||
7 | Content-Transfer-Encoding: 8bit |
||
8 | |||
9 | This enables dev_err() usage (instead of pr_err()) in the __brcmf_err(). |
||
10 | It makes error messages more meaningful and is important for debugging |
||
11 | errors/bugs on systems with multiple brcmfmac supported devices. |
||
12 | |||
13 | All bus files should follow & get updated similarly (soon). |
||
14 | |||
15 | Signed-off-by: Rafał Miłecki <rafal@milecki.pl> |
||
16 | Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
||
17 | --- |
||
18 | .../broadcom/brcm80211/brcmfmac/debug.h | 2 + |
||
19 | .../broadcom/brcm80211/brcmfmac/pcie.c | 59 +++++++++++-------- |
||
20 | 2 files changed, 38 insertions(+), 23 deletions(-) |
||
21 | |||
22 | --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h |
||
23 | +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h |
||
24 | @@ -52,6 +52,7 @@ void __brcmf_err(struct brcmf_bus *bus, |
||
25 | /* Macro for error messages. When debugging / tracing the driver all error |
||
26 | * messages are important to us. |
||
27 | */ |
||
28 | +#ifndef brcmf_err |
||
29 | #define brcmf_err(fmt, ...) \ |
||
30 | do { \ |
||
31 | if (IS_ENABLED(CPTCFG_BRCMDBG) || \ |
||
32 | @@ -59,6 +60,7 @@ void __brcmf_err(struct brcmf_bus *bus, |
||
33 | net_ratelimit()) \ |
||
34 | __brcmf_err(NULL, __func__, fmt, ##__VA_ARGS__);\ |
||
35 | } while (0) |
||
36 | +#endif |
||
37 | |||
38 | #if defined(DEBUG) || defined(CPTCFG_BRCM_TRACING) |
||
39 | |||
40 | --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c |
||
41 | +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c |
||
42 | @@ -30,6 +30,15 @@ |
||
43 | #include <brcmu_wifi.h> |
||
44 | #include <brcm_hw_ids.h> |
||
45 | |||
46 | +/* Custom brcmf_err() that takes bus arg and passes it further */ |
||
47 | +#define brcmf_err(bus, fmt, ...) \ |
||
48 | + do { \ |
||
49 | + if (IS_ENABLED(CPTCFG_BRCMDBG) || \ |
||
50 | + IS_ENABLED(CPTCFG_BRCM_TRACING) || \ |
||
51 | + net_ratelimit()) \ |
||
52 | + __brcmf_err(bus, __func__, fmt, ##__VA_ARGS__); \ |
||
53 | + } while (0) |
||
54 | + |
||
55 | #include "debug.h" |
||
56 | #include "bus.h" |
||
57 | #include "commonring.h" |
||
58 | @@ -531,6 +540,7 @@ static void |
||
59 | brcmf_pcie_select_core(struct brcmf_pciedev_info *devinfo, u16 coreid) |
||
60 | { |
||
61 | const struct pci_dev *pdev = devinfo->pdev; |
||
62 | + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev); |
||
63 | struct brcmf_core *core; |
||
64 | u32 bar0_win; |
||
65 | |||
66 | @@ -548,7 +558,7 @@ brcmf_pcie_select_core(struct brcmf_pcie |
||
67 | } |
||
68 | } |
||
69 | } else { |
||
70 | - brcmf_err("Unsupported core selected %x\n", coreid); |
||
71 | + brcmf_err(bus, "Unsupported core selected %x\n", coreid); |
||
72 | } |
||
73 | } |
||
74 | |||
75 | @@ -848,9 +858,8 @@ static irqreturn_t brcmf_pcie_isr_thread |
||
76 | |||
77 | static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo) |
||
78 | { |
||
79 | - struct pci_dev *pdev; |
||
80 | - |
||
81 | - pdev = devinfo->pdev; |
||
82 | + struct pci_dev *pdev = devinfo->pdev; |
||
83 | + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev); |
||
84 | |||
85 | brcmf_pcie_intr_disable(devinfo); |
||
86 | |||
87 | @@ -861,7 +870,7 @@ static int brcmf_pcie_request_irq(struct |
||
88 | brcmf_pcie_isr_thread, IRQF_SHARED, |
||
89 | "brcmf_pcie_intr", devinfo)) { |
||
90 | pci_disable_msi(pdev); |
||
91 | - brcmf_err("Failed to request IRQ %d\n", pdev->irq); |
||
92 | + brcmf_err(bus, "Failed to request IRQ %d\n", pdev->irq); |
||
93 | return -EIO; |
||
94 | } |
||
95 | devinfo->irq_allocated = true; |
||
96 | @@ -871,15 +880,14 @@ static int brcmf_pcie_request_irq(struct |
||
97 | |||
98 | static void brcmf_pcie_release_irq(struct brcmf_pciedev_info *devinfo) |
||
99 | { |
||
100 | - struct pci_dev *pdev; |
||
101 | + struct pci_dev *pdev = devinfo->pdev; |
||
102 | + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev); |
||
103 | u32 status; |
||
104 | u32 count; |
||
105 | |||
106 | if (!devinfo->irq_allocated) |
||
107 | return; |
||
108 | |||
109 | - pdev = devinfo->pdev; |
||
110 | - |
||
111 | brcmf_pcie_intr_disable(devinfo); |
||
112 | free_irq(pdev->irq, devinfo); |
||
113 | pci_disable_msi(pdev); |
||
114 | @@ -891,7 +899,7 @@ static void brcmf_pcie_release_irq(struc |
||
115 | count++; |
||
116 | } |
||
117 | if (devinfo->in_irq) |
||
118 | - brcmf_err("Still in IRQ (processing) !!!\n"); |
||
119 | + brcmf_err(bus, "Still in IRQ (processing) !!!\n"); |
||
120 | |||
121 | status = brcmf_pcie_read_reg32(devinfo, BRCMF_PCIE_PCIE2REG_MAILBOXINT); |
||
122 | brcmf_pcie_write_reg32(devinfo, BRCMF_PCIE_PCIE2REG_MAILBOXINT, status); |
||
123 | @@ -1102,6 +1110,7 @@ static void brcmf_pcie_release_ringbuffe |
||
124 | |||
125 | static int brcmf_pcie_init_ringbuffers(struct brcmf_pciedev_info *devinfo) |
||
126 | { |
||
127 | + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev); |
||
128 | struct brcmf_pcie_ringbuf *ring; |
||
129 | struct brcmf_pcie_ringbuf *rings; |
||
130 | u32 d2h_w_idx_ptr; |
||
131 | @@ -1254,7 +1263,7 @@ static int brcmf_pcie_init_ringbuffers(s |
||
132 | return 0; |
||
133 | |||
134 | fail: |
||
135 | - brcmf_err("Allocating ring buffers failed\n"); |
||
136 | + brcmf_err(bus, "Allocating ring buffers failed\n"); |
||
137 | brcmf_pcie_release_ringbuffers(devinfo); |
||
138 | return -ENOMEM; |
||
139 | } |
||
140 | @@ -1277,6 +1286,7 @@ brcmf_pcie_release_scratchbuffers(struct |
||
141 | |||
142 | static int brcmf_pcie_init_scratchbuffers(struct brcmf_pciedev_info *devinfo) |
||
143 | { |
||
144 | + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev); |
||
145 | u64 address; |
||
146 | u32 addr; |
||
147 | |||
148 | @@ -1316,7 +1326,7 @@ static int brcmf_pcie_init_scratchbuffer |
||
149 | return 0; |
||
150 | |||
151 | fail: |
||
152 | - brcmf_err("Allocating scratch buffers failed\n"); |
||
153 | + brcmf_err(bus, "Allocating scratch buffers failed\n"); |
||
154 | brcmf_pcie_release_scratchbuffers(devinfo); |
||
155 | return -ENOMEM; |
||
156 | } |
||
157 | @@ -1437,6 +1447,7 @@ static int |
||
158 | brcmf_pcie_init_share_ram_info(struct brcmf_pciedev_info *devinfo, |
||
159 | u32 sharedram_addr) |
||
160 | { |
||
161 | + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev); |
||
162 | struct brcmf_pcie_shared_info *shared; |
||
163 | u32 addr; |
||
164 | |||
165 | @@ -1448,7 +1459,8 @@ brcmf_pcie_init_share_ram_info(struct br |
||
166 | brcmf_dbg(PCIE, "PCIe protocol version %d\n", shared->version); |
||
167 | if ((shared->version > BRCMF_PCIE_MAX_SHARED_VERSION) || |
||
168 | (shared->version < BRCMF_PCIE_MIN_SHARED_VERSION)) { |
||
169 | - brcmf_err("Unsupported PCIE version %d\n", shared->version); |
||
170 | + brcmf_err(bus, "Unsupported PCIE version %d\n", |
||
171 | + shared->version); |
||
172 | return -EINVAL; |
||
173 | } |
||
174 | |||
175 | @@ -1490,6 +1502,7 @@ static int brcmf_pcie_download_fw_nvram( |
||
176 | const struct firmware *fw, void *nvram, |
||
177 | u32 nvram_len) |
||
178 | { |
||
179 | + struct brcmf_bus *bus = dev_get_drvdata(&devinfo->pdev->dev); |
||
180 | u32 sharedram_addr; |
||
181 | u32 sharedram_addr_written; |
||
182 | u32 loop_counter; |
||
183 | @@ -1544,7 +1557,7 @@ static int brcmf_pcie_download_fw_nvram( |
||
184 | loop_counter--; |
||
185 | } |
||
186 | if (sharedram_addr == sharedram_addr_written) { |
||
187 | - brcmf_err("FW failed to initialize\n"); |
||
188 | + brcmf_err(bus, "FW failed to initialize\n"); |
||
189 | return -ENODEV; |
||
190 | } |
||
191 | brcmf_dbg(PCIE, "Shared RAM addr: 0x%08x\n", sharedram_addr); |
||
192 | @@ -1555,16 +1568,15 @@ static int brcmf_pcie_download_fw_nvram( |
||
193 | |||
194 | static int brcmf_pcie_get_resource(struct brcmf_pciedev_info *devinfo) |
||
195 | { |
||
196 | - struct pci_dev *pdev; |
||
197 | + struct pci_dev *pdev = devinfo->pdev; |
||
198 | + struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev); |
||
199 | int err; |
||
200 | phys_addr_t bar0_addr, bar1_addr; |
||
201 | ulong bar1_size; |
||
202 | |||
203 | - pdev = devinfo->pdev; |
||
204 | - |
||
205 | err = pci_enable_device(pdev); |
||
206 | if (err) { |
||
207 | - brcmf_err("pci_enable_device failed err=%d\n", err); |
||
208 | + brcmf_err(bus, "pci_enable_device failed err=%d\n", err); |
||
209 | return err; |
||
210 | } |
||
211 | |||
212 | @@ -1577,7 +1589,7 @@ static int brcmf_pcie_get_resource(struc |
||
213 | /* read Bar-1 mapped memory range */ |
||
214 | bar1_size = pci_resource_len(pdev, 2); |
||
215 | if ((bar1_size == 0) || (bar1_addr == 0)) { |
||
216 | - brcmf_err("BAR1 Not enabled, device size=%ld, addr=%#016llx\n", |
||
217 | + brcmf_err(bus, "BAR1 Not enabled, device size=%ld, addr=%#016llx\n", |
||
218 | bar1_size, (unsigned long long)bar1_addr); |
||
219 | return -EINVAL; |
||
220 | } |
||
221 | @@ -1586,7 +1598,7 @@ static int brcmf_pcie_get_resource(struc |
||
222 | devinfo->tcm = ioremap_nocache(bar1_addr, bar1_size); |
||
223 | |||
224 | if (!devinfo->regs || !devinfo->tcm) { |
||
225 | - brcmf_err("ioremap() failed (%p,%p)\n", devinfo->regs, |
||
226 | + brcmf_err(bus, "ioremap() failed (%p,%p)\n", devinfo->regs, |
||
227 | devinfo->tcm); |
||
228 | return -EINVAL; |
||
229 | } |
||
230 | @@ -1873,7 +1885,7 @@ fail_bus: |
||
231 | kfree(bus->msgbuf); |
||
232 | kfree(bus); |
||
233 | fail: |
||
234 | - brcmf_err("failed %x:%x\n", pdev->vendor, pdev->device); |
||
235 | + brcmf_err(NULL, "failed %x:%x\n", pdev->vendor, pdev->device); |
||
236 | brcmf_pcie_release_resource(devinfo); |
||
237 | if (devinfo->ci) |
||
238 | brcmf_chip_detach(devinfo->ci); |
||
239 | @@ -1947,7 +1959,7 @@ static int brcmf_pcie_pm_enter_D3(struct |
||
240 | wait_event_timeout(devinfo->mbdata_resp_wait, devinfo->mbdata_completed, |
||
241 | BRCMF_PCIE_MBDATA_TIMEOUT); |
||
242 | if (!devinfo->mbdata_completed) { |
||
243 | - brcmf_err("Timeout on response for entering D3 substate\n"); |
||
244 | + brcmf_err(bus, "Timeout on response for entering D3 substate\n"); |
||
245 | brcmf_bus_change_state(bus, BRCMF_BUS_UP); |
||
246 | return -EIO; |
||
247 | } |
||
248 | @@ -1993,7 +2005,7 @@ cleanup: |
||
249 | |||
250 | err = brcmf_pcie_probe(pdev, NULL); |
||
251 | if (err) |
||
252 | - brcmf_err("probe after resume failed, err=%d\n", err); |
||
253 | + brcmf_err(bus, "probe after resume failed, err=%d\n", err); |
||
254 | |||
255 | return err; |
||
256 | } |
||
257 | @@ -2066,7 +2078,8 @@ void brcmf_pcie_register(void) |
||
258 | brcmf_dbg(PCIE, "Enter\n"); |
||
259 | err = pci_register_driver(&brcmf_pciedrvr); |
||
260 | if (err) |
||
261 | - brcmf_err("PCIE driver registration failed, err=%d\n", err); |
||
262 | + brcmf_err(NULL, "PCIE driver registration failed, err=%d\n", |
||
263 | + err); |
||
264 | } |
||
265 | |||
266 |