mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
dm: mmc: Move non-CONFIG_BLK code into mmc_legacy.c
Rather than having #ifdef in mmc.c, move this code into the legacy file. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
eede897e27
commit
5aed4cbba0
2 changed files with 91 additions and 95 deletions
|
@ -585,29 +585,6 @@ int mmc_switch_part(struct mmc *mmc, unsigned int part_num)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_BLK
|
|
||||||
static int mmc_select_hwpartp(struct blk_desc *desc, int hwpart)
|
|
||||||
{
|
|
||||||
struct mmc *mmc = find_mmc_device(desc->devnum);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (!mmc)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
if (mmc->block_dev.hwpart == hwpart)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (mmc->part_config == MMCPART_NOAVAILABLE)
|
|
||||||
return -EMEDIUMTYPE;
|
|
||||||
|
|
||||||
ret = mmc_switch_part(mmc, hwpart);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int mmc_hwpart_config(struct mmc *mmc,
|
int mmc_hwpart_config(struct mmc *mmc,
|
||||||
const struct mmc_hwpart_conf *conf,
|
const struct mmc_hwpart_conf *conf,
|
||||||
enum mmc_hwpart_conf_mode mode)
|
enum mmc_hwpart_conf_mode mode)
|
||||||
|
@ -1511,68 +1488,6 @@ static int mmc_send_if_cond(struct mmc *mmc)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_BLK
|
|
||||||
struct mmc *mmc_create(const struct mmc_config *cfg, void *priv)
|
|
||||||
{
|
|
||||||
struct blk_desc *bdesc;
|
|
||||||
struct mmc *mmc;
|
|
||||||
|
|
||||||
/* quick validation */
|
|
||||||
if (cfg == NULL || cfg->ops == NULL || cfg->ops->send_cmd == NULL ||
|
|
||||||
cfg->f_min == 0 || cfg->f_max == 0 || cfg->b_max == 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
mmc = calloc(1, sizeof(*mmc));
|
|
||||||
if (mmc == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
mmc->cfg = cfg;
|
|
||||||
mmc->priv = priv;
|
|
||||||
|
|
||||||
/* the following chunk was mmc_register() */
|
|
||||||
|
|
||||||
/* Setup dsr related values */
|
|
||||||
mmc->dsr_imp = 0;
|
|
||||||
mmc->dsr = 0xffffffff;
|
|
||||||
/* Setup the universal parts of the block interface just once */
|
|
||||||
bdesc = mmc_get_blk_desc(mmc);
|
|
||||||
bdesc->if_type = IF_TYPE_MMC;
|
|
||||||
bdesc->removable = 1;
|
|
||||||
bdesc->devnum = mmc_get_next_devnum();
|
|
||||||
bdesc->block_read = mmc_bread;
|
|
||||||
bdesc->block_write = mmc_bwrite;
|
|
||||||
bdesc->block_erase = mmc_berase;
|
|
||||||
|
|
||||||
/* setup initial part type */
|
|
||||||
bdesc->part_type = mmc->cfg->part_type;
|
|
||||||
mmc_list_add(mmc);
|
|
||||||
|
|
||||||
return mmc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void mmc_destroy(struct mmc *mmc)
|
|
||||||
{
|
|
||||||
/* only freeing memory for now */
|
|
||||||
free(mmc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mmc_get_dev(int dev, struct blk_desc **descp)
|
|
||||||
{
|
|
||||||
struct mmc *mmc = find_mmc_device(dev);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (!mmc)
|
|
||||||
return -ENODEV;
|
|
||||||
ret = mmc_init(mmc);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
*descp = &mmc->block_dev;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* board-specific MMC power initializations. */
|
/* board-specific MMC power initializations. */
|
||||||
__weak void board_mmc_power_init(void)
|
__weak void board_mmc_power_init(void)
|
||||||
{
|
{
|
||||||
|
@ -1894,13 +1809,3 @@ int mmc_set_rst_n_function(struct mmc *mmc, u8 enable)
|
||||||
enable);
|
enable);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_BLK
|
|
||||||
U_BOOT_LEGACY_BLK(mmc) = {
|
|
||||||
.if_typename = "mmc",
|
|
||||||
.if_type = IF_TYPE_MMC,
|
|
||||||
.max_devs = -1,
|
|
||||||
.get_dev = mmc_get_dev,
|
|
||||||
.select_hwpart = mmc_select_hwpartp,
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -6,7 +6,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
#include <malloc.h>
|
||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
|
#include "mmc_private.h"
|
||||||
|
|
||||||
static struct list_head mmc_devices;
|
static struct list_head mmc_devices;
|
||||||
static int cur_dev_num = -1;
|
static int cur_dev_num = -1;
|
||||||
|
@ -106,3 +108,92 @@ void print_mmc_devices(char separator)
|
||||||
#else
|
#else
|
||||||
void print_mmc_devices(char separator) { }
|
void print_mmc_devices(char separator) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct mmc *mmc_create(const struct mmc_config *cfg, void *priv)
|
||||||
|
{
|
||||||
|
struct blk_desc *bdesc;
|
||||||
|
struct mmc *mmc;
|
||||||
|
|
||||||
|
/* quick validation */
|
||||||
|
if (cfg == NULL || cfg->ops == NULL || cfg->ops->send_cmd == NULL ||
|
||||||
|
cfg->f_min == 0 || cfg->f_max == 0 || cfg->b_max == 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
mmc = calloc(1, sizeof(*mmc));
|
||||||
|
if (mmc == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
mmc->cfg = cfg;
|
||||||
|
mmc->priv = priv;
|
||||||
|
|
||||||
|
/* the following chunk was mmc_register() */
|
||||||
|
|
||||||
|
/* Setup dsr related values */
|
||||||
|
mmc->dsr_imp = 0;
|
||||||
|
mmc->dsr = 0xffffffff;
|
||||||
|
/* Setup the universal parts of the block interface just once */
|
||||||
|
bdesc = mmc_get_blk_desc(mmc);
|
||||||
|
bdesc->if_type = IF_TYPE_MMC;
|
||||||
|
bdesc->removable = 1;
|
||||||
|
bdesc->devnum = mmc_get_next_devnum();
|
||||||
|
bdesc->block_read = mmc_bread;
|
||||||
|
bdesc->block_write = mmc_bwrite;
|
||||||
|
bdesc->block_erase = mmc_berase;
|
||||||
|
|
||||||
|
/* setup initial part type */
|
||||||
|
bdesc->part_type = mmc->cfg->part_type;
|
||||||
|
mmc_list_add(mmc);
|
||||||
|
|
||||||
|
return mmc;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mmc_destroy(struct mmc *mmc)
|
||||||
|
{
|
||||||
|
/* only freeing memory for now */
|
||||||
|
free(mmc);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mmc_select_hwpartp(struct blk_desc *desc, int hwpart)
|
||||||
|
{
|
||||||
|
struct mmc *mmc = find_mmc_device(desc->devnum);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!mmc)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (mmc->block_dev.hwpart == hwpart)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (mmc->part_config == MMCPART_NOAVAILABLE)
|
||||||
|
return -EMEDIUMTYPE;
|
||||||
|
|
||||||
|
ret = mmc_switch_part(mmc, hwpart);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mmc_get_dev(int dev, struct blk_desc **descp)
|
||||||
|
{
|
||||||
|
struct mmc *mmc = find_mmc_device(dev);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!mmc)
|
||||||
|
return -ENODEV;
|
||||||
|
ret = mmc_init(mmc);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
*descp = &mmc->block_dev;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
U_BOOT_LEGACY_BLK(mmc) = {
|
||||||
|
.if_typename = "mmc",
|
||||||
|
.if_type = IF_TYPE_MMC,
|
||||||
|
.max_devs = -1,
|
||||||
|
.get_dev = mmc_get_dev,
|
||||||
|
.select_hwpart = mmc_select_hwpartp,
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue