> From:
kyungmin78@gmail.com [mailto:kyungmin78@gmail.com] On Behalf Of
> Kyungmin Park
> Sent: Thursday, December 09, 2010 2:05 PM
> To: Dong, Chuanxiao
> Cc: linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org; cjb@laptop.org;
> arjan@linux.intel.com; alan@linux.intel.com;
akpm@linux-foundation.org
> Subject: Re: [PATCH v4 1/4]enable HW reset capbility
>
> On Thu, Dec 9, 2010 at 2:40 PM, Dong, Chuanxiao
> <chuanxiao.dong@intel.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From:
kyungmin78@gmail.com [mailto:kyungmin78@gmail.com] On Behalf Of
> >> Kyungmin Park
> >> Sent: Thursday, December 09, 2010 1:24 PM
> >> To: Dong, Chuanxiao
> >> Cc: linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org; cjb@laptop.org;
> >> arjan@linux.intel.com; alan@linux.intel.com;
akpm@linux-foundation.org
> >> Subject: Re: [PATCH v4 1/4]enable HW reset capbility
> >>
> >> On Wed, Dec 1, 2010 at 9:49 PM, Chuanxiao Dong <chuanxiao.dong@intel.com>
> >> wrote:
> >> > From d3be0b4fe8e8a40294830dfd8d0543d1e957fd29 Mon Sep 17 00:00:00
> 2001
> >> > From: Chuanxiao Dong <chuanxiao.dong@intel.com>
> >> > Date: Wed, 1 Dec 2010 19:14:02 +0800
> >> > Subject: [PATCH 1/4] enable HW reset caps of MMC card if card supports
> >> >
> >> > HW reset capbility enable bit is byte 162 in card EXT_CSD
> >> > register, only version4.4 card or later can support to enable
> >> > this feature.
> >> >
> >> > HW reset feature can be used to reset eMMC card when occures
> >> > timeout errors during read/write/erase.
> >> >
> >> > Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
> >> > ---
> >> > drivers/mmc/core/mmc.c | 29 +++++++++++++++++++++++++++++
> >> > include/linux/mmc/card.h | 1 +
> >> > include/linux/mmc/mmc.h | 1 +
> >> > 3 files changed, 31 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> >> > index 77f93c3..85cc7f6 100644
> >> > --- a/drivers/mmc/core/mmc.c
> >> > +++ b/drivers/mmc/core/mmc.c
> >> > @@ -310,6 +310,10 @@ static int mmc_read_ext_csd(struct mmc_card
> *card)
> >> > ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT];
> >> > card->ext_csd.trim_timeout = 300 *
> >> > ext_csd[EXT_CSD_TRIM_MULT];
> >> > + /*
> >> > + * check Hardware reset cap
> >> Check hardware.
> >> > + */
> >> > + card->ext_csd.rst = ext_csd[EXT_CSD_RST];
> >> > }
> >> >
> >> > if (ext_csd[EXT_CSD_ERASED_MEM_CONT])
> >> > @@ -484,6 +488,31 @@ static int mmc_init_card(struct mmc_host *host,
> u32
> >> ocr,
> >> > }
> >> >
> >> > /*
> >> > + * eMMC4.4 version card has HW reset capbility.
> >> capability.
> >> > + * Enable this feature here:
> >> > + * RST_N_FUNCTION register is W/R, one time programmable
> >> Use RST_n_FUNCTION as spec.
> >> > + * or readable.
> >> > + * So need to enable this register only once after power on
> >> > + */
> >> > + if (card->csd.mmca_vsn >= CSD_SPEC_VER_4 &&
> >> > + card->ext_csd.rev >= 4 &&
> >> it should be card->ext_csd.rev >= 5 since 4 is obsolete.
> >>
> >> Thank you,
> >> Kyungmin Park
> >
> > Thanks, Park. I will fix this.
> > And by the way, I noticed mmc_read_ext_csd function also used
> card->ext_csd.rev >=4. Is there some other reason for this kind of using? Or it is
> just because at that time the value 4 has not be obsolete yet....?
>
> Maybe need to fix it also.
>
> And remaining patches also need to fix 'capability' typo.