linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
Cc: Suneel Garapati <suneel.garapati@xilinx.com>,
	Kevin Liu <kliu5@marvell.com>,
	Michal Simek <michal.simek@xilinx.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org
Subject: Re: [PATCH 3/7] mmc: sdhci: fix SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN
Date: Thu, 16 Apr 2020 10:40:32 +0300	[thread overview]
Message-ID: <a49b6a25-14f5-ca1b-b493-e40ec4984b04@intel.com> (raw)
In-Reply-To: <20200415160302.GB19897@qmqm.qmqm.pl>

On 15/04/20 7:03 pm, Michał Mirosław wrote:
> On Wed, Apr 15, 2020 at 04:06:02PM +0300, Adrian Hunter wrote:
>> On 2/04/20 2:54 pm, Michał Mirosław wrote:
>>> Fix returned clock rate for SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN case.
>>
>> Does this change anything, because it looks the same to me?
> 
> The value of real_div is fixed this way. With previous code after
> applying the quirk you would have real_div = 1 instead of real_div = 2.

That kind of thing should be in the commit message.  Please also explain
what effect this has (the actual clock value will be too high, but also what
problems does that manifest) and what hardware is affected.

> 
> Best Regards,
> Michał Mirosław
> 
>>
>>>
>>> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
>>> Cc: stable@kernel.vger.org
>>> Fixes: d1955c3a9a1d ("mmc: sdhci: add quirk SDHCI_QUIRK_CLOCK_DIV_ZERO_BROKEN")
>>> ---
>>>  drivers/mmc/host/sdhci.c | 10 +++++-----
>>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>>> index b2dc4f1cfa5c..a043bf5e3565 100644
>>> --- a/drivers/mmc/host/sdhci.c
>>> +++ b/drivers/mmc/host/sdhci.c
>>> @@ -1807,9 +1807,12 @@ u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock,
>>>  
>>>  		if (!host->clk_mul || switch_base_clk) {
>>>  			/* Version 3.00 divisors must be a multiple of 2. */
>>> -			if (host->max_clk <= clock)
>>> +			if (host->max_clk <= clock) {
>>>  				div = 1;
>>> -			else {
>>> +				if ((host->quirks2 & SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN)
>>> +					&& host->max_clk <= 25000000)
>>> +					div = 2;
>>> +			} else {
>>>  				for (div = 2; div < SDHCI_MAX_DIV_SPEC_300;
>>>  				     div += 2) {
>>>  					if ((host->max_clk / div) <= clock)
>>> @@ -1818,9 +1821,6 @@ u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock,
>>>  			}
>>>  			real_div = div;
>>>  			div >>= 1;
>>> -			if ((host->quirks2 & SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN)
>>> -				&& !div && host->max_clk <= 25000000)
>>> -				div = 1;
>>>  		}
>>>  	} else {
>>>  		/* Version 2.00 divisors must be a power of 2. */
>>>
>>


  reply	other threads:[~2020-04-16  7:41 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-02 11:54 [PATCH 0/7] SDHCI clock handling fixes and cleanups Michał Mirosław
2020-04-02 11:54 ` [PATCH 3/7] mmc: sdhci: fix SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN Michał Mirosław
2020-04-15 13:06   ` Adrian Hunter
2020-04-15 16:03     ` Michał Mirosław
2020-04-16  7:40       ` Adrian Hunter [this message]
2020-04-02 11:54 ` [PATCH 2/7] mmc: sdhci: fix programmable clock config from preset value Michał Mirosław
2020-04-15 12:44   ` Adrian Hunter
2020-04-02 11:54 ` [PATCH 1/7] mmc: sdhci: fix base clock usage in " Michał Mirosław
2020-04-15 12:25   ` Adrian Hunter
2020-04-15 16:28     ` Michał Mirosław
2020-04-16  8:26       ` Adrian Hunter
2020-04-17 13:55         ` Alan Cooper
2020-04-20  5:31           ` Adrian Hunter
2020-04-02 11:54 ` [PATCH 4/7] mmc: sdhci: move SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN frequency limit Michał Mirosław
2020-04-15 13:16   ` Adrian Hunter
2020-04-15 16:16     ` Michał Mirosław
2020-04-16  7:43       ` Adrian Hunter
2020-04-02 11:54 ` [PATCH 6/7] mmc: sdhci: squash v2/v3+ clock calculation differences Michał Mirosław
2020-04-02 11:54 ` [PATCH 5/7] mmc: sdhci: simplify clock frequency calculation Michał Mirosław
2020-04-03 13:02   ` kbuild test robot
2020-04-03 16:15     ` Michał Mirosław
2020-04-15 13:54   ` Adrian Hunter
2020-04-15 16:45     ` Michał Mirosław
2020-04-02 11:54 ` [PATCH 7/7] mmc: sdhci: respect non-zero div quirk in programmable clock mode Michał Mirosław
2020-04-03 16:03   ` kbuild test robot
2020-04-15  8:52 ` [PATCH 0/7] SDHCI clock handling fixes and cleanups Ulf Hansson

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=a49b6a25-14f5-ca1b-b493-e40ec4984b04@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=kliu5@marvell.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=mirq-linux@rere.qmqm.pl \
    --cc=suneel.garapati@xilinx.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;
as well as URLs for NNTP newsgroup(s).