20 Jan, 2021

1 commit

  • commit 91bc156817a3c2007332b64b4f85c32aafbbbea6 upstream.

    * The HP ZBook Fury 15/17 G7 Mobile Workstation are using ALC285 codec
    which is using 0x04 to control mute LED and 0x01 to control micmute LED.

    * The right channel speaker is no sound and it needs to expose GPIO1 for
    initialing AMP.

    Add quirks to support them.

    Signed-off-by: Jeremy Szu
    Cc:
    Link: https://lore.kernel.org/r/20210106130549.100532-1-jeremy.szu@canonical.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Jeremy Szu
     

13 Jan, 2021

6 commits

  • commit ce2e79b223867b9e586021b55dee7035517a236b upstream.

    Add two "Intel Reference boad" SSID in the alc256.
    Enable "power saving mode" and Enable "headset jack mode".

    Signed-off-by: PeiSen Hou
    Cc:
    Link: https://lore.kernel.org/r/5978d2267f034c28973d117925ec9c63@realtek.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    PeiSen Hou
     
  • commit a598098cc9737f612dbab52294433fc26c51cc9b upstream.

    HP EliteBook 850 G7 uses the same GPIO pins as ALC285_FIXUP_HP_GPIO_LED
    to enable mute and micmute LED. So apply the quirk to enable the LEDs.

    Signed-off-by: Kai-Heng Feng
    Cc:
    Link: https://lore.kernel.org/r/20201230125636.45028-1-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kai-Heng Feng
     
  • commit 484229585a5e91eeb00ee10e05d5204e1ca6c481 upstream.

    HP Pavilion 13-bb0000 (SSID 103c:87c8) needs the same
    quirk as other models with ALC287.

    Signed-off-by: Manuel Jiménez
    Cc:
    Link: https://lore.kernel.org/r/X+s/gKNydVrI6nLj@HP-Pavilion-13
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Manuel Jiménez
     
  • commit f86de9b1c0663b0a3ca2dcddec9aa910ff0fbf2c upstream.

    Cannot adjust speaker's volume on Lenovo C940.
    Applying the alc298_fixup_speaker_volume function can fix the issue.

    [ Additional note: C940 has I2S amp for the speaker and this needs the
    same initialization as Dell machines.
    The patch was slightly modified so that the quirk entry is moved
    next to the corresponding Dell quirk entry. -- tiwai ]

    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/ea25b4e5c468491aa2e9d6cb1f2fced3@realtek.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit 744a11abc56405c5a106e63da30a941b6d27f737 upstream.

    The current kernel does not support the cx11970 codec chip.
    Add a codec configuration item to kernel.

    [ Minor coding style fix by tiwai ]

    Signed-off-by: bo liu
    Cc:
    Link: https://lore.kernel.org/r/20201229035226.62120-1-bo.liu@senarytech.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    bo liu
     
  • commit 4bfd6247fa9164c8e193a55ef9c0ea3ee22f82d8 upstream.

    Clevo W35xSS_370SS with VIA codec has had the runtime PM problem that
    looses the power state of some nodes after the runtime resume. This
    was worked around by disabling the default runtime PM via a denylist
    entry. Since 5.10.x made the runtime PM applied (casually) even
    though it's disabled in the denylist, this problem was revisited. The
    result was that disabling power_save_node feature suffices for the
    runtime PM problem.

    This patch implements the disablement of power_save_node feature in
    VIA codec for the device. It also drops the former denylist entry,
    too, as the runtime PM should work in the codec side properly now.

    Fixes: b529ef2464ad ("ALSA: hda: Add Clevo W35xSS_370SS to the power_save blacklist")
    Reported-by: Christian Labisch
    Cc:
    Link: https://lore.kernel.org/r/20210104153046.19993-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

09 Jan, 2021

