1 =============================== 2 Realtek PC Beep Hidden Register 3 =============================== 4 5 This file documents the "PC Beep Hidden Regist 6 Realtek HDA codecs and controls a muxer and pa 7 route audio between pins but aren't themselves 8 as I can tell, these hidden routes are designe 9 for codecs that don't have mixer widgets in th 10 to hide a mixer behind an undocumented vendor 11 as a widget, I have no idea. 12 13 Register Description 14 ==================== 15 16 The register is accessed via processing coeffi 17 identified below have no discernible effect on 18 19 MSB LSB 20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 21 | |h|S|L| | B |R| | Known bits 22 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 23 |0|0|1|1| 0x7 |0|0x0|1| 0x7 | Reset valu 24 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 25 26 1Ah input select (B): 2 bits 27 When zero, expose the PC Beep line (from the 28 enabled with the Set Beep Generation verb on 29 external PCBEEP pin) on the 1Ah pin node. Wh 30 jack (or possibly Line In on some machines) 31 selected, the 1Ah boost control has no effec 32 33 Amplify 1Ah loopback, left (L): 1 bit 34 Amplify the left channel of 1Ah before mixin 35 by h and S bits. Does not affect the level o 36 37 Amplify 1Ah loopback, right (R): 1 bit 38 Amplify the right channel of 1Ah before mixi 39 by h and S bits. Does not affect the level o 40 41 Loopback 1Ah to 21h [active low] (h): 1 bit 42 When zero, mix 1Ah (possibly with amplificat 43 into 21h (headphone jack on my machine). Mix 44 setting on 21h. 45 46 Loopback 1Ah to 14h (S): 1 bit 47 When one, mix 1Ah (possibly with amplificati 48 into 14h (internal speaker on my machine). M 49 setting on 14h and is present whenever 14h i 50 51 Path diagrams 52 ============= 53 54 1Ah input selection (DIV is the PC Beep divide 55 56 <Beep generator> <PCBEEP pin> <Headphon 57 | | | 58 +--DIV--+--!DIV--+ {1Ah boost 59 | | 60 +--(b == 0)--+--(b != 0)--+ 61 | 62 >1Ah (Beep/Headphone Mic/Line I 63 64 Loopback of 1Ah to 21h/14h:: 65 66 <1Ah (Beep/Headphone Mic/Line I 67 | 68 {amplify if L/R} 69 | 70 +-----!h-----+-----S-----+ 71 | | 72 {21h mute control} | 73 | | 74 >21h (Headphone)< >14h (Internal 75 76 Background 77 ========== 78 79 All Realtek HDA codecs have a vendor-defined w 80 provides access to a bank of registers that co 81 Registers are read and written via the standar 82 verbs (Set/Get Coefficient Index, Set/Get Proc 83 named "Realtek Vendor Registers" in public dat 84 apart from that, is entirely undocumented. 85 86 This particular register, exposed at coefficie 87 Realtek, is of note: unlike most registers, wh 88 amplifier parameters not in scope of the HDA s 89 routing which could just as easily have been d 90 and selector widgets. 91 92 Specifically, it selects between two sources f 93 ID (NID) 1Ah: the widget's signal can come eit 94 laptop, a Dell XPS 13 9350, it's the headphone 95 commits indicate that it might be a Line In on 96 Beep line (which is itself multiplexed between 97 generator and external PCBEEP pin, depending o 98 enabled via verbs on NID 01h). Additionally, i 99 amplification) that signal onto the 21h and/or 100 101 The register's reset value is 0x3717, correspo 102 then amplified and mixed into both the headpho 103 does this violate the HDA specification, which 104 beep input pin] connection may be maintained * 105 (**RST#**) is asserted", it means that we cann 106 about the input that 1Ah would otherwise expos 107 poorly shielded and picks up chassis noise (bo 108 machine). 109 110 Unfortunately, there are lots of ways to get t 111 Linux, it seems, has gone through most of them 112 after S3 suspend: judging by existing code, th 113 registers, and it's led to some fixes that imp 114 don't last after suspend. Other fixes have suc 115 away from PC Beep but have failed to disable b 116 machine, this means that the headphone input i 117 the headphone output, which uses the exact sam 118 causes terrible headphone noise, the character 119 1Ah boost control. (If you've seen instruction 120 noise by changing "Headphone Mic Boost" in ALS 121 122 The information here has been obtained through 123 the ALC256 codec's behavior and is not guarant 124 also applies for the ALC255, ALC257, ALC235, a 125 seem to be close relatives of the ALC256. (The 126 function.) Additionally, other codecs like the 127 register, judging by existing fixups in ``patc 128 data (e.g. node IDs, bit positions, pin mappin 129 from what I've described here.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.