Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b20be8de authored by Clemens Ladisch's avatar Clemens Ladisch
Browse files

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: default avatarClemens Ladisch <clemens@ladisch.de>
parent a471fcde
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -12,14 +12,16 @@ config SND_FIREWIRE_LIB
	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.
+9 −0
Original line number Diff line number Diff line
@@ -1128,6 +1128,7 @@ static int dice_interface_check(struct fw_unit *unit)
	int key, value, vendor = -1, model = -1, err;
	unsigned int category, i;
	__be32 pointers[ARRAY_SIZE(min_values)];
	__be32 tx_data[4];
	__be32 version;

	/*
@@ -1171,6 +1172,14 @@ static int dice_interface_check(struct fw_unit *unit)
			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.