Bluetooth: Remove Enter/Leave debug statements from Marvell driver
[linux-3.10.git] / drivers / bluetooth / btmrvl_sdio.c
index 8f13e7b..224af53 100644 (file)
 
 #define VERSION "1.0"
 
-#ifndef SDIO_DEVICE_ID_MARVELL_8688BT
-#define SDIO_DEVICE_ID_MARVELL_8688BT          0x9105
-#endif
-
 /* The btmrvl_sdio_remove() callback function is called
  * when user removes this module from kernel space or ejects
  * the card from the slot. The driver handles these 2 cases
  */
 static u8 user_rmmod;
 
-static const struct sdio_device_id btmrvl_sdio_ids[] = {
-       {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8688BT)},
-       {0, 0, 0, 0}
+static const struct btmrvl_sdio_device btmrvl_sdio_sd6888 = {
+       .helper         = "sd8688_helper.bin",
+       .firmware       = "sd8688.bin",
 };
 
-MODULE_DEVICE_TABLE(sdio, btmrvl_sdio_ids);
+static const struct sdio_device_id btmrvl_sdio_ids[] = {
+       /* Marvell SD8688 Bluetooth device */
+       { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x9105),
+                       .driver_data = (unsigned long) &btmrvl_sdio_sd6888 },
 
-static struct btmrvl_sdio_device btmrvl_sdio_devices[] = {
-       {
-               .dev_id = SDIO_DEVICE_ID_MARVELL_8688BT,
-               .helper = "sd8688_helper.bin",
-               .firmware = "sd8688.bin",
-       },
+       { }     /* Terminating entry */
 };
 
+MODULE_DEVICE_TABLE(sdio, btmrvl_sdio_ids);
+
 static int btmrvl_sdio_get_rx_unit(struct btmrvl_sdio_card *card)
 {
        u8 reg;
        int ret;
 
-       BT_DBG("Enter");
-
        reg = sdio_readb(card->func, CARD_RX_UNIT_REG, &ret);
        if (!ret)
                card->rx_unit = reg;
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
 static int btmrvl_sdio_read_fw_status(struct btmrvl_sdio_card *card, u16 *dat)
 {
-       int ret;
        u8 fws0, fws1;
-
-       BT_DBG("Enter");
+       int ret;
 
        *dat = 0;
 
@@ -96,97 +86,73 @@ static int btmrvl_sdio_read_fw_status(struct btmrvl_sdio_card *card, u16 *dat)
        if (!ret)
                fws1 = sdio_readb(card->func, CARD_FW_STATUS1_REG, &ret);
 
-       if (ret) {
-               BT_DBG("Leave");
+       if (ret)
                return -EIO;
-       }
 
        *dat = (((u16) fws1) << 8) | fws0;
 
-       BT_DBG("Leave");
-
        return 0;
 }
 
 static int btmrvl_sdio_read_rx_len(struct btmrvl_sdio_card *card, u16 *dat)
 {
-       int ret;
        u8 reg;
-
-       BT_DBG("Enter");
+       int ret;
 
        reg = sdio_readb(card->func, CARD_RX_LEN_REG, &ret);
        if (!ret)
                *dat = (u16) reg << card->rx_unit;
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
 static int btmrvl_sdio_enable_host_int_mask(struct btmrvl_sdio_card *card,
-                                               u8 mask)
+                                                               u8 mask)
 {
        int ret;
 
-       BT_DBG("Enter");
-
        sdio_writeb(card->func, mask, HOST_INT_MASK_REG, &ret);
        if (ret) {
                BT_ERR("Unable to enable the host interrupt!");
                ret = -EIO;
        }
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
 static int btmrvl_sdio_disable_host_int_mask(struct btmrvl_sdio_card *card,
-                                               u8 mask)
+                                                               u8 mask)
 {
-       int ret;
        u8 host_int_mask;
-
-       BT_DBG("Enter");
+       int ret;
 
        host_int_mask = sdio_readb(card->func, HOST_INT_MASK_REG, &ret);
-       if (ret) {
-               ret = -EIO;
-               goto done;
-       }
+       if (ret)
+               return -EIO;
 
        host_int_mask &= ~mask;
 
        sdio_writeb(card->func, host_int_mask, HOST_INT_MASK_REG, &ret);
        if (ret < 0) {
                BT_ERR("Unable to disable the host interrupt!");
-               ret = -EIO;
-               goto done;
+               return -EIO;
        }
 
-       ret = 0;
-
-done:
-       BT_DBG("Leave");
-
-       return ret;
+       return 0;
 }
 
 static int btmrvl_sdio_poll_card_status(struct btmrvl_sdio_card *card, u8 bits)
 {
        unsigned int tries;
-       int ret;
        u8 status;
-
-       BT_DBG("Enter");
+       int ret;
 
        for (tries = 0; tries < MAX_POLL_TRIES * 1000; tries++) {
                status = sdio_readb(card->func, CARD_STATUS_REG, &ret);
                if (ret)
                        goto failed;
                if ((status & bits) == bits)
-                       goto done;
+                       return ret;
 
                udelay(1);
        }
@@ -196,21 +162,16 @@ static int btmrvl_sdio_poll_card_status(struct btmrvl_sdio_card *card, u8 bits)
 failed:
        BT_ERR("FAILED! ret=%d", ret);
 
-done:
-       BT_DBG("Leave");
-
        return ret;
 }
 
 static int btmrvl_sdio_verify_fw_download(struct btmrvl_sdio_card *card,
-                                               int pollnum)
+                                                               int pollnum)
 {
        int ret = -ETIMEDOUT;
        u16 firmwarestat;
        unsigned int tries;
 
-       BT_DBG("Enter");
-
         /* Wait for firmware to become ready */
        for (tries = 0; tries < pollnum; tries++) {
                if (btmrvl_sdio_read_fw_status(card, &firmwarestat) < 0)
@@ -224,8 +185,6 @@ static int btmrvl_sdio_verify_fw_download(struct btmrvl_sdio_card *card,
                }
        }
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -239,13 +198,11 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card)
        u8 *helperbuf;
        u32 tx_len;
 
