29 Oct, 2014

1 commit

  • CMI8888 shows the stuttering playback when the snooping is disabled
    on the audio buffer. Meanwhile, we've got reports that CORB/RIRB
    doesn't work in the snooped mode. So, as a compromise, disable the
    snoop only for CORB/RIRB and enable the snoop for the stream buffers.

    The resultant patch became a bit ugly, unfortunately, but we still can
    live with it.

    Reported-and-tested-by: Geoffrey McRae
    Cc: # 3.17+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

27 Oct, 2014

2 commits


24 Oct, 2014

3 commits


20 Oct, 2014

3 commits

  • We implemented in a wrong way for mute LED on Lenovo Ideapad; the bit
    must be flipped.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16373
    Fixes: 3e887f379d8a ('ALSA: hda - Add mute LED support to Lenovo Ideapad')
    Cc: # 3.15+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The ELD ALSA control change event is sent by hdmi_present_sense() when
    eld_changed is true.

    Currently, it is only true when the ELD buffer contents have been
    modified. However, the user-visible ELD controls also change to a
    zero-length value and back when eld_valid is unset/set, and no event is
    currently sent in such cases (such as when unplugging or replugging a
    sink).

    Fix the code to always set eld_changed if eld_valid value is changed,
    and therefore to always send the change event when the user-visible
    value changes.

    Signed-off-by: Anssi Hannula
    Cc: David Henningsson
    Cc: # 3.9+
    Signed-off-by: Takashi Iwai

    Anssi Hannula
     
  • This patch sets the headphones mode to default before suspending
    which helps avoid the pop noise on headphones

    Signed-off-by: Harsha Priya
    Cc:
    Signed-off-by: Takashi Iwai

    Harsha Priya
     

15 Oct, 2014

1 commit


14 Oct, 2014

1 commit

  • The emu10k1 voice allocator takes voice_lock spinlock. When there is
    no empty stream available, it tries to release a voice used by synth,
    and calls get_synth_voice. The callback function,
    snd_emu10k1_synth_get_voice(), however, also takes the voice_lock,
    thus it deadlocks.

    The fix is simply removing the voice_lock holds in
    snd_emu10k1_synth_get_voice(), as this is always called in the
    spinlock context.

    Reported-and-tested-by: Arthur Marsh
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

08 Oct, 2014

1 commit


07 Oct, 2014

4 commits


06 Oct, 2014

1 commit

  • ASoC: Updates for v3.18

    - More componentisation work from Lars-Peter, this time mainly
    cleaning up the suspend and bias level transition callbacks.
    - Real system support for the Intel drivers and a bunch of fixes and
    enhancements for the associated CODEC drivers, this is going to need
    a lot quirks over time due to the lack of any firmware description of
    the boards.
    - Jack detect support for simple card from Dylan Reid.
    - A bunch of small fixes and enhancements for the Freescale drivers.
    - New drivers for Analog Devices SSM4567, Cirrus Logic CS35L32, Everest
    Semiconductor ES8328 and Freescale cards using the ASRC in newer i.MX
    processors.

    Takashi Iwai
     

30 Sep, 2014

6 commits

  • pr_* macros replaced with dev_* as they are more preffered over pr_*.
    each file which had pr_* was reviewed manually and replaced with dev_*.
    here we have actually used the various snd_card which was added to some
    structures of ctxfi via a previous patch of this series.

    in the ctvmem.c file we have passed a reference of ct_atc as an
    argument to get_vm_block function so that it can be used from
    dev_*.

    since dev_* will print the device information , so the prefix of
    "ctxfi" from the various pr_* were also removed.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • added reference of the card in the convert_format function
    so that we can know which card has called the function.
    this reference of the snd_card will actually be used in a later patch
    to convert the pr_* macro to dev_*.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • initialized the reference of snd_card which was added to the various
    structures through the previous patch of the series.
    these references of snd_card will be used in a later patch to convert
    the pr_* macros to dev_*

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • added a pointer of snd_card in some of the structures to get a
    reference of the card from other functions.
    these references of snd_card will be initialised in the next patch
    of this series and as of now these snd_card will be used to print the
    the device information when we convert the pr_* macros to dev_* in a
    later patch of this series.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • the previous patch of the series has converted the void * to
    struct hw * . Now this patch removes the typecasting to (struct hw *)
    which is not needed any more.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • in the code we have void *hw and while using we are always typecasting
    it to (struct hw *). it is better to use void type of pointer when we
    store different types of pointer , but in this code we are only having
    struct hw.
    So changed all the relevant reference of void *hw to struct hw *hw,
    without any modification of the existing code logic.
    the next patch of the series will remove the typecasting which is
    not required now.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     

