staging: brcm80211: removed unused code and definitions from fullmac
[deliverable/linux.git] / drivers / staging / brcm80211 / brcmfmac / bcmsdh_sdmmc.c
index 9abd6207c1924b74db258fba852276ccf950b0a8..1b55e5671b3f042521982a360a6b1c3a48d62c8a 100644 (file)
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/mmc/sdio.h>
-#include <bcmdefs.h>
-#include <bcmdevs.h>
-#include <brcmu_utils.h>
-#include <brcmu_wifi.h>
-#include <bcmsdh.h>
-#include <bcmsdbus.h>          /* bcmsdh to/from specific controller APIs */
-#include <sdiovar.h>           /* ioctl/iovars */
-
 #include <linux/mmc/core.h>
 #include <linux/mmc/sdio_func.h>
 #include <linux/mmc/sdio_ids.h>
 #include <linux/suspend.h>
+#include <linux/errno.h>
 
-#include <dngl_stats.h>
-#include <dhd.h>
+#include <defs.h>
+#include <brcm_hw_ids.h>
+#include <brcmu_utils.h>
+#include <brcmu_wifi.h>
+#include "sdio_host.h"
+#include "bcmsdbus.h"
+#include "dngl_stats.h"
+#include "dhd.h"
 
-#include "bcmsdh_sdmmc.h"
+#define BLOCK_SIZE_64 64
+#define BLOCK_SIZE_512 512
+#define BLOCK_SIZE_4318 64
+#define BLOCK_SIZE_4328 512
 
-extern int sdio_function_init(void);
-extern void sdio_function_cleanup(void);
+/* private bus modes */
+#define SDIOH_MODE_SD4         2
 
-#if !defined(OOB_INTR_ONLY)
-static void IRQHandler(struct sdio_func *func);
-static void IRQHandlerF2(struct sdio_func *func);
-#endif                         /* !defined(OOB_INTR_ONLY) */
-static int sdioh_sdmmc_get_cisaddr(sdioh_info_t *sd, u32 regaddr);
-extern int sdio_reset_comm(struct mmc_card *card);
+#define CLIENT_INTR            0x100   /* Get rid of this! */
 
-extern PBCMSDH_SDMMC_INSTANCE gInstance;
+static void brcmf_sdioh_irqhandler(struct sdio_func *func);
+static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func);
+static int brcmf_sdioh_get_cisaddr(struct sdioh_info *sd, u32 regaddr);
 
 uint sd_f2_blocksize = 512;    /* Default blocksize */
 
 uint sd_msglevel = 0x01;
-DHD_PM_RESUME_WAIT_INIT(sdioh_request_byte_wait);
-DHD_PM_RESUME_WAIT_INIT(sdioh_request_word_wait);
-DHD_PM_RESUME_WAIT_INIT(sdioh_request_packet_wait);
-DHD_PM_RESUME_WAIT_INIT(sdioh_request_buffer_wait);
+BRCMF_PM_RESUME_WAIT_INIT(sdioh_request_byte_wait);
+BRCMF_PM_RESUME_WAIT_INIT(sdioh_request_word_wait);
+BRCMF_PM_RESUME_WAIT_INIT(sdioh_request_packet_wait);
+BRCMF_PM_RESUME_WAIT_INIT(sdioh_request_buffer_wait);
 
 #define DMA_ALIGN_MASK 0x03
 
-int sdioh_sdmmc_card_regread(sdioh_info_t *sd, int func, u32 regaddr,
-                            int regsize, u32 *data);
-
-void sdioh_sdio_set_host_pm_flags(int flag)
-{
-       if (sdio_set_host_pm_flags(gInstance->func[1], flag))
-               printk(KERN_ERR "%s: Failed to set pm_flags 0x%08x\n",\
-                        __func__, (unsigned int)flag);
-}
+static int
+brcmf_sdioh_card_regread(struct sdioh_info *sd, int func, u32 regaddr,
+                        int regsize, u32 *data);
 
-static int sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd)
+static int brcmf_sdioh_enablefuncs(struct sdioh_info *sd)
 {
        int err_ret;
        u32 fbraddr;
@@ -75,7 +68,7 @@ static int sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd)
        sd_trace(("%s\n", __func__));
 
        /* Get the Card's common CIS address */
