<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/usb/host, branch v3.2.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/usb/host?h=v3.2.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/usb/host?h=v3.2.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-01-12T19:29:43Z</updated>
<entry>
<title>usb: ch9: fix up MaxStreams helper</title>
<updated>2012-01-12T19:29:43Z</updated>
<author>
<name>Felipe Balbi</name>
<email>balbi@ti.com</email>
</author>
<published>2012-01-02T11:35:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d2570fc048ca1307e64572c825e0d7908bd60a21'/>
<id>urn:sha1:d2570fc048ca1307e64572c825e0d7908bd60a21</id>
<content type='text'>
commit 18b7ede5f7ee2092aedcb578d3ac30bd5d4fc23c upstream.

[ removed the dwc3 portion of the patch as it didn't apply to
older kernels - gregkh]

According to USB 3.0 Specification Table 9-22, if
bmAttributes [4:0] are set to zero, it means "no
streams supported", but the way this helper was
defined on Linux, we will *always* have one stream
which might cause several problems.

For example on DWC3, we would tell the controller
endpoint has streams enabled and yet start transfers
with Stream ID set to 0, which would goof up the host
side.

While doing that, convert the macro to an inline
function due to the different checks we now need.

Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>xhci: Properly handle COMP_2ND_BW_ERR</title>
<updated>2012-01-12T19:29:43Z</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2012-01-04T22:29:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5b511b783385bc68663e4729be7f169ce3061e6d'/>
<id>urn:sha1:5b511b783385bc68663e4729be7f169ce3061e6d</id>
<content type='text'>
commit 71d85724bdd947a3b42a88d08af79f290a1a767b upstream.

I encountered a result of COMP_2ND_BW_ERR while improving how the pwc
webcam driver handles not having the full usb1 bandwidth available to
itself.

I created the following test setup, a NEC xhci controller with a
single TT USB 2 hub plugged into it, with a usb keyboard and a pwc webcam
plugged into the usb2 hub. This caused the following to show up in dmesg
when trying to stream from the pwc camera at its highest alt setting:

xhci_hcd 0000:01:00.0: ERROR: unexpected command completion code 0x23.
usb 6-2.1: Not enough bandwidth for altsetting 9

And usb_set_interface returned -EINVAL, which caused my pwc code to not
do the right thing as it expected -ENOSPC.

This patch makes the xhci driver properly handle COMP_2ND_BW_ERR and makes
usb_set_interface return -ENOSPC as expected.

This should be backported to stable kernels as old as 2.6.32.

Signed-off-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>usb: fix number of mapped SG DMA entries</title>
<updated>2012-01-12T19:29:43Z</updated>
<author>
<name>Clemens Ladisch</name>
<email>clemens@ladisch.de</email>
</author>
<published>2011-12-03T22:41:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4781ace0ddff8057f2c1bf1811ae4886f8b88876'/>
<id>urn:sha1:4781ace0ddff8057f2c1bf1811ae4886f8b88876</id>
<content type='text'>
commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.

Add a new field num_mapped_sgs to struct urb so that we have a place to
store the number of mapped entries and can also retain the original
value of entries in num_sgs.  Previously, usb_hcd_map_urb_for_dma()
would overwrite this with the number of mapped entries, which would
break dma_unmap_sg() because it requires the original number of entries.

This fixes warnings like the following when using USB storage devices:
 ------------[ cut here ]------------
 WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
 ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
 Modules linked in: ohci_hcd ehci_hcd
 Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff81036d3b&gt;] warn_slowpath_common+0x80/0x98
  [&lt;ffffffff81036de7&gt;] warn_slowpath_fmt+0x41/0x43
  [&lt;ffffffff811fa5ae&gt;] check_unmap+0x4e4/0x695
  [&lt;ffffffff8105e92c&gt;] ? trace_hardirqs_off+0xd/0xf
  [&lt;ffffffff8147208b&gt;] ? _raw_spin_unlock_irqrestore+0x33/0x50
  [&lt;ffffffff811fa84a&gt;] debug_dma_unmap_sg+0xeb/0x117
  [&lt;ffffffff8137b02f&gt;] usb_hcd_unmap_urb_for_dma+0x71/0x188
  [&lt;ffffffff8137b166&gt;] unmap_urb_for_dma+0x20/0x22
  [&lt;ffffffff8137b1c5&gt;] usb_hcd_giveback_urb+0x5d/0xc0
  [&lt;ffffffffa0000d02&gt;] ehci_urb_done+0xf7/0x10c [ehci_hcd]
  [&lt;ffffffffa0001140&gt;] qh_completions+0x429/0x4bd [ehci_hcd]
  [&lt;ffffffffa000340a&gt;] ehci_work+0x95/0x9c0 [ehci_hcd]
  ...
 ---[ end trace f29ac88a5a48c580 ]---
 Mapped at:
  [&lt;ffffffff811faac4&gt;] debug_dma_map_sg+0x45/0x139
  [&lt;ffffffff8137bc0b&gt;] usb_hcd_map_urb_for_dma+0x22e/0x478
  [&lt;ffffffff8137c494&gt;] usb_hcd_submit_urb+0x63f/0x6fa
  [&lt;ffffffff8137d01c&gt;] usb_submit_urb+0x2c7/0x2de
  [&lt;ffffffff8137dcd4&gt;] usb_sg_wait+0x55/0x161

