aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2014-03-20 05:18:02 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-03-20 11:55:40 -0400
commit4d1a4f16c96d3f4cf6afd92ca3ffb4d2c24875e1 (patch)
tree0d9a0712d8bdf9ba2c0c5a5211677006637bdf50 /drivers/net
parent58e9df462fd70a1862378beb46b312f1f6bca94f (diff)
brcmfmac: only show error message when brcmf_sdiod_regrw_helper() fails
In the function brcmf_sdiod_request_data() an error message is logged, but the calling function retries it. This patch will only log an error message when retry limit is reached. The low-level error is still logged by a SDIO debug message. Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
index 6e8718bf6920..a16e644e7c08 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
@@ -269,26 +269,17 @@ static int brcmf_sdiod_request_data(struct brcmf_sdio_dev *sdiodev, u8 fn,
269 break; 269 break;
270 } 270 }
271 271
272 if (ret) { 272 if (ret)
273 /* 273 brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n",
274 * SleepCSR register access can fail when 274 write ? "write" : "read", fn, addr, ret);
275 * waking up the device so reduce this noise 275
276 * in the logs.
277 */
278 if (addr != SBSDIO_FUNC1_SLEEPCSR)
279 brcmf_err("failed to %s data F%d@0x%05x, err: %d\n",
280 write ? "write" : "read", fn, addr, ret);
281 else
282 brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n",
283 write ? "write" : "read", fn, addr, ret);
284 }
285 return ret; 276 return ret;
286} 277}
287 278
288static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr, 279static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr,
289 u8 regsz, void *data, bool write) 280 u8 regsz, void *data, bool write)
290{ 281{
291 u8 func_num; 282 u8 func;
292 s32 retry = 0; 283 s32 retry = 0;
293 int ret; 284 int ret;
294 285
@@ -302,9 +293,9 @@ static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr,
302 * The rest: function 1 silicon backplane core registers 293 * The rest: function 1 silicon backplane core registers
303 */ 294 */
304 if ((addr & ~REG_F0_REG_MASK) == 0) 295 if ((addr & ~REG_F0_REG_MASK) == 0)
305 func_num = SDIO_FUNC_0; 296 func = SDIO_FUNC_0;
306 else 297 else
307 func_num = SDIO_FUNC_1; 298 func = SDIO_FUNC_1;
308 299
309 do { 300 do {
310 if (!write) 301 if (!write)
@@ -312,16 +303,26 @@ static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr,
312 /* for retry wait for 1 ms till bus get settled down */ 303 /* for retry wait for 1 ms till bus get settled down */
313 if (retry) 304 if (retry)
314 usleep_range(1000, 2000); 305 usleep_range(1000, 2000);
315 ret = brcmf_sdiod_request_data(sdiodev, func_num, addr, regsz, 306 ret = brcmf_sdiod_request_data(sdiodev, func, addr, regsz,
316 data, write); 307 data, write);
317 } while (ret != 0 && ret != -ENOMEDIUM && 308 } while (ret != 0 && ret != -ENOMEDIUM &&
318 retry++ < SDIOH_API_ACCESS_RETRY_LIMIT); 309 retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
319 310
320 if (ret == -ENOMEDIUM) 311 if (ret == -ENOMEDIUM)
321 brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_NOMEDIUM); 312 brcmf_bus_change_state(sdiodev->bus_if, BRCMF_BUS_NOMEDIUM);
322 else if (ret != 0) 313 else if (ret != 0) {
323 brcmf_err("failed with %d\n", ret); 314 /*
324 315 * SleepCSR register access can fail when
316 * waking up the device so reduce this noise
317 * in the logs.
318 */
319 if (addr != SBSDIO_FUNC1_SLEEPCSR)
320 brcmf_err("failed to %s data F%d@0x%05x, err: %d\n",
321 write ? "write" : "read", func, addr, ret);
322 else
323 brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n",
324 write ? "write" : "read", func, addr, ret);
325 }
325 return ret; 326 return ret;
326} 327}
327 328