-       sd->com_cis_ptr = sdioh_sdmmc_get_cisaddr(sd, SDIO_CCCR_CIS);
+       sd->com_cis_ptr = brcmf_sdioh_get_cisaddr(sd, SDIO_CCCR_CIS);
        sd->func_cis_ptr[0] = sd->com_cis_ptr;
        sd_info(("%s: Card's Common CIS Ptr = 0x%x\n", __func__,
                 sd->com_cis_ptr));
@@ -84,7 +77,7 @@ static int sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd)
        for (fbraddr = SDIO_FBR_BASE(1), func = 1;
             func <= sd->num_funcs; func++, fbraddr += SDIOD_FBR_SIZE) {
                sd->func_cis_ptr[func] =
-                   sdioh_sdmmc_get_cisaddr(sd, SDIO_FBR_CIS + fbraddr);
+                   brcmf_sdioh_get_cisaddr(sd, SDIO_FBR_CIS + fbraddr);
                sd_info(("%s: Function %d CIS Ptr = 0x%x\n", __func__, func,
                         sd->func_cis_ptr[func]));
        }
@@ -98,8 +91,8 @@ static int sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd)
        err_ret = sdio_enable_func(gInstance->func[1]);
        sdio_release_host(gInstance->func[1]);
        if (err_ret) {
-               sd_err(("bcmsdh_sdmmc: Failed to enable F1 Err: 0x%08x",
-                       err_ret));
+               sd_err(("brcmf_sdioh_enablefuncs: Failed to enable F1 "
+                       "Err: 0x%08x", err_ret));
        }
 
        return false;
@@ -108,9 +101,9 @@ static int sdioh_sdmmc_card_enablefuncs(sdioh_info_t *sd)
 /*
  *     Public entry points & extern's
  */
-sdioh_info_t *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__));
@@ -120,12 +113,12 @@ sdioh_info_t *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;
        }
-       if (sdioh_sdmmc_osinit(sd) != 0) {
+       if (brcmf_sdioh_osinit(sd) != 0) {
                sd_err(("%s:sdioh_sdmmc_osinit() failed\n", __func__));
                kfree(sd);
                return NULL;
@@ -143,7 +136,7 @@ sdioh_info_t *sdioh_attach(void *bar0, uint irq)
        sd->client_block_size[1] = 64;
        err_ret = sdio_set_block_size(gInstance->func[1], 64);
        if (err_ret)
-               sd_err(("bcmsdh_sdmmc: Failed to set F1 blocksize\n"));
+               sd_err(("brcmf_sdioh_attach: Failed to set F1 blocksize\n"));
 
        /* Release host controller F1 */
        sdio_release_host(gInstance->func[1]);
@@ -156,20 +149,20 @@ sdioh_info_t *sdioh_attach(void *bar0, uint irq)
                err_ret =
                    sdio_set_block_size(gInstance->func[2], sd_f2_blocksize);
                if (err_ret)
-                       sd_err(("bcmsdh_sdmmc: Failed to set F2 blocksize "
-                               "to %d\n", sd_f2_blocksize));
+                       sd_err(("brcmf_sdioh_attach: Failed to set F2 blocksize"
+                               " to %d\n", sd_f2_blocksize));
 
                /* Release host controller F2 */
                sdio_release_host(gInstance->func[2]);
        }
 
-       sdioh_sdmmc_card_enablefuncs(sd);
+       brcmf_sdioh_enablefuncs(sd);
 
        sd_trace(("%s: Done\n", __func__));
        return sd;
 }
 
-extern SDIOH_API_RC sdioh_detach(sdioh_info_t *sd)
+extern int brcmf_sdioh_detach(struct sdioh_info *sd)
 {
        sd_trace(("%s\n", __func__));
 
@@ -186,92 +179,25 @@ extern SDIOH_API_RC sdioh_detach(sdioh_info_t *sd)
                sdio_release_host(gInstance->func[1]);
 
                /* deregister irq */
-               sdioh_sdmmc_osfree(sd);
+               brcmf_sdioh_osfree(sd);
 
                kfree(sd);
        }
