linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bug report] thunderbolt: Add initial support for USB4
@ 2020-01-07  5:24 Dan Carpenter
  2020-01-07 10:25 ` Mika Westerberg
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2020-01-07  5:24 UTC (permalink / raw)
  To: mika.westerberg; +Cc: linux-usb

[ Should linux-usb be listed in MAINTAINERS? - dan]

Hello Mika Westerberg,

The patch b04079837b20: "thunderbolt: Add initial support for USB4"
from Dec 17, 2019, leads to the following static checker warning:

	drivers/thunderbolt/usb4.c:242 usb4_switch_setup()
	warn: bool mask it always valse 'xhci & ((((1))) << (18))'

drivers/thunderbolt/usb4.c
   206          bool tbt3, xhci;
                ^^^^       ^^^^

   207          u32 val = 0;
   208          int ret;
   209  
   210          if (!tb_route(sw))
   211                  return 0;
   212  
   213          ret = tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_6, 1);
   214          if (ret)
   215                  return ret;
   216  
   217          xhci = val & ROUTER_CS_6_HCI;
   218          tbt3 = !(val & ROUTER_CS_6_TNS);
   219  
   220          tb_sw_dbg(sw, "TBT3 support: %s, xHCI: %s\n",
   221                    tbt3 ? "yes" : "no", xhci ? "yes" : "no");
   222  
   223          ret = tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_5, 1);
   224          if (ret)
   225                  return ret;
   226  
   227          parent = tb_switch_parent(sw);
   228  
   229          if (tb_switch_find_port(parent, TB_TYPE_USB3_DOWN)) {
   230                  val |= ROUTER_CS_5_UTO;
   231                  xhci = false;
   232          }
   233  
   234          /* Only enable PCIe tunneling if the parent router supports it */
   235          if (tb_switch_find_port(parent, TB_TYPE_PCIE_DOWN)) {
   236                  val |= ROUTER_CS_5_PTO;
   237                  /*
   238                   * xHCI can be enabled if PCIe tunneling is supported
   239                   * and the parent does not have any USB3 dowstream
   240                   * adapters (so we cannot do USB 3.x tunneling).
   241                   */
   242                  if (xhci & ROUTER_CS_6_HCI)
                            ^^^^^^^^^^^^^^^^^^^^^^
"xhci" is bool so BIT(18) is not set.

   243                          val |= ROUTER_CS_5_HCO;
   244          }
   245  
   246          /* TBT3 supported by the CM */
   247          val |= ROUTER_CS_5_C3S;


regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [bug report] thunderbolt: Add initial support for USB4
  2020-01-07  5:24 [bug report] thunderbolt: Add initial support for USB4 Dan Carpenter
@ 2020-01-07 10:25 ` Mika Westerberg
  0 siblings, 0 replies; 2+ messages in thread
From: Mika Westerberg @ 2020-01-07 10:25 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: linux-usb

On Tue, Jan 07, 2020 at 08:24:24AM +0300, Dan Carpenter wrote:
> [ Should linux-usb be listed in MAINTAINERS? - dan]

Yes, I think so. I'll make a patch for that.

> Hello Mika Westerberg,
> 
> The patch b04079837b20: "thunderbolt: Add initial support for USB4"
> from Dec 17, 2019, leads to the following static checker warning:
> 
> 	drivers/thunderbolt/usb4.c:242 usb4_switch_setup()
> 	warn: bool mask it always valse 'xhci & ((((1))) << (18))'
> 
> drivers/thunderbolt/usb4.c
>    206          bool tbt3, xhci;
>                 ^^^^       ^^^^
> 
>    207          u32 val = 0;
>    208          int ret;
>    209  
>    210          if (!tb_route(sw))
>    211                  return 0;
>    212  
>    213          ret = tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_6, 1);
>    214          if (ret)
>    215                  return ret;
>    216  
>    217          xhci = val & ROUTER_CS_6_HCI;
>    218          tbt3 = !(val & ROUTER_CS_6_TNS);
>    219  
>    220          tb_sw_dbg(sw, "TBT3 support: %s, xHCI: %s\n",
>    221                    tbt3 ? "yes" : "no", xhci ? "yes" : "no");
>    222  
>    223          ret = tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_5, 1);
>    224          if (ret)
>    225                  return ret;
>    226  
>    227          parent = tb_switch_parent(sw);
>    228  
>    229          if (tb_switch_find_port(parent, TB_TYPE_USB3_DOWN)) {
>    230                  val |= ROUTER_CS_5_UTO;
>    231                  xhci = false;
>    232          }
>    233  
>    234          /* Only enable PCIe tunneling if the parent router supports it */
>    235          if (tb_switch_find_port(parent, TB_TYPE_PCIE_DOWN)) {
>    236                  val |= ROUTER_CS_5_PTO;
>    237                  /*
>    238                   * xHCI can be enabled if PCIe tunneling is supported
>    239                   * and the parent does not have any USB3 dowstream
>    240                   * adapters (so we cannot do USB 3.x tunneling).
>    241                   */
>    242                  if (xhci & ROUTER_CS_6_HCI)
>                             ^^^^^^^^^^^^^^^^^^^^^^
> "xhci" is bool so BIT(18) is not set.

Good finding. It should be

	if (xhci)
		val |= ROUTER_CS_5_HCO;

I think. I'll make patch fixing it as well.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-01-07 10:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-07  5:24 [bug report] thunderbolt: Add initial support for USB4 Dan Carpenter
2020-01-07 10:25 ` Mika Westerberg

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).