1ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs#ifndef __NV40_GRAPH_H__
2ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs#define __NV40_GRAPH_H__
3ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs
4c98b81946827fe04c36bfa6bb376ffa739b0c2d0Ilia Mirkin#include <core/device.h>
5c98b81946827fe04c36bfa6bb376ffa739b0c2d0Ilia Mirkin#include <core/gpuobj.h>
6c98b81946827fe04c36bfa6bb376ffa739b0c2d0Ilia Mirkin
7ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs/* returns 1 if device is one of the nv4x using the 0x4497 object class,
8ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs * helpful to determine a number of other hardware features
9ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs */
10ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggsstatic inline int
11ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggsnv44_graph_class(void *priv)
12ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs{
13ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs	struct nouveau_device *device = nv_device(priv);
14ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs
15ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs	if ((device->chipset & 0xf0) == 0x60)
16ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs		return 1;
17ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs
18ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs	return !(0x0baf & (1 << (device->chipset & 0x0f)));
19ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs}
20ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs
211f150b3e7a722ebfc68eec5d83a9fe1ee8d75d71Marcin Slusarzint  nv40_grctx_init(struct nouveau_device *, u32 *size);
22ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggsvoid nv40_grctx_fill(struct nouveau_device *, struct nouveau_gpuobj *);
23ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs
24ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69Ben Skeggs#endif
25