15687c71dSFlorian Walpen.\" Copyright (c) 2012 Ruslan Bukin <br@bsdpad.com> 25687c71dSFlorian Walpen.\" Copyright (c) 2024 Florian Walpen <dev@submerge.ch> 35687c71dSFlorian Walpen.\" All rights reserved. 45687c71dSFlorian Walpen.\" 55687c71dSFlorian Walpen.\" Redistribution and use in source and binary forms, with or without 65687c71dSFlorian Walpen.\" modification, are permitted provided that the following conditions 75687c71dSFlorian Walpen.\" are met: 85687c71dSFlorian Walpen.\" 1. Redistributions of source code must retain the above copyright 95687c71dSFlorian Walpen.\" notice, this list of conditions and the following disclaimer. 105687c71dSFlorian Walpen.\" 2. Redistributions in binary form must reproduce the above copyright 115687c71dSFlorian Walpen.\" notice, this list of conditions and the following disclaimer in the 125687c71dSFlorian Walpen.\" documentation and/or other materials provided with the distribution. 135687c71dSFlorian Walpen.\" 145687c71dSFlorian Walpen.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 155687c71dSFlorian Walpen.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 165687c71dSFlorian Walpen.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 175687c71dSFlorian Walpen.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 185687c71dSFlorian Walpen.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 195687c71dSFlorian Walpen.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 205687c71dSFlorian Walpen.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 215687c71dSFlorian Walpen.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 225687c71dSFlorian Walpen.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 235687c71dSFlorian Walpen.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 245687c71dSFlorian Walpen.\" SUCH DAMAGE. 255687c71dSFlorian Walpen.\" 26*14457cf7SFlorian Walpen.Dd October 28, 2024 275687c71dSFlorian Walpen.Dt SND_HDSP 4 285687c71dSFlorian Walpen.Os 295687c71dSFlorian Walpen.Sh NAME 305687c71dSFlorian Walpen.Nm snd_hdsp 315687c71dSFlorian Walpen.Nd "RME HDSP bridge device driver" 325687c71dSFlorian Walpen.Sh SYNOPSIS 335687c71dSFlorian WalpenTo compile this driver into the kernel, place the following lines in your 345687c71dSFlorian Walpenkernel configuration file: 355687c71dSFlorian Walpen.Bd -ragged -offset indent 365687c71dSFlorian Walpen.Cd "device sound" 375687c71dSFlorian Walpen.Cd "device snd_hdsp" 385687c71dSFlorian Walpen.Ed 395687c71dSFlorian Walpen.Pp 405687c71dSFlorian WalpenAlternatively, to load the driver as a module at boot time, place the 415687c71dSFlorian Walpenfollowing line in 425687c71dSFlorian Walpen.Xr loader.conf 5 : 435687c71dSFlorian Walpen.Bd -literal -offset indent 445687c71dSFlorian Walpensnd_hdsp_load="YES" 455687c71dSFlorian Walpen.Ed 465687c71dSFlorian Walpen.Sh DESCRIPTION 475687c71dSFlorian WalpenThe 485687c71dSFlorian Walpen.Nm 495687c71dSFlorian Walpenbridge driver allows the generic audio driver 505687c71dSFlorian Walpen.Xr sound 4 515687c71dSFlorian Walpento attach to RME HDSP audio devices. 525687c71dSFlorian Walpen.Sh HARDWARE 535687c71dSFlorian WalpenThe 545687c71dSFlorian Walpen.Nm 555687c71dSFlorian Walpendriver supports the following audio devices: 565687c71dSFlorian Walpen.Pp 575687c71dSFlorian Walpen.Bl -bullet -compact 585687c71dSFlorian Walpen.It 59e0c37c16SFlorian WalpenRME HDSP 9632 (optional AO4S-192 and AIS-192 extension boards) 605687c71dSFlorian Walpen.It 615687c71dSFlorian WalpenRME HDSP 9652 625687c71dSFlorian Walpen.El 635687c71dSFlorian Walpen.Pp 645687c71dSFlorian WalpenBy default, each 655687c71dSFlorian Walpen.Xr pcm 4 665687c71dSFlorian Walpendevice corresponds to a physical port on the sound card. 675687c71dSFlorian WalpenFor ADAT ports, 8 channel, 4 channel and 2 channel formats are supported. 685687c71dSFlorian WalpenThe effective number of ADAT channels is 8 channels at single speed 695687c71dSFlorian Walpen(32kHz-48kHz) and 4 channels at double speed (64kHz-96kHz). 705687c71dSFlorian WalpenOnly the HDSP 9632 can operate at quad speed (128kHz-192kHz), ADAT is 715687c71dSFlorian Walpendisabled in this mode. 725687c71dSFlorian WalpenDepending on sample rate and channel format selected, not all pcm channels can 735687c71dSFlorian Walpenbe mapped to ADAT channels and vice versa. 745687c71dSFlorian Walpen.Sh LOADER TUNABLES 755687c71dSFlorian WalpenThese settings can be entered at the 765687c71dSFlorian Walpen.Xr loader 8 775687c71dSFlorian Walpenprompt or in 785687c71dSFlorian Walpen.Xr loader.conf 5 . 795687c71dSFlorian Walpen.Bl -tag -width indent 805687c71dSFlorian Walpen.It Va hw.hdsp.unified_pcm 815687c71dSFlorian WalpenIf set to 1, all physical ports are combined into one unified pcm device. 825687c71dSFlorian WalpenWhen opened in multi-channel audio software, this makes all ports available 835687c71dSFlorian Walpenat the same time, and fully synchronized. 845687c71dSFlorian WalpenFor resulting channel numbers consult the following table: 855687c71dSFlorian Walpen.El 865687c71dSFlorian Walpen.Bl -column "Sound Card" "Single Speed" "Double Speed" "Quad Speed" 875687c71dSFlorian Walpen.Sy "Sound Card" Ta Sy "Single Speed" Ta Sy "Double Speed" Ta Sy "Quad Speed" 885687c71dSFlorian Walpen.It "" Ta "Play | Rec" Ta "Play | Rec" Ta "Play | Rec" 89e0c37c16SFlorian Walpen.It HDSP 9632 Ta " 16 | 16" Ta " 12 | 12" Ta " 8 | 8" 905687c71dSFlorian Walpen.It HDSP 9652 Ta " 26 | 26" Ta " 14 | 14" Ta " - | -" 915687c71dSFlorian Walpen.El 925687c71dSFlorian Walpen.Sh SYSCTL TUNABLES 935687c71dSFlorian WalpenThese settings and informational values can be accessed at runtime with the 945687c71dSFlorian Walpen.Xr sysctl 8 955687c71dSFlorian Walpencommand. 965687c71dSFlorian WalpenIf multiple RME HDSP sound cards are installed, each device has a separate 975687c71dSFlorian Walpenconfiguration. 985687c71dSFlorian WalpenTo adjust the following sysctl identifiers for a specific sound card, insert 995687c71dSFlorian Walpenthe respective device number in place of 1005687c71dSFlorian Walpen.Ql 0 . 1015687c71dSFlorian Walpen.Bl -tag -width indent 1025687c71dSFlorian Walpen.It Va dev.hdsp.0.sample_rate 1035687c71dSFlorian WalpenSet a fixed sample rate from 32000, 44100, 48000, up to 192000. 1045687c71dSFlorian WalpenThis is usually required for digital connections (AES, S/PDIF, ADAT). 1055687c71dSFlorian WalpenThe default value of 0 adjusts the sample rate according to pcm device settings. 1065687c71dSFlorian Walpen.It Va dev.hdsp.0.period 1075687c71dSFlorian WalpenThe number of samples processed per interrupt, from 32, 64, 128, up to 4096. 1085687c71dSFlorian WalpenSetting a lower value here results in less latency, but increases system load 1095687c71dSFlorian Walpendue to frequent interrupt processing. 1105687c71dSFlorian WalpenExtreme values may cause audio gaps and glitches. 1115687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_list 1125687c71dSFlorian WalpenLists possible clock sources to sync with, depending on the hardware model. 1135687c71dSFlorian WalpenThis includes internal and external master clocks as well as incoming digital 1145687c71dSFlorian Walpenaudio signals like AES, S/PDIF and ADAT. 1155687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_preference 1165687c71dSFlorian WalpenSelect a preferred clock source from the clock list. 1175687c71dSFlorian WalpenHDSP cards will sync to this clock source when available, but fall back to 1185687c71dSFlorian Walpenauto-sync with any other digital clock signal they receive. 1195687c71dSFlorian WalpenSet this to 1205687c71dSFlorian Walpen.Ql internal 1215687c71dSFlorian Walpenif the HDSP card should act as master clock. 1225687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_source 1235687c71dSFlorian WalpenShows the actual clock source in use (read only). 1245687c71dSFlorian WalpenThis differs from what is set as clock preference when in auto-sync mode. 1255687c71dSFlorian Walpen.It Va dev.hdsp.0.sync_status 1265687c71dSFlorian WalpenDisplay the current sync status of all external clock sources. 1275687c71dSFlorian WalpenStatus indications are 1285687c71dSFlorian Walpen.Ql none 1295687c71dSFlorian Walpenfor no signal at all, 1305687c71dSFlorian Walpen.Ql lock 1315687c71dSFlorian Walpenfor when a valid signal is present, and 1325687c71dSFlorian Walpen.Ql sync 1335687c71dSFlorian Walpenfor accurately synchronized signals (required for recording digital 1345687c71dSFlorian Walpenaudio). 1355687c71dSFlorian Walpen.El 1365687c71dSFlorian Walpen.Pp 137*14457cf7SFlorian WalpenThe following tunables are applicable to HDSP 9632 devices only: 138*14457cf7SFlorian Walpen.Bl -tag -width indent 139*14457cf7SFlorian Walpen.It Va dev.hdsp.0.input_level 140*14457cf7SFlorian WalpenSelect the sensitivity of the analog line input. 141*14457cf7SFlorian WalpenAvailable reference levels for the input signal are 142*14457cf7SFlorian Walpen.Ql LowGain , 143*14457cf7SFlorian Walpen.Ql +4dBu 144*14457cf7SFlorian Walpenand 145*14457cf7SFlorian Walpen.Ql -10dBV . 146*14457cf7SFlorian Walpen.It Va dev.hdsp.0.output_level 147*14457cf7SFlorian WalpenSelect the gain level of the analog line output. 148*14457cf7SFlorian WalpenAvailable reference levels for the output signal are 149*14457cf7SFlorian Walpen.Ql HighGain , 150*14457cf7SFlorian Walpen.Ql +4dBu 151*14457cf7SFlorian Walpenand 152*14457cf7SFlorian Walpen.Ql -10dBV . 153*14457cf7SFlorian Walpen.It Va dev.hdsp.0.phones_level 154*14457cf7SFlorian WalpenAdjust the gain level of the phones output, separately from the analog line 155*14457cf7SFlorian Walpenoutput. 156*14457cf7SFlorian WalpenThe signal can be lowered by 6 or 12 dB. 157*14457cf7SFlorian Walpen.El 158*14457cf7SFlorian Walpen.Pp 1595687c71dSFlorian WalpenWhere appropriate these sysctl values are modeled after official RME software on 1605687c71dSFlorian Walpenother platforms, and adopt their terminology. 1615687c71dSFlorian WalpenConsult the RME user manuals for additional information. 1625687c71dSFlorian Walpen.Sh SEE ALSO 1635687c71dSFlorian Walpen.Xr sound 4 1645687c71dSFlorian Walpen.Sh HISTORY 1655687c71dSFlorian WalpenThe 1665687c71dSFlorian Walpen.Nm 1675687c71dSFlorian Walpendevice driver first appeared in 1685687c71dSFlorian Walpen.Fx 15.0 . 1695687c71dSFlorian Walpen.Sh AUTHORS 1705687c71dSFlorian Walpen.An -nosplit 1715687c71dSFlorian WalpenBased on 1725687c71dSFlorian Walpen.Xr snd_hdspe 4 1735687c71dSFlorian Walpenoriginally written by 1745687c71dSFlorian Walpen.An Ruslan Bukin <br@bsdpad.com> . 1755687c71dSFlorian WalpenAll adaptation to HDSP cards by 1765687c71dSFlorian Walpen.An Florian Walpen <dev@submerge.ch> . 177