linux/include/sound
Maciej S. Szmigiero aa85822c61 ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7
PC speaker works well on this platform in BIOS and in Linux until sound
card drivers are loaded. Then it stops working.

There seems to be a beep generator node at 0x1a in this CODEC
(ALC269_TYPE_ALC215) but it seems to be only connected to capture mixers
at nodes 0x22 and 0x23.
If I unmute the mixer input for 0x1a at node 0x23 and start recording
from its "ALC285 Analog" capture device I can clearly hear beeps in that
recording.

So the beep generator is indeed working properly, however I wasn't able to
figure out any way to connect it to speakers.

However, the bits in the "Passthrough Control" register (0x36) seems to
work at least partially: by zeroing "B" and "h" and setting "S" I can at
least make the PIT PC speaker output appear either in this laptop speakers
or headphones (depending on whether they are connected or not).

There are some caveats, however:
* If the CODEC gets runtime-suspended the beeps stop so it needs HDA beep
device for keeping it awake during beeping.

* If the beep generator node is generating any beep the PC beep passthrough
seems to be temporarily inhibited, so the HDA beep device has to be
prevented from using the actual beep generator node - but the beep device
is still necessary due to the previous point.

* In contrast with other platforms here beep amplification has to be
disabled otherwise the beeps output are WAY louder than they were on pure
BIOS setup.

