14 May, 2014

8 commits


13 May, 2014

8 commits

  • Broadwell display controller has 3 stream DMA engines. DMA0 cannot update DMA
    postion buffer properly while DMA1 and DMA2 can work well. So this patch masks
    the buggy DMA0 by keeping it as opened.

    This is a tentative workaround, so keep the change small as Takashi suggested.

    Signed-off-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • Vendor ID 0x10de0071 is used by a yet-to-be-named GPU chip.

    Signed-off-by: Aaron Plattner
    Signed-off-by: Takashi Iwai

    Aaron Plattner
     
  • According to Reference Manual -- ESAI Initialization chapter, as the
    standard procedure of ESAI personal reset, the PCRC and PRRC registers
    should be remained in its reset value and then configured after T/RCCR
    and T/RCR configurations's done but before TE/RE's enabling.

    So this patch moves PCRC and PRRC settings to the end of hw_params().

    Signed-off-by: Nicolin Chen
    Signed-off-by: Mark Brown

    Nicolin Chen
     
  • ESAI can only output EXTAL clock source directly. But for FSYS clock source,
    ESAI can not output it without getting through PSR PM dividers.

    So this patch adds an extra check in the code.

    Signed-off-by: Nicolin Chen
    Signed-off-by: Mark Brown

    Nicolin Chen
     
  • The range here from 1 to 16 is confined to FP divider only while the
    sck_div indicates if the calculation contains PSR and PM dividers. So
    for the case using PSR and PM since the sck_div is true, the range of
    ratio would simply become bigger than 16.

    So this patch fixes the condition here and adds one line comments to
    make the purpose here clear.

    Signed-off-by: Nicolin Chen
    Signed-off-by: Mark Brown

    Nicolin Chen
     
  • Currently when the DAPM context bias level is SUSPEND and the target bias level
    is OFF dapm_pre_sequence_async() will first transition to PREPARE and
    dapm_post_sequence_async() will then transition back from PREPARE to STANDBY and
    then to OFF.

    This patch makes sure that dapm_pre_sequence_async() only transitions to PREPARE
    when either going to ON or away from ON. This avoids the extra unnecessary
    transitions.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     
  • For CODEC to CODEC DAI links the paths are created in snd_soc_dapm_new_pcm().
    Also for CODEC to CODEC links the widgets are connected cross-over via a DAI
    link widget, meaning that the capture widget of one CODEC will be connected to
    the playback widget of the other and vice versa. Whereas
    snd_soc_dapm_connect_dai_link_widgets() directly connects the playback widget of
    the CPU DAI to the playback widget of the CODEC DAI and the capture widget of
    the CPU DAI to the capture widget of the CODEC DAI. So not skipping
    CODECCODEC links in snd_soc_dapm_connect_dai_link_widgets() will create
    incorrect connections between the two CODECs which will cause DAPM to detect
    active paths where there are none and unnecessarily power up widgets.

    Fixes: b893ea5 ("ASoC: sapm: Automatically connect DAI link widgets in DAPM graph.")
    Cc: (for 3.14+)
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     
  • The regular state before we execute SNDRV_PCM_TRIGGER_SUSPEND should be
    SNDRV_PCM_TRIGGER_START, not SNDRV_PCM_TRIGGER_STOP. Thus fix it.

    Signed-off-by: Nicolin Chen
    Signed-off-by: Mark Brown

    Nicolin Chen
     

09 May, 2014

1 commit

  • When we plug a 3-ring headset on the Dell machines (VID: 0x10ec0255,
    SID: 0x1028065c; VID: 0x10ec0255, SID: 0x10280680; VID: 0x10ec0292,
    SID: 0x10280684), the headset mic can't be detected, after apply this
    patch, the headset mic can work well.

    And on the machine with SID 0x10280684, and the Lineout and external
    microphone should be routed to docking, this patch also fix this
    problem.

    BugLink: https://bugs.launchpad.net/bugs/1297581
    Cc: David Henningsson
    Cc: stable@vger.kernel.org
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     

07 May, 2014

1 commit


06 May, 2014

