1. 05 3月, 2010 3 次提交
    • D
      ALSA: usb-audio: refactor code · e5779998
      Daniel Mack 提交于
      Clean up the usb audio driver by factoring out a lot of functions to
      separate files. Code for procfs, quirks, urbs, format parsers etc all
      got a new home now.
      
      Moved almost all special quirk handling to quirks.c and introduced new
      generic functions to handle them, so the exceptions do not pollute the
      whole driver.
      
      Renamed usbaudio.c to card.c because this is what it actually does now.
      Renamed usbmidi.c to midi.c for namespace clarity.
      Removed more things from usbaudio.h.
      
      The non-standard drivers were adopted accordingly.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e5779998
    • D
      ALSA: usb-audio: header file cleanups · 3e1aebef
      Daniel Mack 提交于
      Rename snd-usb-lib to snd-usbmidi-lib as MIDI functions are the only
      thing it actually contains. Introduce a new header file to only declare
      these functions.
      
      Introduced usbmixer.h for all functions exported by usbmixer.c.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3e1aebef
    • D
      ALSA: usb-audio: move ua101 driver · bc700ab1
      Daniel Mack 提交于
      As part of the USB audio code cleanup, move the non-standard ua101
      driver out of the way.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bc700ab1
  2. 04 3月, 2010 5 次提交
  3. 02 3月, 2010 6 次提交
  4. 23 2月, 2010 5 次提交
    • D
      ALSA: usbaudio: consolidate header files · de48c7bc
      Daniel Mack 提交于
      Use the definitions from linux/usb/audio.h all over the ALSA USB audio
      driver and add some missing definitions there as well.
      
      Use the endpoint attribute macros from linux/usb/ch9 and remove the own
      things from sound/usb/usbaudio.h.
      
      Now things are also nicely prefixed which makes understanding the code
      easier.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      de48c7bc
    • D
      ALSA: usbmixer: bail out early when parsing audio class v2 descriptors · 7b8a043f
      Daniel Mack 提交于
      This is just a quick hack that needs to be removed once the new units
      defined by the audio class v2.0 standard are supported.
      
      However, it allows using these devices for now, without mixer support.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7b8a043f
    • D
      ALSA: usbaudio: implement basic set of class v2.0 parser · 53ee98fe
      Daniel Mack 提交于
      This adds a number of parsers for audio class v2.0. In particular, the
      following internals are different and now handled by the code:
      
      * the number of streaming interfaces is now reported by an interface
        association descriptor. The old approach using a proprietary
        descriptor is deprecated.
      
      * The number of channels per interface is now stored in the AS_GENERAL
        descriptor (used to be part of the FORMAT_TYPE descriptor).
      
      * The list of supported sample rates is no longer stored in a variable
        length appendix of the format_type descriptor but is retrieved from
        the device using a class specific GET_RANGE command.
      
      * Supported sample formats are now reported as 32bit bitmap rather than
        a fixed value. For now, this is worked around by choosing just one of
        them.
      
      * A devices needs to have at least one CLOCK_SOURCE descriptor which
        denotes a clockID that is needed im the class request command.
      
      * Many descriptors (format_type, ...) have changed their layout. Handle
        this by casting the descriptors to the appropriate structs.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      53ee98fe
    • D
      ALSA: usbaudio: introduce new types for audio class v2 · 8fee4aff
      Daniel Mack 提交于
      This patch adds some definitions for audio class v2.
      
      Unfortunately, the UNIT types PROCESSING_UNIT and EXTENSION_UNIT have
      different numerical representations in both standards, so there is need
      for a _V1 add-on now. usbmixer.c is changed accordingly.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8fee4aff
    • D
      ALSA: usbaudio: parse USB descriptors with structs · 28e1b773
      Daniel Mack 提交于
      In preparation of support for v2.0 audio class, use the structs from
      linux/usb/audio.h and add some new ones to describe the fields that are
      actually parsed by the descriptor decoders.
      
      Also, factor out code from usb_create_streams(). This makes it easier to
      adopt the new iteration logic needed for v2.0.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      28e1b773
  5. 22 2月, 2010 1 次提交
  6. 18 2月, 2010 2 次提交
  7. 17 2月, 2010 1 次提交
    • G
      ALSA: Echoaudio, fix Guru Meditation #00000005.48454C50 · b721e68b
      Giuliano Pochini 提交于
      This patch fixes a division by zero error in the irq handler.
      
      There is a small window between the hw_params() callback and when
      runtime->frame_bits is set by ALSA middle layer. When another substream is
      already running, if an interrupt is delivered during that window the irq
      handler calls pcm_pointer() which does a division by zero. The patch below
      makes the irq handler skip substreams that are initialized but not started
      yet. Cc to Clemens Ladisch because he proposed an alternate fix.
      
      For more information, please read the original thread in the linux-kernel
      mailing list: http://lkml.org/lkml/2010/2/2/187Signed-off-by: NGiuliano Pochini <pochini@shiny.it>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b721e68b
  8. 16 2月, 2010 6 次提交
  9. 15 2月, 2010 4 次提交
    • G
      ALSA: Echoaudio - Add suspend support #2 · 47b5d028
      Giuliano Pochini 提交于
      This patch adds rearranges parts of the initialization code and adds
      suspend and resume callbacks.
      
      This patch adds suspend and resume callbacks.
      It also rearranges parts of the initialization code so it can be
      used in both the first initialization (when the module is loaded we
      also have to load default settings) and the resume callback (where
      we have to restore the previous settings).
      Signed-off-by: NGiuliano Pochini <pochini@shiny.it>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      47b5d028
    • G
      ALSA: Echoaudio - Add suspend support #1 · ad3499f4
      Giuliano Pochini 提交于
      Move the controls init code outside the init_hw() function because is must
      not be called during resume.
      
      This patch moves the code that initializes the card's controls with
      default valued from the init_hw() function into a separated
      set_mixer_defaults() function (one for each of the 16 supported
      cards). This change is necessary because during resume we must
      resurrect the hardware without losing the previous
      settings. set_mixer_defaults() must be called only once when the
      module is loaded.
      Signed-off-by: NGiuliano Pochini <pochini@shiny.it>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ad3499f4
    • G
      ALSA: Echoaudio - Add firmware cache #2 · 4f8ada44
      Giuliano Pochini 提交于
      This patch implements a simple cache for the firmware files when CONFIG_PM is defined.
      
      This patch changes get_firmware(), free_firmware() and adds
      free_firmware_cache(). The first two functions implement a very
      simple cache and the latter is used to actually release all the stored
      firmwares when the module is unloaded. 
      When CONFIG_PM is not enabled those functions act as before, that is
      free_firmware() releases the firmware immediately and
      free_firmware_cache() does nothing.
      Signed-off-by: NGiuliano Pochini <pochini@shiny.it>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4f8ada44
    • G
      ALSA: Echoaudio - Add firmware cache #1 · 19b50063
      Giuliano Pochini 提交于
      Changes the way the firmware is passed through functions.
      
      When CONFIG_PM is enabled the firmware cannot be released because the
      driver will need it again to resume the card. 
      With this patch the firmware is passed as an index of the struct
      firmware card_fw[] in place of a pointer. That same index is then used
      to locate the firmware in the firmware cache.
      Signed-off-by: NGiuliano Pochini <pochini@shiny.it>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      19b50063
  10. 13 2月, 2010 1 次提交
  11. 12 2月, 2010 1 次提交
  12. 10 2月, 2010 1 次提交
    • J
      ALSA: hda-intel: Avoid divide by zero crash · fed08d03
      Jody Bruchon 提交于
      On my AMD780V chipset, hda_intel.c can crash the kernel with a divide by
      zero
      for as-yet unknown reasons. A simple check for zero prevents it, though
      the problem that causes it remains. Since the workaround is harmless and
      won't affect anyone except victims of this bug, it should be safe;
      moreover,
      because this crash can be triggered by a user-mode application, there are
      denial of service implications on the systems affected by the bug without
      the patch.
      Signed-off-by: NJody Bruchon <jody@nctritech.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fed08d03
  13. 09 2月, 2010 1 次提交
  14. 05 2月, 2010 3 次提交