Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 2 | #ifndef __NVIF_CLIENT_H__ |
| 3 | #define __NVIF_CLIENT_H__ |
| 4 | |
| 5 | #include <nvif/object.h> |
| 6 | |
| 7 | struct nvif_client { |
Ben Skeggs | a01ca78 | 2015-08-20 14:54:15 +1000 | [diff] [blame] | 8 | struct nvif_object object; |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 9 | const struct nvif_driver *driver; |
Ben Skeggs | 99d4d36 | 2015-08-20 14:54:16 +1000 | [diff] [blame] | 10 | u64 version; |
Ben Skeggs | a01ca78 | 2015-08-20 14:54:15 +1000 | [diff] [blame] | 11 | u8 route; |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 12 | bool super; |
| 13 | }; |
| 14 | |
Ben Skeggs | 04b8867 | 2016-05-22 20:35:16 +1000 | [diff] [blame] | 15 | int nvif_client_init(struct nvif_client *parent, const char *name, u64 device, |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 16 | struct nvif_client *); |
| 17 | void nvif_client_fini(struct nvif_client *); |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 18 | int nvif_client_ioctl(struct nvif_client *, void *, u32); |
| 19 | int nvif_client_suspend(struct nvif_client *); |
| 20 | int nvif_client_resume(struct nvif_client *); |
| 21 | |
| 22 | /*XXX*/ |
| 23 | #include <core/client.h> |
Ben Skeggs | a01ca78 | 2015-08-20 14:54:15 +1000 | [diff] [blame] | 24 | #define nvxx_client(a) ({ \ |
| 25 | struct nvif_client *_client = (a); \ |
Ben Skeggs | 24bd093 | 2015-08-20 14:54:18 +1000 | [diff] [blame] | 26 | (struct nvkm_client *)_client->object.priv; \ |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 27 | }) |
Ben Skeggs | c39f472 | 2015-01-13 22:13:14 +1000 | [diff] [blame] | 28 | #endif |