Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1473732 authored by Ulf Hansson's avatar Ulf Hansson
Browse files

mmc: core: Re-factor code for sending CID



Instead of having the caller to check for SPI mode, let's leave that to
internals of mmc_send_cid(). In this way the code gets cleaner and it
becomes clear what is specific to SPI and non-SPI mode.

Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarShawn Lin <shawn.lin@rock-chips.com>
parent 3df66e77
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -1556,10 +1556,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
	/*
	 * Fetch CID from card.
	 */
	if (mmc_host_is_spi(host))
	err = mmc_send_cid(host, cid);
	else
		err = mmc_all_send_cid(host, cid);
	if (err)
		goto err;

+10 −2
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
	return err;
}

int mmc_all_send_cid(struct mmc_host *host, u32 *cid)
static int mmc_all_send_cid(struct mmc_host *host, u32 *cid)
{
	int err;
	struct mmc_command cmd = {};
@@ -334,7 +334,7 @@ int mmc_send_csd(struct mmc_card *card, u32 *csd)
	return ret;
}

int mmc_send_cid(struct mmc_host *host, u32 *cid)
static int mmc_spi_send_cid(struct mmc_host *host, u32 *cid)
{
	int ret, i;
	__be32 *cid_tmp;
@@ -355,6 +355,14 @@ int mmc_send_cid(struct mmc_host *host, u32 *cid)
	return ret;
}

int mmc_send_cid(struct mmc_host *host, u32 *cid)
{
	if (mmc_host_is_spi(host))
		return mmc_spi_send_cid(host, cid);

	return mmc_all_send_cid(host, cid);
}

int mmc_get_ext_csd(struct mmc_card *card, u8 **new_ext_csd)
{
	int err;
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ int mmc_deselect_cards(struct mmc_host *host);
int mmc_set_dsr(struct mmc_host *host);
int mmc_go_idle(struct mmc_host *host);
int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr);
int mmc_all_send_cid(struct mmc_host *host, u32 *cid);
int mmc_set_relative_addr(struct mmc_card *card);
int mmc_send_csd(struct mmc_card *card, u32 *csd);
int __mmc_send_status(struct mmc_card *card, u32 *status, unsigned int retries);
+1 −5
Original line number Diff line number Diff line
@@ -788,11 +788,7 @@ int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid, u32 *rocr)
		}
	}

	if (mmc_host_is_spi(host))
	err = mmc_send_cid(host, cid);
	else
		err = mmc_all_send_cid(host, cid);

	return err;
}