All of lore.kernel.org
 help / color / mirror / Atom feed
From: Seungwon Jeon <tgih.jun@samsung.com>
To: 'Girish K S' <girish.shivananjappa@linaro.org>
Cc: linux-mmc@vger.kernel.org, cjb@laptop.org,
	linux-samsung-soc@vger.kernel.org, kgene.kim@samsung.com,
	dh.han@samsung.com
Subject: RE: [PATCH] mmc: core: Separate the timeout value for cache-ctrl
Date: Tue, 25 Oct 2011 08:51:37 +0900	[thread overview]
Message-ID: <002001cc92a7$de7d2940$9b777bc0$%jun@samsung.com> (raw)
In-Reply-To: <CAGxe1ZG3LBk5uyJjKDRbbv0rFbJQeXYEd04EaKwY9Yfuekg_YA@mail.gmail.com>

Girish K S wrote:
> On 24 October 2011 15:40, Seungwon Jeon <tgih.jun@samsung.com> wrote:
> > Turning the cache off implies flushing cache which doesn't define
> > maximum timeout unlike cache-on. This patch will apply the generic
> > CMD6 timeout only for cache-on. Additionally the kernel message is
> > added for checking failure case of cache-on.
> >
> > Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
> > ---
> >  drivers/mmc/core/core.c |   22 +++++++++++++---------
> >  drivers/mmc/core/mmc.c  |   10 ++++++++--
> >  2 files changed, 21 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> > index 5278ffb..65b5643 100644
> > --- a/drivers/mmc/core/core.c
> > +++ b/drivers/mmc/core/core.c
> > @@ -2248,6 +2248,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
> >  int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
> >  {
> >        struct mmc_card *card = host->card;
> > +       unsigned int timeout;
> >        int err = 0;
> >
> >        if (!(host->caps2 & MMC_CAP2_CACHE_CTRL) ||
> > @@ -2258,16 +2259,19 @@ int mmc_cache_ctrl(struct mmc_host *host, u8
> enable)
> >                        (card->ext_csd.cache_size > 0)) {
> >                enable = !!enable;
> >
> > -               if (card->ext_csd.cache_ctrl ^ enable)
> > +               if (card->ext_csd.cache_ctrl ^ enable) {
> > +                       timeout = enable ?
card->ext_csd.generic_cmd6_time :
> 0;
> >                        err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
> > -                                       EXT_CSD_CACHE_CTRL, enable, 0);
> Here timeout value used is 0. If it has to be 0 then why should you check
> timeout = enable ? card->ext_csd.generic_cmd6_time : 0;
> I think it should be card->ext_csd.generic_cmd6_time instead of 0
Upper line you pointed was removed. Could check '-', please?
> > -               if (err)
> > -                       pr_err("%s: cache %s error %d\n",
> > -                                       mmc_hostname(card->host),
> > -                                       enable ? "on" : "off",
> > -                                       err);
> > -               else
> > -                       card->ext_csd.cache_ctrl = enable;
> > +                                       EXT_CSD_CACHE_CTRL, enable,
timeout);
Here is modified line.

Beset regards,
Seungwon Jeon.
> > +
> > +                       if (err)
> > +                               pr_err("%s: cache %s error %d\n",
> > +                                              
mmc_hostname(card->host),
> > +                                               enable ? "on" : "off",
> > +                                               err);
> > +                       else
> > +                               card->ext_csd.cache_ctrl = enable;
> > +               }
> >        }
> >
> >        return err;
> > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> > index fb5bf01..6354eb3 100644
> > --- a/drivers/mmc/core/mmc.c
> > +++ b/drivers/mmc/core/mmc.c
> > @@ -1064,14 +1064,20 @@ static int mmc_init_card(struct mmc_host *host,
> u32 ocr,
> >        if ((host->caps2 & MMC_CAP2_CACHE_CTRL) &&
> >                        card->ext_csd.cache_size > 0) {
> >                err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
> > -                               EXT_CSD_CACHE_CTRL, 1, 0);
> > +                               EXT_CSD_CACHE_CTRL, 1,
> > +                               card->ext_csd.generic_cmd6_time);
> >                if (err && err != -EBADMSG)
> >                        goto free_card;
> >
> >                /*
> >                 * Only if no error, cache is turned on successfully.
> >                 */
> > -               card->ext_csd.cache_ctrl = err ? 0 : 1;
> > +               if (err) {
> > +                       pr_warning("%s: Cache is supported, but enabling
> failed\n",
> > +                                       mmc_hostname(card->host));
> > +                       err = 0;
> > +               } else
> > +                       card->ext_csd.cache_ctrl = 1;
> >        }
> >
> >        if (!oldcard)
> > --
> > 1.7.0.4
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >


      reply	other threads:[~2011-10-24 23:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-24 10:10 [PATCH] mmc: core: Separate the timeout value for cache-ctrl Seungwon Jeon
2011-10-24 10:55 ` Girish K S
2011-10-24 23:51   ` Seungwon Jeon [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='002001cc92a7$de7d2940$9b777bc0$%jun@samsung.com' \
    --to=tgih.jun@samsung.com \
    --cc=cjb@laptop.org \
    --cc=dh.han@samsung.com \
    --cc=girish.shivananjappa@linaro.org \
    --cc=kgene.kim@samsung.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.