Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

motu: add information which might permit the V4HD device to be detect…

…ed. This device includes 4 sub-devices (its expected that only one is related to audio) and FFADO is not currently set up to deal with such structures in the configROM, so I suspect only the first sub-device will be reported. Note that even if it's detected we currently have no idea how to drive it - this addition is currently aimed at documenting the device's existance and to perhaps make further testing possible. This patch also adds a test for an unset model ID (ie: set to the 'none' identifier), which allows us to bail after device detection if no motu model ID has been set. This patch has only been compile-tested only at this stage.

git-svn-id: svn+ssh:// 2be59082-3212-0410-8809-b0798e1608f0
  • Loading branch information...
commit 1197078b655535b54718d9e2430e9e17eb758107 1 parent d163920
jwoithe authored
Showing with 23 additions and 1 deletion.
  1. +23 −1 libffado/src/motu/motu_avdevice.cpp
24 libffado/src/motu/motu_avdevice.cpp
@@ -65,7 +65,13 @@
namespace Motu {
-// Define the supported devices. Device ordering is arbitary here.
+// Define the supported devices. Device ordering is arbitary here. To include a MOTU
+// device which cannot yet be used (for identification purposes only), set the model
+// field to MOTU_MODEL_NONE.
+// The V4HD device includes 4 sub-devices. Include all in the definition as a way
+// of documenting it. It's likely that only one of these is of interest for audio
+// but that's still to be determined.
static VendorModelEntry supportedDeviceList[] =
// {vendor_id, model_id, unit_version, unit_specifier_id, model, vendor_name,model_name}
@@ -79,6 +85,10 @@ static VendorModelEntry supportedDeviceList[] =
{FW_VENDORID_MOTU, 0, 0x00000017, 0x000001f2, MOTU_MODEL_896mk3, "MOTU", "896Mk3"},
{FW_VENDORID_MOTU, 0, 0x00000019, 0x000001f2, MOTU_MODEL_ULTRALITEmk3, "MOTU", "UltraLiteMk3"},
{FW_VENDORID_MOTU, 0, 0x0000001b, 0x000001f2, MOTU_MODEL_TRAVELERmk3, "MOTU", "TravelerMk3"},
+ {FW_VENDORID_MOTU, 0, 0x00000021, 0x000001f2, MOTU_MODEL_NONE, "MOTU", "V4HD subdevice 0"},
+ {FW_VENDORID_MOTU, 0, 0x00000022, 0x000001f2, MOTU_MODEL_NONE, "MOTU", "V4HD subdevice 1"},
+ {FW_VENDORID_MOTU, 0, 0x00000023, 0x000001f2, MOTU_MODEL_NONE, "MOTU", "V4HD subdevice 2"},
+ {FW_VENDORID_MOTU, 0, 0x00000024, 0x000001f2, MOTU_MODEL_NONE, "MOTU", "V4HD subdevice 3"},
{FW_VENDORID_MOTU, 0, 0x00000030, 0x000001f2, MOTU_MODEL_ULTRALITEmk3_HYB, "MOTU", "UltraLiteMk3-hybrid"},
@@ -799,6 +809,13 @@ MotuDevice::probe( Util::Configuration& c, ConfigRom& configRom, bool generic)
&& ( supportedDeviceList[i].unit_specifier_id == unitSpecifierId )
+ if (supportedDeviceList[i].model == MOTU_MODEL_NONE) {
+ debugOutput( DEBUG_LEVEL_VERBOSE, "%s %s found but is not currently supported by FFADO\n",
+ supportedDeviceList[i].vendor_name, supportedDeviceList[i].model_name);
+ debugOutput( DEBUG_LEVEL_VERBOSE, " unitVersion=0x%08x\n", unitVersion);
+ return false;
+ }
return true;
@@ -840,6 +857,11 @@ MotuDevice::discover()
debugOutput( DEBUG_LEVEL_VERBOSE, "found %s %s\n",
m_model->vendor_name, m_model->model_name);
+ if (m_motu_model == MOTU_MODEL_NONE) {
+ debugOutput( DEBUG_LEVEL_VERBOSE, "This MOTU device is not currently supported by FFADO\n");
+ return false;
+ }
if (!buildMixer()) {
debugWarning("Could not build mixer\n");
Please sign in to comment.
Something went wrong with that request. Please try again.