1 #ifndef __NVKM_DEVICE_H__
2 #define __NVKM_DEVICE_H__
3 #include <core/engine.h>
4 #include <core/event.h>
7 struct nvkm_engine engine
;
11 struct platform_device
*platformdev
;
14 struct nvkm_event event
;
38 struct nvkm_oclass
*oclass
[NVDEV_SUBDEV_NR
];
39 struct nvkm_object
*subdev
[NVDEV_SUBDEV_NR
];
42 struct notifier_block nb
;
46 struct nvkm_bios
*bios
;
49 struct nvkm_devinit
*devinit
;
51 struct nvkm_fuse
*fuse
;
52 struct nvkm_gpio
*gpio
;
54 struct nvkm_subdev
*ibus
;
55 struct nvkm_instmem
*imem
;
59 struct nvkm_subdev
*mxm
;
61 struct nvkm_therm
*therm
;
62 struct nvkm_timer
*timer
;
63 struct nvkm_volt
*volt
;
65 struct nvkm_engine
*bsp
;
66 struct nvkm_engine
*ce
[3];
67 struct nvkm_engine
*cipher
;
68 struct nvkm_disp
*disp
;
69 struct nvkm_dmaeng
*dma
;
70 struct nvkm_fifo
*fifo
;
72 struct nvkm_engine
*ifb
;
73 struct nvkm_engine
*me
;
74 struct nvkm_engine
*mpeg
;
75 struct nvkm_engine
*msenc
;
76 struct nvkm_engine
*mspdec
;
77 struct nvkm_engine
*msppp
;
78 struct nvkm_engine
*msvld
;
80 struct nvkm_engine
*sec
;
82 struct nvkm_engine
*vic
;
83 struct nvkm_engine
*vp
;
86 struct nvkm_device
*nvkm_device_find(u64 name
);
87 int nvkm_device_list(u64
*name
, int size
);
89 struct nvkm_device
*nv_device(void *obj
);
92 nv_device_match(struct nvkm_device
*device
, u16 dev
, u16 ven
, u16 sub
)
94 return device
->pdev
->device
== dev
&&
95 device
->pdev
->subsystem_vendor
== ven
&&
96 device
->pdev
->subsystem_device
== sub
;
100 nv_device_is_pci(struct nvkm_device
*device
)
102 return device
->pdev
!= NULL
;
106 nv_device_is_cpu_coherent(struct nvkm_device
*device
)
108 return (!IS_ENABLED(CONFIG_ARM
) && nv_device_is_pci(device
));
111 static inline struct device
*
112 nv_device_base(struct nvkm_device
*device
)
114 return nv_device_is_pci(device
) ? &device
->pdev
->dev
:
115 &device
->platformdev
->dev
;
119 nv_device_resource_start(struct nvkm_device
*device
, unsigned int bar
);
122 nv_device_resource_len(struct nvkm_device
*device
, unsigned int bar
);
125 nv_device_get_irq(struct nvkm_device
*device
, bool stall
);
127 struct platform_device
;
134 #define nvkm_device_create(p,t,n,s,c,d,u) \
135 nvkm_device_create_((void *)(p), (t), (n), (s), (c), (d), \
136 sizeof(**u), (void **)u)
137 int nvkm_device_create_(void *, enum nv_bus_type type
, u64 name
,
138 const char *sname
, const char *cfg
, const char *dbg
,
This page took 0.033983 seconds and 6 git commands to generate.