-       return SDIOH_API_RC_SUCCESS;
-}
-
-#if defined(OOB_INTR_ONLY) && defined(HW_OOB)
-
-extern SDIOH_API_RC sdioh_enable_func_intr(void)
-{
-       u8 reg;
-       int err;
-
-       if (gInstance->func[0]) {
-               sdio_claim_host(gInstance->func[0]);
-
-               reg = sdio_readb(gInstance->func[0], SDIOD_CCCR_INTEN, &err);
-               if (err) {
-                       sd_err(("%s: error for read SDIO_CCCR_IENx : 0x%x\n",
-                               __func__, err));
-                       sdio_release_host(gInstance->func[0]);
-                       return SDIOH_API_RC_FAIL;
-               }
-
-               /* Enable F1 and F2 interrupts, set master enable */
-               reg |=
-                   (INTR_CTL_FUNC1_EN | INTR_CTL_FUNC2_EN |
-                    INTR_CTL_MASTER_EN);
-
-               sdio_writeb(gInstance->func[0], reg, SDIOD_CCCR_INTEN, &err);
-               sdio_release_host(gInstance->func[0]);
-
-               if (err) {
-                       sd_err(("%s: error for write SDIO_CCCR_IENx : 0x%x\n",
-                               __func__, err));
-                       return SDIOH_API_RC_FAIL;
-               }
-       }
-
-       return SDIOH_API_RC_SUCCESS;
-}
-
-extern SDIOH_API_RC sdioh_disable_func_intr(void)
-{
-       u8 reg;
-       int err;
-
-       if (gInstance->func[0]) {
-               sdio_claim_host(gInstance->func[0]);
-               reg = sdio_readb(gInstance->func[0], SDIOD_CCCR_INTEN, &err);
-               if (err) {
-                       sd_err(("%s: error for read SDIO_CCCR_IENx : 0x%x\n",
-                               __func__, err));
-                       sdio_release_host(gInstance->func[0]);
-                       return SDIOH_API_RC_FAIL;
-               }
-
-               reg &= ~(INTR_CTL_FUNC1_EN | INTR_CTL_FUNC2_EN);
-               /* Disable master interrupt with the last function interrupt */
-               if (!(reg & 0xFE))
-                       reg = 0;
-               sdio_writeb(gInstance->func[0], reg, SDIOD_CCCR_INTEN, &err);
-
-               sdio_release_host(gInstance->func[0]);
-               if (err) {
-                       sd_err(("%s: error for write SDIO_CCCR_IENx : 0x%x\n",
-                               __func__, err));
-                       return SDIOH_API_RC_FAIL;
-               }
-       }
-       return SDIOH_API_RC_SUCCESS;
+       return 0;
 }
-#endif                         /* defined(OOB_INTR_ONLY) && defined(HW_OOB) */
 
 /* Configure callback to client when we receive client interrupt */
-extern SDIOH_API_RC
-sdioh_interrupt_register(sdioh_info_t *sd, sdioh_cb_fn_t fn, void *argh)
+extern int
+brcmf_sdioh_interrupt_register(struct sdioh_info *sd, void (*fn)(void *),
+                              void *argh)
 {
        sd_trace(("%s: Entering\n", __func__));
        if (fn == NULL) {
                sd_err(("%s: interrupt handler is NULL, not registering\n",
                        __func__));
-               return SDIOH_API_RC_FAIL;
+               return -EINVAL;
        }
-#if !defined(OOB_INTR_ONLY)
+
        sd->intr_handler = fn;
        sd->intr_handler_arg = argh;
        sd->intr_handler_valid = true;
@@ -279,26 +205,23 @@ sdioh_interrupt_register(sdioh_info_t *sd, sdioh_cb_fn_t fn, void *argh)
        /* register and unmask irq */
        if (gInstance->func[2]) {
                sdio_claim_host(gInstance->func[2]);
-               sdio_claim_irq(gInstance->func[2], IRQHandlerF2);
+               sdio_claim_irq(gInstance->func[2], brcmf_sdioh_irqhandler_f2);
                sdio_release_host(gInstance->func[2]);
        }
 
        if (gInstance->func[1]) {
                sdio_claim_host(gInstance->func[1]);
-               sdio_claim_irq(gInstance->func[1], IRQHandler);
+               sdio_claim_irq(gInstance->func[1], brcmf_sdioh_irqhandler);
                sdio_release_host(gInstance->func[1]);
        }
-#elif defined(HW_OOB)
-       sdioh_enable_func_intr();
-#endif                         /* defined(OOB_INTR_ONLY) */
-       return SDIOH_API_RC_SUCCESS;
+
+       return 0;
 }
 
