All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shawn Lin <shawn.lin@rock-chips.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: shawn.lin@rock-chips.com, Jaehoon Chung <jh80.chung@samsung.com>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mmc: dw_mmc: add hw_reset extension hook
Date: Thu, 22 Oct 2015 19:25:00 +0800	[thread overview]
Message-ID: <5628C78C.809@rock-chips.com> (raw)
In-Reply-To: <CAPDyKFr6vmx4F6OShYmPvxYu=_vb70ijL-twFqBcotXTX9eEaQ@mail.gmail.com>

On 2015/10/22 17:48, Ulf Hansson wrote:
> On 22 October 2015 at 08:19, Shawn Lin <shawn.lin@rock-chips.com> wrote:
>> This patch add hw_reset for dw_mmc to implement hw reset
>> procedure. It's useful for mmc core to recover emmc devices
>> if emmc runs into unexpected state. Add MMC_CAP_HW_RESET
>> capability to dw_mmc extension driver directly if it needs hw_reset.
>>
>> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
>> ---
>>
>>   drivers/mmc/host/dw_mmc.c | 4 ++++
>>   drivers/mmc/host/dw_mmc.h | 2 ++
>>   2 files changed, 6 insertions(+)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index 8a0f2995..46b12de 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -1482,6 +1482,10 @@ static void dw_mci_hw_reset(struct mmc_host *mmc)
>>   {
>>          struct dw_mci_slot *slot = mmc_priv(mmc);
>>          struct dw_mci *host = slot->host;
>> +       const struct dw_mci_drv_data *drv_data = host->drv_data;
>> +
>> +       if (drv_data && drv_data->hw_reset)
>> +               return drv_data->hw_reset(host);
>
> dw_mmc is starting to walk the same bad path as sdhci has done.
>
> Please, try to avoid adding non-needed callbacks and start to turn
> dw_mmc into a library instead.
>

sorry for posting this, but then a I am just now reading your comments 
about overstaffed quirks and callback of sdhci. Obviously dw_mmc is a 
little easier to be turned into a lib before it going to be the 
equivalent weight of sdhci.

I'm glad to try it. :)

> Kind regards
> Uffe
>
>>
>>          if (host->use_dma == TRANS_MODE_IDMAC)
>>                  dw_mci_idmac_reset(host);
>> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
>> index 9df18c1..21b9df4 100644
>> --- a/drivers/mmc/host/dw_mmc.h
>> +++ b/drivers/mmc/host/dw_mmc.h
>> @@ -282,6 +282,7 @@ struct dw_mci_slot {
>>    * @set_ios: handle bus specific extensions.
>>    * @parse_dt: parse implementation specific device tree properties.
>>    * @execute_tuning: implementation specific tuning procedure.
>> + * @hw_reset: implementation specific hw reset procedure.
>>    *
>>    * Provide controller implementation specific extensions. The usage of this
>>    * data structure is fully optional and usage of each member in this structure
>> @@ -299,5 +300,6 @@ struct dw_mci_drv_data {
>>                                                  struct mmc_ios *ios);
>>          int             (*switch_voltage)(struct mmc_host *mmc,
>>                                            struct mmc_ios *ios);
>> +       void            (*hw_reset)(struct dw_mci *host);
>>   };
>>   #endif /* _DW_MMC_H_ */
>> --
>> 2.3.7
>>
>>
>
>
>


-- 
Best Regards
Shawn Lin

      reply	other threads:[~2015-10-22 11:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-22  6:19 [PATCH 0/2] Add hw reset support for DesignWare MMC controller Shawn Lin
2015-10-22  6:19 ` Shawn Lin
2015-10-22  6:19 ` [PATCH 1/2] mmc: dw_mmc: add hw_reset support Shawn Lin
2015-10-23 12:07   ` Jaehoon Chung
2015-10-26  0:47     ` Shawn Lin
2015-10-22  6:19 ` [PATCH 2/2] mmc: dw_mmc: add hw_reset extension hook Shawn Lin
2015-10-22  9:48   ` Ulf Hansson
2015-10-22 11:25     ` Shawn Lin [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=5628C78C.809@rock-chips.com \
    --to=shawn.lin@rock-chips.com \
    --cc=jh80.chung@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=ulf.hansson@linaro.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.