diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c | 32 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h | 2 |
3 files changed, 6 insertions, 32 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c index aec1bd694bf7..e2480d196276 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | |||
@@ -196,11 +196,11 @@ brcmf_sdio_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr, | |||
196 | 196 | ||
197 | /* | 197 | /* |
198 | * figure out how to read the register based on address range | 198 | * figure out how to read the register based on address range |
199 | * 0x00 ~ 0xFF: function 0 CCCR | 199 | * 0x00 ~ 0x7FF: function 0 CCCR and FBR |
200 | * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers | 200 | * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers |
201 | * The rest: function 1 silicon backplane core registers | 201 | * The rest: function 1 silicon backplane core registers |
202 | */ | 202 | */ |
203 | if ((addr & ~REG_F0_CCCR_MASK) == 0) { | 203 | if ((addr & ~REG_F0_REG_MASK) == 0) { |
204 | func_num = SDIO_FUNC_0; | 204 | func_num = SDIO_FUNC_0; |
205 | reg_size = 1; | 205 | reg_size = 1; |
206 | } else if ((addr & ~REG_F1_MISC_MASK) == 0) { | 206 | } else if ((addr & ~REG_F1_MISC_MASK) == 0) { |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c index dd07d33a927c..82f51dbd0d66 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c | |||
@@ -346,43 +346,17 @@ int brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, | |||
346 | return status; | 346 | return status; |
347 | } | 347 | } |
348 | 348 | ||
349 | /* Read client card reg */ | ||
350 | static int | ||
351 | brcmf_sdioh_card_regread(struct brcmf_sdio_dev *sdiodev, int func, u32 regaddr, | ||
352 | int regsize, u32 *data) | ||
353 | { | ||
354 | |||
355 | if ((func == 0) || (regsize == 1)) { | ||
356 | u8 temp = 0; | ||
357 | |||
358 | brcmf_sdioh_request_byte(sdiodev, SDIOH_READ, func, regaddr, | ||
359 | &temp); | ||
360 | *data = temp; | ||
361 | *data &= 0xff; | ||
362 | brcmf_dbg(DATA, "byte read data=0x%02x\n", *data); | ||
363 | } else { | ||
364 | brcmf_sdioh_request_word(sdiodev, SDIOH_READ, func, regaddr, | ||
365 | data, regsize); | ||
366 | if (regsize == 2) | ||
367 | *data &= 0xffff; | ||
368 | |||
369 | brcmf_dbg(DATA, "word read data=0x%08x\n", *data); | ||
370 | } | ||
371 | |||
372 | return SUCCESS; | ||
373 | } | ||
374 | |||
375 | static int brcmf_sdioh_get_cisaddr(struct brcmf_sdio_dev *sdiodev, u32 regaddr) | 349 | static int brcmf_sdioh_get_cisaddr(struct brcmf_sdio_dev *sdiodev, u32 regaddr) |
376 | { | 350 | { |
377 | /* read 24 bits and return valid 17 bit addr */ | 351 | /* read 24 bits and return valid 17 bit addr */ |
378 | int i; | 352 | int i, ret; |
379 | u32 scratch, regdata; | 353 | u32 scratch, regdata; |
380 | __le32 scratch_le; | 354 | __le32 scratch_le; |
381 | u8 *ptr = (u8 *)&scratch_le; | 355 | u8 *ptr = (u8 *)&scratch_le; |
382 | 356 | ||
383 | for (i = 0; i < 3; i++) { | 357 | for (i = 0; i < 3; i++) { |
384 | if ((brcmf_sdioh_card_regread(sdiodev, 0, regaddr, 1, | 358 | regdata = brcmf_sdio_regrl(sdiodev, regaddr, &ret); |
385 | ®data)) != SUCCESS) | 359 | if (ret != 0) |
386 | brcmf_dbg(ERROR, "Can't read!\n"); | 360 | brcmf_dbg(ERROR, "Can't read!\n"); |
387 | 361 | ||
388 | *ptr++ = (u8) regdata; | 362 | *ptr++ = (u8) regdata; |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h b/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h index 6d2e665837b4..29bf78d264e0 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h | |||
@@ -41,7 +41,7 @@ | |||
41 | #define SDIOD_MAX_IOFUNCS 7 | 41 | #define SDIOD_MAX_IOFUNCS 7 |
42 | 42 | ||
43 | /* mask of register map */ | 43 | /* mask of register map */ |
44 | #define REG_F0_CCCR_MASK 0xFF | 44 | #define REG_F0_REG_MASK 0x7FF |
45 | #define REG_F1_MISC_MASK 0x1FFFF | 45 | #define REG_F1_MISC_MASK 0x1FFFF |
46 | 46 | ||
47 | /* as of sdiod rev 0, supports 3 functions */ | 47 | /* as of sdiod rev 0, supports 3 functions */ |