1. 16 Nov, 2011 9 commits
    • Takashi Iwai's avatar
      ALSA: hda - Manage unsol tags in hda_jack.c · 3a93897e
      Takashi Iwai authored
      Manage the tags assigned for unsolicited events dynamically together
      with the jack-detection routines.  Basically this is almost same as what
      we've done in patch_sigmatel.c.  Assign the new tag number for each new
      unsol event, associate with the given NID and the action type, etc.
      
      With this change, now all pins looked over in snd_hda_jack_add_kctls()
      are actually enabled for detection now even if the pins aren't used for
      jack-retasking by the driver.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3a93897e
    • Takashi Iwai's avatar
      ALSA: hda - Create jack-detection kcontrols · 01a61e12
      Takashi Iwai authored
      Create kcontrols for pin jack-detections, which work similarly like
      jack-input layer.  Each control will notify when the jack is plugged or
      unplugged, and also user can read the value at any time via the normal
      control API.
      
      The control elements are created with iface=CARD, so that they won't
      appear in the mixer apps.
      
      So far, only the pins that enabled the jack-detection are registered.
      For covering all pins, the transition of the common unsol-tag handling
      would be needed.  Stay tuned.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      01a61e12
    • Takashi Iwai's avatar
      ALSA: hda - Cache the jack-detection value · 1835a0f9
      Takashi Iwai authored
      Introduce a table containing the pins and their jack-detection states
      for avoiding the unnecessary verbs to check the pin status at each time.
      
      When the unsol event is enabled via snd_hda_jack_detect_enable(), it
      automatically adds the given NID to the table.  Then the driver supposes
      that the codec driver will set the dirty flag appropariately when an
      unsolicited event is invoked for that pin.
      
      The behavior for reading other pins that aren't registered in the table
      doesn't change.  Only the pins assigned to the table are cached, so far.
      
      In near futre, this table can be extended to use the central place for
      the unsolicited events of all pins, etc, and eventually include the
      jack-detect kcontrols that replace the current input-jack stuff.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1835a0f9
    • Takashi Iwai's avatar
      ALSA: hda - Introduce snd_hda_get_pin_label() · 04f5ade6
      Takashi Iwai authored
      Create a new helper function snd_hda_get_pin_label() for getting a label
      string for both input and output pins.  hda_get_input_pin_label() is
      obsoleted by this function, and the callers are replaced appropriately
      now by this patch.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      04f5ade6
    • Takashi Iwai's avatar
      Merge branch 'fix/hda' into topic/hda · 8b940fc4
      Takashi Iwai authored
      8b940fc4
    • Takashi Iwai's avatar
      ALSA: hda - Update URLs in document · 25d7d59d
      Takashi Iwai authored
      Some stuff was moved from kernel.org to other places.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      25d7d59d
    • Wu Fengguang's avatar
      ALSA: hda - move eld->spk_alloc fixup to hdmi_update_eld() · 2d1b439b
      Wu Fengguang authored
      It looks more natural and saves two lines of code.
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2d1b439b
    • Wu Fengguang's avatar
      ALSA: hda - delayed ELD repoll · 744626da
      Wu Fengguang authored
      The Intel HDMI chips (ironlake at least) are found to have ~250ms delay
      between the ELD_Valid=1 hotplug event is send and the ELD buffer becomes
      actually readable. During the time the ELD buffer is mysteriously all 0.
      
      Fix it by scheduling a delayed work to re-read ELD buffer after 300ms.
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      744626da
    • Wu Fengguang's avatar
      ALSA: hda - fix ELD memory leak · b95d68b8
      Wu Fengguang authored
      memset(eld) clears eld->proc_entry which will leak the struct
      snd_info_entry when unloading module.
      
      Fix it by
      - memset only the fields before eld->eld_buffer
      - set eld->eld_valid to true _after_ all eld fields have been filled
      
      Cc: <stable@kernel.org>
      Cc: Pierre-louis Bossart <pierre-louis.bossart@intel.com>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b95d68b8
  2. 15 Nov, 2011 2 commits
  3. 14 Nov, 2011 5 commits
  4. 11 Nov, 2011 1 commit
    • Charles Chin's avatar
      ALSA: hda - pwr_nids cleanup for IDT codecs · afef2cfa
      Charles Chin authored
      Clean up and fix pwr_nids for 92HD71 / 73 / 83 family codecs; remove
      pwr_mapping which was incorrect.
      
      The original pwr_nids support of 92HD83xxx was incorrect and never
      actually worked before.  Now we should have things working correctly
      without having to hack by DID anymore.
      
      It is also not necessary to explicitly turn on all the pins near the
      beginning of patch_stac92hd83xxx() now, the pins will go though
      initialization properly.
      
      Tested on 92HD66 / 71 / 73 / 75 / 83 / 89 / 91 demo boards.
      Signed-off-by: default avatarCharles Chin <Charles.Chin@idt.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      afef2cfa
  5. 10 Nov, 2011 8 commits
  6. 09 Nov, 2011 15 commits