]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
mmc: omap_hsmmc: cleanup code
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 26 Jun 2014 09:02:58 +0000 (11:02 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 26 Jun 2014 10:21:30 +0000 (12:21 +0200)
- remove useless return value from mmc_board_init()
- make mmc_board_init() static
- check dev_index in omap_mmc_init() before using it as array index

drivers/mmc/omap_hsmmc.c

index 67d6b6862554c8150aea1b3c3786a58e5b0c424a..fc74cf10a185f7278881053dc2ccc5303002ad3c 100644 (file)
@@ -131,7 +131,7 @@ static void omap5_pbias_config(struct mmc *mmc)
 }
 #endif
 
 }
 #endif
 
-unsigned char mmc_board_init(struct mmc *mmc)
+static void mmc_board_init(struct mmc *mmc)
 {
 #if defined(CONFIG_OMAP34XX)
        t2_t *t2_base = (t2_t *)T2_BASE;
 {
 #if defined(CONFIG_OMAP34XX)
        t2_t *t2_base = (t2_t *)T2_BASE;
@@ -180,8 +180,6 @@ unsigned char mmc_board_init(struct mmc *mmc)
        if (mmc->block_dev.dev == 0)
                omap5_pbias_config(mmc);
 #endif
        if (mmc->block_dev.dev == 0)
                omap5_pbias_config(mmc);
 #endif
-
-       return 0;
 }
 
 void mmc_init_stream(struct hsmmc *mmc_base)
 }
 
 void mmc_init_stream(struct hsmmc *mmc_base)
@@ -212,7 +210,6 @@ void mmc_init_stream(struct hsmmc *mmc_base)
        writel(readl(&mmc_base->con) & ~INIT_INITSTREAM, &mmc_base->con);
 }
 
        writel(readl(&mmc_base->con) & ~INIT_INITSTREAM, &mmc_base->con);
 }
 
-
 static int mmc_init_setup(struct mmc *mmc)
 {
        struct omap_hsmmc_data *priv_data = mmc->priv;
 static int mmc_init_setup(struct mmc *mmc)
 {
        struct omap_hsmmc_data *priv_data = mmc->priv;
@@ -583,33 +580,39 @@ static void mmc_set_ios(struct mmc *mmc)
 int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
                int wp_gpio)
 {
 int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
                int wp_gpio)
 {
-       struct mmc *mmc = &hsmmc_dev[dev_index];
-       struct omap_hsmmc_data *priv_data = &hsmmc_dev_data[dev_index];
-
-       sprintf(mmc->name, "OMAP SD/MMC");
-       mmc->send_cmd = mmc_send_cmd;
-       mmc->set_ios = mmc_set_ios;
-       mmc->init = mmc_init_setup;
-       mmc->priv = priv_data;
+       struct mmc *mmc;
+       struct omap_hsmmc_data *priv_data;
+       unsigned long base_addr;
 
        switch (dev_index) {
        case 0:
 
        switch (dev_index) {
        case 0:
-               priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC1_BASE;
+               base_addr = OMAP_HSMMC1_BASE;
                break;
 #ifdef OMAP_HSMMC2_BASE
        case 1:
                break;
 #ifdef OMAP_HSMMC2_BASE
        case 1:
-               priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC2_BASE;
+               base_addr = OMAP_HSMMC2_BASE;
                break;
 #endif
 #ifdef OMAP_HSMMC3_BASE
        case 2:
                break;
 #endif
 #ifdef OMAP_HSMMC3_BASE
        case 2:
-               priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC3_BASE;
+               base_addr = OMAP_HSMMC3_BASE;
                break;
 #endif
        default:
                break;
 #endif
        default:
-               priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC1_BASE;
+               printf("Invalid MMC device index: %d\n", dev_index);
                return 1;
        }
                return 1;
        }
+
+       mmc = &hsmmc_dev[dev_index];
+       priv_data = &hsmmc_dev_data[dev_index];
+       priv_data->base_addr = (void *)base_addr;
+
+       sprintf(mmc->name, "OMAP SD/MMC");
+       mmc->send_cmd = mmc_send_cmd;
+       mmc->set_ios = mmc_set_ios;
+       mmc->init = mmc_init_setup;
+       mmc->priv = priv_data;
+
        priv_data->cd_gpio = omap_mmc_setup_gpio_in(cd_gpio, "mmc_cd");
        if (priv_data->cd_gpio != -1)
                mmc->getcd = omap_mmc_getcd;
        priv_data->cd_gpio = omap_mmc_setup_gpio_in(cd_gpio, "mmc_cd");
        if (priv_data->cd_gpio != -1)
                mmc->getcd = omap_mmc_getcd;