<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/usb/core, branch v3.6.9</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.6.9</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.6.9'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2012-10-31T17:10:01Z</updated>
<entry>
<title>usb hub: send clear_tt_buffer_complete events when canceling TT clear work</title>
<updated>2012-10-31T17:10:01Z</updated>
<author>
<name>Octavian Purdila</name>
<email>octavian.purdila@intel.com</email>
</author>
<published>2012-10-01T19:21:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=34a2ee3523326ee24676077b8c796719dfcf0efd'/>
<id>urn:sha1:34a2ee3523326ee24676077b8c796719dfcf0efd</id>
<content type='text'>
commit 3b6054da68f9b0d5ed6a7ed0f42a79e61904352c upstream.

There is a race condition in the USB hub code with regard to handling
TT clear requests that can get the HCD driver in a deadlock. Usually
when an TT clear request is scheduled it will be executed immediately:

&lt;7&gt;[    6.077583] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
&lt;3&gt;[    6.078041] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
&lt;7&gt;[    6.078299] hub_tt_work:731
&lt;7&gt;[    9.309089] usb 2-1.5: link qh1-0e01/f4d506c0 start 0 [1/2 us]
&lt;7&gt;[    9.324526] ehci_hcd 0000:00:1d.0: reused qh f4d4db00 schedule
&lt;7&gt;[    9.324539] usb 2-1.3: link qh1-0e01/f4d4db00 start 0 [1/2 us]
&lt;7&gt;[    9.341530] usb 1-1.1: link qh4-0e01/f397aec0 start 2 [1/2 us]
&lt;7&gt;[   10.116159] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
&lt;3&gt;[   10.116459] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
&lt;7&gt;[   10.116537] hub_tt_work:731

However, if a suspend operation is triggered before hub_tt_work is
scheduled, hub_quiesce will cancel the work without notifying the HCD
driver:

&lt;3&gt;[   35.033941] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d80
&lt;5&gt;[   35.034022] sd 0:0:0:0: [sda] Stopping disk
&lt;7&gt;[   35.034039] hub 2-1:1.0: hub_suspend
&lt;7&gt;[   35.034067] usb 2-1: unlink qh256-0001/f3b1ab00 start 1 [1/0 us]
&lt;7&gt;[   35.035085] hub 1-0:1.0: hub_suspend
&lt;7&gt;[   35.035102] usb usb1: bus suspend, wakeup 0
&lt;7&gt;[   35.035106] ehci_hcd 0000:00:1a.0: suspend root hub
&lt;7&gt;[   35.035298] hub 2-0:1.0: hub_suspend
&lt;7&gt;[   35.035313] usb usb2: bus suspend, wakeup 0
&lt;7&gt;[   35.035315] ehci_hcd 0000:00:1d.0: suspend root hub
&lt;6&gt;[   35.250017] PM: suspend of devices complete after 216.979 msecs
&lt;6&gt;[   35.250822] PM: late suspend of devices complete after 0.799 msecs
&lt;7&gt;[   35.252343] ehci_hcd 0000:00:1d.0: wakeup: 1
&lt;7&gt;[   35.262923] ehci_hcd 0000:00:1d.0: --&gt; PCI D3hot
&lt;7&gt;[   35.263302] ehci_hcd 0000:00:1a.0: wakeup: 1
&lt;7&gt;[   35.273912] ehci_hcd 0000:00:1a.0: --&gt; PCI D3hot
&lt;6&gt;[   35.274254] PM: noirq suspend of devices complete after 23.442 msecs
&lt;6&gt;[   35.274975] ACPI: Preparing to enter system sleep state S3
&lt;6&gt;[   35.292666] PM: Saving platform NVS memory
&lt;7&gt;[   35.295030] Disabling non-boot CPUs ...
&lt;6&gt;[   35.297351] CPU 1 is now offline
&lt;6&gt;[   35.300345] CPU 2 is now offline
&lt;6&gt;[   35.303929] CPU 3 is now offline
&lt;7&gt;[   35.303931] lockdep: fixing up alternatives.
&lt;6&gt;[   35.304825] Extended CMOS year: 2000

When the device will resume the EHCI driver will get stuck in
ehci_endpoint_disable waiting for the tt_clearing flag to reset:

