nouveau: switch to libdrm_nouveau-2.0
[mesa.git] / src / gallium / winsys / nouveau / drm / nouveau_drm_winsys.c
1 #include "pipe/p_context.h"
2 #include "pipe/p_state.h"
3 #include "util/u_format.h"
4 #include "util/u_memory.h"
5 #include "util/u_inlines.h"
6
7 #include "nouveau_drm_public.h"
8
9 #include "nouveau/nouveau_winsys.h"
10 #include "nouveau/nouveau_screen.h"
11
12 struct pipe_screen *
13 nouveau_drm_screen_create(int fd)
14 {
15 struct nouveau_device *dev = NULL;
16 struct pipe_screen *(*init)(struct nouveau_device *);
17 int ret;
18
19 ret = nouveau_device_wrap(fd, 0, &dev);
20 if (ret)
21 return NULL;
22
23 switch (dev->chipset & 0xf0) {
24 #if 0
25 case 0x30:
26 case 0x40:
27 case 0x60:
28 init = nv30_screen_create;
29 break;
30 #endif
31 case 0x50:
32 case 0x80:
33 case 0x90:
34 case 0xa0:
35 init = nv50_screen_create;
36 break;
37 case 0xc0:
38 case 0xd0:
39 init = nvc0_screen_create;
40 break;
41 default:
42 debug_printf("%s: unknown chipset nv%02x\n", __func__,
43 dev->chipset);
44 return NULL;
45 }
46
47 return init(dev);
48 }