1. 19 12月, 2008 1 次提交
    • T
      ALSA: hda - Add probe_only option · d4d9cd03
      Takashi Iwai 提交于
      Added probe_only module option to hd-audio driver.
      This option specifies whether the driver creates and initializes the
      codec-parser after probing.  When this option is set, the driver skips
      the codec parsing and initialization but gives you proc and other
      accesses.  It's useful to see the initial codec state for debugging.
      
      The default of this value is off, so the default behavior is as same
      as before.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d4d9cd03
  2. 28 11月, 2008 3 次提交
  3. 27 11月, 2008 4 次提交
    • T
      ALSA: hda - Modularize HD-audio driver · 1289e9e8
      Takashi Iwai 提交于
      Split the monolithc HD-audio driver into several pieces:
       - snd-hda-intel   HD-audio PCI controller driver; loaded via udev
       - snd-hda-codec   HD-audio codec bus driver
       - snd-hda-codec-* Specific HD-audio codec drivers
      
      When built as modules, snd-hda-codec (that is invoked by snd-hda-intel)
      looks up the codec vendor ID and loads the corresponding codec module
      automatically via request_module().
      
      When built in a kernel, each codec drivers are statically hooked up
      before probing the PCI.
      
      This patch adds appropriate EXPORT_SYMBOL_GPL()'s and the module
      information for each driver, and driver-linking codes between
      codec-bus and codec drivers.
      
      TODO:
        - Avoid EXPORT_SYMBOL*() when built-in kernel
        - Restore __devinit appropriately depending on the condition
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1289e9e8
    • T
      ALSA: hda - Fix PCM reconfigure · 529bd6c4
      Takashi Iwai 提交于
      The reconfiguration of PCM affected all PCM streams on the bus, but
      this this should be done rather only for the target codec.
      
      This patch does the following:
      - introduce bitmap indicating the PCM device usages on a hda_bus
      - refactor the PCM build functions
      - fix __devinit prefix in some fucntions
      - add a proper ifdef around HDA-reconfig-specific functions
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      529bd6c4
    • T
      ALSA: hda - Move power_save option to hda_intel.c · fee2fba3
      Takashi Iwai 提交于
      Move power_save option into hda_intel.c, and make a field in hda_bus,
      instead of keeping module parameters in separate files.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fee2fba3
    • T
      ALSA: hda - make some functions static · 986862bd
      Takashi Iwai 提交于
      Minor clean ups: move snd_hda_codecs_inuse() into hda_intel.c and
      make static.  Also, make snd_hda_query_supported_pcm() static
      as it's used only in hda_codec.c.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      986862bd
  4. 21 11月, 2008 1 次提交
    • T
      ALSA: hda - Fix double free of jack instances · b94d3539
      Takashi Iwai 提交于
      The jack instances created in patch_sigmatel.c may be double-freed.
      The device management code checks the invalid element, and thus there
      is no real breakage, but it spews annoying warning messages.
      But, we can't simply remove the release calls of these jack instances
      because they have to be freed when the codec is re-configured.
      
      Now, a new flag, bus->shutdown is introduced to indicate that the bus
      is really being unloaded, i.e. the objects managed by the device
      manager will be automatically deleted.  We release these objects only
      when this flag isn't set.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b94d3539
  5. 10 11月, 2008 1 次提交
  6. 06 11月, 2008 1 次提交
  7. 27 10月, 2008 1 次提交
  8. 13 10月, 2008 8 次提交
  9. 09 9月, 2008 1 次提交
  10. 25 8月, 2008 1 次提交
  11. 13 8月, 2008 1 次提交
  12. 28 7月, 2008 1 次提交
  13. 21 7月, 2008 1 次提交
  14. 20 6月, 2008 1 次提交
  15. 24 4月, 2008 2 次提交
    • T
      [ALSA] hda-codec - keep the format verb at closing PCM streams · 888afa15
      Takashi Iwai 提交于
      Keep the format verb at closing PCM streams.
      Introduced snd_hda_codec_cleanup_stream() for the parcicular purpose.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      888afa15
    • T
      [ALSA] hda-intel - Fix PCM device number assignment · 7ba72ba1
      Takashi Iwai 提交于
      In the current scheme, PCM device numbers are assigned incrementally
      in the order of codecs.  This causes problems when the codec number
      is irregular, e.g. codec #0 for HDMI and codec #1 for analog.  Then
      the HDMI becomes the first PCM, which is picked up as the default
      output device.  Unfortuantely this doesn't work well with normal
      setups.
      
      This patch introduced the fixed device numbers for the PCM types,
      namely, analog, SPDIF, HDMI and modem.  The PCM devices are assigned
      according to the corresponding PCM type.  After this patch, HDMI will
      be always assigned to PCM #3, SPDIF to PCM #1, and the first analog
      to PCM #0, etc.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7ba72ba1
  16. 01 2月, 2008 7 次提交
  17. 16 10月, 2007 5 次提交
    • M
      [ALSA] hda-intel - Fix resume logic, when dynamic power managment is on · d804ad92
      Maxim Levitsky 提交于
      Comment in hda_intel.c states that 'the explicit resume is needed only
      when POWER_SAVE isn't set', but this is not true.
      There is no code that will automaticly power up the codec on resume,
      but only code that powers it up when user accesses it. So if user
      leaves a sound playing, codec will not be powered
      To fix that I check if there are any codecs that should be powered
      codec->power_count, and if so I power them up together with main
      controller.
      Signed-off-by: NMaxim Levitsky <maximlevitsky@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@suse.cz>
      d804ad92
    • T
      [ALSA] hda-intel - Avoid unnecessary work scheduling · a221e287
      Takashi Iwai 提交于
      Avoid unnecessary work scheduling for power-off.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@suse.cz>
      a221e287
    • T
      [ALSA] hda-intel - Add POWER_SAVE option · cb53c626
      Takashi Iwai 提交于
      Added CONFIG_SND_HDA_POWER_SAVE kconfig.  It's an experimental option
      to achieve an aggressive power-saving.  With this option, the driver
      will turn on/off the power of each codec and controller chip dynamically
      on demand.
      The patch introduces a new module option 'power_save'.  It specifies
      the second of time-out for automatic power-down.  As default, it's
      10 seconds.  Setting 0 means to suppress the power-saving feature.
      The codec may have analog-input loopbacks, which are usually represented
      by mixer elements such as 'Mic Playback Switch' or 'CD Playback Switch'.
      When these are on, we cannot turn off the mixer and the codec chip has
      to be kept on.  For bookkeeping these states, a new codec-callback is
      introduced.
      For the bus-controller side, a new callback pm_notify is introduced,
      which can be used to turn on/off the contoller appropriately.
      Note that this power-saving might cause slight click-noise at
      power-on/off.  Also, it might take some time to wake up the codec, and
      might even drop some tones at the very beginning.  This seems to be the
      side-effect of turning off the controller chip.
      This turn-off of the controller can be disabled by undefining
      HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@suse.cz>
      cb53c626
    • T
      [ALSA] hda-codec - optimize resume using caches · 82beb8fd
      Takashi Iwai 提交于
      So far, the driver looked the table of snd_kcontrol_new used for creating
      mixer elements and forces to call each of its put callbacks in PM resume
      code.  This is too ugly and hackish.
      Now, the resume is simplified using the codec amp and command register
      caches.  The driver simply restores the values that have been written
      in the cache table.  With this simplification, most codec support codes
      don't require any special resume callback.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@suse.cz>
      82beb8fd
    • T
      [ALSA] hda-codec - introduce command register cache · b3ac5636
      Takashi Iwai 提交于
      This patch adds the cache for codec command registers.
      snd_hda_codec_write_cache() and snd_hda_sequence_write_cache() do
      the write operations with caching, which values can be resumed via
      snd_hda_codec_resume_cache().
      The patch introduces only the framework, and no codec code is using
      this cache yet.  It'll be implemented in the following patch.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@suse.cz>
      b3ac5636