&lt;0&gt;[   47.610967] usb 2-1.3: **** DPM device timeout ****
&lt;7&gt;[   47.610972]  f2f11c60 00000092 f2f11c0c c10624a5 00000003 f4c6e880 c1c8a4c0 c1c8a4c0
&lt;7&gt;[   47.610983]  15c55698 0000000b f56b34c0 f2a45b70 f4c6e880 00000082 f2a4602c f2f11c30
&lt;7&gt;[   47.610993]  c10787f8 f4cac000 f2a45b70 00000000 f4cac010 f2f11c58 00000046 00000001
&lt;7&gt;[   47.611004] Call Trace:
&lt;7&gt;[   47.611006]  [&lt;c10624a5&gt;] ? sched_clock_cpu+0xf5/0x160
&lt;7&gt;[   47.611019]  [&lt;c10787f8&gt;] ? lock_release_holdtime.part.22+0x88/0xf0
&lt;7&gt;[   47.611026]  [&lt;c103ed46&gt;] ? lock_timer_base.isra.35+0x26/0x50
&lt;7&gt;[   47.611034]  [&lt;c17592d3&gt;] ? schedule_timeout+0x133/0x290
&lt;7&gt;[   47.611044]  [&lt;c175b43e&gt;] schedule+0x1e/0x50
&lt;7&gt;[   47.611051]  [&lt;c17592d8&gt;] schedule_timeout+0x138/0x290
&lt;7&gt;[   47.611057]  [&lt;c10624a5&gt;] ? sched_clock_cpu+0xf5/0x160
&lt;7&gt;[   47.611063]  [&lt;c103e560&gt;] ? usleep_range+0x40/0x40
&lt;7&gt;[   47.611070]  [&lt;c1759445&gt;] schedule_timeout_uninterruptible+0x15/0x20
&lt;7&gt;[   47.611077]  [&lt;c14935f4&gt;] ehci_endpoint_disable+0x64/0x160
&lt;7&gt;[   47.611084]  [&lt;c147d1ee&gt;] ? usb_hcd_flush_endpoint+0x10e/0x1d0
&lt;7&gt;[   47.611092]  [&lt;c1165663&gt;] ? sysfs_add_file+0x13/0x20
&lt;7&gt;[   47.611100]  [&lt;c147d5a9&gt;] usb_hcd_disable_endpoint+0x29/0x40
&lt;7&gt;[   47.611107]  [&lt;c147fafc&gt;] usb_disable_endpoint+0x5c/0x80
&lt;7&gt;[   47.611111]  [&lt;c147fb57&gt;] usb_disable_interface+0x37/0x50
&lt;7&gt;[   47.611116]  [&lt;c1477650&gt;] usb_reset_and_verify_device+0x4b0/0x640
&lt;7&gt;[   47.611122]  [&lt;c1474665&gt;] ? hub_port_status+0xb5/0x100
&lt;7&gt;[   47.611129]  [&lt;c147a975&gt;] usb_port_resume+0xd5/0x220
&lt;7&gt;[   47.611136]  [&lt;c148877f&gt;] generic_resume+0xf/0x30
&lt;7&gt;[   47.611142]  [&lt;c14821a3&gt;] usb_resume+0x133/0x180
&lt;7&gt;[   47.611147]  [&lt;c1473b10&gt;] ? usb_dev_thaw+0x10/0x10
&lt;7&gt;[   47.611152]  [&lt;c1473b1d&gt;] usb_dev_resume+0xd/0x10
&lt;7&gt;[   47.611157]  [&lt;c13baa60&gt;] dpm_run_callback+0x40/0xb0
&lt;7&gt;[   47.611164]  [&lt;c13bdb03&gt;] ? pm_runtime_enable+0x43/0x70
&lt;7&gt;[   47.611171]  [&lt;c13bafc6&gt;] device_resume+0x1a6/0x2c0
&lt;7&gt;[   47.611177]  [&lt;c13ba940&gt;] ? dpm_show_time+0xe0/0xe0
&lt;7&gt;[   47.611183]  [&lt;c13bb0f9&gt;] async_resume+0x19/0x40
&lt;7&gt;[   47.611189]  [&lt;c10580c4&gt;] async_run_entry_fn+0x64/0x160
&lt;7&gt;[   47.611196]  [&lt;c104a244&gt;] ? process_one_work+0x104/0x480
&lt;7&gt;[   47.611203]  [&lt;c104a24c&gt;] ? process_one_work+0x10c/0x480
&lt;7&gt;[   47.611209]  [&lt;c104a2c0&gt;] process_one_work+0x180/0x480
&lt;7&gt;[   47.611215]  [&lt;c104a244&gt;] ? process_one_work+0x104/0x480
&lt;7&gt;[   47.611220]  [&lt;c1058060&gt;] ? async_schedule+0x10/0x10
&lt;7&gt;[   47.611226]  [&lt;c104c15c&gt;] worker_thread+0x11c/0x2f0
&lt;7&gt;[   47.611233]  [&lt;c104c040&gt;] ? manage_workers.isra.27+0x1f0/0x1f0
&lt;7&gt;[   47.611239]  [&lt;c10507f8&gt;] kthread+0x78/0x80
&lt;7&gt;[   47.611244]  [&lt;c1750000&gt;] ? timer_cpu_notify+0xd6/0x20d
&lt;7&gt;[   47.611253]  [&lt;c1050780&gt;] ? __init_kthread_worker+0x60/0x60
&lt;7&gt;[   47.611258]  [&lt;c176357e&gt;] kernel_thread_helper+0x6/0xd
&lt;7&gt;[   47.611283] ------------[ cut here ]------------