23 Sep, 2014

4 commits

  • fixed sparse warning of incorrect type (different address spaces) in
    cthw20k1.c and cthw20k2.c which was being actually caused as mem_base
    was of the type unsigned long.

    Again as mem_base was previously unsigned long , so it required many
    typecasts in the code to convert interger to pointer.

    Now after giving the correct type of mem_base as void __iomem *
    we can also remove those typecasts maintaining the same functionality
    and logic of the code.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Takashi Iwai

    Sudip Mukherjee
     
  • If one input has a boost and another one has not, and they're equal
    otherwise, it's more likely you want to use the input with the boost
    as your primary input.

    See hda-emu.git/codecs/canonical/cx20590-lenovo-20b2z00bus-ccert-201305-13496
    for an example.

    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • The next patch will use it, so make it visible across modules.

    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • Since every caller of snd_hda_jack_detect_enable_callback needs to
    use the macros from err.h, it makes sense to include it directly
    from hda_jack.h.

    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

22 Sep, 2014

3 commits


19 Sep, 2014

1 commit


17 Sep, 2014

1 commit

  • The kernel used to contain two functions for length-delimited,
    case-insensitive string comparison, strnicmp with correct semantics
    and a slightly buggy strncasecmp. The latter is the POSIX name, so
    strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper
    for the new strncasecmp to avoid breaking existing users.

    To allow the compat wrapper strnicmp to be removed at some point in
    the future, and to avoid the extra indirection cost, do
    s/strnicmp/strncasecmp/g.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Takashi Iwai

    Rasmus Villemoes
     

16 Sep, 2014

4 commits

  • For its headphone, mic and DSP responses, we can use the standard
    hda_jack infrastructure in CA0132 driver, too. The only point to
    handle carefully is the delayed headphone jack handling. It tries to
    react after a certain delay. Here we use the existing block_report
    flag in hda_jack_tbl (that was implemented for HDMI).

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Like the previous fix for STAC/IDT codecs, the automute hooks in VIA
    driver can be also removed by enabling the power control callback for
    all pins.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Now we can register multiple callbacks to each jack, most of hooks
    used in STAC/IDT codecs can be removed by enabling the powermap update
    callback for all relevant pins. Along with this, the call of
    stac_init_power_map() can be moved back to stac_parse_auto_config()
    and the own build_controls callback can be removed, too.

    Signed-off-by: Takashi Iwai

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

    Takashi Iwai
     

15 Sep, 2014

4 commits

  • Like the other previous changes, this patch for lx6464es takes the
    same strategy for converting to nonatomic PCM ops: replacing spinlock
    with mutex, converting the irq tasklet to the threaded irq, and
    merging the trigger tasklets back to the trigger callback.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This time PCXHR, another Digigram boards: like the previous patches,
    the conversion is straightforward, replacing spinlocks with mutexes,
    merging the irq tasklet into the threaded irq handler and the PCM
    trigger tasklet back to the trigger callback.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Like the previous patch for VX boards, miXart device driver can be
    also rewritten to use nonatomic PCM ops. Simply spinlocks are
    replaced with mutex, the tasklet code is merged into the threaded irq
    handler. Also, now mgr->msg_mutex is superfluous, so merged to
    msg_lock.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Rewrite VXpocket and VX222 drivers to use the new PCM nonatomic ops.
    The former irq tasklet is replaced with a threaded irq handler, and
    the tasklet for the PCM delayed start is simply merged into the normal
    PCM trigger, as well as the replacement of spinlock with mutex.

    Signed-off-by: Takashi Iwai

    Takashi Iwai