~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/sound/hd-audio/realtek-pc-beep.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/sound/hd-audio/realtek-pc-beep.rst (Version linux-6.12-rc7) and /Documentation/sound/hd-audio/realtek-pc-beep.rst (Version policy-sample)


  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.                    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php