[alsa-devel] [FFADO-devel] Sample program for hwdep interface

Clemens Ladisch clemens at ladisch.de
Sat Dec 21 14:48:25 CET 2013

Jonathan Woithe wrote:
> On Fri, Dec 20, 2013 at 11:46:15PM +0900, Takashi Sakamoto wrote:
>> This is how to use hwdep interface for firewire devices.
>> I hope FFADO developers read this.
>> With hwdep interface, the program in user land can do:
>> 1.get firewire node infomation
>> 2.get notification when starting/stopping kernel streaming
>> 3.lock/unlock kernel streaming
> 1 could be useful.  2 and 3, while not essential, are nice to have.

If a device has some settings that must not be changed while streaming
is active, the mixer application must take the lock before attempting
to change them.  The lock notification is needed for disabling/enabling
those control widgets.

> ... for FFADO to determine whether there's kernel streaming support
> for the device in question

This could be done either by enumerating ALSA hwdep devices, or by
looking in sysfs whether the device has any attached driver.

>> And with snd-fireworks, the program can do:
>> 4.transmit command of EFW transaction
>> 5.receive response of EFW transaction
>> 4/5 is my complete solution for ticket #360.

I.e., sending commands not through FCP, but with the vendor-specific
addresses 0xecc000000000 (device) and 0xecc080000000 (PC).

> I thought this ticket was more or less resolved.  How exactly does this
> program deal with ticket #360?  This ticket requires fixes within FFADO's
> mixer/control code (or so I thought).

Yes, FFADO must allocate the reply address range.

But _if_ the kernel driver and FFADO are both running, FFADO must go
through the driver because the address range is already allocated.


More information about the Alsa-devel mailing list