[PATCH V2] MMC: PM: add suspend/resume in atmel-mci

Hans-Christian Egtvedt hans-christian.egtvedt at atmel.com
Fri Jul 1 10:32:34 EDT 2011


On Fri, 2011-07-01 at 16:22 +0200, Nicolas Ferre wrote:
> Le 30/06/2011 15:13, Uwe Kleine-König :

<snipp>

> Well, actually for the current implementation the only return code is... 0.
> And here I try to have a king of best effort approach ;-)
> 
> >> +			}
> >> +			return ret;
> >> +		}
> >> +	}
> >> +
> >> +	return 0;
> >> +}
> >> +
> >> +static int atmci_resume(struct device *dev)
> >> +{
> >> +	struct atmel_mci *host = dev_get_drvdata(dev);
> >> +	struct atmel_mci_slot *slot;
> >> +	int i, ret;
> >> +
> >> +	for (i = 0; i < ATMEL_MCI_MAX_NR_SLOTS; i++) {
> >> +		slot = host->slot[i];
> >> +		if (!slot)
> >> +			continue;
> >> +		ret = mmc_resume_host(slot->mmc);
> >> +		if (ret < 0)
> >> +			return ret;
> > Maybe you should try to resume host 5 even if resuming host 4 failed?
> 
> In fact all other drivers that are dealing with multiple slots are doing
> the same... So I have difficulties to know the truth.
> The question is: is it better to return an error to the "resume"
> function so that we are called later again or do we have to do our best
> to thaw everything out?

Detect failures and return the error value, but also try to resume the
other slots.

You must however then keep track of which are restored for later calls
to resume AFAICT.

<snipp>

-- 
Hans-Christian Egtvedt




More information about the linux-arm-kernel mailing list