<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/drivers/usb/host, branch v4.3-rc6</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://git.kobert.dev/pm24.git/atom/drivers/usb/host?h=v4.3-rc6</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom/drivers/usb/host?h=v4.3-rc6'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2015-09-22T05:50:45Z</updated>
<entry>
<title>xhci: init command timeout timer earlier to avoid deleting it uninitialized</title>
<updated>2015-09-22T05:50:45Z</updated>
<author>
<name>Mathias Nyman</name>
<email>mathias.nyman@linux.intel.com</email>
</author>
<published>2015-09-21T14:46:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=cc8e4fc0c3b5e8340bc8358990515d116a3c274c'/>
<id>urn:sha1:cc8e4fc0c3b5e8340bc8358990515d116a3c274c</id>
<content type='text'>
Don't check if timer is running with a timer_pending() before
deleting it with del_timer_sync(), this defies the whole point of
the sync part and can cause a possible race.

Instead we just want to make sure the timer is initialized early enough
before we have a chance to delete it.

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Oliver Neukum &lt;oneukum@suse.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>xhci: change xhci 1.0 only restrictions to support xhci 1.1</title>
<updated>2015-09-22T05:50:44Z</updated>
<author>
<name>Mathias Nyman</name>
<email>mathias.nyman@linux.intel.com</email>
</author>
<published>2015-09-21T14:46:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=dca7794539eff04b786fb6907186989e5eaaa9c2'/>
<id>urn:sha1:dca7794539eff04b786fb6907186989e5eaaa9c2</id>
<content type='text'>
Some changes between xhci 0.96 and xhci 1.0 specifications forced us to
check the hci version in code, some of these checks were implemented as
hci_version == 1.0, which will not work with new xhci 1.1 controllers.

xhci 1.1 behaves similar to xhci 1.0 in these cases, so change these
checks to hci_version &gt;= 1.0

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: xhci: exit early in xhci_setup_device() if we're halted or dying</title>
<updated>2015-09-22T05:50:44Z</updated>
<author>
<name>Roger Quadros</name>
<email>rogerq@ti.com</email>
</author>
<published>2015-09-21T14:46:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=448116bfa856d3c076fa7178ed96661a008a5d45'/>
<id>urn:sha1:448116bfa856d3c076fa7178ed96661a008a5d45</id>
<content type='text'>
During quick plug/removal of OTG adapter during dual-role testing
it can happen that xhci_alloc_device() is called for the newly
detected device after the DRD library has called xhci_stop to
remove the HCD.

If that is the case, just fail early to prevent the following warning.

