depends on SND_PCM
config SND_DICE
- tristate "DICE devices (EXPERIMENTAL)"
+ tristate "DICE-based DACs (EXPERIMENTAL)"
select SND_HWDEP
select SND_PCM
select SND_FIREWIRE_LIB
help
- Say Y here to include support for many FireWire audio interfaces
- based on the DICE chip family (DICE-II/Jr/Mini) from TC Applied
- Technologies.
+ Say Y here to include support for many DACs based on the DICE
+ chip family (DICE-II/Jr/Mini) from TC Applied Technologies.
+
+ At the moment, this driver supports playback only. If you
+ want to use devices that support capturing, use FFADO instead.
To compile this driver as a module, choose M here: the module
will be called snd-dice.
int key, value, vendor = -1, model = -1, err;
unsigned int category, i;
__be32 pointers[ARRAY_SIZE(min_values)];
+ __be32 tx_data[4];
__be32 version;
/*
return -ENODEV;
}
+ /* We support playback only. Let capture devices be handled by FFADO. */
+ err = snd_fw_transaction(unit, TCODE_READ_BLOCK_REQUEST,
+ DICE_PRIVATE_SPACE +
+ be32_to_cpu(pointers[2]) * 4,
+ tx_data, sizeof(tx_data), 0);
+ if (err < 0 || (tx_data[0] && tx_data[3]))
+ return -ENODEV;
+
/*
* Check that the implemented DICE driver specification major version
* number matches.