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

Commit 157a53ee authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: firewire-lib: add a kernel API to add AMDTP stream into AMDTP domain



This commit adds a kernel API to insert AMDTP stream to list in AMDTP
domain.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6261f90b
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -1159,6 +1159,32 @@ void amdtp_domain_destroy(struct amdtp_domain *d)
}
EXPORT_SYMBOL_GPL(amdtp_domain_destroy);

/**
 * amdtp_domain_add_stream - register isoc context into the domain.
 * @d: the AMDTP domain.
 * @s: the AMDTP stream.
 * @channel: the isochronous channel on the bus.
 * @speed: firewire speed code.
 */
int amdtp_domain_add_stream(struct amdtp_domain *d, struct amdtp_stream *s,
			    int channel, int speed)
{
	struct amdtp_stream *tmp;

	list_for_each_entry(tmp, &d->streams, list) {
		if (s == tmp)
			return -EBUSY;
	}

	list_add(&s->list, &d->streams);

	s->channel = channel;
	s->speed = speed;

	return 0;
}
EXPORT_SYMBOL_GPL(amdtp_domain_add_stream);

/**
 * amdtp_domain_stop - stop sending packets for isoc context in the same domain.
 * @d: the AMDTP domain to which the isoc contexts belong.
+5 −0
Original line number Diff line number Diff line
@@ -172,6 +172,8 @@ struct amdtp_stream {
	amdtp_stream_process_ctx_payloads_t process_ctx_payloads;

	// For domain.
	int channel;
	int speed;
	struct list_head list;
};

@@ -277,6 +279,9 @@ struct amdtp_domain {
int amdtp_domain_init(struct amdtp_domain *d);
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);

void amdtp_domain_stop(struct amdtp_domain *d);

#endif