-extern SDIOH_API_RC sdioh_interrupt_deregister(sdioh_info_t *sd)
+extern int brcmf_sdioh_interrupt_deregister(struct sdioh_info *sd)
 {
        sd_trace(("%s: Entering\n", __func__));
 
-#if !defined(OOB_INTR_ONLY)
        if (gInstance->func[1]) {
                /* register and unmask irq */
                sdio_claim_host(gInstance->func[1]);
@@ -317,30 +240,9 @@ extern SDIOH_API_RC sdioh_interrupt_deregister(sdioh_info_t *sd)
        sd->intr_handler_valid = false;
        sd->intr_handler = NULL;
        sd->intr_handler_arg = NULL;
-#elif defined(HW_OOB)
-       sdioh_disable_func_intr();
-#endif                         /*  !defined(OOB_INTR_ONLY) */
-       return SDIOH_API_RC_SUCCESS;
-}
-
-extern SDIOH_API_RC sdioh_interrupt_query(sdioh_info_t *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 sdioh_interrupt_pending(sdioh_info_t *sd)
-{
        return 0;
 }
-#endif
-
-uint sdioh_query_iofnum(sdioh_info_t *sd)
-{
-       return sd->num_funcs;
-}
 
 /* IOVar table */
 enum {
@@ -359,7 +261,7 @@ const struct brcmu_iovar sdioh_iovars[] = {
                                                                 size) */
        {"sd_ints", IOV_USEINTS, 0, IOVT_BOOL, 0},
        {"sd_numints", IOV_NUMINTS, 0, IOVT_UINT32, 0},
-       {"sd_devreg", IOV_DEVREG, 0, IOVT_BUFFER, sizeof(sdreg_t)}
+       {"sd_devreg", IOV_DEVREG, 0, IOVT_BUFFER, sizeof(struct brcmf_sdreg)}
        ,
        {"sd_rxchain", IOV_RXCHAIN, 0, IOVT_BOOL, 0}
        ,
@@ -367,8 +269,8 @@ const struct brcmu_iovar sdioh_iovars[] = {
 };
 
 int
-sdioh_iovar_op(sdioh_info_t *si, const char *name,
-              void *params, int plen, void *arg, int len, bool set)
+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;
        int bcmerror = 0;
@@ -498,10 +400,11 @@ sdioh_iovar_op(sdioh_info_t *si, const char *name,
 
        case IOV_GVAL(IOV_DEVREG):
                {
-                       sdreg_t *sd_ptr = (sdreg_t *) params;
+                       struct brcmf_sdreg *sd_ptr =
+                                       (struct brcmf_sdreg *) params;
                        u8 data = 0;
 
-                       if (sdioh_cfg_read
+                       if (brcmf_sdioh_cfg_read
                            (si, sd_ptr->func, sd_ptr->offset, &data)) {
                                bcmerror = -EIO;
                                break;
@@ -514,10 +417,11 @@ sdioh_iovar_op(sdioh_info_t *si, const char *name,
 
        case IOV_SVAL(IOV_DEVREG):
                {
-                       sdreg_t *sd_ptr = (sdreg_t *) params;
+                       struct brcmf_sdreg *sd_ptr =
+                                       (struct brcmf_sdreg *) params;
                        u8 data = (u8) sd_ptr->value;
 
-                       if (sdioh_cfg_write
+                       if (brcmf_sdioh_cfg_write
                            (si, sd_ptr->func, sd_ptr->offset, &data)) {
                                bcmerror = -EIO;
                                break;
@@ -534,50 +438,32 @@ exit:
        return bcmerror;
 }
 
-#if defined(OOB_INTR_ONLY) && defined(HW_OOB)
-
-SDIOH_API_RC sdioh_enable_hw_oob_intr(sdioh_info_t *sd, bool enable)
-{
-       SDIOH_API_RC status;
-       u8 data;
-
-       if (enable)
-               data = 3;       /* enable hw oob interrupt */
-       else
-               data = 4;       /* disable hw oob interrupt */
-       data |= 4;              /* Active HIGH */
-
-       status = sdioh_request_byte(sd, SDIOH_WRITE, 0, 0xf2, &data);
-       return status;
-}
-#endif                         /* defined(OOB_INTR_ONLY) && defined(HW_OOB) */
-
-extern SDIOH_API_RC
-sdioh_cfg_read(sdioh_info_t *sd, uint fnc_num, u32 addr, u8 *data)
+extern int
+brcmf_sdioh_cfg_read(struct sdioh_info *sd, uint fnc_num, u32 addr, u8 *data)
 {
-       SDIOH_API_RC status;
-       /* No lock needed since sdioh_request_byte does locking */
-       status = sdioh_request_byte(sd, SDIOH_READ, fnc_num, addr, data);
+       int status;
+       /* No lock needed since brcmf_sdioh_request_byte does locking */
+       status = brcmf_sdioh_request_byte(sd, SDIOH_READ, fnc_num, addr, data);
        return status;
 }
 
-extern SDIOH_API_RC
-sdioh_cfg_write(sdioh_info_t *sd, uint fnc_num, u32 addr, u8 *data)
+extern int
+brcmf_sdioh_cfg_write(struct sdioh_info *sd, uint fnc_num, u32 addr, u8 *data)
 {
-       /* No lock needed since sdioh_request_byte does locking */
-       SDIOH_API_RC status;
-       status = sdioh_request_byte(sd, SDIOH_WRITE, fnc_num, addr, data);
+       /* No lock needed since brcmf_sdioh_request_byte does locking */
+       int status;
+       status = brcmf_sdioh_request_byte(sd, SDIOH_WRITE, fnc_num, addr, data);
        return status;
 }
 
-static int sdioh_sdmmc_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;
        u32 scratch, regdata;
        u8 *ptr = (u8 *)&scratch;
        for (i = 0; i < 3; i++) {
-               if ((sdioh_sdmmc_card_regread(sd, 0, regaddr, 1, &regdata)) !=
+               if ((brcmf_sdioh_card_regread(sd, 0, regaddr, 1, &regdata)) !=
                    SUCCESS)
                        sd_err(("%s: Can't read!\n", __func__));
 
@@ -591,8 +477,8 @@ static int sdioh_sdmmc_get_cisaddr(sdioh_info_t *sd, u32 regaddr)
        return scratch;
 }
 
-extern SDIOH_API_RC
-sdioh_cis_read(sdioh_info_t *sd, uint func, u8 *cisd, u32 length)
+extern int
+brcmf_sdioh_cis_read(struct sdioh_info *sd, uint func, u8 *cisd, u32 length)
 {
        u32 count;
        int offset;
@@ -604,7 +490,7 @@ sdioh_cis_read(sdioh_info_t *sd, uint func, u8 *cisd, u32 length)
        if (!sd->func_cis_ptr[func]) {
                memset(cis, 0, length);
                sd_err(("%s: no func_cis_ptr[%d]\n", __func__, func));
-               return SDIOH_API_RC_FAIL;
+               return -ENOTSUPP;
        }
 
        sd_err(("%s: func_cis_ptr[%d]=0x%04x\n", __func__, func,
@@ -612,30 +498,30 @@ sdioh_cis_read(sdioh_info_t *sd, uint func, u8 *cisd, u32 length)
 
        for (count = 0; count < length; count++) {
                offset = sd->func_cis_ptr[func] + count;
-               if (sdioh_sdmmc_card_regread(sd, 0, offset, 1, &foo) < 0) {
+               if (brcmf_sdioh_card_regread(sd, 0, offset, 1, &foo) < 0) {
                        sd_err(("%s: regread failed: Can't read CIS\n",
                                __func__));
-                       return SDIOH_API_RC_FAIL;
+                       return -EIO;
                }
 
                *cis = (u8) (foo & 0xff);
                cis++;
        }
 
-       return SDIOH_API_RC_SUCCESS;
+       return 0;
 }
 
-extern SDIOH_API_RC
-sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
-                  u8 *byte)
+extern int
+brcmf_sdioh_request_byte(struct sdioh_info *sd, uint rw, uint func,
+                        uint regaddr, u8 *byte)
 {
        int err_ret;
 
        sd_info(("%s: rw=%d, func=%d, addr=0x%05x\n", __func__, rw, func,
                 regaddr));
 
-       DHD_PM_RESUME_WAIT(sdioh_request_byte_wait);
-       DHD_PM_RESUME_RETURN_ERROR(SDIOH_API_RC_FAIL);
+       BRCMF_PM_RESUME_WAIT(sdioh_request_byte_wait);
+       BRCMF_PM_RESUME_RETURN_ERROR(-EIO);
        if (rw) {               /* CMD52 Write */
                if (func == 0) {
                        /* Can only directly write to some F0 registers.
@@ -651,7 +537,9 @@ sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
                                                    sdio_enable_func
                                                    (gInstance->func[2]);
                                                if (err_ret)
-                                                       sd_err(("bcmsdh_sdmmc: enable F2 failed:%d",
+                                                       sd_err(("request_byte: "
+                                                               "enable F2 "
+                                                               "failed:%d",
                                                                 err_ret));
                                        } else {
                                                /* Disable Function 2 */
@@ -659,13 +547,14 @@ sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
                                                    sdio_disable_func
                                                    (gInstance->func[2]);
                                                if (err_ret)
-                                                       sd_err(("bcmsdh_sdmmc: Disab F2 failed:%d",
+                                                       sd_err(("request_byte: "
+                                                               "Disab F2 "
+                                                               "failed:%d",
                                                                 err_ret));
                                        }
                                        sdio_release_host(gInstance->func[2]);
                                }
                        }
-#if defined(MMC_SDIO_ABORT)
                        /* to allow abort command through F1 */
                        else if (regaddr == SDIO_CCCR_ABORT) {
                                sdio_claim_host(gInstance->func[func]);
@@ -679,9 +568,8 @@ sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
                                            regaddr, &err_ret);
                                sdio_release_host(gInstance->func[func]);
                        }
-#endif                         /* MMC_SDIO_ABORT */
                        else if (regaddr < 0xF0) {
-                               sd_err(("bcmsdh_sdmmc: F0 Wr:0x%02x: write "
+                               sd_err(("brcmf: F0 Wr:0x%02x: write "
                                        "disallowed\n", regaddr));
                        } else {
                                /* Claim host controller, perform F0 write,
@@ -717,29 +605,29 @@ sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr,
        }
 
        if (err_ret)
-               sd_err(("bcmsdh_sdmmc: Failed to %s byte F%d:@0x%05x=%02x, "
+               sd_err(("brcmf: Failed to %s byte F%d:@0x%05x=%02x, "
                        "Err: %d\n", rw ? "Write" : "Read", func, regaddr,
                        *byte, err_ret));
 
-       return ((err_ret == 0) ? SDIOH_API_RC_SUCCESS : SDIOH_API_RC_FAIL);
+       return err_ret;
 }
 
-extern SDIOH_API_RC
-sdioh_request_word(sdioh_info_t *sd, uint cmd_type, uint rw, uint func,
-                  uint addr, u32 *word, uint nbytes)
+extern int
+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;
+       int err_ret = -EIO;
 
        if (func == 0) {
                sd_err(("%s: Only CMD52 allowed to F0.\n", __func__));
-               return SDIOH_API_RC_FAIL;
+               return -EINVAL;
        }
 
        sd_info(("%s: cmd_type=%d, rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
                 __func__, cmd_type, rw, func, addr, nbytes));
 
-       DHD_PM_RESUME_WAIT(sdioh_request_word_wait);
-       DHD_PM_RESUME_RETURN_ERROR(SDIOH_API_RC_FAIL);
+       BRCMF_PM_RESUME_WAIT(sdioh_request_word_wait);
+       BRCMF_PM_RESUME_RETURN_ERROR(-EIO);
        /* Claim host controller */
        sdio_claim_host(gInstance->func[func]);
 
@@ -770,16 +658,16 @@ sdioh_request_word(sdioh_info_t *sd, uint cmd_type, uint rw, uint func,
        sdio_release_host(gInstance->func[func]);
 
        if (err_ret) {
-               sd_err(("bcmsdh_sdmmc: Failed to %s word, Err: 0x%08x",
+               sd_err(("brcmf: Failed to %s word, Err: 0x%08x",
                        rw ? "Write" : "Read", err_ret));
        }
 
-       return ((err_ret == 0) ? SDIOH_API_RC_SUCCESS : SDIOH_API_RC_FAIL);
+       return err_ret;
 }
 
-static SDIOH_API_RC
-sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write, uint func,
-                    uint addr, struct sk_buff *pkt)
+static int
+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);
        u32 SGCount = 0;
@@ -790,8 +678,8 @@ sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write, uint func,
        sd_trace(("%s: Enter\n", __func__));
 
        ASSERT(pkt);
-       DHD_PM_RESUME_WAIT(sdioh_request_packet_wait);
-       DHD_PM_RESUME_RETURN_ERROR(SDIOH_API_RC_FAIL);
+       BRCMF_PM_RESUME_WAIT(sdioh_request_packet_wait);
+       BRCMF_PM_RESUME_RETURN_ERROR(-EIO);
 
        /* Claim host controller */
        sdio_claim_host(gInstance->func[func]);
@@ -800,16 +688,9 @@ sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write, uint func,
                pkt_len += 3;
                pkt_len &= 0xFFFFFFFC;
 
-#ifdef CONFIG_MMC_MSM7X00A
-               if ((pkt_len % 64) == 32) {
-                       sd_trace(("%s: Rounding up TX packet +=32\n",
-                                 __func__));
-                       pkt_len += 32;
-               }
-#endif                         /* CONFIG_MMC_MSM7X00A */
                /* Make sure the packet is aligned properly.
                 * If it isn't, then this
-                * is the fault of sdioh_request_buffer() which
+                * is the fault of brcmf_sdioh_request_buffer() which
                 * is supposed to give
                 * us something we can work with.
                 */
@@ -855,7 +736,7 @@ sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write, uint func,
        sdio_release_host(gInstance->func[func]);
 
        sd_trace(("%s: Exit\n", __func__));
-       return ((err_ret == 0) ? SDIOH_API_RC_SUCCESS : SDIOH_API_RC_FAIL);
+       return err_ret;
 }
 
 /*
@@ -873,18 +754,18 @@ sdioh_request_packet(sdioh_info_t *sd, uint fix_inc, uint write, uint func,
  * aligned packet.
  *
  */
-extern SDIOH_API_RC
-sdioh_request_buffer(sdioh_info_t *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)
+extern int
+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)
 {
-       SDIOH_API_RC Status;
+       int Status;
        struct sk_buff *mypkt = NULL;
 
        sd_trace(("%s: Enter\n", __func__));
 
-       DHD_PM_RESUME_WAIT(sdioh_request_buffer_wait);
-       DHD_PM_RESUME_RETURN_ERROR(SDIOH_API_RC_FAIL);
+       BRCMF_PM_RESUME_WAIT(sdioh_request_buffer_wait);
+       BRCMF_PM_RESUME_RETURN_ERROR(-EIO);
        /* Case 1: we don't have a packet. */
        if (pkt == NULL) {
                sd_data(("%s: Creating new %s Packet, len=%d\n",
@@ -893,15 +774,15 @@ sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc, uint write,
                if (!mypkt) {
                        sd_err(("%s: brcmu_pkt_buf_get_skb failed: len %d\n",
                                __func__, buflen_u));
-                       return SDIOH_API_RC_FAIL;
+                       return -EIO;
                }
 
                /* For a write, copy the buffer data into the packet. */
                if (write)
                        memcpy(mypkt->data, buffer, buflen_u);
 
-               Status =
-                   sdioh_request_packet(sd, fix_inc, write, func, addr, mypkt);
+               Status = brcmf_sdioh_request_packet(sd, fix_inc, write, func,
+                                                   addr, mypkt);
 
                /* For a read, copy the packet data back to the buffer. */
                if (!write)
@@ -920,15 +801,15 @@ sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc, uint write,
                if (!mypkt) {
                        sd_err(("%s: brcmu_pkt_buf_get_skb failed: len %d\n",
                                __func__, pkt->len));
-                       return SDIOH_API_RC_FAIL;
+                       return -EIO;
                }
 
                /* For a write, copy the buffer data into the packet. */
                if (write)
                        memcpy(mypkt->data, pkt->data, pkt->len);
 
-               Status =
-                   sdioh_request_packet(sd, fix_inc, write, func, addr, mypkt);
+               Status = brcmf_sdioh_request_packet(sd, fix_inc, write, func,
+                                                   addr, mypkt);
 
                /* For a read, copy the packet data back to the buffer. */
                if (!write)
@@ -939,48 +820,36 @@ sdioh_request_buffer(sdioh_info_t *sd, uint pio_dma, uint fix_inc, uint write,
                                 it is aligned. */
                sd_data(("%s: Aligned %s Packet, direct DMA\n",
                         __func__, write ? "Tx" : "Rx"));
-               Status =
-                   sdioh_request_packet(sd, fix_inc, write, func, addr, pkt);
+               Status = brcmf_sdioh_request_packet(sd, fix_inc, write, func,
+                                                   addr, pkt);
        }
 
        return Status;
 }
 
 /* this function performs "abort" for both of host & device */
-extern int 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;
-#endif                         /* defined(MMC_SDIO_ABORT) */
        sd_trace(("%s: Enter\n", __func__));
 
-#if defined(MMC_SDIO_ABORT)
        /* issue abort cmd52 command through F0 */
-       sdioh_request_byte(sd, SDIOH_WRITE, SDIO_FUNC_0, SDIO_CCCR_ABORT,
+       brcmf_sdioh_request_byte(sd, SDIOH_WRITE, SDIO_FUNC_0, SDIO_CCCR_ABORT,
                           &t_func);
-#endif                         /* defined(MMC_SDIO_ABORT) */
 
        sd_trace(("%s: Exit\n", __func__));
-       return SDIOH_API_RC_SUCCESS;
-}
-
-/* Reset and re-initialize the device */
-int sdioh_sdio_reset(sdioh_info_t *si)
-{
-       sd_trace(("%s: Enter\n", __func__));
-       sd_trace(("%s: Exit\n", __func__));
-       return SDIOH_API_RC_SUCCESS;
+       return 0;
 }
 
 /* Disable device interrupt */
-void sdioh_sdmmc_devintr_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 sdioh_sdmmc_devintr_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;
@@ -988,19 +857,19 @@ void sdioh_sdmmc_devintr_on(sdioh_info_t *sd)
 
 /* Read client card reg */
 int
-sdioh_sdmmc_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)
 {
 
        if ((func == 0) || (regsize == 1)) {
                u8 temp = 0;
 
-               sdioh_request_byte(sd, SDIOH_READ, func, regaddr, &temp);
+               brcmf_sdioh_request_byte(sd, SDIOH_READ, func, regaddr, &temp);
                *data = temp;
                *data &= 0xff;
                sd_data(("%s: byte read data=0x%02x\n", __func__, *data));
        } else {
-               sdioh_request_word(sd, 0, SDIOH_READ, func, regaddr, data,
+               brcmf_sdioh_request_word(sd, 0, SDIOH_READ, func, regaddr, data,
                                   regsize);
                if (regsize == 2)
                        *data &= 0xffff;
@@ -1011,13 +880,11 @@ sdioh_sdmmc_card_regread(sdioh_info_t *sd, int func, u32 regaddr,
        return SUCCESS;
 }
 
-#if !defined(OOB_INTR_ONLY)
-/* bcmsdh_sdmmc interrupt handler */
-static void IRQHandler(struct sdio_func *func)
+static void brcmf_sdioh_irqhandler(struct sdio_func *func)
 {
-       sdioh_info_t *sd;
+       struct sdioh_info *sd;
 
-       sd_trace(("bcmsdh_sdmmc: ***IRQHandler\n"));
+       sd_trace(("brcmf: ***IRQHandler\n"));
        sd = gInstance->sd;
 
        ASSERT(sd != NULL);
@@ -1029,7 +896,7 @@ static void IRQHandler(struct sdio_func *func)
                ASSERT(sd->intr_handler_arg);
                (sd->intr_handler) (sd->intr_handler_arg);
        } else {
-               sd_err(("bcmsdh_sdmmc: ***IRQHandler\n"));
+               sd_err(("brcmf: ***IRQHandler\n"));
 
                sd_err(("%s: Not ready for intr: enabled %d, handler %p\n",
                        __func__, sd->client_intr_enabled, sd->intr_handler));
@@ -1038,52 +905,14 @@ static void IRQHandler(struct sdio_func *func)
        sdio_claim_host(gInstance->func[0]);
 }
 
-/* bcmsdh_sdmmc interrupt handler for F2 (dummy handler) */
-static void IRQHandlerF2(struct sdio_func *func)
+/* 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"));
+       sd_trace(("brcmf: ***IRQHandlerF2\n"));
 
        sd = gInstance->sd;
 
        ASSERT(sd != NULL);
 }
-#endif                         /* !defined(OOB_INTR_ONLY) */
-
-#ifdef NOTUSED
-/* Write client card reg */
-static int
-sdioh_sdmmc_card_regwrite(sdioh_info_t *sd, int func, u32 regaddr,
-                         int regsize, u32 data)
-{
-
-       if ((func == 0) || (regsize == 1)) {
-               u8 temp;
-
-               temp = data & 0xff;
-               sdioh_request_byte(sd, SDIOH_READ, func, regaddr, &temp);
-               sd_data(("%s: byte write data=0x%02x\n", __func__, data));
-       } else {
-               if (regsize == 2)
-                       data &= 0xffff;
-
-               sdioh_request_word(sd, 0, SDIOH_READ, func, regaddr, &data,
-                                  regsize);
-
-               sd_data(("%s: word write data=0x%08x\n", __func__, data));
-       }
-
-       return SUCCESS;
-}
-#endif                         /* NOTUSED */
-
-int sdioh_start(sdioh_info_t *si, int stage)
-{
-       return 0;
-}
-
-int sdioh_stop(sdioh_info_t *si)
-{
-       return 0;
-}
This page took 0.038998 seconds and 5 git commands to generate.