1 #ifndef __NOUVEAU_SUBDEV_DEVICE_H__
2 #define __NOUVEAU_SUBDEV_DEVICE_H__
3 
4 #include <core/device.h>
5 
6 struct platform_device;
7 
8 enum nv_bus_type {
9 	NOUVEAU_BUS_PCI,
10 	NOUVEAU_BUS_PLATFORM,
11 };
12 
13 #define nouveau_device_create(p,t,n,s,c,d,u)                                   \
14 	nouveau_device_create_((void *)(p), (t), (n), (s), (c), (d),           \
15 			       sizeof(**u), (void **)u)
16 
17 int  nouveau_device_create_(void *, enum nv_bus_type type, u64 name,
18 			    const char *sname, const char *cfg, const char *dbg,
19 			    int, void **);
20 
21 int nv04_identify(struct nouveau_device *);
22 int nv10_identify(struct nouveau_device *);
23 int nv20_identify(struct nouveau_device *);
24 int nv30_identify(struct nouveau_device *);
25 int nv40_identify(struct nouveau_device *);
26 int nv50_identify(struct nouveau_device *);
27 int nvc0_identify(struct nouveau_device *);
28 int nve0_identify(struct nouveau_device *);
29 int gm100_identify(struct nouveau_device *);
30 
31 struct nouveau_device *nouveau_device_find(u64 name);
32 
33 #ifdef __NetBSD__
34 void	nouveau_devices_init(void);
35 void	nouveau_devices_fini(void);
36 #endif
37 
38 #endif
39