diff options
| author | Pantelis Antoniou <panto@antoniou-consulting.com> | 2014-02-26 19:28:45 +0200 | 
|---|---|---|
| committer | Pantelis Antoniou <panto@antoniou-consulting.com> | 2014-03-24 11:32:10 +0200 | 
| commit | ab769f227f79bedae7840f99b6c0c4d66aafc78e (patch) | |
| tree | 27d83f7ebf9da92a3ad1015cf736b7796e6ab76d /drivers/mmc/tegra_mmc.c | |
| parent | 2c072c958bb544c72f0e848375803dbd6971f022 (diff) | |
| download | olio-uboot-2014.01-ab769f227f79bedae7840f99b6c0c4d66aafc78e.tar.xz olio-uboot-2014.01-ab769f227f79bedae7840f99b6c0c4d66aafc78e.zip | |
mmc: Remove ops from struct mmc and put in mmc_ops
Remove the in-structure ops and put them in mmc_ops with
a constant pointer to it.
This makes the mmc structure smaller as well as conserving
code space (in theory).
All in-tree drivers are converted as well; this is done in a
single patch in order to not break git bisect.
Changes since V1:
Fix compilation b0rked issue on omap platforms where OMAP_GPIO was
not set.
Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Diffstat (limited to 'drivers/mmc/tegra_mmc.c')
| -rw-r--r-- | drivers/mmc/tegra_mmc.c | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c index 3d1ce1263..5f7b590b8 100644 --- a/drivers/mmc/tegra_mmc.c +++ b/drivers/mmc/tegra_mmc.c @@ -314,7 +314,7 @@ static int mmc_send_cmd_bounced(struct mmc *mmc, struct mmc_cmd *cmd,  	return 0;  } -static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, +static int tegra_mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,  			struct mmc_data *data)  {  	void *buf; @@ -396,7 +396,7 @@ out:  	host->clock = clock;  } -static void mmc_set_ios(struct mmc *mmc) +static void tegra_mmc_set_ios(struct mmc *mmc)  {  	struct mmc_host *host = mmc->priv;  	unsigned char ctrl; @@ -464,7 +464,7 @@ static void mmc_reset(struct mmc_host *host, struct mmc *mmc)  	pad_init_mmc(host);  } -static int mmc_core_init(struct mmc *mmc) +static int tegra_mmc_core_init(struct mmc *mmc)  {  	struct mmc_host *host = (struct mmc_host *)mmc->priv;  	unsigned int mask; @@ -521,6 +521,13 @@ int tegra_mmc_getcd(struct mmc *mmc)  	return 1;  } +static const struct mmc_ops tegra_mmc_ops = { +	.send_cmd	= tegra_mmc_send_cmd, +	.set_ios	= tegra_mmc_set_ios, +	.init		= tegra_mmc_core_init, +	.getcd		= tegra_mmc_getcd, +}; +  static int do_mmc_init(int dev_index)  {  	struct mmc_host *host; @@ -558,11 +565,7 @@ static int do_mmc_init(int dev_index)  	sprintf(mmc->name, "Tegra SD/MMC");  	mmc->priv = host; -	mmc->send_cmd = mmc_send_cmd; -	mmc->set_ios = mmc_set_ios; -	mmc->init = mmc_core_init; -	mmc->getcd = tegra_mmc_getcd; -	mmc->getwp = NULL; +	mmc->ops = &tegra_mmc_ops;  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;  	mmc->host_caps = 0; |