diff options
author | Arend van Spriel <arend@broadcom.com> | 2014-03-20 05:18:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-03-20 11:55:40 -0400 |
commit | 4d1a4f16c96d3f4cf6afd92ca3ffb4d2c24875e1 (patch) | |
tree | 0d9a0712d8bdf9ba2c0c5a5211677006637bdf50 /drivers/net | |
parent | 58e9df462fd70a1862378beb46b312f1f6bca94f (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.c | 41 |
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 | ||
288 | static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr, | 279 | static 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 | ||