linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Seungwon Jeon <tgih.jun@samsung.com>
To: "'Doug Anderson'" <dianders@chromium.org>
Cc: linux-samsung-soc@vger.kernel.org,
	"'Thomas Abraham'" <thomas.abraham@linaro.org>,
	"'Kukjin Kim'" <kgene.kim@samsung.com>,
	"'Olof Johansson'" <olof@lixom.net>,
	"'Arnd Bergmann'" <arnd@arndb.de>,
	"'Will Newton'" <will.newton@imgtec.com>,
	"'Chris Ball'" <cjb@laptop.org>,
	"'Jaehoon Chung'" <jh80.chung@samsung.com>,
	linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: RE: [PATCH v2 1/2] mmc: dw_mmc: exynos: Stop claiming wp-gpio
Date: Thu, 29 Nov 2012 16:46:24 +0900	[thread overview]
Message-ID: <001301cdce05$a1ab0330$e5010990$%jun@samsung.com> (raw)
In-Reply-To: <CAD=FV=Xdb5W_WrDPgxaTzMOYNP7DpD6Gztq9k2B85z1boUV+3w@mail.gmail.com>

Hi Doug,

On Thursday, November 29, 2012, Doug Anderson wrote:
> Seungwon,
> 
> Thanks for the review.  See below for comments.  If you'd like me to
> respin then please let me know.  Otherwise I look forward to your ack.
> 
> On Wed, Nov 28, 2012 at 1:29 AM, Seungwon Jeon <tgih.jun@samsung.com> wrote:
> > Yes. pin of write protection is common property.
> > This change is good. I have some suggestion below.
> > Could you check it?
> >
> > On Friday, November 23, 2012, Doug Anderson wrote:
> >> The exynos code claimed wp-gpio with devm_gpio_request() but never did
> >> anything with it.  That meant that anyone using a write protect GPIO
> >> would effectively be write protected all the time.
> >>
> >> A future change will move the wp-gpio support to the core dw_mmc.c
> >> file.  Now the exynos-specific code won't claim the GPIO but will
> >> just set the DW_MCI_QUIRK_NO_WRITE_PROTECT quirk if write protect
> >> won't be used.
> >>
> >> Signed-off-by: Doug Anderson <dianders@chromium.org>
> >>
> >> ---
> >> Changes in v2:
> >> - Nothing new in this patch
> >>
> >>  drivers/mmc/host/dw_mmc-exynos.c |   12 ++++++------
> >>  1 files changed, 6 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
> >> index 4d50da6..58cc03e 100644
> >> --- a/drivers/mmc/host/dw_mmc-exynos.c
> >> +++ b/drivers/mmc/host/dw_mmc-exynos.c
> >> @@ -175,12 +175,12 @@ static int dw_mci_exynos_setup_bus(struct dw_mci *host,
> >>               }
> >>       }
> >>
> >> -     gpio = of_get_named_gpio(slot_np, "wp-gpios", 0);
> >> -     if (gpio_is_valid(gpio)) {
> >> -             if (devm_gpio_request(host->dev, gpio, "dw-mci-wp"))
> >> -                     dev_info(host->dev, "gpio [%d] request failed\n",
> >> -                                             gpio);
> >> -     } else {
> >> +     /*
> >> +      * If there are no write-protect GPIOs present then we assume no write
> >> +      * protect.  The mci_readl() in dw_mmc.c won't work since it's not
> >> +      * hooked up on exynos.
> >> +      */
> >> +     if (!of_find_property(slot_np, "wp-gpios", NULL)) {
> >>               dev_info(host->dev, "wp gpio not available");
> >>               host->pdata->quirks |= DW_MCI_QUIRK_NO_WRITE_PROTECT;
> >>       }
> > All card types need this quirk in case wp-gpio property is empty?
> > I think wp-pin is valid for SD card, not eMMC/SDIO.
> 
> Right.  It is only checked right now by the SD code (mmc/core/sd.c).
> It doesn't particularly hurt to set it the quirk in other cases though
> and it seems nice not to add special cases.  I could imagine someone
> extending the MMC code at some point to support write protect (via
> GPIO) for eMMC, so there's even a slight justification for avoiding
> the special case.
> 
> 
> > Of course, I know origin code did it.
> > How about removing whole checking routine?
> > Instead, new definition for this quirk can be added into 'dw_mci_of_quirks'(dw_mmc.c) and dts file.
> 
> On _exynos_ all SD cards need this quirk if there is no wp-gpio
> property.  However this is not generally true for all users of dw_mmc.
>  The DesignWare IP Block actually has a write protect input that can
> be read with "mci_readl(slot->host, WRTPRT)" but on exynos the
> DesignWare write protect line isn't exposed on any physical pins.
> That means that the only possible way to do write protect on exynos is
> using a GPIO.
> 
> The above means that on exynos if the GPIO isn't defined we will
> assume no write protect.  On other platforms if the GPIO isn't defined
> we'll assume that the "mci_readl" will work and we'll use that.
> 
> If people would prefer it I can code up an alternate solution that
> doesn't touch any exynos code but that would introduce a new device
> tree binding.  We could accomplish what's needed for exynos using a
> property like "broken-internal-wp".
> 
> Please let me know if you'd like me to submit a new patch with this
> solution or if you like the existing solution.
> 
Write protect is additional interface related with SD socket. 
WP switch appears in SD standard size card. 
In case EMMC/SDIO spec, there is no mentions about this WP pin.
As you mentioned above, that's why 'ger_ro' is called only in sd path(mmc/core/sd.c).
So, I meant that we don't need to consider WP pin status about non-SD type.

Such as exynos5250, there is no exposed interface from host controller for write protection pin.
In that case, if general gpio pin is connected like your board environment, we can define wp-gpio.
Otherwise, 'broken-internal-wp' property will be good solution.

Please feel free to modify.
If you will do, I'll be happy.

Thanks,
Seungwon Jeon
> >> --
> >> 1.7.7.3
> >
> --
> 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:[~2012-11-29  7:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-21 22:03 [PATCH 1/2] mmc: dw_mmc: exynos: Stop claiming wp-gpio Doug Anderson
2012-11-21 22:03 ` [PATCH 2/2] mmc: dw_mmc: Handle wp-gpios from device tree Doug Anderson
2012-11-22  1:42   ` Seungwon Jeon
2012-11-22  4:33     ` Doug Anderson
2012-11-22  5:49       ` Seungwon Jeon
2012-11-22  1:55   ` Jaehoon Chung
2012-11-22  4:43     ` Doug Anderson
2012-11-22 22:53 ` [PATCH v2 1/2] mmc: dw_mmc: exynos: Stop claiming wp-gpio Doug Anderson
2012-11-22 22:53   ` [PATCH v2 2/2] mmc: dw_mmc: Handle wp-gpios from device tree Doug Anderson
2012-11-28  9:29   ` [PATCH v2 1/2] mmc: dw_mmc: exynos: Stop claiming wp-gpio Seungwon Jeon
2012-11-28 18:20     ` Doug Anderson
2012-11-29  7:46       ` Seungwon Jeon [this message]
2012-11-30  5:07         ` Doug Anderson
2012-11-30  5:04   ` [PATCH v3 1/4] mmc: dw_mmc: Add "disable-wp" device tree property Doug Anderson
2012-11-30  5:04     ` [PATCH v3 2/4] ARM: dts: Add disable-wp for sd card slot on smdk5250 Doug Anderson
2012-11-30  5:04     ` [PATCH v3 3/4] mmc: dw_mmc: exynos: Remove code for wp-gpios Doug Anderson
2012-11-30  5:04     ` [PATCH v3 4/4] mmc: dw_mmc: Handle wp-gpios from device tree Doug Anderson
2012-11-30 11:57     ` [PATCH v3 1/4] mmc: dw_mmc: Add "disable-wp" device tree property Seungwon Jeon
2012-12-20  0:56       ` Doug Anderson
2013-01-10 18:24     ` [REPOST PATCH " Doug Anderson
2013-01-10 18:24       ` [REPOST PATCH v3 2/4] ARM: dts: Add disable-wp for sd card slot on smdk5250 Doug Anderson
2013-01-10 18:24       ` [REPOST PATCH v3 3/4] mmc: dw_mmc: exynos: Remove code for wp-gpios Doug Anderson
2013-01-10 18:24       ` [REPOST PATCH v3 4/4] mmc: dw_mmc: Handle wp-gpios from device tree Doug Anderson
2013-01-10 23:01       ` [REPOST PATCH v3 1/4] mmc: dw_mmc: Add "disable-wp" device tree property Olof Johansson
2013-01-10 23:23         ` Doug Anderson
2013-01-10 23:57           ` Doug Anderson
2013-01-11 17:03       ` [PATCH v4 1/5] " Doug Anderson
2013-01-11 17:03         ` [PATCH v4 2/5] ARM: dts: Add disable-wp for sd card slot on smdk5250 Doug Anderson
2013-01-15  6:27           ` Olof Johansson
2013-01-11 17:03         ` [PATCH v4 3/5] mmc: dw_mmc: exynos: Remove code for wp-gpios Doug Anderson
2013-01-15  6:25           ` Olof Johansson
2013-01-11 17:03         ` [PATCH v4 4/5] mmc: dw_mmc: Handle wp-gpios from device tree Doug Anderson
2013-01-15  6:27           ` Olof Johansson
2013-01-11 17:03         ` [PATCH v4 5/5] mmc: dw_mmc: Remove DW_MCI_QUIRK_NO_WRITE_PROTECT Doug Anderson
2013-01-14 10:47           ` Will Newton
2013-01-14 16:09             ` Doug Anderson
2013-01-28 21:14               ` Chris Ball
2013-01-15  6:28           ` Olof Johansson
2013-01-11 17:12         ` [PATCH v4 1/5] mmc: dw_mmc: Add "disable-wp" device tree property Will Newton
2013-01-15  6:20         ` Olof Johansson

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='001301cdce05$a1ab0330$e5010990$%jun@samsung.com' \
    --to=tgih.jun@samsung.com \
    --cc=arnd@arndb.de \
    --cc=cjb@laptop.org \
    --cc=dianders@chromium.org \
    --cc=jh80.chung@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=thomas.abraham@linaro.org \
    --cc=will.newton@imgtec.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).