-       BT_DBG("Enter");
-
        ret = request_firmware(&fw_helper, card->helper,
-                               &card->func->dev);
+                                               &card->func->dev);
        if ((ret < 0) || !fw_helper) {
                BT_ERR("request_firmware(helper) failed, error code = %d",
-                       ret);
+                                                                       ret);
                ret = -ENOENT;
                goto done;
        }
@@ -254,7 +211,7 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card)
        helperlen = fw_helper->size;
 
        BT_DBG("Downloading helper image (%d bytes), block size %d bytes",
-               helperlen, SDIO_BLOCK_SIZE);
+                                               helperlen, SDIO_BLOCK_SIZE);
 
        tmphlprbufsz = ALIGN_SZ(BTM_UPLD_SIZE, BTSDIO_DMA_ALIGN);
 
@@ -301,10 +258,8 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card)
                                tx_len);
 
                /* Now send the data */
-               ret = sdio_writesb(card->func, card->ioport,
-                                  helperbuf,
-                                  FIRMWARE_TRANSFER_NBLOCK *
-                                  SDIO_BLOCK_SIZE);
+               ret = sdio_writesb(card->func, card->ioport, helperbuf,
+                               FIRMWARE_TRANSFER_NBLOCK * SDIO_BLOCK_SIZE);
                if (ret < 0) {
                        BT_ERR("IO error during helper download @ %d",
                                hlprblknow);
@@ -319,7 +274,7 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card)
        memset(helperbuf, 0x0, SDIO_BLOCK_SIZE);
 
        ret = sdio_writesb(card->func, card->ioport, helperbuf,
-                        SDIO_BLOCK_SIZE);
+                                                       SDIO_BLOCK_SIZE);
        if (ret < 0) {
                BT_ERR("IO error in writing helper image EOF block");
                goto done;
@@ -332,8 +287,6 @@ done:
        if (fw_helper)
                release_firmware(fw_helper);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -349,13 +302,11 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card)
        u16 len;
        int txlen = 0, tx_blocks = 0, count = 0;
 
-       BT_DBG("Enter");
-
        ret = request_firmware(&fw_firmware, card->firmware,
-                               &card->func->dev);
+                                                       &card->func->dev);
        if ((ret < 0) || !fw_firmware) {
                BT_ERR("request_firmware(firmware) failed, error code = %d",
-                       ret);
+                                                                       ret);
                ret = -ENOENT;
                goto done;
        }
