snd_hdsp configuration

Hello,

i need some help with the configuration of my

hdsp0@pci0:34:0:0: class=0x040100 rev=0x03 hdr=0x00 vendor=0x10ee device=0x3fc4 subvendor=0x0000 subdevice=0x0000
vendor = 'Xilinx Corporation'
device = 'RME Digi9652 (Hammerfall)'

on

FreeBSD 15.0-RELEASE GENERIC amd64

Short: no output on attached adat device, the same setup produces audio on linux.

Long: the original snd_hdsp driver comming with 15.0 does not attach to the revision of my card. I guess there are different versions of the 9652 card, after adjusting the source i managed to compile a driver version which attaches, such that /dev/sndstat reads among others

pcm0: <HDSP 9652 [all]> port 0xf9000000 irq 32 on hdsp0 (1p:0v/1r:0v) default
snddev flags=0x30fc<SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,BITPERFECT,VPC,PVCHANS,RVCHANS>
[dsp0.play.0]: spd 48000, fmt 0x01a01000, flags 0x20000000, 0x00000001
interrupts 8, underruns 0, feed 0, ready 0
[b:53248/26624/2|bs:130624/16328/8]
channel flags=0x20000000<BITPERFECT>
{userland} -> feeder_root(0x01a01000) -> {hardware}
[dsp0.record.0]: spd 48000, fmt 0x01a01000, flags 0x20000000, 0x00000001
interrupts 0, overruns 0, feed 0, hfree 53248, sfree 106496
[b:53248/26624/2|bs:106496/208/512]
channel flags=0x20000000<BITPERFECT>
{hardware} -> feeder_root(0x01a01000) -> {userland}

Loading and configuration is done as follows

/boot/loader.conf

snd_hdsp_load="yes"
hw.hdsp.unified_pcm=1

/etc/sysctl.conf

hw.snd.verbose=4
dev.hdsp.0.sample_rate=48000
dev.hdsp.0.period=256
dev.hdsp.0.clock_preference="internal"
dev.pcm.0.rec.vchanrate=48000
dev.pcm.0.play.vchanrate=48000
dev.pcm.0.rec.vchanformat=s32le:26.0
dev.pcm.0.play.vchanformat=s32le:26.0
hw.snd.default_unit=0
kern.timecounter.alloweddeviation=0
hw.snd.latency=0
dev.pcm.0.bitperfect=1

Finally

/etc/rc.conf

jackd_enable="YES"
jackd_user="sjred"
jackd_rtprio="YES"
jackd_args="-r -d oss -r48000 -p256 -n1 -i26 -o26 -C /dev/dsp0 -P /dev/dsp0"

So... at that point i can see jack running with qjackctl and can start and attach a client (zynaddsubfx), however there is nothing comming out from the connected adat device.

With the above configuration and no sound, all 26 channels are visible

dev.pcm.0.%parent: hdsp0
dev.hdsp.0.sample_rate: 48000
dev.hdsp.0.period: 256
dev.hdsp.0.clock_list: internal,adat1,adat2,adat3,spdif,word,adat_sync
dev.hdsp.0.clock_preference: internal
dev.hdsp.0.clock_source: internal
dev.hdsp.0.sync_status: adat1(none),adat2(sync),adat3(none),spdif(sync),word(none),adat_sync(none)
dev.hdsp.0.%iommu: rid=0x2200
dev.hdsp.0.%parent: pci5
dev.hdsp.0.%pnpinfo: vendor=0x10ee device=0x3fc4 subvendor=0x0000 subdevice=0x0000 class=0x040100
dev.hdsp.0.%location: slot=0 function=0 dbsf=pci0:34:0:0
dev.hdsp.0.%driver: hdsp
dev.hdsp.0.%desc: RME HDSP 9652

If i unload the driver and load it again, only two channels are avaibale, theare are xruns, however there is something comming out from the adat, althogh distorted and not really usable.

In the 26 channel mode the adat led for sync is on and the sync gets lost if i start a mixer, i guess this is expected behaviour.

Any hint how to fix / enable all the 26 channels, resp. what i am doing wrong is highly appreciated.

Cheers,
SJRed
 
Back
Top