Signed-off-by: Clemens Ladisch &lt;clemens@ladisch.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>USB: pxa168: Fix compilation error</title>
<updated>2012-01-12T19:29:40Z</updated>
<author>
<name>Tanmay Upadhyay</name>
<email>tanmay.upadhyay@einfochips.com</email>
</author>
<published>2011-12-08T04:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=966c248e661ce7d265caeb73c7d0aa68fbf8801a'/>
<id>urn:sha1:966c248e661ce7d265caeb73c7d0aa68fbf8801a</id>
<content type='text'>
commit 35657c4d72925936c7219cc5caac118ca632acc2 upstream.

After commit c430131a02d677aa708f56342c1565edfdacb3c0 (Support
controllers with big endian capability regs), HC_LENGTH takes
two arguments. This patch fixes following compilation error:

In file included from drivers/usb/host/ehci-hcd.c:1323:
drivers/usb/host/ehci-pxa168.c:302:54: error: macro "HC_LENGTH" requires 2 arguments, but only 1 given
In file included from drivers/usb/host/ehci-hcd.c:1323:
drivers/usb/host/ehci-pxa168.c: In function 'ehci_pxa168_drv_probe':
drivers/usb/host/ehci-pxa168.c:302: error: 'HC_LENGTH' undeclared (first use in this function)
drivers/usb/host/ehci-pxa168.c:302: error: (Each undeclared identifier is reported only once
drivers/usb/host/ehci-pxa168.c:302: error: for each function it appears in.)

Signed-off-by: Tanmay Upadhyay &lt;tanmay.upadhyay@einfochips.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>USB: Fix usb/isp1760 build on sparc</title>
<updated>2011-12-21T22:41:04Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-12-21T22:31:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=abf058e10c2614c36ba217405768e8e74853fc80'/>
<id>urn:sha1:abf058e10c2614c36ba217405768e8e74853fc80</id>
<content type='text'>
This commit:

commit 8f5d621543cb064d2989fc223d3c2bc61a43981e
Author: Joachim Foerster &lt;joachim.foerster@missinglinkelectronics.com&gt;
Date:   Mon Oct 10 18:06:54 2011 +0200

    usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .

    To be able to use the driver on other OF-aware architectures, too.
    And add necessary OF related #includes to fix compilation error.

    Signed-off-by: Joachim Foerster &lt;joachim.foerster@missinglinkelectronics.com&gt;
    Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

enabled the build on all CONFIG_OF architectures, but it cannot do
this.

This driver depends upon CONFIG_OF_IRQ but not all CONFIG_OF platforms
support that infrastructure, in particular Sparc does not so the
build fails.

Please push a patch like the following to Linus so that this code only
gets built where it actually should.

--------------------
usb/isp1760: Add missing CONFIG_OF_IRQ dependency on OF code.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>Revert "xHCI: reset-on-resume quirk for NEC uPD720200"</title>
<updated>2011-12-01T18:41:40Z</updated>
<author>
<name>Sarah Sharp</name>
<email>sarah.a.sharp@linux.intel.com</email>
</author>
<published>2011-12-01T18:30:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0de13500ad1d8a66b7dc1e7fa517ea15a2625c9e'/>
<id>urn:sha1:0de13500ad1d8a66b7dc1e7fa517ea15a2625c9e</id>
<content type='text'>
This reverts commit df711fc9962b9491af2b92bd0d21ecbfefe4e5fa.

