10 Jan, 2012

1 commit

  • Currently the driver checks only the out_mix_path[] for the primary
    output route for judging whether to create the loopback-mixing control
    or not. But, there are cases where aamix-routing is available only on
    headphone or speaker paths but not on the primary output path. So, the
    driver ignores such cases inappropriately.

    This patch fixes the check of the loopback-mixing control by testing
    all mix-routing paths.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

20 Dec, 2011

1 commit


28 Nov, 2011

1 commit

  • VT1708 has no support for unsolicited events per jack-plug, the driver
    implements the workq for polling the jack-detection. The mixer element
    "Jack Detect" was supposed to control this behavior on/off, but this
    doesn't work properly as is now. The workq is always started and the
    HP automute is always enabled.

    This patch fixes the jack-detect control behavior by triggering / stopping
    the work appropriately at the state change. Also the work checks the
    internal state to continue scheduling or not.

    Cc: [v3.1]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Nov, 2011

3 commits

  • 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: Takashi Iwai

    Takashi Iwai
     
  • 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: Takashi Iwai

    Takashi Iwai
     
  • 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: Takashi Iwai

    Takashi Iwai
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

03 Nov, 2011

1 commit


01 Nov, 2011

1 commit


28 Sep, 2011

1 commit


05 Aug, 2011

1 commit


26 Jul, 2011

1 commit


21 Jul, 2011

2 commits


18 Jul, 2011

2 commits

  • This patch changes the behavior of independent-HP enum switch. Now
    instead of returning a busy error, the driver switches dynamically the
    stream of the HP (and shared) DACs according to the current mode.
    The logic is similar like the dual-mic ADC switch, but a bit more
    complicated because of the presence of shared DAC.

    Together with the change, a mutex is introduced to protect against the
    possible races for the indep-HP mode setting.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This patch adds the dynamic control of analog-loopback for VIA codecs.

    When the loopback is enabled, the inputs from line-ins and mics are
    mixed with the front DAC, and sent to the front outputs. The very same
    input is routed to the headhpones and speakers in loopback mode.
    However, since the loopback mix can't take other than the front DAC,
    there is no longer individual volume controls for headphones and
    speakers. Once when the loopback control is off, these volumes take
    effect.

    Since the individual volumes are more desired in general use caess, the
    loopback mode is set to off as default for now.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

12 Jul, 2011

1 commit

  • VT1718S and co have a secret connection from DAC to AA-mix, which
    doesn't appear in the connection list obtained from the h/w.
    Currently the driver fixes the connection index locally at init, but
    now we can expose it statically via snd_hda_override_connections()
    so that this conection can be checked better by the parser in future.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Jul, 2011

3 commits


08 Jul, 2011

5 commits


04 Jul, 2011

5 commits


01 Jul, 2011

1 commit

  • Unmute DAC on front speaker path when Independent HP is enabled.

    When to enable Independent HP, the front speaker won't output any sound
    for VT1708, VT1708B, VT1708S and VT1702.
    I find the via_independent_hp_put() routine will mute DAC 0 path in Mixer 0.
    For these codecs, when using Independent HP, there could have two
    independent streams, one is from DAC0-->Mixer0-->Front Pin, the other is
    from DAC3-->GainSW3-->Side Pin.
    So I added a check for DAC-->Mixer path in activate_output_path().

    If current path is DAC-->Mixer, no need to mute DAC index in Mixer.
    In fact, to change connection of Headphone pin or Mux connected with HP
    is enough.

    Signed-off-by: Lydia Wang
    Signed-off-by: Takashi Iwai

    Lydia Wang
     

30 Jun, 2011

1 commit

  • This patch adds the re-implementation of Independent-HP mode in the
    case where the DAC is shared between HP and side-channel streams.
    Now the driver tries to parse the output-path using the pre-parsed
    side-channel DAC for the independent HP output, too.

    When a playback PCM stream is opened with this shared mode, the
    Independent-HP mixer switch can't be changed for avoiding the conflict,
    thus it returns -EBUSY error.

    One remaining unintuitive issue is that the DAC volume is still
    controlled as "Side" volume although it's shared by both independent-HP
    and side streams.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

29 Jun, 2011

3 commits

  • Move codec init verb which is only applicatable for VT1708.

    I've found the root cause that jack plugged in can't be detected.
    The verb in vt1708_init_verbs is used to power down jack detect circuit.
    This verb is only applicable to VT1708. vt1708 didn't implement jack
    detect function in hardware, so we should shut down this function to
    avoid noise. But for other codecs, hardware implement jack detect
    function. If sending this verb during initialization, jack detect will
    be invalid. So I move this verb from via_parse_auto_config() to
    patch_vt1708().

    Signed-off-by: Lydia Wang
    Signed-off-by: Takashi Iwai

    Lydia Wang
     
  • Create snd_hda_get_conn_index() helper function for obtaining the
    connection index of the widget. Replaced the similar codes used in
    several codec-drivers with this common helper.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Fix a issue to enable unsolicited response to line-out pins.

    Signed-off-by: Lydia Wang
    Signed-off-by: Takashi Iwai

    Lydia Wang
     

22 Jun, 2011

1 commit

  • Some VIA codecs like VT1702 provide the input-route only to specific
    ADCs such as digital-mic inputs. These routes aren't covered by the
    normal primary ADC, and for now, user had to open the capture stream
    assigned to that special ADC manually for using such inputs.

    This patch implements a way to switch the current ADC dynamically per
    the input-source selection in such a case. When this workaround is
    activated, the driver provides only one capture stream and one input-
    source control but with the full possible inputs. The driver switches
    the ADC to be used (or being used) according to the input-source on the
    fly.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

21 Jun, 2011

4 commits