All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Felipe Balbi <balbi@kernel.org>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	USB <linux-usb@vger.kernel.org>,
	John Youn <John.Youn@synopsys.com>
Subject: usb: dwc3: Set default mode for dwc_usb31
Date: Fri, 27 Jul 2018 13:22:25 +0300	[thread overview]
Message-ID: <CAHp75Vfq7UN6hQDNmdPG_Sf3ka8g1a_=-RmUq=Len10Jt5HrDA@mail.gmail.com> (raw)

On Fri, Jul 27, 2018 at 1:14 PM, Felipe Balbi <balbi@kernel.org> wrote:

>>>>>> +
>>>>>> +               /*
>>>>>> +                * dwc_usb31 does not support OTG mode. If the controller
>>>>>> +                * supports DRD but the dr_mode is not specified or set to OTG,
>>>>>> +                * then set the mode to peripheral.
>>>>>> +                */
>>>>>> +               if (mode == USB_DR_MODE_OTG && dwc3_is_usb31(dwc))
>>>>> shouldn't be simple
>>>>>
>>>>> else if (dwc3_is_usb31(...))
>>>>>
>>>>> ?
>>>
>>> Actually, no. We want to set the mode to peripheral _only_ when dr_mode
>>> was not specified or set to OTG. Just checking for dwc3_is_usb31(...) is
>>> not enough.
>>
>> How come?
>>
>> If I read the code correctly...
>>
>> When you go to default case in this switch it's possible if and only
>> if you have mode _exactly_ OTG. You can't have mode unknown here
>> either.
>> The check is redundant and absence of else adds additional burden on
>> the all the rest cases.
>
> Look a little closer
>
>> mode = dwc->dr_mode;
>> hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0);
>>
>> switch (hw_mode) {
>           ^^^^^^^
>           Switching on hw_mode, not mode.

Ah, indeed. That's what I have missed.
Thanks for detailed explanation!

             reply	other threads:[~2018-07-27 10:22 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-27 10:22 Andy Shevchenko [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-07-27 10:14 usb: dwc3: Set default mode for dwc_usb31 Felipe Balbi
2018-07-27 10:08 Andy Shevchenko
2018-07-26 23:02 Thinh Nguyen
2018-07-26 21:59 Thinh Nguyen
2018-07-26 21:32 Andy Shevchenko
2018-07-26 20:52 Thinh Nguyen

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='CAHp75Vfq7UN6hQDNmdPG_Sf3ka8g1a_=-RmUq=Len10Jt5HrDA@mail.gmail.com' \
    --to=andy.shevchenko@gmail.com \
    --cc=John.Youn@synopsys.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=linux-usb@vger.kernel.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 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.