linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Dan Carpenter
	<dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: usb: phy: tegra: Program new PHY parameters
Date: Thu, 04 Sep 2014 09:19:17 -0600	[thread overview]
Message-ID: <540882F5.7040005@wwwdotorg.org> (raw)
In-Reply-To: <20140904142032.GQ6549@mwanda>

On 09/04/2014 08:20 AM, Dan Carpenter wrote:
> On Thu, Sep 04, 2014 at 05:10:02PM +0300, Dan Carpenter wrote:
>> Hello Tuomas Tynkkynen,
>>
>> The patch e497a24d8e18: "usb: phy: tegra: Program new PHY parameters"
>> from Aug 12, 2013, leads to the following static checker warning:
>>
>> 	drivers/usb/phy/phy-tegra-usb.c:460 utmi_phy_power_on()
>> 	warn: 0x1fc is larger than 8 bits
>>
>> drivers/usb/phy/phy-tegra-usb.c
>>     101  #define   UTMIP_XCVR_HSSLEW(x)                  (((x) & 0x3) << 4)
>>     102  #define   UTMIP_XCVR_HSSLEW_MSB(x)              ((((x) & 0x1fc) >> 2) << 25)

I believe HSSLEW_MSB should use a mask of 0x3fc, since it's an 8-bit 
field. I believe the correct fix for the problem you reported is to 
change struct tegra_utmip_config's xcvr_hsslew field to a u16.

(Sigh, this means changing the prototype of read_utmi_param() too, or 
adding separate u8/u16 versions of it)

Would you like me to send a patch for this?

>>
>> [snip]
>>
>>     455          val |= UTMIP_XCVR_LSRSLEW(config->xcvr_lsrslew);
>>     456
>>     457          if (phy->soc_config->requires_extra_tuning_parameters) {
>>     458                  val &= ~(UTMIP_XCVR_HSSLEW(~0) | UTMIP_XCVR_HSSLEW_MSB(~0));
>
> Btw, the only place where this matters is right here.  We end up masking
> out a bit which we had not intended.  The extra '1' doesn't make a
> difference to the line below which generated the static checker warning.
>
> regards,
> dan carpenter
>
>>     459                  val |= UTMIP_XCVR_HSSLEW(config->xcvr_hsslew);
>>     460                  val |= UTMIP_XCVR_HSSLEW_MSB(config->xcvr_hsslew);
>>                                                       ^^^^^^^^^^^^^^^^^^^
>> This is a u8 so it can only go up to 0xff and not 0x1fc.  Also 0xfc and
>> 0x03 are symetric so I think 0xfc was probably intended?
>>
>> But I don't know the hardware at all, this is pure guess work.
>>
>>     461          }
>>     462          writel(val, base + UTMIP_XCVR_CFG0);
>>
>> regards,
>> dan carpenter

      reply	other threads:[~2014-09-04 15:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 14:10 usb: phy: tegra: Program new PHY parameters Dan Carpenter
2014-09-04 14:20 ` Dan Carpenter
2014-09-04 15:19   ` Stephen Warren [this message]

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=540882F5.7040005@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.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).