| 1 |
|
| 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 | #include <linux/mutex.h>
|
| 14 |
|
| 15 | #include "cdma.h"
|
| 16 |
|
| 17 | struct host1x;
|
| 18 | struct host1x_channel;
|
| 19 |
|
| 20 | struct host1x_channel_list {
|
| 21 | struct host1x_channel *channels;
|
| 22 |
|
| 23 | struct mutex lock;
|
| 24 | unsigned long *allocated_channels;
|
| 25 | };
|
| 26 |
|
| 27 | struct host1x_channel {
|
| 28 | struct kref refcount;
|
| 29 | unsigned int id;
|
| 30 | struct mutex submitlock;
|
| 31 | void __iomem *regs;
|
| 32 | struct host1x_client *client;
|
| 33 | struct device *dev;
|
| 34 | struct host1x_cdma cdma;
|
| 35 | };
|
| 36 |
|
| 37 |
|
| 38 | int host1x_channel_list_init(struct host1x_channel_list *chlist,
|
| 39 | unsigned int num_channels);
|
| 40 | void host1x_channel_list_free(struct host1x_channel_list *chlist);
|
| 41 | struct host1x_channel *host1x_channel_get_index(struct host1x *host,
|
| 42 | unsigned int index);
|
| 43 | void host1x_channel_stop_all(struct host1x *host);
|
| 44 |
|
| 45 | #endif
|