mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-21 21:59:32 +07:00
ALSA: dice: restrict the driver to playback-only devices
At the moment, this driver supports only playback, while FFADO supports (only) full-duplex devices. So, prevent conflicts by not claiming devices that would be better handled by FFADO. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
parent
a471fcde8c
commit
b20be8de1b
@ -12,14 +12,16 @@ config SND_FIREWIRE_LIB
|
|||||||
depends on SND_PCM
|
depends on SND_PCM
|
||||||
|
|
||||||
config SND_DICE
|
config SND_DICE
|
||||||
tristate "DICE devices (EXPERIMENTAL)"
|
tristate "DICE-based DACs (EXPERIMENTAL)"
|
||||||
select SND_HWDEP
|
select SND_HWDEP
|
||||||
select SND_PCM
|
select SND_PCM
|
||||||
select SND_FIREWIRE_LIB
|
select SND_FIREWIRE_LIB
|
||||||
help
|
help
|
||||||
Say Y here to include support for many FireWire audio interfaces
|
Say Y here to include support for many DACs based on the DICE
|
||||||
based on the DICE chip family (DICE-II/Jr/Mini) from TC Applied
|
chip family (DICE-II/Jr/Mini) from TC Applied Technologies.
|
||||||
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
|
To compile this driver as a module, choose M here: the module
|
||||||
will be called snd-dice.
|
will be called snd-dice.
|
||||||
|
@ -1128,6 +1128,7 @@ static int dice_interface_check(struct fw_unit *unit)
|
|||||||
int key, value, vendor = -1, model = -1, err;
|
int key, value, vendor = -1, model = -1, err;
|
||||||
unsigned int category, i;
|
unsigned int category, i;
|
||||||
__be32 pointers[ARRAY_SIZE(min_values)];
|
__be32 pointers[ARRAY_SIZE(min_values)];
|
||||||
|
__be32 tx_data[4];
|
||||||
__be32 version;
|
__be32 version;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1171,6 +1172,14 @@ static int dice_interface_check(struct fw_unit *unit)
|
|||||||
return -ENODEV;
|
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
|
* Check that the implemented DICE driver specification major version
|
||||||
* number matches.
|
* number matches.
|
||||||
|
Loading…
Reference in New Issue
Block a user