1. 12 Jun, 2018 2 commits
  2. 22 May, 2018 2 commits
  3. 24 Apr, 2018 1 commit
  4. 08 Mar, 2018 2 commits
  5. 22 Dec, 2017 1 commit
  6. 23 Aug, 2017 1 commit
  7. 25 Jul, 2017 1 commit
  8. 08 May, 2017 1 commit
  9. 19 Apr, 2017 1 commit
  10. 20 Mar, 2017 1 commit
  11. 06 Dec, 2016 1 commit
  12. 27 Sep, 2016 1 commit
  13. 10 Mar, 2016 1 commit
  14. 03 Dec, 2015 1 commit
  15. 01 Dec, 2015 2 commits
  16. 20 Oct, 2015 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - convert to hda_device_id · b9a94a9c
      Takashi Iwai authored
      Finally we have a proper infrastructure to generate the modaliases
      automatically, let's move to hda_device_id from the legacy
      hda_codec_preset that contains basically the same information.
      The patch function hook is stored in driver_data field, which is long,
      and we need an explicit cast.  Other than that, the conversion is
      mostly straightforward.  Each entry is even simplified using a macro,
      and the lengthy (and error-prone) manual modaliases got removed.
      As a result, we achieved a quite good diet:
       14 files changed, 407 insertions(+), 595 deletions(-)
      Reviewed-by: default avatarVinod Koul <vinod.koul@intel.com>
      Tested-by: default avatarSubhransu S Prusty <subhransu.s.prusty@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  17. 13 Oct, 2015 1 commit
  18. 21 Aug, 2015 1 commit
  19. 29 May, 2015 1 commit
  20. 18 May, 2015 1 commit
  21. 23 Mar, 2015 3 commits
    • Takashi Iwai's avatar
      ALSA: hda - Use regmap for command verb caches, too · a551d914
      Takashi Iwai authored
      Like the previous patches, this patch converts also to the regmap, at
      this time, the cached verb writes are the target.  But this conversion
      needs a bit more caution than before.
      - In the old code, we just record any verbs as is, and restore them at
        resume.  For the regmap scheme, this doesn't work, since a few verbs
        like AMP or DIGI_CONVERT are asymmetrical.  Such verbs are converted
        either to the dedicated function (snd_hda_regmap_xxx_amp()) or
        changed to the unified verb.
      - Some verbs have to be declared as vendor-specific ones before
        accessing via regmap.
      Also, the minor optimization with codec->cached_write flag is dropped
      in a few places, as this would confuse the operation.  Further
      optimizations will be brought in the later patches, if any.
      This conversion ends up with a drop of significant amount of codes,
      mostly the helper codes that are no longer used.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    • Takashi Iwai's avatar
      ALSA: hda - Move a part of hda_codec stuff into hdac_device · 7639a06c
      Takashi Iwai authored
      Now some codes and functionalities of hda_codec struct are moved to
      hdac_device struct.  A few basic attributes like the codec address,
      vendor ID number, FG numbers, etc are moved to hdac_device, and they
      are accessed like codec->core.addr.  The basic verb exec functions are
      moved, too.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    • Takashi Iwai's avatar
      ALSA: hda - Move some codes up to hdac_bus struct · d068ebc2
      Takashi Iwai authored
      A few basic codes for communicating over HD-audio bus are moved to
      struct hdac_bus now.  It has only command and get_response ops in
      addition to the unsolicited event handling.
      Note that the codec-side tracing support is disabled temporarily
      during this transition due to the code shuffling.  It will be
      re-enabled later once when all pieces are settled down.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  22. 11 Mar, 2015 1 commit
  23. 23 Feb, 2015 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Bind codecs via standard bus · d8a766a1
      Takashi Iwai authored
      Now we create the standard HD-audio bus (/sys/bus/hdaudio), and bind
      the codec driver with the codec device over there.  This is the first
      step of the whole transition so that the changes to each codec driver
      are kept as minimal as possible.
      Each codec driver needs to register hda_codec_driver struct containing
      the currently existing preset via the new helper macro
      module_hda_codec_driver().  The old hda_codec_preset_list is replaced
      with this infrastructure.  The generic parsers (for HDMI and other)
      are also included in the preset with the special IDs to bind
      In HD-audio core side, the device binding code is split to
      hda_bind.c.  It provides the snd_hda_bus_type implementation to match
      the codec driver with the given codec vendor ID.  It also manages the
      module auto-loading by itself like before: when the matching isn't
      found, it tries to probe the corresponding codec modules, and finally
      falls back to the generic drivers.  (The special ID mentioned above is
      set at this stage.)
      The only visible change to outside is that the hdaudio sysfs entry now
      appears in /sys/bus/devices, not as a sound class device.
      More works to move the suspend/resume and remove ops will be
      (hopefully) done in later patches.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  24. 15 Dec, 2014 1 commit
  25. 13 Nov, 2014 1 commit
  26. 07 Oct, 2014 1 commit
  27. 19 Sep, 2014 1 commit
  28. 16 Sep, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Allow multiple callbacks for jack · 1a4f69d5
      Takashi Iwai authored
      So far, hda_jack infrastructure allows only one callback per jack, and
      this makes things slightly complicated when a driver wants to assign
      multiple tasks to a jack, e.g. the standard auto-mute with a power
      up/down sequence.  This can be simplified if the hda_jack accepts
      multiple callbacks.
      This patch is such an extension: the callback-specific part (the
      function and private_data) is split to another struct from
      hda_jack_tbl, and multiple such objects can be assigned to a single
      hda_jack_tbl entry.
      The new struct hda_jack_callback is passed to each callback function
      now, thus the patch became bigger than expected.  But these changes
      are mostly trivial.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  29. 03 Sep, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Add TLV_DB_SCALE_MUTE bit for relevant controls · d89c6c0c
      Takashi Iwai authored
      The DACs on Sigmatel/IDT codecs do mute at the lowest volume level,
      and in the earlier drivers, we passed TLV_DB_SCALE_MUTE bit for each
      volume control element like Speaker and Headphone as well as Master.
      Along with the translation to the generic parser, however, the TLV bit
      was lost for the slave controls (e.g. Speaker) but set only to
      Master.  In theory this should have sufficed, but apps, particularly
      PA, do care the slave volume bits, so we seem to see a regression in
      the volume controls.
      This patch adds a flag to hda_gen_spec to specify the DAC mute
      feature, and adds the TLV bit properly for all relevant volume
      controls.  Also, the TLV bit for vmaster is set in hda_generic.c, so
      that we can get rid of all tricks from the codec driver side.
      As the similar hack is applied to Conexant 5051 stuff, we can get rid
      of it as well.
      BugLink: https://bugs.launchpad.net/bugs/1357928
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  30. 01 Sep, 2014 1 commit
  31. 14 Aug, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Set TLV_DB_SCALE_MUTE bit for cx5051 vmaster · 61074c1a
      Takashi Iwai authored
      Conexnat HD-audio driver has a workaround for cx5051 (aka CX20561)
      chip to add fake mute controls to each amp (commit 3868137e
      ).  This
      implies the minimum-as-mute TLV bit in TLV for each corresponding
      control.  Meanwhile we build the virtual master from these, but the
      TLV bit is missing, even though the slaves have it.
      This patch simply adds the missing TLV_DB_SCALE_MUTE bit for vmaster,
      as already done in patch_sigmatel.c.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  32. 25 Jun, 2014 1 commit
  33. 28 Feb, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix registration of beep input device · d604b399
      Takashi Iwai authored
      The beep input device is registered via input_register_device(), but
      this is called in snd_hda_attach_beep_device() where the sound devices
      aren't registered yet.  This leads to the binding to non-existing
      object, thus results in failure.  And, even if the binding worked
      (against the PCI object), it's still racy; the input device appears
      before the sound objects.
      For fixing this, register the input device properly at dev_register
      ops of the codec object it's bound with.  Also, call
      snd_hda_detach_beep_device() at dev_disconnection so that it's
      detached at the right timing.  As a bonus, since it's called in the
      codec's ops, we can get rid of the further call from the other codec
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
  34. 25 Feb, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Replace with standard printk · 4e76a883
      Takashi Iwai authored
      Use dev_err() and co for messages from HD-audio controller and codec
      drivers.  The codec drivers are mostly bound with codec objects, so
      some helper macros, codec_err(), codec_info(), etc, are provided.
      They merely wrap the corresponding dev_xxx().
      There are a few places still calling snd_printk() and its variants
      as they are called without the codec or device context.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>