staging: brcm80211: removed unused code and definitions from fullmac
[deliverable/linux.git] / drivers / staging / brcm80211 / brcmfmac / bcmsdbus.h
index 53c32915acc9e128a8ef67c9c051a79adf4a0c3e..c4c6e54dbb876455623f9687543089ca86d88451 100644 (file)
@@ -17,9 +17,7 @@
 #ifndef        _sdio_api_h_
 #define        _sdio_api_h_
 
-#define SDIOH_API_RC_SUCCESS                          (0x00)
-#define SDIOH_API_RC_FAIL                            (0x01)
-#define SDIOH_API_SUCCESS(status) (status == 0)
+#include "sdio_host.h"
 
 #define SDIOH_READ              0      /* Read request */
 #define SDIOH_WRITE             1      /* Write request */
 #define SDIOH_DATA_PIO          0      /* PIO mode */
 #define SDIOH_DATA_DMA          1      /* DMA mode */
 
-typedef int SDIOH_API_RC;
-
-/* SDio Host structure */
-typedef struct sdioh_info sdioh_info_t;
+/* internal return code */
+#define SUCCESS        0
+#define ERROR  1
+
+/* Common msglevel constants */
+#define SDH_ERROR_VAL          0x0001  /* Error */
+#define SDH_TRACE_VAL          0x0002  /* Trace */
+#define SDH_INFO_VAL           0x0004  /* Info */
+#define SDH_DEBUG_VAL          0x0008  /* Debug */
+#define SDH_DATA_VAL           0x0010  /* Data */
+#define SDH_CTRL_VAL           0x0020  /* Control Regs */
+#define SDH_LOG_VAL            0x0040  /* Enable bcmlog */
+#define SDH_DMA_VAL            0x0080  /* DMA */
+
+#ifdef BCMDBG
+#define sd_err(x)      \
+       do { \
+               if ((sd_msglevel & SDH_ERROR_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#define sd_trace(x)    \
+       do { \
+               if ((sd_msglevel & SDH_TRACE_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#define sd_info(x)     \
+       do { \
+               if ((sd_msglevel & SDH_INFO_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#define sd_debug(x)    \
+       do { \
+               if ((sd_msglevel & SDH_DEBUG_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#define sd_data(x)     \
+       do { \
+               if ((sd_msglevel & SDH_DATA_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#define sd_ctrl(x)     \
+       do { \
+               if ((sd_msglevel & SDH_CTRL_VAL) && net_ratelimit()) \
+                       printk x; \
+       } while (0)
+#else
+#define sd_err(x)
+#define sd_trace(x)
+#define sd_info(x)
+#define sd_debug(x)
+#define sd_data(x)
+#define sd_ctrl(x)
+#endif
 
-/* callback function, taking one arg */
-typedef void (*sdioh_cb_fn_t) (void *);
+struct brcmf_sdreg {
+       int func;
+       int offset;
+       int value;
+};
+
+struct sdioh_info {
+       struct osl_info *osh;           /* osh handler */
+       bool client_intr_enabled;       /* interrupt connnected flag */
+       bool intr_handler_valid;        /* client driver interrupt handler valid */
+       void (*intr_handler)(void *);   /* registered interrupt handler */
+       void *intr_handler_arg; /* argument to call interrupt handler */
+       u16 intmask;            /* Current active interrupts */
+       void *sdos_info;        /* Pointer to per-OS private data */
+
+       uint irq;               /* Client irq */
+       int intrcount;          /* Client interrupts */
+       bool sd_blockmode;      /* sd_blockmode == false => 64 Byte Cmd 53s. */
+       /*  Must be on for sd_multiblock to be effective */
+       bool use_client_ints;   /* If this is false, make sure to restore */
+       int client_block_size[SDIOD_MAX_IOFUNCS];       /* Blocksize */
+       u8 num_funcs;   /* Supported funcs on client */
+       u32 com_cis_ptr;
+       u32 func_cis_ptr[SDIOD_MAX_IOFUNCS];
+       uint max_dma_len;
+       uint max_dma_descriptors;       /* DMA Descriptors supported by this controller. */
+       /*      SDDMA_DESCRIPTOR        SGList[32]; *//* Scatter/Gather DMA List */
+};
+
+struct brcmf_sdmmc_instance {
+       struct sdioh_info *sd;
+       struct sdio_func *func[SDIOD_MAX_IOFUNCS];
+       u32 host_claimed;
+};
+
+/* Allocate/init/free per-OS private data */
+extern int  brcmf_sdioh_osinit(struct sdioh_info *sd);
+extern void brcmf_sdioh_osfree(struct sdioh_info *sd);
+
+/* Core interrupt enable/disable of device interrupts */
+extern void brcmf_sdioh_dev_intr_on(struct sdioh_info *sd);
+extern void brcmf_sdioh_dev_intr_off(struct sdioh_info *sd);
 
 /* 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 *sdioh_attach(void *cfghdl, uint irq);
-extern SDIOH_API_RC sdioh_detach(sdioh_info_t *si);
-extern SDIOH_API_RC sdioh_interrupt_register(sdioh_info_t *si,
-                                            sdioh_cb_fn_t fn, void *argh);
-extern SDIOH_API_RC sdioh_interrupt_deregister(sdioh_info_t *si);
+extern struct sdioh_info *brcmf_sdioh_attach(void *cfghdl, uint irq);
+extern int brcmf_sdioh_detach(struct sdioh_info *si);
 
-/* query whether SD interrupt is enabled or not */
-extern SDIOH_API_RC sdioh_interrupt_query(sdioh_info_t *si, bool *onoff);
+extern int
+brcmf_sdioh_interrupt_register(struct sdioh_info *si,
+                              void (*sdioh_cb_fn)(void *), void *argh);
 
-/* enable or disable SD interrupt */
-extern SDIOH_API_RC sdioh_interrupt_set(sdioh_info_t *si, bool enable_disable);
+extern int brcmf_sdioh_interrupt_deregister(struct sdioh_info *si);
 
-#if defined(DHD_DEBUG)
-extern bool sdioh_interrupt_pending(sdioh_info_t *si);
-#endif
-
-extern int sdioh_claim_host_and_lock(sdioh_info_t *si);
-extern int sdioh_release_host_and_unlock(sdioh_info_t *si);
+/* enable or disable SD interrupt */
+extern int
+brcmf_sdioh_interrupt_set(struct sdioh_info *si, bool enable_disable);
 
 /* read or write one byte using cmd52 */
-extern SDIOH_API_RC sdioh_request_byte(sdioh_info_t *si, uint rw, uint fnc,
-                                      uint addr, u8 *byte);
+extern int
+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 sdioh_request_word(sdioh_info_t *si, uint cmd_type,
-                                      uint rw, uint fnc, uint addr,
-                                      u32 *word, uint nbyte);
+extern int
+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 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 int
+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 sdioh_cis_read(sdioh_info_t *si, uint fuc, u8 *cis,
-                                  u32 length);
-
-extern SDIOH_API_RC sdioh_cfg_read(sdioh_info_t *si, uint fuc, u32 addr,
-                                  u8 *data);
-extern SDIOH_API_RC sdioh_cfg_write(sdioh_info_t *si, uint fuc, u32 addr,
-                                   u8 *data);
+extern int
+brcmf_sdioh_cis_read(struct sdioh_info *si, uint fuc, u8 *cis, u32 length);
 
-/* query number of io functions */
-extern uint sdioh_query_iofnum(sdioh_info_t *si);
+extern int
+brcmf_sdioh_cfg_read(struct sdioh_info *si, uint fuc, u32 addr, u8 *data);
+extern int
+brcmf_sdioh_cfg_write(struct sdioh_info *si, uint fuc, u32 addr, u8 *data);
 
 /* handle iovars */
-extern int 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 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 sdioh_start(sdioh_info_t *si, int stage);
-extern int sdioh_stop(sdioh_info_t *si);
+/* Watchdog timer interface for pm ops */
+extern void brcmf_sdio_wdtmr_enable(bool enable);
 
-/* Reset and re-initialize the device */
-extern int sdioh_sdio_reset(sdioh_info_t *si);
+extern uint sd_msglevel;       /* Debug message level */
 
-/* Helper function */
-void *bcmsdh_get_sdioh(bcmsdh_info_t *sdh);
+extern struct brcmf_sdmmc_instance *gInstance;
 
 #endif                         /* _sdio_api_h_ */
This page took 0.038548 seconds and 5 git commands to generate.