2 commits

  • commit 3d5c5fdcee0f9a94deb0472e594706018b00aa31 upstream.

    The silent_stream_disable() function introduced by the commit
    b1a5039759cb ("ALSA: hda/hdmi: fix silent stream for first playback to
    DP") takes the per_pin->lock mutex, but it unlocks the wrong one,
    spec->pcm_lock, which causes a deadlock. This patch corrects it.

    Fixes: b1a5039759cb ("ALSA: hda/hdmi: fix silent stream for first playback to DP")
    Reported-by: Jan Alexander Steffens (heftig)
    Cc:
    Acked-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20210101083852.12094-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit c1e8952395c1f44a6304c71401519d19ed2ac56a upstream.

    Dell platform SSID:0x0a58 change platform name.
    Use the generic name instead for avoiding confusion.

    Fixes: 150927c3674d ("ALSA: hda/realtek - Supported Dell fixed type headset")
    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/efe7c196158241aa817229df7835d645@realtek.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     

30 Dec, 2020

13 commits

  • commit 150927c3674d7db4dd51a7269e01423c8c78e53b upstream.

    This platform only supported iphone type headset.
    It can't support Dell headset mode.

    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/b97e971978034bc9b772a08ec91265e8@realtek.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit 34cdf405aa5de827b8bef79a6c82c39120b3729b upstream.

    Acer TravelMate laptops P648/P658 series with codec ALC282 only have
    one physical jack for headset but there's a confusing lineout pin on
    NID 0x1b reported. Audio applications hence misunderstand that there
    are a speaker and a lineout, and take the lineout as the default audio
    output.

    Add a new quirk to remove the useless lineout and enable the pin 0x18
    for jack sensing and headset microphone.

    Signed-off-by: Chris Chiu
    Signed-off-by: Jian-Hong Pan
    Cc:
    Link: https://lore.kernel.org/r/20201216125200.27053-1-chiu@endlessos.org
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Chris Chiu
     
  • commit 6ca653e3f73a1af0f30dbf9c2c79d2897074989f upstream.

    The Quanta NL3 laptop has both a headphone output jack and a headset
    jack, on the right edge of the chassis.

    The pin information suggests that both of these are at the Front.
    The PulseAudio is confused to differentiate them so one of the jack
    can neither get the jack sense working nor the audio output.

    The ALC269_FIXUP_LIFEBOOK chained with ALC269_FIXUP_QUANTA_MUTE can
    help to differentiate 2 jacks and get the 'Auto-Mute Mode' working
    correctly.

    Signed-off-by: Chris Chiu
    Cc:
    Link: https://lore.kernel.org/r/20201222150459.9545-1-chiu@endlessos.org
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Chris Chiu
     
  • commit 09926202e939fd699650ac0fc0baa5757e069390 upstream.

    MSI-GP73 (with SSID 1462:1229) requires yet again
    ALC1220_FIXUP_CLEVO_P950 quirk like other MSI models.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=210793
    Cc:
    Link: https://lore.kernel.org/r/20201220080943.24839-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 13be30f156fda725b168ac89fc91f78651575307 upstream.

    This Acer Veriton N4640G/N6640G/N2510G desktops have 2 headphone
    jacks(front and rear), and a separate Mic In jack.

    The rear headphone jack is actually a line out jack but always silent
    while playing audio. The front 'Mic In' also fails the jack sensing.
    Apply the ALC269_FIXUP_LIFEBOOK to have all audio jacks to work as
    expected.

    Signed-off-by: Chris Chiu
    Signed-off-by: Jian-Hong Pan
    Cc:
    Link: https://lore.kernel.org/r/20201222150459.9545-2-chiu@endlessos.org
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Chris Chiu
     
  • commit 607184cb1635eaee239fe3fb9648a8b82a5232d7 upstream.

    Add supported for more Lenovo ALC285 Headset Button.

    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/bb1f1da1526d460885aa4257be81eb94@realtek.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit 7e413528474d5895e3e315c019fb0c43522eb6d9 upstream.

    The ASUS laptop Q524UQK with ALC255 codec can't detect the headset
    microphone until ALC255_FIXUP_ASUS_MIC_NO_PRESENCE quirk applied.

    Signed-off-by: Chris Chiu
    Signed-off-by: Jian-Hong Pan
    Cc:
    Link: https://lore.kernel.org/r/20201209045730.9972-1-chiu@endlessos.org
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Chris Chiu
     
  • commit 5cfca59604e423f720297e30a9dc493eea623493 upstream.

    The ASUS laptop X430UN with ALC256 can't detect the headset microphone
    until ALC256_FIXUP_ASUS_MIC_NO_PRESENCE quirk applied.

    Signed-off-by: Chris Chiu
    Signed-off-by: Jian-Hong Pan
    Cc:
    Link: https://lore.kernel.org/r/20201207072755.16210-1-chiu@endlessos.org
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Chris Chiu
     
  • commit c72b9bfe0f914639cc475585f45722a3eb57a56d upstream.

    This change could fix 2 issues on this machine:
    - the bass speaker's output volume can't be adjusted, that is because
    the bass speaker is routed to the DAC (Nid 0x6) which has no volume
    control.
    - after plugging a headset with vol+, vol- and pause buttons on it,
    press those buttons, nothing happens, this means those buttons
    don't work at all. This machine has alc287 codec, need to add the
    codec id to the disable/enable_headset_jack_key(), then the headset
    button could work.

    The quirk of ALC285_FIXUP_THINKPAD_HEADSET_JACK could fix both of these
    2 issues.

    Cc:
    Signed-off-by: Hui Wang
    Link: https://lore.kernel.org/r/20201205051130.8122-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Hui Wang
     
  • commit c697ba85a94b8f65bf90dec5ef9af5c39c3e73b2 upstream.

    The Windows driver sets the pincfg for the AE-5's rear-headphone to
    report as a microphone. This causes issues with Pulseaudio mistakenly
    believing there is no headphone plugged in. In Linux, we should instead
    set it to be a headphone.

    Fixes: a6b0961b39896 ("ALSA: hda/ca0132 - fix AE-5 pincfg")
    Cc:
    Signed-off-by: Connor McAdams
    Link: https://lore.kernel.org/r/20201208195223.424753-1-conmanx360@gmail.com
    Link: https://lore.kernel.org/r/20201210173550.2968-1-conmanx360@gmail.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Connor McAdams
     
  • commit 2506318e382c4c7daa77bdc48f80a0ee82804588 upstream.

    It seems that the HD-audio clear and reconfig sysfs don't work any
    longer after the recent driver core change. There are multiple issues
    around that: the linked list corruption and the dead device handling.
    The former issue is fixed by another patch for the driver core itself,
    while the latter patch needs to be addressed in HD-audio side.

    This patch corresponds to the latter, it recovers those broken
    functions by replacing the device detach and attach actions with the
    standard core API functions, which are almost equivalent with unbind
    and bind actions.

    Fixes: 654888327e9f ("driver core: Avoid binding drivers to dead devices")
    Cc:
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=209207
    Link: https://lore.kernel.org/r/20201209150119.7705-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 7079f785b50055a32b72eddcb7d9ba5688db24d0 upstream.

    Change the Input Source enumerated control's strings to make it play
    nice with pulseaudio.

    Fixes: 7cb9d94c05de9 ("ALSA: hda/ca0132: add alt_select_in/out for R3Di + SBZ")
    Cc:
    Signed-off-by: Connor McAdams
    Link: https://lore.kernel.org/r/20201208195223.424753-2-conmanx360@gmail.com
    Link: https://lore.kernel.org/r/20201210173550.2968-2-conmanx360@gmail.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Connor McAdams
     
  • [ Upstream commit b1a5039759cb7bfcb2157f28604dbda0bca58598 ]

    A problem exists in enabling silent stream when connection type is
    DisplayPort. Silent stream programming is completed when a new DP
    receiver is connected, but infoframe transmission does not actually
    start until PCM is opened for the first time. This can result in audible
    gap of multiple seconds. This only affects the first PCM open.

    Fix the issue by properly assigning a converter to the silent stream,
    and modifying the required stream ID programming sequence.

    This change only affects Intel display audio codecs.

    BugLink: https://github.com/thesofproject/linux/issues/2468
    Fixes: 951894cf30f4 ("ALSA: hda/hdmi: Add Intel silent stream support")
    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20201210174445.3134104-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Kai Vehmanen
     

28 Nov, 2020

3 commits

  • HP Spectre x360 Convertible 15" version (SSID 103c:827f) needs the
    same quirk to make the mute LED working like other models.
    System Information
    Manufacturer: HP
    Product Name: HP Spectre x360 Convertible 15-bl1XX

    Sound Codec:
    Codec: Realtek ALC295
    Vendor Id: 0x10ec0295
    Subsystem Id: 0x103c827f
    Revision Id: 0x100002

    Reported-by:
    Cc:
    Link: https://lore.kernel.org/r/20201128090015.7743-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • ASUS Zephyrus G14 has two speaker pins, and the auto-parser tries to
    assign an individual DAC to each pin as much as possible.
    Unfortunately the third DAC has no volume control unlike the two DACs,
    and this resulted in the inconsistent speaker volumes.

    As a workaround, wire both speaker pins to the same DAC by modifying
    the existing quirk (ALC289_FIXUP_ASUS_GA401) applied to this device.
    Since this quirk entry is chained by another, we need to avoid
    applying the DAC assignment change for it. Luckily, there is another
    quirk entry (ALC289_FIXUP_ASUS_GA502) doing the very same thing, so we
    can chain to the GA502 quirk instead.

    Note that this patch uses a new flag of the generic parser,
    obey_preferred_dacs, for enforcing the DACs.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=210359
    Cc:
    Link: https://lore.kernel.org/r/20201127141104.11041-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The generic parser accepts the preferred_dacs[] pairs as a hint for
    assigning a DAC to each pin, but this hint doesn't work always
    effectively. Currently it's merely a secondary choice after the trial
    with the path index failed. This made sometimes it difficult to
    assign DACs without mimicking the connection list and/or the badness
    table.

    This patch adds a new flag, obey_preferred_dacs, that changes the
    behavior of the parser. As its name stands, the parser obeys the
    given preferred_dacs[] pairs by skipping the path index matching and
    giving a high penalty if no DAC is assigned by the pairs. This mode
    will help for assigning the fixed DACs forcibly from the codec
    driver.

    Cc:
    Link: https://lore.kernel.org/r/20201127141104.11041-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

27 Nov, 2020

1 commit


24 Nov, 2020

1 commit


20 Nov, 2020

2 commits

  • This platform only had one audio jack.
    If it plugged speaker then replug with speaker or headset, the sound
    tone will change to abnormal.
    Headset Mic also can't record when this issue was happen.

    [ Added a short comment about the COEF by tiwai ]

    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/593c777dcfef4546aa050e105b8e53b5@realtek.com
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • The code change for switching to non-atomic mode brought the
    unexpected mutex deadlock in get_msg(). It converted the spinlock
    with the existing mutex, but there were calls with the already holding
    the mutex. Since the only place that needs the extra lock is the code
    path from snd_mixart_send_msg(), remove the mutex lock in get_msg()
    and apply in the caller side for fixing the mutex deadlock.

    Fixes: 8d3a8b5cb57d ("ALSA: mixart: Use nonatomic PCM ops")
    Reported-by: Dan Carpenter
    Cc:
    Link: https://lore.kernel.org/r/20201119121440.18945-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

19 Nov, 2020

1 commit

  • CONFIG_PCI=n leads to a compile warning like:
    sound/pci/hda/patch_ca0132.c:8214:10: warning: no case matching constant switch condition '0'
    due to the missed handling of QUIRK_NONE in ca0132_mmio_init().
    Fix it.

    Fixes: bf2aa9ccc8e5 ("ALSA: hda/ca0132 - Cleanup ca0132_mmio_init function.")
    Reported-by: kernel test robot
    Link: https://lore.kernel.org/r/20201119120404.16833-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Nov, 2020

1 commit


13 Nov, 2020

2 commits


11 Nov, 2020

1 commit


07 Nov, 2020

1 commit


04 Nov, 2020

1 commit


28 Oct, 2020

4 commits

  • The broken jack detection should be fixed by commit a6e7d0a4bdb0 ("ALSA:
    hda: fix jack detection with Realtek codecs when in D3"), let's try
    enabling runtime PM by default again.

    Signed-off-by: Kai-Heng Feng
    Link: https://lore.kernel.org/r/20201027130038.16463-4-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai

    Kai-Heng Feng
     
  • Both pm_runtime_force_suspend() and pm_runtime_force_resume() have
    some implicit checks, so it can make code flow more straightforward if
    we separate runtime and system suspend callbacks.

    High Definition Audio Specification, 4.5.9.3 Codec Wake From System S3
    states that codec can wake the system up from S3 if WAKEEN is toggled.
    Since HDA controller has different wakeup settings for runtime and
    system susend, we also need to explicitly disable direct-complete which
    can be enabled automatically by PCI core. In addition to that, avoid
    waking up codec if runtime resume is for system suspend, to not break
    direct-complete for codecs.

    While at it, also remove AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP, as the
    original bug commit a6630529aecb ("ALSA: hda: Workaround for spurious
    wakeups on some Intel platforms") solves doesn't happen with this
    patch.

    Signed-off-by: Kai-Heng Feng
    Link: https://lore.kernel.org/r/20201027130038.16463-3-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai

    Kai-Heng Feng
     
  • Upon system resume, hda_codec_pm_resume() uses hda_codec_force_resume()
    to resume the codec. However, pm_runtime_force_resume() won't really
    resume the codec because of pm_runtime_need_not_resume() check.

    Hence, hda_codec_force_resume() schedules a jackpoll work, which is to
    really power up the codec.

    Instead of doing that, we can use direct-complete to make the PM flow
    more straightforward, and keep codec always suspended through system PM
    flow if conditions are met.

    On system suspend, PM core will decide what to do based on
    hda_codec_pm_prepare():
    - If codec is not runtime-suspended, PM core will suspend and resume the
    device as normal.
    - If codec is runtime-suspended, PM core will try to keep it suspended.
    If it's still suspended after system resume, we use
    hda_codec_pm_complete() to resume codec if it's needed.

    Signed-off-by: Kai-Heng Feng
    Link: https://lore.kernel.org/r/20201027130038.16463-2-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai

    Kai-Heng Feng
     
  • System boot with plugged headset. It will not detect headset Mic.
    It will happen on cold boot restart resume state.
    Quirk by SSID change to quirk by pin verb.

    Fixes: 13468bfa8c58 ("ALSA: hda/realtek - set mic to auto detect on a HP AIO machine")
    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/f42ae1ede1cf47029ae2bef1a42caf03@realtek.com
    Signed-off-by: Takashi Iwai

    Kailang Yang