This patch changes hub_quiesce behavior to flush the TT clear work
instead of canceling it, to make sure that no TT clear request remains
uncompleted before suspend.

Signed-off-by: Octavian Purdila &lt;octavian.purdila@intel.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: Send Set SEL before enabling parent U1/U2 timeout.</title>
<updated>2012-10-28T17:56:14Z</updated>
<author>
<name>Sarah Sharp</name>
<email>sarah.a.sharp@linux.intel.com</email>
</author>
<published>2012-10-05T17:32:07Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4e0532a22664501721fdd89a00d61948c1e34a23'/>
<id>urn:sha1:4e0532a22664501721fdd89a00d61948c1e34a23</id>
<content type='text'>
commit 65a95b75bc5afa7bbb844e222481044c1c4767eb upstream.

The Set SEL control transfer tells a device the exit latencies
associated with a device-initated U1 or U2 exit.  Since a parent hub may
initiate a transition to U1 soon after a downstream port's U1 timeout is
set, we need to make sure the device receives the Set SEL transfer
before the parent hub timeout is set.

This patch should be backported to kernels as old as 3.5, that contain
the commit 1ea7e0e8e3d0f50901d335ea4178ab2aa8c88201 "USB: Add support to
enable/disable USB3 link states."

Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: Enable LPM after a failed probe.</title>
<updated>2012-10-28T17:56:14Z</updated>
<author>
<name>Sarah Sharp</name>
<email>sarah.a.sharp@linux.intel.com</email>
</author>
<published>2012-10-04T16:53:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=094c5b6410392321492c59603879f8ec7d87358a'/>
<id>urn:sha1:094c5b6410392321492c59603879f8ec7d87358a</id>
<content type='text'>
commit d01f87c0ffa96cb44faa78710711eb6e974b891c upstream.

Before a driver is probed, we want to disable USB 3.0 Link Power
Management (LPM), in case the driver needs hub-initiated LPM disabled.
After the probe finishes, we want to attempt to re-enable LPM, order to
balance the LPM ref count.

When a probe fails (such as when libusual doesn't want to bind to a USB
3.0 mass storage device), make sure to balance the LPM ref counts by
re-enabling LPM.

This patch should be backported to kernels as old as 3.5, that contain
the commit 8306095fd2c1100e8244c09bf560f97aca5a311d "USB: Disable USB
3.0 LPM in critical sections."

Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: Don't enable LPM if the exit latency is zero.</title>
<updated>2012-10-28T17:56:14Z</updated>
<author>
<name>Sarah Sharp</name>
<email>sarah.a.sharp@linux.intel.com</email>
</author>
<published>2012-10-03T18:18:05Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6a154bb60bfcbc91b515a94ee68e35c3b4b01b7c'/>
<id>urn:sha1:6a154bb60bfcbc91b515a94ee68e35c3b4b01b7c</id>
<content type='text'>
commit ae8963adb4ad8c5f2a89ca1d99fb7bb721e7599f upstream.

Some USB 3.0 devices signal that they don't implement Link PM by having
all zeroes in the U1/U2 exit latencies in their SuperSpeed BOS
descriptor.  Don found that a Western Digital device he has experiences
transfer errors when LPM is enabled.  The lsusb shows the U1/U2 exit
latencies are set to zero:

Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat           0 micro seconds
    bU2DevExitLat           0 micro seconds

The fix is to not enable LPM for a particular link state if we find its
corresponding exit latency is zero.

This patch should be backported to kernels as old as 3.5, that contain
the commit 1ea7e0e8e3d0f50901d335ea4178ab2aa8c88201 "USB: Add support to
enable/disable USB3 link states."

Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Reported-by: Don Zickus &lt;dzickus@redhat.com&gt;
Tested-by: Don Zickus &lt;dzickus@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usbdevfs: Fix broken scatter-gather transfer</title>
<updated>2012-10-28T17:56:09Z</updated>
<author>
<name>Henrik Rydberg</name>
<email>rydberg@euromail.se</email>
</author>
<published>2012-10-13T10:20:36Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e4e29779ec498f4905461a13b6ba58ba4f60152b'/>
<id>urn:sha1:e4e29779ec498f4905461a13b6ba58ba4f60152b</id>
<content type='text'>
commit 014639003c77a51fc319c9fdf225e7747cb6e18d upstream.