Unless someone (from Realtek probably) knows how to make the beep generator
node output appear in speakers / headphones using PC beep passthrough seems
to be the only way to make PC speaker beeping actually work on this
platform.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Acked-by: kailang@realtek.com
Link: https://patch.msgid.link/7461f695b4daed80f2fc4b1463ead47f04f9ad05.1739741254.git.mail@maciej.szmigiero.name
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2025-03-04 09:29:06 +01:00
..
ac97 driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
sof ASoC: SOF: ext_manifest: Add missing ext_manifest type for PROBE_INFO 2024-11-07 13:03:22 +00:00
ac97_codec.h ALSA: mark all struct bus_type as const 2023-12-30 10:10:41 +01:00
aci.h ALSA: opti9xx: Use standard print API 2024-08-08 07:49:45 +02:00
acp63_chip_offset_byte.h ASoC: amd: update ps platform acp header file 2023-02-03 12:04:02 +00:00
ad1816a.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ad1843.h
ak4xxx-adda.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ak4113.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ak4114.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ak4117.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ak4531_codec.h ALSA: ens137x: Replace with DEFINE_SIMPLE_DEV_PM_OPS() 2024-02-12 11:50:24 +01:00
ak4641.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
alc5623.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
asequencer.h ALSA: seq: Add UMP support 2023-05-23 12:11:21 +02:00
asound.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
asoundef.h ALSA: IEC958 definition for consumer status channel update 2024-09-07 10:42:17 +02:00
compress_driver.h ALSA: compress_offload: Add missing descriptions in structs 2024-11-13 13:54:27 +01:00
control.h Merge branch 'topic/control-lookup-rwlock' into for-next 2024-08-09 14:25:24 +02:00
core.h Merge branch 'topic/control-lookup-rwlock' into for-next 2024-08-09 14:25:24 +02:00
cs-amp-lib.h ASoC: cs-amp-lib: Add KUnit test for calibration helpers 2024-03-04 20:27:35 +00:00
cs35l33.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs35l34.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs35l35.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs35l36.h ASoC: cs35l36: Add support for Cirrus CS35L36 Amplifier 2019-02-08 13:00:28 +00:00
cs35l41.h ASoC: Constify channel mapping array arguments in set_channel_map() 2024-05-27 01:30:58 +01:00
cs35l56.h ALSA: hda: cs35l56: Remove calls to cs35l56_force_sync_asp1_registers_from_cache() 2024-12-06 13:54:06 +01:00
cs42l42.h ASoC: cs42l42: Remove redundant delays in suspend(). 2024-02-19 17:02:18 +00:00
cs42l43.h ASoC: cs42l43: Add support for the cs42l43 2023-08-18 23:41:54 +01:00
cs42l52.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs42l56.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs42l73.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs4231-regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cs4271.h ASoC: cs4271: Convert to GPIO descriptors 2023-12-01 16:59:21 +00:00
cs8403.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cs8427.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
da7213.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
da7218.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
da7219-aad.h ASoC: da7219: Add Jack insertion detection polarity 2023-05-23 18:49:36 +01:00
da7219.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
da9055.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
designware_i2s.h ASoC: dwc: i2s: Add StarFive JH7110 SoC support 2023-08-23 13:56:40 +01:00
dmaengine_pcm.h ALSA: dmaengine: Synchronize dma channel after drop() 2024-06-11 17:13:31 +01:00
emu10k1.h Merge branch 'topic/emu10k1-fix' into for-next 2024-04-28 12:00:57 +02:00
emu10k1_synth.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
emu8000.h ALSA: sb: Allocate resources with device-managed APIs 2021-07-19 16:17:14 +02:00
emu8000_reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
emux_legacy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
emux_synth.h ALSA: synth: Save a few bytes of memory when registering a 'snd_emux' 2024-01-22 13:04:22 +01:00
es1688.h ALSA: es1688: Use standard print API 2024-08-08 07:47:24 +02:00
graph_card.h ASoC: simple_card_utils.h: convert not to use asoc_xxx() 2023-09-25 14:16:14 +02:00
gus.h ALSA: isa/gus: remove -Wmissing-prototypes warnings 2020-07-07 11:59:59 +02:00
hda-mlink.h ASoC: SOF: Intel: hda-mlink: expose unlocked interrupt enable routine 2024-10-11 12:06:56 +01:00
hda_chmap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hda_codec.h ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7 2025-03-04 09:29:06 +01:00
hda_component.h i915/snd_hdac: I915 subcomponent for the snd_hdac 2019-02-08 16:58:59 +01:00
hda_hwdep.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_i915.h ALSA: hda: i915: Remove extra argument from snd_hdac_i915_init 2023-10-19 14:56:25 +02:00
hda_register.h ALSA: hda: Fix all stream interrupts definition 2024-10-14 12:00:52 +02:00
hda_regmap.h ALSA: hda: Manage concurrent reg access more properly 2020-01-13 13:40:41 +01:00
hda_verbs.h ALSA: cleanup double word in comment 2022-02-11 15:18:56 +01:00
hdaudio.h ALSA: hda: fix trigger_tstamp_latched 2024-10-02 12:50:24 +02:00
hdaudio_ext.h ALSA: hda: Fix compilation of snd_hdac_adsp_xxx() helpers 2025-01-10 17:46:09 +01:00
hdmi-codec.h ASoC: hdmi-codec: move no_capture_mute to struct hdmi_codec_pdata 2025-01-04 08:47:10 +02:00
hwdep.h ALSA: hwdep: Don't embed device 2023-08-17 09:24:01 +02:00
i2c.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
info.h ALSA: info: Remove unused function declarations 2023-08-08 14:45:45 +02:00
initval.h ALSA: Allow const arrays for legacy resource management helpers 2020-01-05 16:14:26 +01:00
intel-dsp-config.h ASoC: Intel: avs: PCI driver implementation 2022-05-17 11:58:04 +01:00
intel-nhlt.h ALSA: hda: intel-nhlt: add intel_nhlt_ssp_device_type() function 2024-03-22 12:40:46 +01:00
jack.h ALSA: jack: Access input_dev under mutex 2022-04-12 12:19:05 +02:00
madera-pdata.h ASoC: madera: Replace kernel.h with the necessary inclusions 2022-07-05 13:00:49 +01:00
max9768.h ASoC: max9768: Convert to use GPIO descriptors 2023-09-11 12:50:05 +01:00
max98088.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
max98090.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
max98095.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
memalloc.h ALSA: memalloc: Let IOMMU handle S/G primarily 2024-08-01 12:45:49 +02:00
minors.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
mixer_oss.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
mpu401.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
omap-hdmi-audio.h ALSA: Replace HTTP links with HTTPS ones 2020-07-19 20:49:25 +02:00
opl3.h ALSA: opl3: Replace with __packed attribute 2023-10-26 09:43:15 +02:00
opl4.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pcm-indirect.h ALSA: pcm: Improved XRUN handling for indirect PCM helpers 2023-03-24 14:52:58 +01:00
pcm.h ALSA: Align the syntax of iov_iter helpers with standard ones 2024-12-30 12:50:04 +01:00
pcm_drm_eld.h ALSA: hda/hdmi: extract common interface for ELD handling 2025-02-05 13:04:00 +01:00
pcm_iec958.h ALSA: iec958: Split status creation and fill 2021-06-08 17:05:41 +02:00
pcm_oss.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pcm_params.h ALSA: hda: Upgrade stream-format infrastructure 2023-11-27 17:27:41 +01:00
pt2258.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pxa2xx-lib.h Input: touchscreen: use wrapper for pxa2xx ac97 registers 2022-05-07 22:55:48 +02:00
rawmidi.h ALSA: rawmidi: Make tied_device=0 as default / unknown 2025-01-14 16:52:07 +01:00
rt286.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt298.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt1015.h ASoC: rt1015: add delay to fix pop noise from speaker 2020-11-05 17:25:17 +00:00
rt1318.h ASoC: rt1318: Add RT1318 audio amplifier driver 2024-06-19 14:50:34 +01:00
rt5514.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt5659.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt5660.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt5663.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt5665.h ASoC: rt5665: Convert to use GPIO descriptors 2023-08-17 15:10:11 +01:00
rt5668.h ASoC: rt5668: Convert to use GPIO descriptors 2023-08-17 15:10:12 +01:00
rt5682.h ASoC: rt5682: Convert to use GPIO descriptors 2023-08-17 15:10:13 +01:00
rt5682s.h ASoC: rt5682s: Add LDO output selection for dacref 2023-11-14 17:39:27 +00:00
sb.h ALSA: als4000: Replace with DEFINE_SIMPLE_DEV_PM_OPS() 2024-02-12 11:50:24 +01:00
sb16_csp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sdca.h ASoC: SDCA: Add bounds check for function address 2024-12-24 22:44:55 +00:00
sdca_function.h sound updates for 6.14-rc1 2025-01-24 07:54:34 -08:00
sdw.h sound: sdw: Add hw_params to SoundWire config helper function 2022-11-28 13:04:24 +00:00
seq_device.h ALSA: seq: Bind UMP device 2023-05-23 12:11:33 +02:00
seq_kernel.h ALSA: seq: Remove unused declarations 2024-08-17 16:32:31 +02:00
seq_midi_emul.h ALSA: seq: Constify struct snd_midi_op 2020-01-03 09:24:19 +01:00
seq_midi_event.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_oss.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_oss_legacy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_virmidi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sh_dac_audio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sh_fsi.h ASoC: fsi: convert to SPDX identifiers 2018-08-02 10:56:59 +01:00
simple_card.h ASoC: remove asoc_xxx() compatible macro 2023-09-26 17:18:45 +02:00
simple_card_utils.h ASoC: Updates for v6.14 2025-01-20 16:15:07 +01:00
snd_wavefront.h ALSA: wavefront: Use standard print API 2024-08-08 07:49:46 +02:00
soc-acpi-intel-match.h ASoC: Intel: soc-acpi: add PTL match tables 2024-08-02 14:04:55 +01:00
soc-acpi-intel-ssp-common.h ASoC: Intel: ssp-common: get codec tplg suffix function 2024-03-28 13:58:14 +00:00
soc-acpi.h ASoC: soc-acpi: introduce new 'machine check' callback 2024-10-17 18:42:14 +01:00
soc-card.h ASoC: Drop snd_soc_*_get_kcontrol_locked() 2024-08-09 14:24:55 +02:00
soc-component.h ASoC: Drop snd_soc_*_get_kcontrol_locked() 2024-08-09 14:24:55 +02:00
soc-dai.h ASoC: soc-dai: add snd_soc_dai_prepare() and use it internally 2025-01-15 13:11:18 +00:00
soc-dapm.h ASoC: dapm: Use unsigned for number of widgets in snd_soc_dapm_new_controls() 2024-07-03 21:43:40 +01:00
soc-dpcm.h ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local function 2024-08-28 13:02:20 +01:00
soc-jack.h ASoC: soc-jack: Get rid of legacy GPIO support 2024-03-26 17:13:45 +00:00
soc-link.h ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-topology.h ASoC: topology: Constify an argument of snd_soc_tplg_component_load() 2024-05-27 01:31:15 +01:00
soc.h ASoC: soc-core: Enable to use extra format on each DAI 2025-01-13 14:16:55 +00:00
soc_sdw_utils.h ASoC: sdw_utils: cs_amp: Assign non-overlapping TDM masks for each codec on a bus 2024-12-03 12:36:28 +00:00
sof.h ASoC: SOF: sof-audio: add sof_dai_get_tdm_slots function 2024-05-29 11:10:54 +01:00
soundfont.h ALSA: emux: Use standard print API 2024-08-08 07:49:46 +02:00
spear_dma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
spear_spdif.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sta32x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sta350.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tas2552-plat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tas2563-tlv.h ASoC: tas2781: mark const variables tas2563_dvc_table as __maybe_unused 2024-08-22 13:34:12 +01:00
tas2781-dsp.h ASoc: tas2781: Enable RCA-based playback without DSP firmware download 2024-06-18 16:45:53 +01:00
tas2781-tlv.h ASoC: tas2781: Fix a compiling warning reported by robot kernel test due to adding tas2563_dvc_table 2024-08-02 14:05:30 +01:00
tas2781.h ALSA: hda/tas2781: Add speaker id check for ASUS projects 2024-11-26 08:54:08 +01:00
tas5086.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tea6330t.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
timer.h ALSA: timer: Replace tasklet with work 2020-09-09 18:32:52 +02:00
tlv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
tlv320aic32x4.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tlv320dac33-plat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tpa6130a2-plat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
uda1380.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ump.h ALSA: seq: Notify UMP EP and FB changes 2025-01-12 13:12:21 +01:00
ump_convert.h ALSA: ump: Transmit RPN/NRPN message at each MSB/LSB data reception 2024-07-31 15:08:18 +02:00
ump_msg.h ALSA: ump: Support UMP Endpoint and Function Block parsing 2023-06-12 18:22:26 +02:00
util_mem.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
vx_core.h ALSA: vx_core: Drop unused dev field 2024-08-08 07:47:23 +02:00
wavefront.h ALSA: wavefront: Drop obsoleted comments and definitions 2023-10-26 09:43:24 +02:00
wm0010.h ASoC: wm0010: Convert to GPIO descriptors 2023-12-08 14:31:57 +00:00
wm2000.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm2200.h ASoC: wm2200: Convert to GPIO descriptors 2023-12-08 14:31:59 +00:00
wm5100.h ASoC: wm5100: Convert to GPIO descriptors 2023-12-08 14:31:59 +00:00
wm8903.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm8904.h ASoC: Spelling s/configr/configur/ 2019-10-25 11:06:57 +01:00
wm8955.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm8960.h ASoC: wm8960: Support headphone jack detection function 2020-06-15 20:58:33 +01:00
wm8962.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm8993.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm8996.h ASoC: wm8996: Convert to GPIO descriptors 2023-12-08 14:32:00 +00:00
wm9081.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm9090.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wss.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00