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

Commit 9b4702b0 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: firewire-lib: add a kernel API to start AMDTP streams in AMDTP domain



This commit adds a kernel API to start a couple of isochronous contexts
for some AMDTP streams.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 157a53ee
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -1185,6 +1185,30 @@ int amdtp_domain_add_stream(struct amdtp_domain *d, struct amdtp_stream *s,
}
EXPORT_SYMBOL_GPL(amdtp_domain_add_stream);

/**
 * amdtp_domain_start - start sending packets for isoc context in the domain.
 * @d: the AMDTP domain.
 */
int amdtp_domain_start(struct amdtp_domain *d)
{
	struct amdtp_stream *s;
	int err = 0;

	list_for_each_entry(s, &d->streams, list) {
		err = amdtp_stream_start(s, s->channel, s->speed);
		if (err < 0)
			break;
	}

	if (err < 0) {
		list_for_each_entry(s, &d->streams, list)
			amdtp_stream_stop(s);
	}

	return err;
}
EXPORT_SYMBOL_GPL(amdtp_domain_start);

/**
 * amdtp_domain_stop - stop sending packets for isoc context in the same domain.
 * @d: the AMDTP domain to which the isoc contexts belong.
+1 −0
Original line number Diff line number Diff line
@@ -282,6 +282,7 @@ void amdtp_domain_destroy(struct amdtp_domain *d);
int amdtp_domain_add_stream(struct amdtp_domain *d, struct amdtp_stream *s,
			    int channel, int speed);

int amdtp_domain_start(struct amdtp_domain *d);
void amdtp_domain_stop(struct amdtp_domain *d);

#endif