[  154.732649] hub 4-0:1.0: USB hub found
[  154.742204] hub 4-0:1.0: 1 port detected
[  154.824458] hub 3-0:1.0: state 7 ports 1 chg 0002 evt 0000
[  154.854609] hub 4-0:1.0: state 7 ports 1 chg 0000 evt 0000
[  154.944430] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[  154.951009] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[  155.038191] xhci-hcd xhci-hcd.0.auto: remove, state 4
[  155.043315] usb usb4: USB disconnect, device number 1
[  155.055270] xhci-hcd xhci-hcd.0.auto: xhci_stop
[  155.060094] xhci-hcd xhci-hcd.0.auto: USB bus 4 deregistered
[  155.066576] xhci-hcd xhci-hcd.0.auto: remove, state 1
[  155.071710] usb usb3: USB disconnect, device number 1
[  155.077124] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[  155.082389] ------------[ cut here ]------------
[  155.087690] WARNING: CPU: 0 PID: 72 at drivers/usb/host/xhci.c:3800 xhci_setup_device+0x410/0x484 [xhci_hcd]()
[  155.097861] Modules linked in: sd_mod usb_storage scsi_mod usb_f_ss_lb g_zero libcomposite ipv6 xhci_plat_hcd xhci_hcd usbcore dwc3 udc_core evdev ti_am335x_adc joydev kfifo_buf industrialio snd_soc_simple_cc
[  155.146734] CPU: 0 PID: 72 Comm: kworker/0:3 Tainted: G        W       4.1.4-00834-gcd9380b-dirty #50
[  155.156073] Hardware name: Generic AM43 (Flattened Device Tree)
[  155.162117] Workqueue: usb_hub_wq hub_event [usbcore]
[  155.167249] Backtrace:
[  155.169751] [&lt;c0012af0&gt;] (dump_backtrace) from [&lt;c0012c8c&gt;] (show_stack+0x18/0x1c)
[  155.177390]  r6:c089d4a4 r5:ffffffff r4:00000000 r3:ee46c000
[  155.183137] [&lt;c0012c74&gt;] (show_stack) from [&lt;c05f7c14&gt;] (dump_stack+0x84/0xd0)
[  155.190446] [&lt;c05f7b90&gt;] (dump_stack) from [&lt;c00439ac&gt;] (warn_slowpath_common+0x80/0xbc)
[  155.198605]  r7:00000009 r6:00000ed8 r5:bf27eb70 r4:00000000
[  155.204348] [&lt;c004392c&gt;] (warn_slowpath_common) from [&lt;c0043a0c&gt;] (warn_slowpath_null+0x24/0x2c)
[  155.213202]  r8:ee49f000 r7:ee7c0004 r6:00000000 r5:ee7c0158 r4:ee7c0000
[  155.220051] [&lt;c00439e8&gt;] (warn_slowpath_null) from [&lt;bf27eb70&gt;] (xhci_setup_device+0x410/0x484 [xhci_hcd])
[  155.229816] [&lt;bf27e760&gt;] (xhci_setup_device [xhci_hcd]) from [&lt;bf27ec10&gt;] (xhci_address_device+0x14/0x18 [xhci_hcd])
[  155.240415]  r10:ee598200 r9:00000001 r8:00000002 r7:00000001 r6:00000003 r5:00000002
[  155.248363]  r4:ee49f000
[  155.250978] [&lt;bf27ebfc&gt;] (xhci_address_device [xhci_hcd]) from [&lt;bf20cb94&gt;] (hub_port_init+0x1b8/0xa9c [usbcore])
[  155.261403] [&lt;bf20c9dc&gt;] (hub_port_init [usbcore]) from [&lt;bf2101e0&gt;] (hub_event+0x738/0x1020 [usbcore])
[  155.270874]  r10:ee598200 r9:ee7c0000 r8:ee7c0038 r7:ee518800 r6:ee49f000 r5:00000001
[  155.278822]  r4:00000000
[  155.281426] [&lt;bf20faa8&gt;] (hub_event [usbcore]) from [&lt;c005754c&gt;] (process_one_work+0x128/0x340)
[  155.290196]  r10:00000000 r9:00000003 r8:00000000 r7:fedfa000 r6:eeec5400 r5:ee598314
[  155.298151]  r4:ee434380
[  155.300718] [&lt;c0057424&gt;] (process_one_work) from [&lt;c00578f8&gt;] (worker_thread+0x158/0x49c)
[  155.308963]  r10:ee434380 r9:00000003 r8:eeec5400 r7:00000008 r6:ee434398 r5:eeec5400
[  155.316913]  r4:eeec5414
[  155.319482] [&lt;c00577a0&gt;] (worker_thread) from [&lt;c005cc40&gt;] (kthread+0xdc/0xf8)
[  155.326765]  r10:00000000 r9:00000000 r8:00000000 r7:c00577a0 r6:ee434380 r5:ee4441c0
[  155.334713]  r4:00000000 r3:00000000
[  155.338341] [&lt;c005cb64&gt;] (kthread) from [&lt;c000fc08&gt;] (ret_from_fork+0x14/0x2c)
[  155.345626]  r7:00000000 r6:00000000 r5:c005cb64 r4:ee4441c0
[  155.356108] ---[ end trace a58d34c223b190e6 ]---
[  155.360783] xhci-hcd xhci-hcd.0.auto: Virt dev invalid for slot_id 0x1!
[  155.574404] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[  155.579667] ------------[ cut here ]------------

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Roger Quadros &lt;rogerq@ti.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: xhci: stop everything on the first call to xhci_stop</title>
<updated>2015-09-22T05:50:44Z</updated>
<author>
<name>Roger Quadros</name>
<email>rogerq@ti.com</email>
</author>
<published>2015-09-21T14:46:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=8c24d6d7b09deee3036ddc4f2b81b53b28c8f877'/>
<id>urn:sha1:8c24d6d7b09deee3036ddc4f2b81b53b28c8f877</id>
<content type='text'>
xhci_stop will be called twice, once for the shared hcd
and again for the primary hcd.

