Loading Documentation/sound/alsa/HD-Audio.txt +47 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,53 @@ power-saving. See /sys/module/snd_hda_intel/parameters/power_save to check the current value. If it's non-zero, the feature is turned on. Tracepoints ~~~~~~~~~~~ The hd-audio driver gives a few basic tracepoints. `hda:hda_send_cmd` traces each CORB write while `hda:hda_get_response` traces the response from RIRB (only when read from the codec driver). `hda:hda_bus_reset` traces the bus-reset due to fatal error, etc, and `hda:hda_power_down` and `hda:hda_power_up` trace the power down/up via power-saving behavior. Enabling all tracepoints can be done like ------------------------------------------------------------------------ # echo 1 > /sys/kernel/debug/tracing/events/hda/enable ------------------------------------------------------------------------ then after some commands, you can traces from /sys/kernel/debug/tracing/trace file. For example, when you want to trace what codec command is sent, enable the tracepoint like: ------------------------------------------------------------------------ # cat /sys/kernel/debug/tracing/trace # tracer: nop # # TASK-PID CPU# TIMESTAMP FUNCTION # | | | | | <...>-7807 [002] 105147.774889: hda_send_cmd: [0:0] val=e3a019 <...>-7807 [002] 105147.774893: hda_send_cmd: [0:0] val=e39019 <...>-7807 [002] 105147.999542: hda_send_cmd: [0:0] val=e3a01a <...>-7807 [002] 105147.999543: hda_send_cmd: [0:0] val=e3901a <...>-26764 [001] 349222.837143: hda_send_cmd: [0:0] val=e3a019 <...>-26764 [001] 349222.837148: hda_send_cmd: [0:0] val=e39019 <...>-26764 [001] 349223.058539: hda_send_cmd: [0:0] val=e3a01a <...>-26764 [001] 349223.058541: hda_send_cmd: [0:0] val=e3901a ------------------------------------------------------------------------ Here `[0:0]` indicates the card number and the codec address, and `val` shows the value sent to the codec, respectively. The value is a packed value, and you can decode it via hda-decode-verb program included in hda-emu package below. For example, the value e3a019 is to set the left output-amp value to 25. ------------------------------------------------------------------------ % hda-decode-verb 0xe3a019 raw value = 0x00e3a019 cid = 0, nid = 0x0e, verb = 0x3a0, parm = 0x19 raw value: verb = 0x3a0, parm = 0x19 verbname = set_amp_gain_mute amp raw val = 0xa019 output, left, idx=0, mute=0, val=25 ------------------------------------------------------------------------ Development Tree ~~~~~~~~~~~~~~~~ The latest development codes for HD-audio are found on sound git tree: Loading Loading
Documentation/sound/alsa/HD-Audio.txt +47 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,53 @@ power-saving. See /sys/module/snd_hda_intel/parameters/power_save to check the current value. If it's non-zero, the feature is turned on. Tracepoints ~~~~~~~~~~~ The hd-audio driver gives a few basic tracepoints. `hda:hda_send_cmd` traces each CORB write while `hda:hda_get_response` traces the response from RIRB (only when read from the codec driver). `hda:hda_bus_reset` traces the bus-reset due to fatal error, etc, and `hda:hda_power_down` and `hda:hda_power_up` trace the power down/up via power-saving behavior. Enabling all tracepoints can be done like ------------------------------------------------------------------------ # echo 1 > /sys/kernel/debug/tracing/events/hda/enable ------------------------------------------------------------------------ then after some commands, you can traces from /sys/kernel/debug/tracing/trace file. For example, when you want to trace what codec command is sent, enable the tracepoint like: ------------------------------------------------------------------------ # cat /sys/kernel/debug/tracing/trace # tracer: nop # # TASK-PID CPU# TIMESTAMP FUNCTION # | | | | | <...>-7807 [002] 105147.774889: hda_send_cmd: [0:0] val=e3a019 <...>-7807 [002] 105147.774893: hda_send_cmd: [0:0] val=e39019 <...>-7807 [002] 105147.999542: hda_send_cmd: [0:0] val=e3a01a <...>-7807 [002] 105147.999543: hda_send_cmd: [0:0] val=e3901a <...>-26764 [001] 349222.837143: hda_send_cmd: [0:0] val=e3a019 <...>-26764 [001] 349222.837148: hda_send_cmd: [0:0] val=e39019 <...>-26764 [001] 349223.058539: hda_send_cmd: [0:0] val=e3a01a <...>-26764 [001] 349223.058541: hda_send_cmd: [0:0] val=e3901a ------------------------------------------------------------------------ Here `[0:0]` indicates the card number and the codec address, and `val` shows the value sent to the codec, respectively. The value is a packed value, and you can decode it via hda-decode-verb program included in hda-emu package below. For example, the value e3a019 is to set the left output-amp value to 25. ------------------------------------------------------------------------ % hda-decode-verb 0xe3a019 raw value = 0x00e3a019 cid = 0, nid = 0x0e, verb = 0x3a0, parm = 0x19 raw value: verb = 0x3a0, parm = 0x19 verbname = set_amp_gain_mute amp raw val = 0xa019 output, left, idx=0, mute=0, val=25 ------------------------------------------------------------------------ Development Tree ~~~~~~~~~~~~~~~~ The latest development codes for HD-audio are found on sound git tree: Loading