From: zhangfei <zhangfei.gao@linaro.org>
To: Seungwon Jeon <tgih.jun@samsung.com>,
'Kevin Hilman' <khilman@linaro.org>,
'Sachin Kamat' <sachin.kamat@linaro.org>,
'Chris Ball' <cjb@laptop.org>, 'Arnd Bergmann' <arnd@arndb.de>,
'Mike Turquette' <mturquette@linaro.org>,
'Jaehoon Chung' <jh80.chung@samsung.com>
Cc: linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
patches@linaro.org
Subject: Re: [PATCH] mmc: dw_mmc: fix dw_mci_get_cd
Date: Wed, 15 Jan 2014 20:10:03 +0800 [thread overview]
Message-ID: <52D67A9B.4090607@linaro.org> (raw)
In-Reply-To: <001701cf11e9$25b5fe50$7121faf0$%jun@samsung.com>
On 01/15/2014 07:58 PM, Seungwon Jeon wrote:
> On Wed, January 15, 2014, Zhangfei Gao wrote:
>> Introduced from commit bf626e5550f24aec24975a0e85ad8e572ca76a6b
>> CDETECT is ignored since negated return value of mmc_gpio_get_cd(mmc)
>> can not be checked by IS_ERR_VALUE.
>> Add spin_lock_bh(&host->lock) for atomic accessing DW_MMC_CARD_PRESENT,
>> otherwise sd detect may occasionally fail.
>>
>> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
>> Reported-by: Kevin Hilman <khilman@linaro.org>
>> Reviewed-by: Sachin Kamat <sachin.kamat@linaro.org>
>> Tested-by: Sachin Kamat <sachin.kamat@linaro.org>
>> ---
>> drivers/mmc/host/dw_mmc.c | 9 ++++++---
>> 1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index a776f24f4311..9ded62c8225e 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -1033,7 +1033,8 @@ static int dw_mci_get_cd(struct mmc_host *mmc)
>> int present;
>> struct dw_mci_slot *slot = mmc_priv(mmc);
>> struct dw_mci_board *brd = slot->host->pdata;
>> - int gpio_cd = !mmc_gpio_get_cd(mmc);
>> + struct dw_mci *host = slot->host;
>> + int gpio_cd = mmc_gpio_get_cd(mmc);
>>
>> /* Use platform get_cd function, else try onboard card detect */
>> if (brd->quirks & DW_MCI_QUIRK_BROKEN_CARD_DETECTION)
>> @@ -1041,11 +1042,12 @@ static int dw_mci_get_cd(struct mmc_host *mmc)
>> else if (brd->get_cd)
>> present = !brd->get_cd(slot->id);
>> else if (!IS_ERR_VALUE(gpio_cd))
>> - present = !!gpio_cd;
>> + present = !gpio_cd;
> !!gpio_cd or gpio_cd is correct, isn't it?
>
No, mmc_gpio_get_cd(mmc) has to revert.
!!gpio_cd is used before since gpio_cd = !mmc_gpio_get_cd(mmc) is used
before.
Thanks
WARNING: multiple messages have this Message-ID (diff)
From: zhangfei.gao@linaro.org (zhangfei)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] mmc: dw_mmc: fix dw_mci_get_cd
Date: Wed, 15 Jan 2014 20:10:03 +0800 [thread overview]
Message-ID: <52D67A9B.4090607@linaro.org> (raw)
In-Reply-To: <001701cf11e9$25b5fe50$7121faf0$%jun@samsung.com>
On 01/15/2014 07:58 PM, Seungwon Jeon wrote:
> On Wed, January 15, 2014, Zhangfei Gao wrote:
>> Introduced from commit bf626e5550f24aec24975a0e85ad8e572ca76a6b
>> CDETECT is ignored since negated return value of mmc_gpio_get_cd(mmc)
>> can not be checked by IS_ERR_VALUE.
>> Add spin_lock_bh(&host->lock) for atomic accessing DW_MMC_CARD_PRESENT,
>> otherwise sd detect may occasionally fail.
>>
>> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
>> Reported-by: Kevin Hilman <khilman@linaro.org>
>> Reviewed-by: Sachin Kamat <sachin.kamat@linaro.org>
>> Tested-by: Sachin Kamat <sachin.kamat@linaro.org>
>> ---
>> drivers/mmc/host/dw_mmc.c | 9 ++++++---
>> 1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index a776f24f4311..9ded62c8225e 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -1033,7 +1033,8 @@ static int dw_mci_get_cd(struct mmc_host *mmc)
>> int present;
>> struct dw_mci_slot *slot = mmc_priv(mmc);
>> struct dw_mci_board *brd = slot->host->pdata;
>> - int gpio_cd = !mmc_gpio_get_cd(mmc);
>> + struct dw_mci *host = slot->host;
>> + int gpio_cd = mmc_gpio_get_cd(mmc);
>>
>> /* Use platform get_cd function, else try onboard card detect */
>> if (brd->quirks & DW_MCI_QUIRK_BROKEN_CARD_DETECTION)
>> @@ -1041,11 +1042,12 @@ static int dw_mci_get_cd(struct mmc_host *mmc)
>> else if (brd->get_cd)
>> present = !brd->get_cd(slot->id);
>> else if (!IS_ERR_VALUE(gpio_cd))
>> - present = !!gpio_cd;
>> + present = !gpio_cd;
> !!gpio_cd or gpio_cd is correct, isn't it?
>
No, mmc_gpio_get_cd(mmc) has to revert.
!!gpio_cd is used before since gpio_cd = !mmc_gpio_get_cd(mmc) is used
before.
Thanks
next prev parent reply other threads:[~2014-01-15 12:10 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-09 14:35 [PATCH v7 0/3] mmc: dw_mmc: add dw_mmc-k3 Zhangfei Gao
2014-01-09 14:35 ` Zhangfei Gao
2014-01-09 14:35 ` [PATCH 1/3] mmc: dw_mmc: use slot-gpio to handle cd pin Zhangfei Gao
2014-01-09 14:35 ` Zhangfei Gao
2014-01-09 14:38 ` Arnd Bergmann
2014-01-09 14:38 ` Arnd Bergmann
2014-01-14 15:58 ` Kevin Hilman
2014-01-14 15:58 ` Kevin Hilman
2014-01-14 17:23 ` Olof Johansson
2014-01-14 17:23 ` Olof Johansson
2014-01-15 1:09 ` zhangfei
2014-01-15 1:09 ` zhangfei
2014-01-15 5:16 ` zhangfei
2014-01-15 5:16 ` zhangfei
2014-01-15 7:15 ` [PATCH] mmc: dw_mmc: fix dw_mci_get_cd Zhangfei Gao
2014-01-15 7:15 ` Zhangfei Gao
2014-01-15 7:31 ` zhangfei
2014-01-15 7:31 ` zhangfei
2014-01-15 10:07 ` Zhangfei Gao
2014-01-15 10:07 ` Zhangfei Gao
2014-01-15 11:58 ` Seungwon Jeon
2014-01-15 11:58 ` Seungwon Jeon
2014-01-15 12:10 ` zhangfei [this message]
2014-01-15 12:10 ` zhangfei
2014-01-15 12:26 ` Seungwon Jeon
2014-01-15 12:26 ` Seungwon Jeon
2014-01-15 13:56 ` zhangfei
2014-01-15 13:56 ` zhangfei
2014-01-15 13:59 ` Arnd Bergmann
2014-01-15 13:59 ` Arnd Bergmann
2014-01-15 14:20 ` Arnd Bergmann
2014-01-15 14:20 ` Arnd Bergmann
2014-01-15 15:36 ` zhangfei
2014-01-15 15:36 ` zhangfei
2014-01-15 16:01 ` Russell King - ARM Linux
2014-01-15 16:01 ` Russell King - ARM Linux
2014-01-15 16:07 ` Arnd Bergmann
2014-01-15 16:07 ` Arnd Bergmann
2014-01-15 16:22 ` Russell King - ARM Linux
2014-01-15 16:22 ` Russell King - ARM Linux
2014-01-16 2:10 ` zhangfei
2014-01-16 2:10 ` zhangfei
2014-01-16 11:12 ` Arnd Bergmann
2014-01-16 11:12 ` Arnd Bergmann
2014-01-16 11:25 ` Russell King - ARM Linux
2014-01-16 11:25 ` Russell King - ARM Linux
2014-01-15 14:38 ` Seungwon Jeon
2014-01-15 14:38 ` Seungwon Jeon
2014-01-15 15:32 ` zhangfei
2014-01-15 15:32 ` zhangfei
2014-01-15 15:51 ` Zhangfei Gao
2014-01-15 15:51 ` Zhangfei Gao
2014-01-15 15:59 ` Russell King - ARM Linux
2014-01-15 15:59 ` Russell King - ARM Linux
2014-01-15 15:54 ` Arnd Bergmann
2014-01-15 15:54 ` Arnd Bergmann
[not found] ` <1389278112-7099-1-git-send-email-zhangfei.gao-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-01-09 14:35 ` [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform Zhangfei Gao
2014-01-09 14:35 ` Zhangfei Gao
2014-01-09 14:45 ` Arnd Bergmann
2014-01-09 14:45 ` Arnd Bergmann
2014-01-10 13:39 ` Seungwon Jeon
2014-01-10 13:39 ` Seungwon Jeon
2014-01-10 14:12 ` zhangfei
2014-01-10 14:12 ` zhangfei
2014-01-13 2:09 ` Seungwon Jeon
2014-01-13 2:09 ` Seungwon Jeon
2014-01-13 2:37 ` zhangfei
2014-01-13 2:37 ` zhangfei
2014-01-13 5:32 ` Seungwon Jeon
2014-01-13 5:32 ` Seungwon Jeon
2014-01-13 8:30 ` zhangfei
2014-01-13 8:30 ` zhangfei
2014-01-14 9:38 ` Seungwon Jeon
2014-01-14 9:38 ` Seungwon Jeon
2014-01-14 9:47 ` zhangfei
2014-01-14 9:47 ` zhangfei
2014-01-09 14:35 ` [PATCH 3/3] clk: hisilicon: add hi3620_mmc_clks Zhangfei Gao
2014-01-09 14:35 ` Zhangfei Gao
2014-01-09 14:38 ` Arnd Bergmann
2014-01-09 14:38 ` Arnd Bergmann
2014-01-10 3:41 ` [PATCH v7 0/3] mmc: dw_mmc: add dw_mmc-k3 Jaehoon Chung
2014-01-10 3:41 ` Jaehoon Chung
2014-01-12 16:35 ` Chris Ball
2014-01-12 16:35 ` Chris Ball
2014-01-13 1:00 ` Zhangfei Gao
2014-01-13 1:00 ` Zhangfei Gao
-- strict thread matches above, loose matches on Subject: below --
2014-01-16 2:31 [PATCH v2] mmc: dw_mmc: fix dw_mci_get_cd Zhangfei Gao
2014-01-16 12:48 ` [PATCH] " Zhangfei Gao
2014-01-16 12:48 ` Zhangfei Gao
2014-01-16 18:29 ` Kevin Hilman
2014-01-16 18:29 ` Kevin Hilman
2014-01-17 12:35 ` Seungwon Jeon
2014-01-17 12:35 ` Seungwon Jeon
2014-01-17 14:25 ` Chris Ball
2014-01-17 14:25 ` Chris Ball
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=52D67A9B.4090607@linaro.org \
--to=zhangfei.gao@linaro.org \
--cc=arnd@arndb.de \
--cc=cjb@laptop.org \
--cc=jh80.chung@samsung.com \
--cc=khilman@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=patches@linaro.org \
--cc=sachin.kamat@linaro.org \
--cc=tgih.jun@samsung.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 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.