We stop the XHCI controller in any case so clean up
everything on the first call else we can timeout
waiting for pending requests to complete.

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Roger Quadros &lt;rogerq@ti.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: xhci: Clear XHCI_STATE_DYING on start</title>
<updated>2015-09-22T05:48:53Z</updated>
<author>
<name>Roger Quadros</name>
<email>rogerq@ti.com</email>
</author>
<published>2015-09-21T14:46:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=e5bfeab0ad515b4f6df39fe716603e9dc6d3dfd0'/>
<id>urn:sha1:e5bfeab0ad515b4f6df39fe716603e9dc6d3dfd0</id>
<content type='text'>
For whatever reason if XHCI died in the previous instant
then it will never recover on the next xhci_start unless we
clear the DYING flag.

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Roger Quadros &lt;rogerq@ti.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: xhci: lock mutex on xhci_stop</title>
<updated>2015-09-22T05:48:53Z</updated>
<author>
<name>Roger Quadros</name>
<email>rogerq@ti.com</email>
</author>
<published>2015-09-21T14:46:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=85ac90f8953a58f6a057b727bc9db97721e3fb8e'/>
<id>urn:sha1:85ac90f8953a58f6a057b727bc9db97721e3fb8e</id>
<content type='text'>
Else it races with xhci_setup_device

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Roger Quadros &lt;rogerq@ti.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM</title>
<updated>2015-09-22T05:48:53Z</updated>
<author>
<name>Tomer Barletz</name>
<email>barletz@gmail.com</email>
</author>
<published>2015-09-21T14:46:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=2b7627b73e81e5d23d5ae1490fe8e690af86e053'/>
<id>urn:sha1:2b7627b73e81e5d23d5ae1490fe8e690af86e053</id>
<content type='text'>
xhci_pme_quirk() is only used when CONFIG_PM is defined.
Compiling a kernel without PM complains about this function

[reworded commit message -Mathias]
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Tomer Barletz &lt;barletz@gmail.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>xhci: give command abortion one more chance before killing xhci</title>
<updated>2015-09-22T05:48:53Z</updated>
<author>
<name>Mathias Nyman</name>
<email>mathias.nyman@linux.intel.com</email>
</author>
<published>2015-09-21T14:46:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a6809ffd1687b3a8c192960e69add559b9d32649'/>
<id>urn:sha1:a6809ffd1687b3a8c192960e69add559b9d32649</id>
<content type='text'>
We want to give the command abortion an additional try to stop
the command ring before we completely hose xhci.

Cc: &lt;stable@vger.kernel.org&gt;
Tested-by: Vincent Pelletier &lt;plr.vincent@gmail.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: host: ehci-sys: delete useless bus_to_hcd conversion</title>
<updated>2015-08-18T17:05:23Z</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2015-08-17T02:23:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=0521cfd06e1ebcd575e7ae36aab068b38df23850'/>
<id>urn:sha1:0521cfd06e1ebcd575e7ae36aab068b38df23850</id>
<content type='text'>
The ehci platform device's drvdata is the pointer of struct usb_hcd
already, so we doesn't need to call bus_to_hcd conversion again.

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe</title>
<updated>2015-08-14T23:57:43Z</updated>
<author>
<name>Alexandre Belloni</name>
<email>alexandre.belloni@free-electrons.com</email>
</author>
<published>2015-08-10T14:23:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=e4df92279fd9e01532f65e5ba397877799ed6252'/>
<id>urn:sha1:e4df92279fd9e01532f65e5ba397877799ed6252</id>
<content type='text'>
ohci_hcd_at91_drv_probe() has four at91_for_each_port. They can be merged
into two loops without changing the driver behaviour.

Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
