}
 }
 
-static int mmc_spi_get_ro(struct mmc_host *mmc)
-{
-       struct mmc_spi_host *host = mmc_priv(mmc);
-
-       if (host->pdata && host->pdata->get_ro)
-               return !!host->pdata->get_ro(mmc->parent);
-       else
-               return mmc_gpio_get_ro(mmc);
-}
-
-static int mmc_spi_get_cd(struct mmc_host *mmc)
-{
-       struct mmc_spi_host *host = mmc_priv(mmc);
-
-       if (host->pdata && host->pdata->get_cd)
-               return !!host->pdata->get_cd(mmc->parent);
-       else
-               return mmc_gpio_get_cd(mmc);
-}
-
 static const struct mmc_host_ops mmc_spi_ops = {
        .request        = mmc_spi_request,
        .set_ios        = mmc_spi_set_ios,
-       .get_ro         = mmc_spi_get_ro,
-       .get_cd         = mmc_spi_get_cd,
+       .get_ro         = mmc_gpio_get_ro,
+       .get_cd         = mmc_gpio_get_cd,
 };
 
 
 
                void *);
        void (*exit)(struct device *, void *);
 
-       /* sense switch on sd cards */
-       int (*get_ro)(struct device *);
-
-       /*
-        * If board does not use CD interrupts, driver can optimize polling
-        * using this function.
-        */
-       int (*get_cd)(struct device *);
-
        /*
         * Card Detect and Read Only GPIOs. To enable debouncing on the card
         * detect GPIO, set the cd_debounce to the debounce time in