Re: [PATCH 31/34] brcmfmac: Remove func0 from function array
From: Arend van Spriel <arend.vanspriel@broadcom.com>
Date: 2017-08-08 11:19:48
On 26-07-17 22:25, Ian Molton wrote:
Linux doesnt pass you func0 as a function when probing - instead providing specific access functions to read/write it. This prepares for a patch to remove the actual array entry itself.
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Ian Molton <redacted> --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 5 +---- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 6 +++--- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 13 ++++++------- 3 files changed, 10 insertions(+), 14 deletions(-)
[...]
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h index 8a976c89cf63..227c90198a8e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h@@ -21,7 +21,9 @@ #include <linux/firmware.h> #include "firmware.h" -#define SDIO_FUNC_0 0 +/* Maximum number of I/O funcs */ +#define NUM_SDIO_FUNCS 3 + #define SDIO_FUNC_1 1 #define SDIO_FUNC_2 2@@ -39,9 +41,6 @@ #define INTR_STATUS_FUNC1 0x2 #define INTR_STATUS_FUNC2 0x4 -/* Maximum number of I/O funcs */ -#define SDIOD_MAX_IOFUNCS 7 -
Good riddance, because ...
quoted hunk ↗ jump to hunk
/* mask of register map */ #define REG_F0_REG_MASK 0x7FF #define REG_F1_MISC_MASK 0x1FFFF@@ -175,7 +174,7 @@ struct brcmf_sdio; struct brcmf_sdiod_freezer; struct brcmf_sdio_dev { - struct sdio_func *func[SDIO_MAX_FUNCS];
... it was not used anyway as this definition is in <linux/mmc/card.h>.
quoted hunk ↗ jump to hunk
+ struct sdio_func *func[NUM_SDIO_FUNCS]; u8 num_funcs; /* Supported funcs on client */ u32 sbwad; /* Save backplane window address */ struct brcmf_core *cc_core; /* chipcommon core info struct */@@ -297,10 +296,10 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev); /* SDIO device register access interface */ /* Functions for accessing SDIO Function 0 */ #define brcmf_sdiod_func0_rb(sdiodev, addr, r) \ - sdio_f0_readb((sdiodev)->func[0], (addr), (r)) + sdio_f0_readb((sdiodev)->func[1], (addr), (r))
There is no reason to keep these any longer as these do not provide any functionality over the core sdio function unless you consider the sdiodev dereference.