The commit added a reset-on-resume quirk because the NEC chipset stopped
responding to commands about 30 minutes after a system resume from
suspend.  We thought it was a chipset issue, but it turns out that the
xHCI driver was zeroing out the link TRB after a successful context
restore during resume.  The host controller would fall off the command
ring sometime later, causing it to not respond to new commands.

The link TRB issue has been fixed with commit
158886cd2cf4599e04f9b7e10cb767f5f39b14f1 "xHCI: fix bug in
xhci_clear_command_ring()", so revert the reset-on-resume quirk, as it's
not necessary.

Commit df711fc9962b9491af2b92bd0d21ecbfefe4e5fa was marked for stable
trees back to 2.6.37, but according to my mail, it has not made it into
Linus' tree or the stable trees yet.

Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Tested-by: Julian Sikorski &lt;belegdol@gmail.com&gt;
Cc: Andiry Xu &lt;andiry.xu@amd.com&gt;
</content>
</entry>
<entry>
<title>xHCI: fix bug in xhci_clear_command_ring()</title>
<updated>2011-12-01T18:38:27Z</updated>
<author>
<name>Andiry Xu</name>
<email>andiry.xu@amd.com</email>
</author>
<published>2011-11-30T08:37:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=158886cd2cf4599e04f9b7e10cb767f5f39b14f1'/>
<id>urn:sha1:158886cd2cf4599e04f9b7e10cb767f5f39b14f1</id>
<content type='text'>
When system enters suspend, xHCI driver clears command ring by writing zero
to all the TRBs. However, this also writes zero to the Link TRB, and the ring
is mangled. This may cause driver accesses wrong memory address and the
result is unpredicted.

When clear the command ring, keep the last Link TRB intact, only clear its
cycle bit. This should fix the "command ring full" issue reported by Oliver
Neukum.

This should be backported to stable kernels as old as 2.6.37, since the
commit 89821320 "xhci: Fix command ring replay after resume" is merged.

Signed-off-by: Andiry Xu &lt;andiry.xu@amd.com&gt;
Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Reported-by: Oliver Neukum &lt;oneukum@suse.de&gt;
</content>
</entry>
<entry>
<title>EHCI : Fix a regression in the ISO scheduler</title>
<updated>2011-11-29T00:59:29Z</updated>
<author>
<name>Matthieu CASTET</name>
<email>castet.matthieu@free.fr</email>
</author>
<published>2011-11-28T10:30:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e3420901eba65b1c46bed86d360e3a8685d20734'/>
<id>urn:sha1:e3420901eba65b1c46bed86d360e3a8685d20734</id>
<content type='text'>
Fix a regression that was introduced by commit
811c926c538f7e8d3c08b630dd5844efd7e000f6 (USB: EHCI: fix HUB TT scheduling
issue with iso transfer).

We detect an error if next == start, but this means uframe 0 can't be allocated
anymore for iso transfer...

Reported-by: Sander Eikelenboom &lt;linux@eikelenboom.it&gt;
Signed-off-by: Matthieu CASTET &lt;castet.matthieu@free.fr&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>xHCI: reset-on-resume quirk for NEC uPD720200</title>
<updated>2011-11-28T18:22:26Z</updated>
<author>
<name>Andiry Xu</name>
<email>andiry.xu@amd.com</email>
</author>
<published>2011-11-17T05:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=df711fc9962b9491af2b92bd0d21ecbfefe4e5fa'/>
<id>urn:sha1:df711fc9962b9491af2b92bd0d21ecbfefe4e5fa</id>
<content type='text'>
Julian Sikorski reports NEC uPD720200 does not work stable after suspend
and resume. Re-initialize the host in xhci_resume().

This should be backported to stable kernels as old as 2.6.37.  The
kernel will need to include
commit c877b3b2ad5cb9d4fe523c5496185cc328ff3ae9
"xhci: Add reset on resume quirk for asrock p67 host"
for this patch to work.

Signed-off-by: Andiry Xu &lt;andiry.xu@amd.com&gt;
Reported-by: Julian Sikorski &lt;belegdol@gmail.com&gt;
Tested-by: Julian Sikorski &lt;belegdol@gmail.com&gt;
Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>USB: whci-hcd: fix endian conversion in qset_clear()</title>
<updated>2011-11-27T03:56:48Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2011-11-22T07:28:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8746c83d538cab273d335acb2be226d096f4a5af'/>
<id>urn:sha1:8746c83d538cab273d335acb2be226d096f4a5af</id>
<content type='text'>
qset-&gt;qh.link is an __le64 field and we should be using cpu_to_le64()
to fill it.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
</feed>
