| /* SPDX-License-Identifier: MIT */ |
| #ifndef __NVIF_DEVICE_H__ |
| #define __NVIF_DEVICE_H__ |
| |
| #include <nvif/object.h> |
| #include <nvif/cl0080.h> |
| #include <nvif/user.h> |
| |
| struct nvif_device { |
| struct nvif_object object; |
| struct nv_device_info_v0 info; |
| |
| struct nvif_fifo_runlist { |
| u64 engines; |
| } *runlist; |
| int runlists; |
| |
| struct nvif_user user; |
| }; |
| |
| int nvif_device_ctor(struct nvif_object *, const char *name, u32 handle, |
| s32 oclass, void *, u32, struct nvif_device *); |
| void nvif_device_dtor(struct nvif_device *); |
| u64 nvif_device_time(struct nvif_device *); |
| |
| /*XXX*/ |
| #include <subdev/bios.h> |
| #include <subdev/fb.h> |
| #include <subdev/bar.h> |
| #include <subdev/gpio.h> |
| #include <subdev/clk.h> |
| #include <subdev/i2c.h> |
| #include <subdev/timer.h> |
| #include <subdev/therm.h> |
| #include <subdev/pci.h> |
| |
| #define nvxx_device(a) ({ \ |
| struct nvif_device *_device = (a); \ |
| struct { \ |
| struct nvkm_object object; \ |
| struct nvkm_device *device; \ |
| } *_udevice = _device->object.priv; \ |
| _udevice->device; \ |
| }) |
| #define nvxx_bios(a) nvxx_device(a)->bios |
| #define nvxx_fb(a) nvxx_device(a)->fb |
| #define nvxx_gpio(a) nvxx_device(a)->gpio |
| #define nvxx_clk(a) nvxx_device(a)->clk |
| #define nvxx_i2c(a) nvxx_device(a)->i2c |
| #define nvxx_iccsense(a) nvxx_device(a)->iccsense |
| #define nvxx_therm(a) nvxx_device(a)->therm |
| #define nvxx_volt(a) nvxx_device(a)->volt |
| |
| #include <engine/fifo.h> |
| #include <engine/gr.h> |
| |
| #define nvxx_gr(a) nvxx_device(a)->gr |
| #endif |