1 commit

  • This patch fixes the following dereference check ordering.

    sound/soc/intel/sst-haswell-pcm.c:749 hsw_pcm_probe() warn: variable dereferenced before check 'pdata' (see line 746)

    git remote add asoc git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
    git remote update asoc
    git checkout 0b708c87f66a15190fb43661c2320fd48c4dc6c8
    vim +/pdata +749 sound/soc/intel/sst-haswell-pcm.c

    a4b12990 Mark Brown 2014-03-12 740 };
    a4b12990 Mark Brown 2014-03-12 741
    a4b12990 Mark Brown 2014-03-12 742 static int hsw_pcm_probe(struct snd_soc_platform *platform)
    a4b12990 Mark Brown 2014-03-12 743 {
    a4b12990 Mark Brown 2014-03-12 744 struct sst_pdata *pdata = dev_get_platdata(platform->dev);
    a4b12990 Mark Brown 2014-03-12 745 struct hsw_priv_data *priv_data;
    0b708c87 Liam Girdwood 2014-05-02 @746 struct device *dma_dev = pdata->dma_dev;
    0b708c87 Liam Girdwood 2014-05-02 747 int i, ret = 0;
    a4b12990 Mark Brown 2014-03-12 748
    a4b12990 Mark Brown 2014-03-12 @749 if (!pdata)
    a4b12990 Mark Brown 2014-03-12 750 return -ENODEV;
    a4b12990 Mark Brown 2014-03-12 751
    a4b12990 Mark Brown 2014-03-12 752 priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);

    Reported-by: Dan Carpenter
    Signed-off-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Liam Girdwood
     

05 May, 2014

1 commit

  • Since commit 1df5a06a ("ALSA: hda - hdmi: Fix programmed active channel
    count") channel count is no longer being set if monitor_present is 0.
    This is because setting the count was moved after the CA value is
    determined, which is only after the monitor_present check in
    hdmi_setup_audio_infoframe().

    Unfortunately, in some cases, such as with a non-spec-compliant codec or
    with a problematic video driver, monitor_present is always 0. As a
    specific example, this seems to happen with gen1 ATV (SiI1390 codec),
    causing left-channel-only stereo playback (multi-channel playback has
    apparently never worked with this codec despite it reporting 8 channels,
    reason unknown).

    Simply setting converter channel count without setting the pin infoframe
    and channel mapping as well does not theoretically make much sense as
    this will just mean they are out-of-sync and multichannel playback will
    have a wrong channel mapping.

    However, adding back just setting the converter channel count even in
    no-monitor case is the safest change which at least fixes the stereo
    playback regression on SiI1390 codec. Do that.

    Signed-off-by: Anssi Hannula
    Reported-by: Stephan Raue
    Tested-by: Stephan Raue
    Cc: # 3.12+
    Signed-off-by: Takashi Iwai

    Anssi Hannula
     

03 May, 2014

10 commits


30 Apr, 2014

2 commits

  • When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0255,
    SID: 0x1028067e), the headset mic can't be detected, after apply this
    patch, the headset mic can work well.

    BugLink: https://bugs.launchpad.net/bugs/1297581
    Cc: David Henningsson
    Cc: stable@vger.kernel.org
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • The recent commit (ca460f86521) changed the CORB RP reset procedure to
    follow the specification with a couple of sanity checks.
    Unfortunately, Nvidia controller chips seem not following this way,
    and spew the warning messages like:
    snd_hda_intel 0000:00:10.1: CORB reset timeout#1, CORBRP = 0

    This patch adds the workaround for such chips. It just skips the new
    reset procedure for the known broken chips.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

28 Apr, 2014

1 commit

  • When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0255,
    SID: 0x10280674), the headset mic can't be detected, after apply this
    patch, the headset mic can work well.

    BugLink: https://bugs.launchpad.net/bugs/1297581
    Cc: David Henningsson
    Cc: stable@vger.kernel.org
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     

25 Apr, 2014

1 commit


24 Apr, 2014

2 commits

  • I suppose there is a possibility that hsw_notification_work() may run after
    sst_hsw_stream_free() which can lead to a kernel crash since struct
    sst_hsw_stream is freed at that point and
    stream = container_of(work, struct sst_hsw_stream, notify_work) is not valid
    when hsw_notification_work() is run.

    Reported-by: Derek Basehore
    Reported-by: Wenkai Du
    Signed-off-by: Jarkko Nikula
    Signed-off-by: Mark Brown

    Jarkko Nikula
     
  • audmux_debugfs_init() is marked as __init, but is called from imx_audmux_probe()
    which is not marked as __init. This creates a section mismatch and a potential
    runtime crash (if imx_audmux_probe() is called after the .init section was
    dropped). This patch removes the __init annotation from audmux_debugfs_init(),
    which fixes the following warning:
    WARNING: sound/soc/built-in.o(.text+0x86960): Section mismatch in reference
    from the function imx_audmux_probe() to the function
    .init.text:audmux_debugfs_init()

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     

23 Apr, 2014

4 commits