@@ -383,10 +334,10 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card)
        offset = 0;
        do {
                ret = btmrvl_sdio_poll_card_status(card,
-                                           CARD_IO_READY | DN_LD_CARD_RDY);
+                                       CARD_IO_READY | DN_LD_CARD_RDY);
                if (ret < 0) {
                        BT_ERR("FW download with helper poll status"
-                               " timeout @ %d", offset);
+                                               " timeout @ %d", offset);
                        goto done;
                }
 
@@ -427,7 +378,7 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card)
                        break;
                else if (len > BTM_UPLD_SIZE) {
                        BT_ERR("FW download failure @%d, invalid length %d",
-                               offset, len);
+                                                               offset, len);
                        ret = -EINVAL;
                        goto done;
                }
@@ -465,9 +416,9 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card)
 
                if (ret < 0) {
                        BT_ERR("FW download, writesb(%d) failed @%d",
-                               count, offset);
+                                                       count, offset);
                        sdio_writeb(card->func, HOST_CMD53_FIN, CONFIG_REG,
-                                       &ret);
+                                                                       &ret);
                        if (ret)
                                BT_ERR("writeb failed (CFG)");
                }
@@ -485,8 +436,6 @@ done:
        if (fw_firmware)
                release_firmware(fw_firmware);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -500,8 +449,6 @@ static int btmrvl_sdio_card_to_host(struct btmrvl_private *priv)
        struct hci_dev *hdev = priv->btmrvl_dev.hcidev;
        struct btmrvl_sdio_card *card = priv->btmrvl_dev.card;
 
-       BT_DBG("Enter");
-
        if (!card || !card->func) {
                BT_ERR("card or function is NULL!");
                ret = -EINVAL;
@@ -520,7 +467,7 @@ static int btmrvl_sdio_card_to_host(struct btmrvl_private *priv)
        buf_block_len = (buf_len + blksz - 1) / blksz;
 
        if (buf_len <= SDIO_HEADER_LEN
-           || (buf_block_len * blksz) > ALLOC_BUF_SIZE) {
+                       || (buf_block_len * blksz) > ALLOC_BUF_SIZE) {
                BT_ERR("invalid packet length: %d", buf_len);
                ret = -EINVAL;
                goto exit;
@@ -528,7 +475,7 @@ static int btmrvl_sdio_card_to_host(struct btmrvl_private *priv)
 
        /* Allocate buffer */
        skb = bt_skb_alloc(buf_block_len * blksz + BTSDIO_DMA_ALIGN,
-                               GFP_ATOMIC);
+                                                               GFP_ATOMIC);
        if (skb == NULL) {
                BT_ERR("No free skb");
                goto exit;
@@ -588,7 +535,7 @@ static int btmrvl_sdio_card_to_host(struct btmrvl_private *priv)
        default:
                BT_ERR("Unknow packet type:%d", type);
                print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, payload,
-                                       blksz * buf_block_len);
+                                               blksz * buf_block_len);
 
                kfree_skb(skb);
                skb = NULL;
@@ -602,8 +549,6 @@ exit:
                        kfree_skb(skb);
        }
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -613,8 +558,6 @@ static int btmrvl_sdio_get_int_status(struct btmrvl_private *priv, u8 * ireg)
        u8 sdio_ireg = 0;
        struct btmrvl_sdio_card *card = priv->btmrvl_dev.card;
 
-       BT_DBG("Enter");
-
        *ireg = 0;
 
        sdio_ireg = sdio_readb(card->func, HOST_INTSTATUS_REG, &ret);
@@ -659,8 +602,6 @@ static int btmrvl_sdio_get_int_status(struct btmrvl_private *priv, u8 * ireg)
        ret = 0;
 
 done:
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -671,8 +612,6 @@ static void btmrvl_sdio_interrupt(struct sdio_func *func)
        struct btmrvl_sdio_card *card;
        u8 ireg = 0;
 
-       BT_DBG("Enter");
-
        card = sdio_get_drvdata(func);
        if (card && card->priv) {
                priv = card->priv;
@@ -685,17 +624,13 @@ static void btmrvl_sdio_interrupt(struct sdio_func *func)
 
                btmrvl_interrupt(priv);
        }
