blob: f5df8b30c599366abcda890ec3c3288cb4747c39 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Ben Skeggsc39f4722015-01-13 22:13:14 +10002#ifndef __NVIF_CLIENT_H__
3#define __NVIF_CLIENT_H__
4
5#include <nvif/object.h>
6
7struct nvif_client {
Ben Skeggsa01ca782015-08-20 14:54:15 +10008 struct nvif_object object;
Ben Skeggsc39f4722015-01-13 22:13:14 +10009 const struct nvif_driver *driver;
Ben Skeggs99d4d362015-08-20 14:54:16 +100010 u64 version;
Ben Skeggsa01ca782015-08-20 14:54:15 +100011 u8 route;
Ben Skeggsc39f4722015-01-13 22:13:14 +100012 bool super;
13};
14
Ben Skeggs04b88672016-05-22 20:35:16 +100015int nvif_client_init(struct nvif_client *parent, const char *name, u64 device,
Ben Skeggsc39f4722015-01-13 22:13:14 +100016 struct nvif_client *);
17void nvif_client_fini(struct nvif_client *);
Ben Skeggsc39f4722015-01-13 22:13:14 +100018int nvif_client_ioctl(struct nvif_client *, void *, u32);
19int nvif_client_suspend(struct nvif_client *);
20int nvif_client_resume(struct nvif_client *);
21
22/*XXX*/
23#include <core/client.h>
Ben Skeggsa01ca782015-08-20 14:54:15 +100024#define nvxx_client(a) ({ \
25 struct nvif_client *_client = (a); \
Ben Skeggs24bd0932015-08-20 14:54:18 +100026 (struct nvkm_client *)_client->object.priv; \
Ben Skeggsc39f4722015-01-13 22:13:14 +100027})
Ben Skeggsc39f4722015-01-13 22:13:14 +100028#endif