From 651bd3d7e9655fcace66a735c45c124f9ba5f7df Mon Sep 17 00:00:00 2001 From: Owen Huang Date: Fri, 23 Dec 2022 03:38:08 -0600 Subject: [PATCH 211/296] non-upstream: btsdio: enable export api to r/w F3 one byte 1. enable export API ifx_bus_reg_readb to read byte 2. enable export API ifx_bus_reg_writeb to write byte Signed-off-by: Owen Huang --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 + .../broadcom/brcm80211/brcmfmac/bt_shared_sdio_ifx.c | 6 ------ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 7 +++++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c index 9a221326ae3e..bed1a4802e51 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -1096,6 +1096,7 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, */ sdiodev->func1 = func->card->sdio_func[0]; sdiodev->func2 = func; + sdiodev->func3 = func->card->sdio_func[2]; sdiodev->bus_if = bus_if; bus_if->bus_priv.sdio = sdiodev; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bt_shared_sdio_ifx.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bt_shared_sdio_ifx.c index 62cac8e73467..98d9e418c001 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bt_shared_sdio_ifx.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bt_shared_sdio_ifx.c @@ -597,11 +597,8 @@ u8 inf_bus_reg_readb(struct brcmf_bus *bus_if, u8 fn, u32 addr, int *err) ktime_get_ts64(&ts_start); if (fn == SDIO_FUNC_0) val = brcmf_sdiod_func0_rb(sdiodev, addr, err); - // wait for next commit for reading another function register - #if 0 else val = brcmf_sdiod_func_rb(func, addr, err); - #endif // wait for next commit to recoed command //_btsdio_record_cmd(&sdiodev->sdcnt.bt_reg_rb[fn], ts_start); sdio_release_host(sdiodev->func1); @@ -645,11 +642,8 @@ void inf_bus_reg_writeb(struct brcmf_bus *bus_if, u8 fn, u32 addr, u8 val, int * ktime_get_ts64(&ts_start); if (fn == SDIO_FUNC_0) brcmf_sdiod_func0_wb(sdiodev, addr, val, err); - // wait for next commit for reading another function register - #if 0 else brcmf_sdiod_func_wb(func, addr, val, err); - #endif // wait for next commit to recoed command //_btsdio_record_cmd(&sdiodev->sdcnt.bt_reg_wb[fn], ts_start); sdio_release_host(sdiodev->func1); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h index 2692ce855d25..639bc23958b6 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h @@ -374,6 +374,13 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev); #define brcmf_sdiod_writeb(sdiodev, addr, v, ret) \ sdio_writeb((sdiodev)->func1, (v), (addr), (ret)) +/* Accessors for SDIO specific function number */ +#define brcmf_sdiod_func_rb(func, addr, r) \ + sdio_readb((func), (addr), (r)) + +#define brcmf_sdiod_func_wb(func, addr, v, ret) \ + sdio_writeb((func), (v), (addr), (ret)) + u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret); void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, u32 data, int *ret); -- 2.25.1