* Don't enable runtime PM for SD-combo cards here. Leave that
         * decision to be taken during the SDIO init sequence instead.
         */
-       if (card->type != MMC_TYPE_SD_COMBO) {
+       if (!mmc_card_sd_combo(card)) {
                pm_runtime_set_active(&card->dev);
                pm_runtime_enable(&card->dev);
        }
                mmc_blk_part_switch(card, md->part_type);
                mmc_release_host(card->host);
        }
-       if (card->type != MMC_TYPE_SD_COMBO)
+       if (!mmc_card_sd_combo(card))
                pm_runtime_disable(&card->dev);
        pm_runtime_put_noidle(&card->dev);
        mmc_blk_remove_req(md);
 
                        return retval;
        }
 
-       if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
+       if (mmc_card_sdio(card) || mmc_card_sd_combo(card)) {
                retval = add_uevent_var(env, "SDIO_ID=%04X:%04X",
                                        card->cis.vendor, card->cis.device);
                if (retval)
         * SDIO (non-combo) cards are not handled by mmc_block driver and do not
         * have accessible CID register which used by mmc_card_name() function.
         */
-       if (card->type == MMC_TYPE_SDIO)
+       if (mmc_card_sdio(card))
                return 0;
 
        retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card));
 
 {
        int err;
 
-       if (card->type == MMC_TYPE_SDIO)
+       if (mmc_card_sdio(card))
                goto out;
 
        if (!(card->host->caps & MMC_CAP_4_BIT_DATA))
        err = sdio_enable_wide(card);
        if (err <= 0)
                return err;
-       if (card->type == MMC_TYPE_SDIO)
+       if (mmc_card_sdio(card))
                goto out;
 
        if (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4) {
        int ret;
 
        ret = mmc_sdio_switch_hs(card, true);
-       if (ret <= 0 || card->type == MMC_TYPE_SDIO)
+       if (ret <= 0 || mmc_card_sdio(card))
                return ret;
 
        ret = mmc_sd_switch_hs(card);
                max_dtr = card->cis.max_dtr;
        }
 
-       if (card->type == MMC_TYPE_SD_COMBO)
+       if (mmc_card_sd_combo(card))
                max_dtr = min(max_dtr, mmc_sd_get_max_clock(card));
 
        return max_dtr;
            mmc_sd_get_cid(host, ocr & rocr, card->raw_cid, NULL) == 0) {
                card->type = MMC_TYPE_SD_COMBO;
 
-               if (oldcard && (oldcard->type != MMC_TYPE_SD_COMBO ||
+               if (oldcard && (!mmc_card_sd_combo(oldcard) ||
                    memcmp(card->raw_cid, oldcard->raw_cid, sizeof(card->raw_cid)) != 0)) {
                        err = -ENOENT;
                        goto mismatch;
        } else {
                card->type = MMC_TYPE_SDIO;
 
-               if (oldcard && oldcard->type != MMC_TYPE_SDIO) {
+               if (oldcard && !mmc_card_sdio(oldcard)) {
                        err = -ENOENT;
                        goto mismatch;
                }
        /*
         * Read CSD, before selecting the card
         */
-       if (!oldcard && card->type == MMC_TYPE_SD_COMBO) {
+       if (!oldcard && mmc_card_sd_combo(card)) {
                err = mmc_sd_get_csd(card);
                if (err)
                        goto remove;
 
        mmc_fixup_device(card, sdio_fixup_methods);
 
-       if (card->type == MMC_TYPE_SD_COMBO) {
+       if (mmc_card_sd_combo(card)) {
                err = mmc_sd_setup_card(host, card, oldcard != NULL);
                /* handle as SDIO-only card if memory init failed */
                if (err) {