Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 259788
b: refs/heads/master
c: 294f243
h: refs/heads/master
v: v3
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed Jul 5, 2011
1 parent 6312751 commit 921fb77
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 82 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7af9d0caf7c61ed19b7915b5097000b556d3b962
refs/heads/master: 294f24392326731b690fc47adf4dcb76fe4201fe
65 changes: 32 additions & 33 deletions trunk/drivers/staging/brcm80211/brcmfmac/bcmsdbus.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,78 +38,77 @@

typedef int SDIOH_API_RC;

/* SDio Host structure */
typedef struct sdioh_info sdioh_info_t;

/* callback function, taking one arg */
typedef void (*sdioh_cb_fn_t) (void *);

/* attach, return handler on success, NULL if failed.
* The handler shall be provided by all subsequent calls. No local cache
* cfghdl points to the starting address of pci device mapped memory
*/
extern sdioh_info_t *brcmf_sdioh_attach(void *cfghdl, uint irq);
extern SDIOH_API_RC brcmf_sdioh_detach(sdioh_info_t *si);
extern SDIOH_API_RC brcmf_sdioh_interrupt_register(sdioh_info_t *si,
extern struct sdioh_info *brcmf_sdioh_attach(void *cfghdl, uint irq);
extern SDIOH_API_RC brcmf_sdioh_detach(struct sdioh_info *si);
extern SDIOH_API_RC brcmf_sdioh_interrupt_register(struct sdioh_info *si,
sdioh_cb_fn_t fn, void *argh);
extern SDIOH_API_RC brcmf_sdioh_interrupt_deregister(sdioh_info_t *si);
extern SDIOH_API_RC brcmf_sdioh_interrupt_deregister(struct sdioh_info *si);

/* query whether SD interrupt is enabled or not */
extern SDIOH_API_RC brcmf_sdioh_interrupt_query(sdioh_info_t *si, bool *onoff);
extern SDIOH_API_RC
brcmf_sdioh_interrupt_query(struct sdioh_info *si, bool *onoff);

/* enable or disable SD interrupt */
extern SDIOH_API_RC
brcmf_sdioh_interrupt_set(sdioh_info_t *si, bool enable_disable);
brcmf_sdioh_interrupt_set(struct sdioh_info *si, bool enable_disable);

#if defined(DHD_DEBUG)
extern bool brcmf_sdioh_interrupt_pending(sdioh_info_t *si);
extern bool brcmf_sdioh_interrupt_pending(struct sdioh_info *si);
#endif

extern int brcmf_sdioh_claim_host_and_lock(sdioh_info_t *si);
extern int brcmf_sdioh_release_host_and_unlock(sdioh_info_t *si);
extern int brcmf_sdioh_claim_host_and_lock(struct sdioh_info *si);
extern int brcmf_sdioh_release_host_and_unlock(struct sdioh_info *si);

/* read or write one byte using cmd52 */
extern SDIOH_API_RC
brcmf_sdioh_request_byte(sdioh_info_t *si, uint rw, uint fnc, uint addr,
brcmf_sdioh_request_byte(struct sdioh_info *si, uint rw, uint fnc, uint addr,
u8 *byte);

/* read or write 2/4 bytes using cmd53 */
extern SDIOH_API_RC brcmf_sdioh_request_word(sdioh_info_t *si, uint cmd_type,
uint rw, uint fnc, uint addr,
u32 *word, uint nbyte);
extern SDIOH_API_RC
brcmf_sdioh_request_word(struct sdioh_info *si, uint cmd_type,
uint rw, uint fnc, uint addr,
u32 *word, uint nbyte);

/* read or write any buffer using cmd53 */
extern SDIOH_API_RC brcmf_sdioh_request_buffer(sdioh_info_t *si, uint pio_dma,
uint fix_inc, uint rw, uint fnc_num,
u32 addr, uint regwidth,
u32 buflen, u8 *buffer,
struct sk_buff *pkt);
extern SDIOH_API_RC
brcmf_sdioh_request_buffer(struct sdioh_info *si, uint pio_dma,
uint fix_inc, uint rw, uint fnc_num,
u32 addr, uint regwidth,
u32 buflen, u8 *buffer, struct sk_buff *pkt);

/* get cis data */
extern SDIOH_API_RC brcmf_sdioh_cis_read(sdioh_info_t *si, uint fuc, u8 *cis,
u32 length);
extern SDIOH_API_RC
brcmf_sdioh_cis_read(struct sdioh_info *si, uint fuc, u8 *cis, u32 length);

extern SDIOH_API_RC brcmf_sdioh_cfg_read(sdioh_info_t *si, uint fuc, u32 addr,
u8 *data);
extern SDIOH_API_RC brcmf_sdioh_cfg_write(sdioh_info_t *si, uint fuc, u32 addr,
u8 *data);
extern SDIOH_API_RC
brcmf_sdioh_cfg_read(struct sdioh_info *si, uint fuc, u32 addr, u8 *data);
extern SDIOH_API_RC
brcmf_sdioh_cfg_write(struct sdioh_info *si, uint fuc, u32 addr, u8 *data);

/* query number of io functions */
extern uint brcmf_sdioh_query_iofnum(sdioh_info_t *si);
extern uint brcmf_sdioh_query_iofnum(struct sdioh_info *si);

/* handle iovars */
extern int brcmf_sdioh_iovar_op(sdioh_info_t *si, const char *name,
extern int brcmf_sdioh_iovar_op(struct sdioh_info *si, const char *name,
void *params, int plen, void *arg, int len, bool set);

/* Issue abort to the specified function and clear controller as needed */
extern int brcmf_sdioh_abort(sdioh_info_t *si, uint fnc);
extern int brcmf_sdioh_abort(struct sdioh_info *si, uint fnc);

/* Start and Stop SDIO without re-enumerating the SD card. */
extern int brcmf_sdioh_start(sdioh_info_t *si, int stage);
extern int brcmf_sdioh_stop(sdioh_info_t *si);
extern int brcmf_sdioh_start(struct sdioh_info *si, int stage);
extern int brcmf_sdioh_stop(struct sdioh_info *si);

/* Reset and re-initialize the device */
extern int brcmf_sdioh_reset(sdioh_info_t *si);
extern int brcmf_sdioh_reset(struct sdioh_info *si);

/* Helper function */
void *brcmf_sdcard_get_sdioh(bcmsdh_info_t *sdh);
Expand Down
70 changes: 36 additions & 34 deletions trunk/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ extern void brcmf_sdio_function_cleanup(void);
static void brcmf_sdioh_irqhandler(struct sdio_func *func);
static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func);
#endif /* !defined(OOB_INTR_ONLY) */
static int brcmf_sdioh_get_cisaddr(sdioh_info_t *sd, u32 regaddr);
static int brcmf_sdioh_get_cisaddr(struct sdioh_info *sd, u32 regaddr);
extern int brcmf_sdioh_reset_comm(struct mmc_card *card);

extern PBCMSDH_SDMMC_INSTANCE gInstance;
Expand All @@ -54,7 +54,7 @@ DHD_PM_RESUME_WAIT_INIT(sdioh_request_buffer_wait);

#define DMA_ALIGN_MASK 0x03

int brcmf_sdioh_card_regread(sdioh_info_t *sd, int func, u32 regaddr,
int brcmf_sdioh_card_regread(struct sdioh_info *sd, int func, u32 regaddr,
int regsize, u32 *data);

void brcmf_sdioh_set_host_pm_flags(int flag)
Expand All @@ -64,7 +64,7 @@ void brcmf_sdioh_set_host_pm_flags(int flag)
__func__, (unsigned int)flag);
}

static int brcmf_sdioh_enablefuncs(sdioh_info_t *sd)
static int brcmf_sdioh_enablefuncs(struct sdioh_info *sd)
{
int err_ret;
u32 fbraddr;
Expand Down Expand Up @@ -106,9 +106,9 @@ static int brcmf_sdioh_enablefuncs(sdioh_info_t *sd)
/*
* Public entry points & extern's
*/
sdioh_info_t *brcmf_sdioh_attach(void *bar0, uint irq)
struct sdioh_info *brcmf_sdioh_attach(void *bar0, uint irq)
{
sdioh_info_t *sd;
struct sdioh_info *sd;
int err_ret;

sd_trace(("%s\n", __func__));
Expand All @@ -118,7 +118,7 @@ sdioh_info_t *brcmf_sdioh_attach(void *bar0, uint irq)
return NULL;
}

sd = kzalloc(sizeof(sdioh_info_t), GFP_ATOMIC);
sd = kzalloc(sizeof(struct sdioh_info), GFP_ATOMIC);
if (sd == NULL) {
sd_err(("sdioh_attach: out of memory\n"));
return NULL;
Expand Down Expand Up @@ -167,7 +167,7 @@ sdioh_info_t *brcmf_sdioh_attach(void *bar0, uint irq)
return sd;
}

extern SDIOH_API_RC brcmf_sdioh_detach(sdioh_info_t *sd)
extern SDIOH_API_RC brcmf_sdioh_detach(struct sdioh_info *sd)
{
sd_trace(("%s\n", __func__));

Expand Down Expand Up @@ -261,7 +261,8 @@ extern SDIOH_API_RC brcmf_sdioh_disable_func_intr(void)

/* Configure callback to client when we receive client interrupt */
extern SDIOH_API_RC
brcmf_sdioh_interrupt_register(sdioh_info_t *sd, sdioh_cb_fn_t fn, void *argh)
brcmf_sdioh_interrupt_register(struct sdioh_info *sd, sdioh_cb_fn_t fn,
void *argh)
{
sd_trace(("%s: Entering\n", __func__));
if (fn == NULL) {
Expand Down Expand Up @@ -292,7 +293,7 @@ brcmf_sdioh_interrupt_register(sdioh_info_t *sd, sdioh_cb_fn_t fn, void *argh)
return SDIOH_API_RC_SUCCESS;
}

extern SDIOH_API_RC brcmf_sdioh_interrupt_deregister(sdioh_info_t *sd)
extern SDIOH_API_RC brcmf_sdioh_interrupt_deregister(struct sdioh_info *sd)
{
sd_trace(("%s: Entering\n", __func__));

Expand Down Expand Up @@ -321,21 +322,22 @@ extern SDIOH_API_RC brcmf_sdioh_interrupt_deregister(sdioh_info_t *sd)
return SDIOH_API_RC_SUCCESS;
}

extern SDIOH_API_RC brcmf_sdioh_interrupt_query(sdioh_info_t *sd, bool *onoff)
extern SDIOH_API_RC
brcmf_sdioh_interrupt_query(struct sdioh_info *sd, bool *onoff)
{
sd_trace(("%s: Entering\n", __func__));
*onoff = sd->client_intr_enabled;
return SDIOH_API_RC_SUCCESS;
}

#if defined(DHD_DEBUG)
extern bool brcmf_sdioh_interrupt_pending(sdioh_info_t *sd)
extern bool brcmf_sdioh_interrupt_pending(struct sdioh_info *sd)
{
return 0;
}
#endif

uint brcmf_sdioh_query_iofnum(sdioh_info_t *sd)
uint brcmf_sdioh_query_iofnum(struct sdioh_info *sd)
{
return sd->num_funcs;
}
Expand Down Expand Up @@ -365,7 +367,7 @@ const struct brcmu_iovar sdioh_iovars[] = {
};

int
brcmf_sdioh_iovar_op(sdioh_info_t *si, const char *name,
brcmf_sdioh_iovar_op(struct sdioh_info *si, const char *name,
void *params, int plen, void *arg, int len, bool set)
{
const struct brcmu_iovar *vi = NULL;
Expand Down Expand Up @@ -534,7 +536,7 @@ brcmf_sdioh_iovar_op(sdioh_info_t *si, const char *name,

#if defined(OOB_INTR_ONLY) && defined(HW_OOB)

SDIOH_API_RC brcmf_sdioh_enable_hw_oob_intr(sdioh_info_t *sd, bool enable)
SDIOH_API_RC brcmf_sdioh_enable_hw_oob_intr(struct sdioh_info *sd, bool enable)
{
SDIOH_API_RC status;
u8 data;
Expand All @@ -551,7 +553,7 @@ SDIOH_API_RC brcmf_sdioh_enable_hw_oob_intr(sdioh_info_t *sd, bool enable)
#endif /* defined(OOB_INTR_ONLY) && defined(HW_OOB) */

extern SDIOH_API_RC
brcmf_sdioh_cfg_read(sdioh_info_t *sd, uint fnc_num, u32 addr, u8 *data)
brcmf_sdioh_cfg_read(struct sdioh_info *sd, uint fnc_num, u32 addr, u8 *data)
{
SDIOH_API_RC status;
/* No lock needed since brcmf_sdioh_request_byte does locking */
Expand All @@ -560,15 +562,15 @@ brcmf_sdioh_cfg_read(sdioh_info_t *sd, uint fnc_num, u32 addr, u8 *data)
}

extern SDIOH_API_RC
brcmf_sdioh_cfg_write(sdioh_info_t *sd, uint fnc_num, u32 addr, u8 *data)
brcmf_sdioh_cfg_write(struct sdioh_info *sd, uint fnc_num, u32 addr, u8 *data)
{
/* No lock needed since brcmf_sdioh_request_byte does locking */
SDIOH_API_RC status;
status = brcmf_sdioh_request_byte(sd, SDIOH_WRITE, fnc_num, addr, data);
return status;
}

static int brcmf_sdioh_get_cisaddr(sdioh_info_t *sd, u32 regaddr)
static int brcmf_sdioh_get_cisaddr(struct sdioh_info *sd, u32 regaddr)
{
/* read 24 bits and return valid 17 bit addr */
int i;
Expand All @@ -590,7 +592,7 @@ static int brcmf_sdioh_get_cisaddr(sdioh_info_t *sd, u32 regaddr)
}

extern SDIOH_API_RC
brcmf_sdioh_cis_read(sdioh_info_t *sd, uint func, u8 *cisd, u32 length)
brcmf_sdioh_cis_read(struct sdioh_info *sd, uint func, u8 *cisd, u32 length)
{
u32 count;
int offset;
Expand Down Expand Up @@ -624,8 +626,8 @@ brcmf_sdioh_cis_read(sdioh_info_t *sd, uint func, u8 *cisd, u32 length)
}

extern SDIOH_API_RC
brcmf_sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
u8 *byte)
brcmf_sdioh_request_byte(struct sdioh_info *sd, uint rw, uint func,
uint regaddr, u8 *byte)
{
int err_ret;

Expand Down Expand Up @@ -723,8 +725,8 @@ brcmf_sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
}

extern SDIOH_API_RC
brcmf_sdioh_request_word(sdioh_info_t *sd, uint cmd_type, uint rw, uint func,
uint addr, u32 *word, uint nbytes)
brcmf_sdioh_request_word(struct sdioh_info *sd, uint cmd_type, uint rw,
uint func, uint addr, u32 *word, uint nbytes)
{
int err_ret = SDIOH_API_RC_FAIL;

Expand Down Expand Up @@ -776,7 +778,7 @@ brcmf_sdioh_request_word(sdioh_info_t *sd, uint cmd_type, uint rw, uint func,
}

static SDIOH_API_RC
brcmf_sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write,
brcmf_sdioh_request_packet(struct sdioh_info *sd, uint fix_inc, uint write,
uint func, uint addr, struct sk_buff *pkt)
{
bool fifo = (fix_inc == SDIOH_DATA_FIX);
Expand Down Expand Up @@ -872,7 +874,7 @@ brcmf_sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write,
*
*/
extern SDIOH_API_RC
brcmf_sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc,
brcmf_sdioh_request_buffer(struct sdioh_info *sd, uint pio_dma, uint fix_inc,
uint write, uint func, uint addr, uint reg_width,
uint buflen_u, u8 *buffer, struct sk_buff *pkt)
{
Expand Down Expand Up @@ -945,7 +947,7 @@ brcmf_sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc,
}

/* this function performs "abort" for both of host & device */
extern int brcmf_sdioh_abort(sdioh_info_t *sd, uint func)
extern int brcmf_sdioh_abort(struct sdioh_info *sd, uint func)
{
#if defined(MMC_SDIO_ABORT)
char t_func = (char)func;
Expand All @@ -963,30 +965,30 @@ extern int brcmf_sdioh_abort(sdioh_info_t *sd, uint func)
}

/* Reset and re-initialize the device */
int brcmf_sdioh_reset(sdioh_info_t *si)
int brcmf_sdioh_reset(struct sdioh_info *si)
{
sd_trace(("%s: Enter\n", __func__));
sd_trace(("%s: Exit\n", __func__));
return SDIOH_API_RC_SUCCESS;
}

/* Disable device interrupt */
void brcmf_sdioh_dev_intr_off(sdioh_info_t *sd)
void brcmf_sdioh_dev_intr_off(struct sdioh_info *sd)
{
sd_trace(("%s: %d\n", __func__, sd->use_client_ints));
sd->intmask &= ~CLIENT_INTR;
}

/* Enable device interrupt */
void brcmf_sdioh_dev_intr_on(sdioh_info_t *sd)
void brcmf_sdioh_dev_intr_on(struct sdioh_info *sd)
{
sd_trace(("%s: %d\n", __func__, sd->use_client_ints));
sd->intmask |= CLIENT_INTR;
}

/* Read client card reg */
int
brcmf_sdioh_card_regread(sdioh_info_t *sd, int func, u32 regaddr,
brcmf_sdioh_card_regread(struct sdioh_info *sd, int func, u32 regaddr,
int regsize, u32 *data)
{

Expand All @@ -1013,7 +1015,7 @@ brcmf_sdioh_card_regread(sdioh_info_t *sd, int func, u32 regaddr,
/* bcmsdh_sdmmc interrupt handler */
static void brcmf_sdioh_irqhandler(struct sdio_func *func)
{
sdioh_info_t *sd;
struct sdioh_info *sd;

sd_trace(("bcmsdh_sdmmc: ***IRQHandler\n"));
sd = gInstance->sd;
Expand All @@ -1039,7 +1041,7 @@ static void brcmf_sdioh_irqhandler(struct sdio_func *func)
/* bcmsdh_sdmmc interrupt handler for F2 (dummy handler) */
static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func)
{
sdioh_info_t *sd;
struct sdioh_info *sd;

sd_trace(("bcmsdh_sdmmc: ***IRQHandlerF2\n"));

Expand All @@ -1052,7 +1054,7 @@ static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func)
#ifdef NOTUSED
/* Write client card reg */
static int
brcmf_sdioh_card_regwrite(sdioh_info_t *sd, int func, u32 regaddr,
brcmf_sdioh_card_regwrite(struct sdioh_info *sd, int func, u32 regaddr,
int regsize, u32 data)
{

Expand All @@ -1076,12 +1078,12 @@ brcmf_sdioh_card_regwrite(sdioh_info_t *sd, int func, u32 regaddr,
}
#endif /* NOTUSED */

int brcmf_sdioh_start(sdioh_info_t *si, int stage)
int brcmf_sdioh_start(struct sdioh_info *si, int stage)
{
return 0;
}

int brcmf_sdioh_stop(sdioh_info_t *si)
int brcmf_sdioh_stop(struct sdioh_info *si)
{
return 0;
}
Loading

0 comments on commit 921fb77

Please sign in to comment.