From: Adrian Hunter <adrian.hunter@intel.com>
To: Shawn Lin <shawn.lin@rock-chips.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>, linux-mmc@vger.kernel.org
Subject: Re: [RFC PATCH 6/6] mmc: sdhci: remove CONFIG_MMC_DEBUG from the driver
Date: Wed, 19 Jul 2017 10:16:34 +0300 [thread overview]
Message-ID: <0daed43c-f648-b536-9a5c-dc43cde7da63@intel.com> (raw)
In-Reply-To: <9e8e1a62-84ca-ce43-5b8d-debcda6e103c@rock-chips.com>
On 19/07/17 03:32, Shawn Lin wrote:
> Hi Adrian,
>
> On 2017/7/18 17:38, Adrian Hunter wrote:
>> On 18/07/17 12:01, Shawn Lin wrote:
>>> sdhci uses CONFIG_MMC_DEBUG for showing ADMA descriptor
>>> when occurring ADMA error. And it's also used to dump the
>>> registers whenever calling sdhci_add_host.
>>>
>>> On one hand, I don't see any burden to always print the state
>>> ADMA descriptor as it's rare and will help folks better understand
>>> what was happening when seeing ADMA error.
>>>
>>> On the other, git-blame points out that CONFIG_MMC_DEBUG for
>>> sdhci_add_host was added since it's merged for the first time.
>>> I don't know what exactly the intention was, but I guess folks
>>> don't need it at all? IMHO, it's another all-or-none proposition.
>>> I'd prefer to remove this sdhci_dumpregs from sdhci_add_host totally.
>>>
>>> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
>>>
>>> ---
>>>
>>> drivers/mmc/host/sdhci.c | 8 --------
>>> 1 file changed, 8 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>>> index ecd0d43..82f1761 100644
>>> --- a/drivers/mmc/host/sdhci.c
>>> +++ b/drivers/mmc/host/sdhci.c
>>> @@ -2502,7 +2502,6 @@ static void sdhci_cmd_irq(struct sdhci_host *host,
>>> u32 intmask)
>>> sdhci_finish_command(host);
>>> }
>>> -#ifdef CONFIG_MMC_DEBUG
>>> static void sdhci_adma_show_error(struct sdhci_host *host)
>>> {
>>> void *desc = host->adma_table;
>>> @@ -2530,9 +2529,6 @@ static void sdhci_adma_show_error(struct sdhci_host
>>> *host)
>>> break;
>>> }
>>> }
>>> -#else
>>> -static void sdhci_adma_show_error(struct sdhci_host *host) { }
>>> -#endif
>>> static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
>>> {
>>> @@ -3747,10 +3743,6 @@ int __sdhci_add_host(struct sdhci_host *host)
>>> goto untasklet;
>>> }
>>> -#ifdef CONFIG_MMC_DEBUG
>>> - sdhci_dumpregs(host);
>>> -#endif
>>
>> We should still DBG() the interesting registers like SDHCI_HOST_VERSION,
>> SDHCI_PRESENT_STATE, SDHCI_CAPABILITIES, SDHCI_CAPABILITIES_1. Better to do
>> it earlier on though, like in sdhci_setup_host() after checking
>> mmc_regulator_get_supply().
>>
>
> Okay. So would you like to kill the CONFIG_MMC_DEBUG around
> this dempregs and keep the output log always there OR you still
> want to keep it under CONFIG_MMC_DEBUG?
We absolutely want register dumps if there are unexpected errors, so the dump
cannot use dynamic debug. But we also want to be able to see the interesting
registers at probe time. We could make use of DYNAMIC_DEBUG_BRANCH and
DEFINE_DYNAMIC_DEBUG_METADATA but that is not something that is commonly done.
So that leaves adding a few extra pr_debugs (DBG macro for sdhci) at probe time
i.e. Remove CONFIG_MMC_DEBUG and add something like:
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ecd0d4350e8a..1b619ccc27f5 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3230,6 +3230,13 @@ int sdhci_setup_host(struct sdhci_host *host)
if (ret == -EPROBE_DEFER)
return ret;
+ DBG("Version: 0x%08x | Present: 0x%08x\n",
+ sdhci_readw(host, SDHCI_HOST_VERSION),
+ sdhci_readl(host, SDHCI_PRESENT_STATE));
+ DBG("Caps: 0x%08x | Caps_1: 0x%08x\n",
+ sdhci_readl(host, SDHCI_CAPABILITIES),
+ sdhci_readl(host, SDHCI_CAPABILITIES_1));
+
sdhci_read_caps(host);
override_timeout_clk = host->timeout_clk;
next prev parent reply other threads:[~2017-07-19 7:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-18 8:59 [RFC PATCH 0/6] Try to get rid of CONFIG_MMC_DEBUG Shawn Lin
2017-07-18 8:59 ` [RFC PATCH 1/6] mmc: core: remove check of host->removed for rescan routine Shawn Lin
2017-07-18 8:59 ` [RFC PATCH 2/6] mmc: core: always check the length of sglist with total data size Shawn Lin
2017-07-18 8:59 ` [RFC PATCH 3/6] mmc: core: turn the pr_info under CONFIG_MMC_DEBUG into pr_debug Shawn Lin
2017-07-18 8:59 ` [RFC PATCH 4/6] mmc: Kconfig: downgrade CONFIG_MMC_DEBUG for host drivers only Shawn Lin
2017-07-18 9:01 ` [RFC PATCH 5/6] mmc: wbsd: remove CONFIG_MMC_DEBUG from the driver Shawn Lin
2017-07-18 9:01 ` [RFC PATCH 6/6] mmc: sdhci: " Shawn Lin
2017-07-18 9:38 ` Adrian Hunter
2017-07-19 0:32 ` Shawn Lin
2017-07-19 7:16 ` Adrian Hunter [this message]
2017-07-19 7:41 ` Shawn Lin
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=0daed43c-f648-b536-9a5c-dc43cde7da63@intel.com \
--to=adrian.hunter@intel.com \
--cc=linux-mmc@vger.kernel.org \
--cc=shawn.lin@rock-chips.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox