brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 34f85e9 Raw
40 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef SOUND_FIREWIRE_ISO_RESOURCES_H_INCLUDED3#define SOUND_FIREWIRE_ISO_RESOURCES_H_INCLUDED4 5#include <linux/mutex.h>6#include <linux/types.h>7 8struct fw_unit;9 10/**11 * struct fw_iso_resources - manages channel/bandwidth allocation12 * @channels_mask: if the device does not support all channel numbers, set this13 *                 bit mask to something else than the default (all ones)14 *15 * This structure manages (de)allocation of isochronous resources (channel and16 * bandwidth) for one isochronous stream.17 */18struct fw_iso_resources {19	u64 channels_mask;20	/* private: */21	struct fw_unit *unit;22	struct mutex mutex;23	unsigned int channel;24	unsigned int bandwidth; /* in bandwidth units, without overhead */25	unsigned int bandwidth_overhead;26	int generation; /* in which allocation is valid */27	bool allocated;28};29 30int fw_iso_resources_init(struct fw_iso_resources *r,31			  struct fw_unit *unit);32void fw_iso_resources_destroy(struct fw_iso_resources *r);33 34int fw_iso_resources_allocate(struct fw_iso_resources *r,35			      unsigned int max_payload_bytes, int speed);36int fw_iso_resources_update(struct fw_iso_resources *r);37void fw_iso_resources_free(struct fw_iso_resources *r);38 39#endif40