-
-       BT_DBG("Leave");
 }
 
 static int btmrvl_sdio_register_dev(struct btmrvl_sdio_card *card)
 {
-       int ret = 0, i;
-       u8 reg;
        struct sdio_func *func;
-
-       BT_DBG("Enter");
+       u8 reg;
+       int ret = 0;
 
        if (!card || !card->func) {
                BT_ERR("Error: card or function is NULL!");
@@ -705,20 +640,6 @@ static int btmrvl_sdio_register_dev(struct btmrvl_sdio_card *card)
 
        func = card->func;
 
-       for (i = 0; i < ARRAY_SIZE(btmrvl_sdio_devices); i++) {
-               if (func->device == btmrvl_sdio_devices[i].dev_id)
-                       break;
-       }
-
-       if (i == ARRAY_SIZE(btmrvl_sdio_devices)) {
-               BT_ERR("Error: unknown device id 0x%x", func->device);
-               ret = -EINVAL;
-               goto failed;
-       }
-
-       card->helper = btmrvl_sdio_devices[i].helper;
-       card->firmware = btmrvl_sdio_devices[i].firmware;
-
        sdio_claim_host(func);
 
        ret = sdio_enable_func(func);
@@ -772,7 +693,6 @@ static int btmrvl_sdio_register_dev(struct btmrvl_sdio_card *card)
 
        sdio_release_host(func);
 
-       BT_DBG("Leave");
        return 0;
 
 release_irq:
@@ -785,14 +705,11 @@ release_host:
        sdio_release_host(func);
 
 failed:
-       BT_DBG("Leave");
        return ret;
 }
 
 static int btmrvl_sdio_unregister_dev(struct btmrvl_sdio_card *card)
 {
-       BT_DBG("Enter");
-
        if (card && card->func) {
                sdio_claim_host(card->func);
                sdio_release_irq(card->func);
@@ -801,8 +718,6 @@ static int btmrvl_sdio_unregister_dev(struct btmrvl_sdio_card *card)
                sdio_set_drvdata(card->func, NULL);
        }
 
-       BT_DBG("Leave");
-
        return 0;
 }
 
@@ -810,12 +725,8 @@ static int btmrvl_sdio_enable_host_int(struct btmrvl_sdio_card *card)
 {
        int ret;
 
-       BT_DBG("Enter");
-
-       if (!card || !card->func) {
-               BT_DBG("Leave");
+       if (!card || !card->func)
                return -EINVAL;
-       }
 
        sdio_claim_host(card->func);
 
@@ -825,8 +736,6 @@ static int btmrvl_sdio_enable_host_int(struct btmrvl_sdio_card *card)
 
        sdio_release_host(card->func);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -834,12 +743,8 @@ static int btmrvl_sdio_disable_host_int(struct btmrvl_sdio_card *card)
 {
        int ret;
 
-       BT_DBG("Enter");
-
-       if (!card || !card->func) {
-               BT_DBG("Leave");
+       if (!card || !card->func)
                return -EINVAL;
-       }
 
        sdio_claim_host(card->func);
 
@@ -847,8 +752,6 @@ static int btmrvl_sdio_disable_host_int(struct btmrvl_sdio_card *card)
 
        sdio_release_host(card->func);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -864,11 +767,8 @@ static int btmrvl_sdio_host_to_card(struct btmrvl_private *priv,
        void *tmpbuf = NULL;
        int tmpbufsz;
 
-       BT_DBG("Enter");
-
        if (!card || !card->func) {
                BT_ERR("card or function is NULL!");
-               BT_DBG("Leave");
                return -EINVAL;
        }
 
@@ -906,8 +806,6 @@ static int btmrvl_sdio_host_to_card(struct btmrvl_private *priv,
 exit:
        sdio_release_host(card->func);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -915,11 +813,8 @@ static int btmrvl_sdio_download_fw(struct btmrvl_sdio_card *card)
 {
        int ret = 0;
 
-       BT_DBG("Enter");
-
        if (!card || !card->func) {
                BT_ERR("card or function is NULL!");
-               BT_DBG("Leave");
                return -EINVAL;
        }
        sdio_claim_host(card->func);
@@ -951,8 +846,6 @@ static int btmrvl_sdio_download_fw(struct btmrvl_sdio_card *card)
 done:
        sdio_release_host(card->func);
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -961,11 +854,8 @@ static int btmrvl_sdio_wakeup_fw(struct btmrvl_private *priv)
        struct btmrvl_sdio_card *card = priv->btmrvl_dev.card;
        int ret = 0;
 
-       BT_DBG("Enter");
-
        if (!card || !card->func) {
                BT_ERR("card or function is NULL!");
-               BT_DBG("Leave");
                return -EINVAL;
        }
 
@@ -977,20 +867,16 @@ static int btmrvl_sdio_wakeup_fw(struct btmrvl_private *priv)
 
        BT_DBG("wake up firmware");
 
-       BT_DBG("Leave");
-
        return ret;
 }
 
 static int btmrvl_sdio_probe(struct sdio_func *func,
-                            const struct sdio_device_id *id)
+                                       const struct sdio_device_id *id)
 {
        int ret = 0;
        struct btmrvl_private *priv = NULL;
        struct btmrvl_sdio_card *card = NULL;
 
-       BT_DBG("Enter");
-
        BT_INFO("vendor=0x%x, device=0x%x, class=%d, fn=%d",
                        id->vendor, id->device, id->class, func->num);
 
@@ -1002,6 +888,12 @@ static int btmrvl_sdio_probe(struct sdio_func *func,
 
        card->func = func;
 
+       if (id->driver_data) {
+               struct btmrvl_sdio_device *data = (void *) id->driver_data;
+               card->helper   = data->helper;
+               card->firmware = data->firmware;
+       }
+
        if (btmrvl_sdio_register_dev(card) < 0) {
                BT_ERR("Failed to register BT device!");
                ret = -ENODEV;
@@ -1034,13 +926,8 @@ static int btmrvl_sdio_probe(struct sdio_func *func,
        priv->hw_host_to_card = btmrvl_sdio_host_to_card;
        priv->hw_wakeup_firmware = btmrvl_sdio_wakeup_fw;
 
-       strncpy(priv->btmrvl_dev.name, "btmrvl_sdio0",
-                       sizeof(priv->btmrvl_dev.name));
-
        btmrvl_send_module_cfg_cmd(priv, MODULE_BRINGUP_REQ);
 
-       BT_DBG("Leave");
-
        return 0;
 
 disable_host_int:
@@ -1050,8 +937,6 @@ unreg_dev:
 free_card:
        kfree(card);
 done:
-       BT_DBG("Leave");
-
        return ret;
 }
 
@@ -1059,8 +944,6 @@ static void btmrvl_sdio_remove(struct sdio_func *func)
 {
        struct btmrvl_sdio_card *card;
 
-       BT_DBG("Enter");
-
        if (func) {
                card = sdio_get_drvdata(func);
                if (card) {
@@ -1078,8 +961,6 @@ static void btmrvl_sdio_remove(struct sdio_func *func)
                        kfree(card);
                }
        }
-
-       BT_DBG("Leave");
 }
 
 static struct sdio_driver bt_mrvl_sdio = {
@@ -1091,38 +972,29 @@ static struct sdio_driver bt_mrvl_sdio = {
 
 static int btmrvl_sdio_init_module(void)
 {
-       BT_DBG("Enter");
-
        if (sdio_register_driver(&bt_mrvl_sdio) != 0) {
                BT_ERR("SDIO Driver Registration Failed");
-               BT_DBG("Leave");
                return -ENODEV;
        }
 
        /* Clear the flag in case user removes the card. */
        user_rmmod = 0;
 
-       BT_DBG("Leave");
-
        return 0;
 }
 
 static void btmrvl_sdio_exit_module(void)
 {
-       BT_DBG("Enter");
-
        /* Set the flag as user is removing this module. */
        user_rmmod = 1;
 
        sdio_unregister_driver(&bt_mrvl_sdio);
-
-       BT_DBG("Leave");
 }
 
 module_init(btmrvl_sdio_init_module);
 module_exit(btmrvl_sdio_exit_module);
 
 MODULE_AUTHOR("Marvell International Ltd.");
-MODULE_DESCRIPTION("Marvell BT-over-SDIO Driver v" VERSION);
+MODULE_DESCRIPTION("Marvell BT-over-SDIO driver ver " VERSION);
 MODULE_VERSION(VERSION);
 MODULE_LICENSE("GPL v2");