The handling of large output bulk transfers is broken; the same user
page is read over and over again. Fixed with this patch.

Acked-by: Peter Stuge &lt;peter@stuge.se&gt;
Acked-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: Fix race condition when removing host controllers</title>
<updated>2012-09-27T16:17:49Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2012-09-26T17:09:53Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0d00dc2611abbe6ad244d50569c2ee82ce42846c'/>
<id>urn:sha1:0d00dc2611abbe6ad244d50569c2ee82ce42846c</id>
<content type='text'>
This patch (as1607) fixes a race that can occur if a USB host
controller is removed while a process is reading the
/sys/kernel/debug/usb/devices file.

The usb_device_read() routine uses the bus-&gt;root_hub pointer to
determine whether or not the root hub is registered.  The is not a
valid test, because the pointer is set before the root hub gets
registered and remains set even after the root hub is unregistered and
deallocated.  As a result, usb_device_read() or usb_device_dump() can
access freed memory, causing an oops.

The patch changes the test to use the hcd-&gt;rh_registered flag, which
does get set and cleared at the appropriate times.  It also makes sure
to hold the usb_bus_list_lock mutex while setting the flag, so that
usb_device_read() will become aware of new root hubs as soon as they
are registered.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Reported-by: Don Zickus &lt;dzickus@redhat.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>USB: add device quirk for Joss Optical touchboard</title>
<updated>2012-09-05T23:56:58Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2012-09-04T14:41:02Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=92fc7a8b0f20bdb243c706daf42658e8e0cd2ef0'/>
<id>urn:sha1:92fc7a8b0f20bdb243c706daf42658e8e0cd2ef0</id>
<content type='text'>
This patch (as1604) adds a CONFIG_INTF_STRINGS quirk for the Joss
infrared touchboard device.  The device doesn't like to be asked for
its interface strings.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Reported-by: adam ? &lt;adam3337@wp.pl&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random</title>
<updated>2012-08-01T02:07:42Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-08-01T02:07:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3e9a97082fa639394e905e1fc4a0a7f719ca7644'/>
<id>urn:sha1:3e9a97082fa639394e905e1fc4a0a7f719ca7644</id>
<content type='text'>
Pull random subsystem patches from Ted Ts'o:
 "This patch series contains a major revamp of how we collect entropy
  from interrupts for /dev/random and /dev/urandom.

  The goal is to addresses weaknesses discussed in the paper "Mining
  your Ps and Qs: Detection of Widespread Weak Keys in Network Devices",
  by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J.  Alex Halderman,
  which will be published in the Proceedings of the 21st Usenix Security
  Symposium, August 2012.  (See https://factorable.net for more
  information and an extended version of the paper.)"

Fix up trivial conflicts due to nearby changes in
drivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}

* tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)
  random: mix in architectural randomness in extract_buf()
  dmi: Feed DMI table to /dev/random driver
  random: Add comment to random_initialize()
  random: final removal of IRQF_SAMPLE_RANDOM
  um: remove IRQF_SAMPLE_RANDOM which is now a no-op
  sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op
  [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op
  board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op
  isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op
  pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
  omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
  goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out
  uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op
  drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op
  xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op
  n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op
  pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op
  i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op
  input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op
  mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op
  ...
</content>
</entry>
<entry>
<title>usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams</title>
<updated>2012-07-19T22:46:32Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2012-07-19T10:39:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e387ef5c47ddeaeaa3cbdc54424cdb7a28dae2c0'/>
<id>urn:sha1:e387ef5c47ddeaeaa3cbdc54424cdb7a28dae2c0</id>
<content type='text'>
Most Logitech UVC webcams (both early models that don't advertise UVC
compatibility and newer UVC-advertised devices) require the RESET_RESUME
quirk. Instead of listing each and every model, match the devices based
on the UVC interface information.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.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: Add quirk detection based on interface information</title>
<updated>2012-07-19T22:44:58Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2012-07-19T10:39:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=80da2e0df5af700518611b7d1cc4fc9945bcaf95'/>
<id>urn:sha1:80da2e0df5af700518611b7d1cc4fc9945bcaf95</id>
<content type='text'>
When a whole class of devices (possibly from a specific vendor, or
across multiple vendors) require a quirk, explictly listing all devices
in the class make the quirks table unnecessarily large. Fix this by
allowing matching devices based on interface information.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.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>
