static inline int mmc_blk_part_switch(struct mmc_card *card,
                                      struct mmc_blk_data *md);
-static int get_card_status(struct mmc_card *card, u32 *status, int retries);
 
 static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk)
 {
                return -EINVAL;
 
        do {
-               err = get_card_status(card, status, 5);
+               err = __mmc_send_status(card, status, 5);
                if (err)
                        break;
 
        return 0;
 }
 
-static int get_card_status(struct mmc_card *card, u32 *status, int retries)
-{
-       struct mmc_command cmd = {};
-       int err;
-
-       cmd.opcode = MMC_SEND_STATUS;
-       if (!mmc_host_is_spi(card->host))
-               cmd.arg = card->rca << 16;
-       cmd.flags = MMC_RSP_SPI_R2 | MMC_RSP_R1 | MMC_CMD_AC;
-       err = mmc_wait_for_cmd(card->host, &cmd, retries);
-       if (err == 0)
-               *status = cmd.resp[0];
-       return err;
-}
-
 static int card_busy_detect(struct mmc_card *card, unsigned int timeout_ms,
                bool hw_busy_detect, struct request *req, bool *gen_err)
 {
        u32 status;
 
        do {
-               err = get_card_status(card, &status, 5);
+               err = __mmc_send_status(card, &status, 5);
                if (err) {
                        pr_err("%s: error %d requesting status\n",
                               req->rq_disk->disk_name, err);
         * we can't be sure the returned status is for the r/w command.
         */
        for (retry = 2; retry >= 0; retry--) {
-               err = get_card_status(card, &status, 0);
+               err = __mmc_send_status(card, &status, 0);
                if (!err)
                        break;
 
 
        0xff, 0x77, 0x77, 0xff, 0x77, 0xbb, 0xdd, 0xee,
 };
 
-int mmc_send_status(struct mmc_card *card, u32 *status)
+int __mmc_send_status(struct mmc_card *card, u32 *status, unsigned int retries)
 {
        int err;
        struct mmc_command cmd = {};
                cmd.arg = card->rca << 16;
        cmd.flags = MMC_RSP_SPI_R2 | MMC_RSP_R1 | MMC_CMD_AC;
 
-       err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES);
+       err = mmc_wait_for_cmd(card->host, &cmd, retries);
        if (err)
                return err;
 
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(__mmc_send_status);
+
+int mmc_send_status(struct mmc_card *card, u32 *status)
+{
+       return __mmc_send_status(card, status, MMC_CMD_RETRIES);
+}
 
 static int _mmc_select_card(struct mmc_host *host, struct mmc_card *card)
 {
 
 int mmc_all_send_cid(struct mmc_host *host, u32 *cid);
 int mmc_set_relative_addr(struct mmc_card *card);
 int mmc_send_csd(struct mmc_card *card, u32 *csd);
+int __mmc_send_status(struct mmc_card *card, u32 *status, unsigned int retries);
 int mmc_send_status(struct mmc_card *card, u32 *status);
 int mmc_send_cid(struct mmc_host *host, u32 *cid);
 int mmc_spi_read_ocr(struct mmc_host *host, int highcap, u32 *ocrp);