On 18 August 2014 12:00, Barry Song <[email protected]> wrote:
> From: Minda Chen <[email protected]>
>
> After suspending, unplug the sdcard, and set sd WP lock,
> insert it again, then resume the system. resume codes do
> not check the the sdcard write-proctect lock. now check
> it.
>
> Signed-off-by: Minda Chen <[email protected]>
> Signed-off-by: Barry Song <[email protected]>
> ---
> drivers/mmc/core/sd.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> index 0c44510..890557a 100644
> --- a/drivers/mmc/core/sd.c
> +++ b/drivers/mmc/core/sd.c
> @@ -910,6 +910,7 @@ static int mmc_sd_init_card(struct mmc_host *host, u32
> ocr,
> int err;
> u32 cid[4];
> u32 rocr = 0;
> + bool oldro, ro;
>
> BUG_ON(!host);
> WARN_ON(!host->claimed);
> @@ -922,6 +923,12 @@ static int mmc_sd_init_card(struct mmc_host *host, u32
> ocr,
> if (memcmp(cid, oldcard->raw_cid, sizeof(cid)) != 0)
> return -ENOENT;
>
> + if (host->ops->get_ro) {
> + ro = host->ops->get_ro(host) ? true : false;
> + oldro = mmc_card_readonly(oldcard) ? true : false;
> + if (oldro ^ ro)
> + return -ENOENT;
> + }
Seems like this code belongs better in mmc_sd_setup_card(). Could you
try moving it there.
Kind regards
Uffe
> card = oldcard;
> } else {
> /*
> --
> 2.0.4
>
>
>
> Member of the CSR plc group of companies. CSR plc registered in England and
> Wales, registered number 4187346, registered office Churchill House,
> Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
> More information can be found at www.csr.com. Keep up to date with CSR on our
> technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people,
> YouTube, www.youtube.com/user/CSRplc, Facebook,
> www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at
> www.twitter.com/CSR_plc.
> New for 2014, you can now access the wide range of products powered by aptX
> at www.aptx.com.
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html