err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                           EXT_CSD_HS_TIMING, EXT_CSD_TIMING_HS,
                           card->ext_csd.generic_cmd6_time, MMC_TIMING_MMC_HS,
-                          true, true, true);
+                          true, true);
        if (err)
                pr_warn("%s: switch to high-speed failed, err:%d\n",
                        mmc_hostname(card->host), err);
                           ext_csd_bits,
                           card->ext_csd.generic_cmd6_time,
                           MMC_TIMING_MMC_DDR52,
-                          true, true, true);
+                          true, true);
        if (err) {
                pr_err("%s: switch to bus width %d ddr failed\n",
                        mmc_hostname(host), 1 << bus_width);
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                           EXT_CSD_HS_TIMING, val,
                           card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err) {
                pr_err("%s: switch to high-speed from hs200 failed, err:%d\n",
                        mmc_hostname(host), err);
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                           EXT_CSD_HS_TIMING, val,
                           card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err) {
                pr_err("%s: switch to hs400 failed, err:%d\n",
                         mmc_hostname(host), err);
        val = EXT_CSD_TIMING_HS;
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING,
                           val, card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err)
                goto out_err;
 
        /* Switch HS DDR to HS */
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BUS_WIDTH,
                           EXT_CSD_BUS_WIDTH_8, card->ext_csd.generic_cmd6_time,
-                          0, true, false, true);
+                          0, false, true);
        if (err)
                goto out_err;
 
              card->drive_strength << EXT_CSD_DRV_STR_SHIFT;
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING,
                           val, card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err)
                goto out_err;
 
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                           EXT_CSD_HS_TIMING, EXT_CSD_TIMING_HS,
                           card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err) {
                pr_err("%s: switch to hs for hs400es failed, err:%d\n",
                        mmc_hostname(host), err);
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                           EXT_CSD_HS_TIMING, val,
                           card->ext_csd.generic_cmd6_time, 0,
-                          true, false, true);
+                          false, true);
        if (err) {
                pr_err("%s: switch to hs400es failed, err:%d\n",
                        mmc_hostname(host), err);
                err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                                   EXT_CSD_HS_TIMING, val,
                                   card->ext_csd.generic_cmd6_time, 0,
-                                  true, false, true);
+                                  false, true);
                if (err)
                        goto err;
                old_timing = host->ios.timing;
 
        err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                        EXT_CSD_POWER_OFF_NOTIFICATION,
-                       notify_type, timeout, 0, true, false, false);
+                       notify_type, timeout, 0, false, false);
        if (err)
                pr_err("%s: Power Off Notification timed out, %u\n",
                       mmc_hostname(card->host), timeout);
 
  *     @timeout_ms: timeout (ms) for operation performed by register write,
  *                   timeout of zero implies maximum possible timeout
  *     @timing: new timing to change to
- *     @use_busy_signal: use the busy signal as response type
  *     @send_status: send status cmd to poll for busy
  *     @retry_crc_err: retry when CRC errors when polling with CMD13 for busy
  *
  */
 int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
                unsigned int timeout_ms, unsigned char timing,
-               bool use_busy_signal, bool send_status, bool retry_crc_err)
+               bool send_status, bool retry_crc_err)
 {
        struct mmc_host *host = card->host;
        int err;
        struct mmc_command cmd = {};
-       bool use_r1b_resp = use_busy_signal;
+       bool use_r1b_resp = true;
        unsigned char old_timing = host->ios.timing;
 
        mmc_retune_hold(host);
        if (err)
                goto out;
 
-       /* No need to check card status in case of unblocking command */
-       if (!use_busy_signal)
-               goto out;
-
        /*If SPI or used HW busy detection above, then we don't need to poll. */
        if (((host->caps & MMC_CAP_WAIT_WHILE_BUSY) && use_r1b_resp) ||
                mmc_host_is_spi(host))
                unsigned int timeout_ms)
 {
        return __mmc_switch(card, set, index, value, timeout_ms, 0,
-                       true, true, false);
+                           true, false);
 }
 EXPORT_SYMBOL_GPL(mmc_switch);