1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Tegra host1x Channel 4 * 5 * Copyright (c) 2010-2013, NVIDIA Corporation. 6 */ 7 8 #ifndef __HOST1X_CHANNEL_H 9 #define __HOST1X_CHANNEL_H 10 11 #include <linux/io.h> 12 #include <linux/kref.h> 13 14 #include "cdma.h" 15 16 struct host1x; 17 struct host1x_channel; 18 19 struct host1x_channel_list { 20 struct host1x_channel *channels; 21 unsigned long *allocated_channels; 22 }; 23 24 struct host1x_channel { 25 struct kref refcount; 26 unsigned int id; 27 struct mutex submitlock; 28 void __iomem *regs; 29 struct host1x_client *client; 30 struct device *dev; 31 struct host1x_cdma cdma; 32 }; 33 34 /* channel list operations */ 35 int host1x_channel_list_init(struct host1x_channel_list *chlist, 36 unsigned int num_channels); 37 void host1x_channel_list_free(struct host1x_channel_list *chlist); 38 struct host1x_channel *host1x_channel_get_index(struct host1x *host, 39 unsigned int index); 40 41 #endif 42