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.vanspr...@broadcom.com>
> Signed-off-by: Ian Molton <i...@mnementh.co.uk>
> ---
>  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(-)

[...]

> 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 ...

>  /* 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>.

> +     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.

Reply via email to