1. 19 Nov, 2015 2 commits
  2. 16 Nov, 2015 3 commits
    • Clemens Ladisch's avatar
      ALSA: usb-audio: work around CH345 input SysEx corruption · a91e627e
      Clemens Ladisch authored
      One of the many faults of the QinHeng CH345 USB MIDI interface chip is
      that it does not handle received SysEx messages correctly -- every second
      event packet has a wrong code index number, which is the one from the last
      seen message, instead of 4.  For example, the two messages "FE F0 01 02 03
      04 05 06 07 08 09 0A 0B 0C 0D 0E F7" result in the following event
      packets:
      
      correct:       CH345:
      0F FE 00 00    0F FE 00 00
      04 F0 01 02    04 F0 01 02
      04 03 04 05    0F 03 04 05
      04 06 07 08    04 06 07 08
      04 09 0A 0B    0F 09 0A 0B
      04 0C 0D 0E    04 0C 0D 0E
      05 F7 00 00    05 F7 00 00
      
      A class-compliant driver must interpret an event packet with CIN 15 as
      having a single data byte, so the other two bytes would be ignored.  The
      message received by the host would then be missing two bytes out of six;
      in this example, "F0 01 02 03 06 07 08 09 0C 0D 0E F7".
      
      These corrupted SysEx event packages contain only data bytes, while the
      CH345 uses event packets with a correct CIN value only for messages with
      a status byte, so it is possible to distinguish between these two cases by
      checking for the presence of this status byte.
      
      (Other bugs in the CH345's input handling, such as the corruption resulting
      from running status, cannot be worked around.)
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a91e627e
    • Clemens Ladisch's avatar
      ALSA: usb-audio: prevent CH345 multiport output SysEx corruption · 1ca8b201
      Clemens Ladisch authored
      The CH345 USB MIDI chip has two output ports.  However, they are
      multiplexed through one pin, and the number of ports cannot be reduced
      even for hardware that implements only one connector, so for those
      devices, data sent to either port ends up on the same hardware output.
      This becomes a problem when both ports are used at the same time, as
      longer MIDI commands (such as SysEx messages) are likely to be
      interrupted by messages from the other port, and thus to get lost.
      
      It would not be possible for the driver to detect how many ports the
      device actually has, except that in practice, _all_ devices built with
      the CH345 have only one port.  So we can just ignore the device's
      descriptors, and hardcode one output port.
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1ca8b201
    • Clemens Ladisch's avatar
      ALSA: usb-audio: add packet size quirk for the Medeli DD305 · 98d362be
      Clemens Ladisch authored
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      98d362be
  3. 14 Nov, 2015 2 commits
  4. 12 Nov, 2015 2 commits
    • Dan Williams's avatar
      ALSA: pci: depend on ZONE_DMA · 2db1a579
      Dan Williams authored
      There are several sound drivers that 'select ZONE_DMA'.  This is
      backwards as ZONE_DMA is an architecture capability exported to drivers.
      Switch the polarity of the dependency to disable these drivers when the
      architecture does not support ZONE_DMA.  This was discovered in the
      context of testing/enabling devm_memremap_pages() which depends on
      ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.
      Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2db1a579
    • Takashi Iwai's avatar
      ALSA: hda - Simplify phantom jack handling for HDMI/DP · 909cadc6
      Takashi Iwai authored
      The HDMI codec parser may create a phantom jack, but the helper
      function snd_hda_jack_add_kctl() treats always as a normal jack.  This
      is superfluous as the jack query is executed at each time the jack
      sync is performed.
      
      Since the HDMI codec parser is the only caller of this function, it's
      easier to change back this directly calling the original
      __snd_hda_jack_add_kctl() with phantom_jack parameter.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      909cadc6
  5. 11 Nov, 2015 2 commits
  6. 09 Nov, 2015 1 commit
  7. 08 Nov, 2015 1 commit
  8. 07 Nov, 2015 1 commit
  9. 05 Nov, 2015 1 commit
  10. 04 Nov, 2015 1 commit
  11. 02 Nov, 2015 3 commits
  12. 01 Nov, 2015 1 commit
  13. 30 Oct, 2015 5 commits
  14. 28 Oct, 2015 3 commits
  15. 27 Oct, 2015 2 commits
  16. 26 Oct, 2015 10 commits