diff options
Diffstat (limited to 'drivers/mmc/mmc.c')
| -rw-r--r-- | drivers/mmc/mmc.c | 29 | 
1 files changed, 27 insertions, 2 deletions
| diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 72e8ce6da..d732581eb 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -40,6 +40,27 @@  static struct list_head mmc_devices;  static int cur_dev_num = -1; +int __weak board_mmc_getwp(struct mmc *mmc) +{ +	return -1; +} + +int mmc_getwp(struct mmc *mmc) +{ +	int wp; + +	wp = board_mmc_getwp(mmc); + +	if (wp < 0) { +		if (mmc->getwp) +			wp = mmc->getwp(mmc); +		else +			wp = 0; +	} + +	return wp; +} +  int __board_mmc_getcd(struct mmc *mmc) {  	return -1;  } @@ -675,8 +696,12 @@ int mmc_getcd(struct mmc *mmc)  	cd = board_mmc_getcd(mmc); -	if ((cd < 0) && mmc->getcd) -		cd = mmc->getcd(mmc); +	if (cd < 0) { +		if (mmc->getcd) +			cd = mmc->getcd(mmc); +		else +			cd = 1; +	}  	return cd;  } |