brcmfmac: replace brcmf_sdioh_card_regread with brcmf_sdio_regrl
Use the newly introduced brcmf_sdio_regrl to replace brcmf_sdioh_card_regread as part of the SDIO WiFi dongle register access interface clean up. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
5c15c23a7b
commit
d8b3fc59f2
|
@ -196,11 +196,11 @@ brcmf_sdio_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr,
|
|||
|
||||
/*
|
||||
* figure out how to read the register based on address range
|
||||
* 0x00 ~ 0xFF: function 0 CCCR
|
||||
* 0x00 ~ 0x7FF: function 0 CCCR and FBR
|
||||
* 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers
|
||||
* The rest: function 1 silicon backplane core registers
|
||||
*/
|
||||
if ((addr & ~REG_F0_CCCR_MASK) == 0) {
|
||||
if ((addr & ~REG_F0_REG_MASK) == 0) {
|
||||
func_num = SDIO_FUNC_0;
|
||||
reg_size = 1;
|
||||
} else if ((addr & ~REG_F1_MISC_MASK) == 0) {
|
||||
|
|
|
@ -346,43 +346,17 @@ int brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev,
|
|||
return status;
|
||||
}
|
||||
|
||||
/* Read client card reg */
|
||||
static int
|
||||
brcmf_sdioh_card_regread(struct brcmf_sdio_dev *sdiodev, int func, u32 regaddr,
|
||||
int regsize, u32 *data)
|
||||
{
|
||||
|
||||
if ((func == 0) || (regsize == 1)) {
|
||||
u8 temp = 0;
|
||||
|
||||
brcmf_sdioh_request_byte(sdiodev, SDIOH_READ, func, regaddr,
|
||||
&temp);
|
||||
*data = temp;
|
||||
*data &= 0xff;
|
||||
brcmf_dbg(DATA, "byte read data=0x%02x\n", *data);
|
||||
} else {
|
||||
brcmf_sdioh_request_word(sdiodev, SDIOH_READ, func, regaddr,
|
||||
data, regsize);
|
||||
if (regsize == 2)
|
||||
*data &= 0xffff;
|
||||
|
||||
brcmf_dbg(DATA, "word read data=0x%08x\n", *data);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static int brcmf_sdioh_get_cisaddr(struct brcmf_sdio_dev *sdiodev, u32 regaddr)
|
||||
{
|
||||
/* read 24 bits and return valid 17 bit addr */
|
||||
int i;
|
||||
int i, ret;
|
||||
u32 scratch, regdata;
|
||||
__le32 scratch_le;
|
||||
u8 *ptr = (u8 *)&scratch_le;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
if ((brcmf_sdioh_card_regread(sdiodev, 0, regaddr, 1,
|
||||
®data)) != SUCCESS)
|
||||
regdata = brcmf_sdio_regrl(sdiodev, regaddr, &ret);
|
||||
if (ret != 0)
|
||||
brcmf_dbg(ERROR, "Can't read!\n");
|
||||
|
||||
*ptr++ = (u8) regdata;
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#define SDIOD_MAX_IOFUNCS 7
|
||||
|
||||
/* mask of register map */
|
||||
#define REG_F0_CCCR_MASK 0xFF
|
||||
#define REG_F0_REG_MASK 0x7FF
|
||||
#define REG_F1_MISC_MASK 0x1FFFF
|
||||
|
||||
/* as of sdiod rev 0, supports 3 functions */
|
||||
|
|
Loading…
Reference in New Issue