X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fmmc%2Fsandbox_mmc.c;h=2fa7d8c3dcde8633e5d275e209477880bf3b71bf;hb=34ad74914140dc6060b56a27641c686e86d7a9a4;hp=5f1333b7480ce174763101b65e83fe6484d48326;hpb=9a46bd3febd405e2d4b894d9ebae2e9ca88b22d6;p=u-boot diff --git a/drivers/mmc/sandbox_mmc.c b/drivers/mmc/sandbox_mmc.c index 5f1333b748..2fa7d8c3dc 100644 --- a/drivers/mmc/sandbox_mmc.c +++ b/drivers/mmc/sandbox_mmc.c @@ -1,8 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (c) 2015 Google, Inc * Written by Simon Glass - * - * SPDX-License-Identifier: GPL-2.0+ */ #include @@ -12,8 +11,6 @@ #include #include -DECLARE_GLOBAL_DATA_PTR; - struct sandbox_mmc_plat { struct mmc_config cfg; struct mmc mmc; @@ -48,9 +45,12 @@ static int sandbox_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, cmd->response[1] = 10 << 16; /* 1 << block_len */ break; case SD_CMD_SWITCH_FUNC: { + if (!data) + break; u32 *resp = (u32 *)data->dest; - resp[7] = cpu_to_be32(SD_HIGHSPEED_BUSY); + if ((cmd->cmdarg & 0xF) == UHS_SDR12_BUS_SPEED) + resp[4] = (cmd->cmdarg & 0xF) << 24; break; } case MMC_CMD_READ_SINGLE_BLOCK: @@ -112,7 +112,6 @@ int sandbox_mmc_bind(struct udevice *dev) { struct sandbox_mmc_plat *plat = dev_get_platdata(dev); struct mmc_config *cfg = &plat->cfg; - int ret; cfg->name = dev->name; cfg->host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_8BIT; @@ -121,11 +120,7 @@ int sandbox_mmc_bind(struct udevice *dev) cfg->f_max = 52000000; cfg->b_max = U32_MAX; - ret = mmc_bind(dev, &plat->mmc, cfg); - if (ret) - return ret; - - return 0; + return mmc_bind(dev, &plat->mmc, cfg); } int sandbox_mmc_unbind(struct udevice *dev)