All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] spi: cadence_qspi_apb: Ensure baudrate doesn't exceed max value
Date: Sun, 7 Aug 2016 16:13:40 +0200	[thread overview]
Message-ID: <289b7a06-246c-dc28-780c-e9f984a50a9e@denx.de> (raw)
In-Reply-To: <1470579073.2069.6.camel@altera.com>

On 08/07/2016 04:11 PM, Chin Liang See wrote:
> On Sun, 2016-08-07 at 16:05 +0200, Marek Vasut wrote:
>> On 08/07/2016 03:53 PM, Chin Liang See wrote:
>>> Ensuring the baudrate divisor value doesn't exceed the max value
>>> in the calculation.It will be capped at max value to ensure the
>>> correct value being written into the register.
>>>
>>> Signed-off-by: Chin Liang See <clsee@altera.com>
>>> Cc: Marek Vasut <marex@denx.de>
>>> Cc: Jagan Teki <jteki@openedev.com>
>>> Cc: Dinh Nguyen <dinguyen@altera.com>
>>> ---
>>>  drivers/spi/cadence_qspi_apb.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/spi/cadence_qspi_apb.c
>>> b/drivers/spi/cadence_qspi_apb.c
>>> index 1a35d55..e6a8ecb 100644
>>> --- a/drivers/spi/cadence_qspi_apb.c
>>> +++ b/drivers/spi/cadence_qspi_apb.c
>>> @@ -293,6 +293,10 @@ void cadence_qspi_apb_config_baudrate_div(void
>>> *reg_base,
>>>  	debug("%s: ref_clk %dHz sclk %dHz Div 0x%x\n", __func__,
>>>  	      ref_clk_hz, sclk_hz, div);
>>>  
>>> +	/* ensure the baud rate doesn't exceed the max value */
>>> +	if (div > CQSPI_REG_CONFIG_BAUD_MASK)
>>> +		div = CQSPI_REG_CONFIG_BAUD_MASK;
>>> +
>>>  	div = (div & CQSPI_REG_CONFIG_BAUD_MASK) <<
>>> CQSPI_REG_CONFIG_BAUD_LSB;
>>
>> The capping happens here ^ already , doesn't it ?
> 
> I have initial thought too until someone file me a bug on this. The bug
> happen when the calculated div = 16. After and with the mask, the value
> writen to register is actually 0 (register field for baudrate divisor).

So this is what the problem is all about, thanks for clarifying (and
that should be in the commit message!). But then, you don't need the
masking, it can be turned into reg = div << CQSPI_REG_CONFIG_BAUD_LSB.

-- 
Best regards,
Marek Vasut

  reply	other threads:[~2016-08-07 14:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-07 13:53 [U-Boot] [PATCH] spi: cadence_qspi_apb: Ensure baudrate doesn't exceed max value Chin Liang See
2016-08-07 14:05 ` Marek Vasut
2016-08-07 14:11   ` Chin Liang See
2016-08-07 14:13     ` Marek Vasut [this message]
2016-08-07 14:34       ` Chin Liang See

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=289b7a06-246c-dc28-780c-e9f984a50a9e@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /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.