if (!card)
                return 1;
 
-       if (host->caps & MMC_CAP_NONREMOVABLE)
+       if (!mmc_card_is_removable(host))
                return 0;
 
        ret = mmc_card_removed(card);
                return;
 
        /* If there is a non-removable card registered, only scan once */
-       if ((host->caps & MMC_CAP_NONREMOVABLE) && host->rescan_entered)
+       if (!mmc_card_is_removable(host) && host->rescan_entered)
                return;
        host->rescan_entered = 1;
 
         * if there is a _removable_ card registered, check whether it is
         * still present
         */
-       if (host->bus_ops && !host->bus_dead
-           && !(host->caps & MMC_CAP_NONREMOVABLE))
+       if (host->bus_ops && !host->bus_dead && mmc_card_is_removable(host))
                host->bus_ops->detect(host);
 
        host->detect_change = 0;
        mmc_bus_put(host);
 
        mmc_claim_host(host);
-       if (!(host->caps & MMC_CAP_NONREMOVABLE) && host->ops->get_cd &&
+       if (mmc_card_is_removable(host) && host->ops->get_cd &&
                        host->ops->get_cd(host) == 0) {
                mmc_power_off(host);
                mmc_release_host(host);