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

Commit 3ff7e8f0 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: firewire-lib: Add 'direction' member to 'amdtp_stream' structure



This patch adds 'direction' member to amdtp_stream structure to indicate its
direction. This patch also adds 'direction' argument to amdtp_stream_init()
function to determine its direction.

The amdtp_stream_init() function is exported and used by firewire-speakers and
dice so this patch also affects them.

This patch just add them. Actual implementation will be done by followed
patches.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b445db44
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -53,12 +53,14 @@ static void pcm_period_tasklet(unsigned long data);
 * amdtp_stream_init - initialize an AMDTP stream structure
 * @s: the AMDTP stream to initialize
 * @unit: the target of the stream
 * @dir: the direction of stream
 * @flags: the packet transmission method to use
 */
int amdtp_stream_init(struct amdtp_stream *s, struct fw_unit *unit,
		      enum cip_flags flags)
		      enum amdtp_stream_direction dir, enum cip_flags flags)
{
	s->unit = fw_unit_get(unit);
	s->direction = dir;
	s->flags = flags;
	s->context = ERR_PTR(-1);
	mutex_init(&s->mutex);
+7 −0
Original line number Diff line number Diff line
@@ -48,9 +48,15 @@ struct fw_unit;
struct fw_iso_context;
struct snd_pcm_substream;

enum amdtp_stream_direction {
	AMDTP_OUT_STREAM = 0,
	AMDTP_IN_STREAM
};

struct amdtp_stream {
	struct fw_unit *unit;
	enum cip_flags flags;
	enum amdtp_stream_direction direction;
	struct fw_iso_context *context;
	struct mutex mutex;

@@ -85,6 +91,7 @@ struct amdtp_stream {
};

int amdtp_stream_init(struct amdtp_stream *s, struct fw_unit *unit,
		      enum amdtp_stream_direction dir,
		      enum cip_flags flags);
void amdtp_stream_destroy(struct amdtp_stream *s);

+1 −1
Original line number Diff line number Diff line
@@ -1360,7 +1360,7 @@ static int dice_probe(struct fw_unit *unit, const struct ieee1394_device_id *id)
		goto err_owner;
	dice->resources.channels_mask = 0x00000000ffffffffuLL;

	err = amdtp_stream_init(&dice->stream, unit,
	err = amdtp_stream_init(&dice->stream, unit, AMDTP_OUT_STREAM,
				CIP_BLOCKING | CIP_HI_DUALWIRE);
	if (err < 0)
		goto err_resources;
+2 −1
Original line number Diff line number Diff line
@@ -683,7 +683,8 @@ static int fwspk_probe(struct fw_unit *unit,
	if (err < 0)
		goto err_unit;

	err = amdtp_stream_init(&fwspk->stream, unit, CIP_NONBLOCKING);
	err = amdtp_stream_init(&fwspk->stream, unit, AMDTP_OUT_STREAM,
				CIP_NONBLOCKING);
	if (err < 0)
		goto err_connection;