From: Takashi S. <o-t...@sa...> - 2013-10-22 11:35:38
|
HI all, This seris of patch is to improve the support for BeBoB/MAudio devices below: Firewire 410 Firewire Audiophile Firewire Solo Ozonic Even if these patches are applied, Firewire 410 and Firewire Audiophile don't work because just after powering on, they wait to download firmware. With firmware version 5058, the driver can call to load the firmware from device's ROM by sending a cue. But there is still no implementation for this. I'm sorry but this series of patch is should be applied after my previous patch series for BeBoB/Yamaha devices because both series modify the common file. I hope to reduce my work... ----- 0005-complement_avc_process_command.patch [libavc] complement 'Processing function block' command Current implement of libavc is lack of actual work for 'Processing function block' command defined in 'AV/C Audio Subunit Specification 1.0 (1394TA Document 1999008)'. I guess the reason is there are several types of the command. To implement all of the commands in the specification is too cost. But here, a driver for BeBoB/MAudio devices needs this command to control device's internal mixer. These devices can be controlled by either 'single' or 'multiple' type of the command. For these reasons, this commit add 'single type' of 'processing function block command'. ----- 0006-add_mixer_process_function.patch [BeBoB/AVDevice] add the functions to use processing function block command A GUI mixer for BeBoB/MAudio device needs to execure 'Processing function block' command to control their internal mixer. For this purpose, bebob_avcdevice needs to execute the command. ----- 0007-enhancedmixer_use_process_command.patch [BeBoB/Mixer] The bebob_mixer class gives 'EnhancedMixer' path but actually this doen't work because it has no implementation. For BeBoB/MAudio devices, ffado-dbus-server needs to execute 'Processing function block command' via this interface. 'EnhancedMixer' command is BridgeCo's extension of 'Processing function block' command. The latter is in 'AV/C Audio Subunit Specification 1.0 (1394TA Document 1999008)'. Unfortunately there is no way to distinguish them by plug information. This commit add an limitation that 'EnhancedMixer' path can't use the other types of 'Processing function block' command than 'single type'. But actually FFADO developer have neter confirmed the device which use the other types of command. ----- 0008-add_maudio_avdevice.patch [BeBoB/MAudio] add NormalDevice class for BeBoB/MAudio normal devices Current implementation of genericavc device can't give correct function for these devices to change source of clock. The reason 'normal' is that there are some BeBoB/MAudio devices which largely customized by MAudio. Firewire 1814 and ProjectMix I/O is this type of device. These devices use a different way to start/stop streaming and commands to control internal mixer. ----- 0009-assign_maudio_avdevice.patch [BeBoB/MAudio] assign a part of M-Audio Firewire series to specific class M-Audio devices based on BeBoB chipset has device specific operation to control its clock source. Currently Firewire 410, Firewire Audiophile, Firewire Solo is such type of device. ----- 0010-add_maudio_mixer_gui.patch [Qt4Mixer/MAudio] add mixer GUI for a part of M-Audio Firewire series This mixer GUI give the functionality to control Volume, Mute, L/R balance, input/output routing, input/output mixing. Some functionalities are not supported, for example, headphone assignment. This commit also obsolete current implementation for Ozonic because it is a lack of mixer routing. ----- 0011-update_configuration_entry.patch [BeBoB/MAudio] update configulation file for BeBoB/MAudio devices The entries for Ozonic/Firewire Solo/Firewire Audiophile are updated to use mixer GUI. The entry for Firewire 410 is newly added. There is a note for Firewire Audiophile and Firewire 410. Just after powering on, these devices wait to download firmware. FFADO developers didn't implement this. If you use with firmware version 5058, the devices have firmware image in its ROM and the driver can call it to be loaded by sending a cue. The cue is '0x01000000 00001101 00000000' and should be sent to 0xffffc8021000 just ONE TIME. ----- 0012-obsolete_ozonic_gui.patch [Qt4Mixer/MAudio] obsolete old implementation for Ozonic With previous commit, the implementation is obsoleted. Regards Takashi Sakamoto |