The namespace of NVKM is being changed to nvkm_ instead of nouveau_, which will be used for the DRM part of the driver. This is being done in order to make it very clear as to what part of the driver a given symbol belongs to, and as a minor step towards splitting the DRM driver out to be able to stand on its own (for virt). Because there's already a large amount of churn here anyway, this is as good a time as any to also switch to NVIDIA's device and chipset naming to ease collaboration with them. A comparison of objdump disassemblies proves no code changes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __NVKM_FALCON_H__
 | 
						|
#define __NVKM_FALCON_H__
 | 
						|
#include <core/engctx.h>
 | 
						|
 | 
						|
struct nvkm_falcon_chan {
 | 
						|
	struct nvkm_engctx base;
 | 
						|
};
 | 
						|
 | 
						|
#define nvkm_falcon_context_create(p,e,c,g,s,a,f,d)                         \
 | 
						|
	nvkm_engctx_create((p), (e), (c), (g), (s), (a), (f), (d))
 | 
						|
#define nvkm_falcon_context_destroy(d)                                      \
 | 
						|
	nvkm_engctx_destroy(&(d)->base)
 | 
						|
#define nvkm_falcon_context_init(d)                                         \
 | 
						|
	nvkm_engctx_init(&(d)->base)
 | 
						|
#define nvkm_falcon_context_fini(d,s)                                       \
 | 
						|
	nvkm_engctx_fini(&(d)->base, (s))
 | 
						|
 | 
						|
#define _nvkm_falcon_context_ctor _nvkm_engctx_ctor
 | 
						|
#define _nvkm_falcon_context_dtor _nvkm_engctx_dtor
 | 
						|
#define _nvkm_falcon_context_init _nvkm_engctx_init
 | 
						|
#define _nvkm_falcon_context_fini _nvkm_engctx_fini
 | 
						|
#define _nvkm_falcon_context_rd32 _nvkm_engctx_rd32
 | 
						|
#define _nvkm_falcon_context_wr32 _nvkm_engctx_wr32
 | 
						|
 | 
						|
struct nvkm_falcon_data {
 | 
						|
	bool external;
 | 
						|
};
 | 
						|
 | 
						|
#include <core/engine.h>
 | 
						|
 | 
						|
struct nvkm_falcon {
 | 
						|
	struct nvkm_engine base;
 | 
						|
 | 
						|
	u32 addr;
 | 
						|
	u8  version;
 | 
						|
	u8  secret;
 | 
						|
 | 
						|
	struct nvkm_gpuobj *core;
 | 
						|
	bool external;
 | 
						|
 | 
						|
	struct {
 | 
						|
		u32 limit;
 | 
						|
		u32 *data;
 | 
						|
		u32  size;
 | 
						|
	} code;
 | 
						|
 | 
						|
	struct {
 | 
						|
		u32 limit;
 | 
						|
		u32 *data;
 | 
						|
		u32  size;
 | 
						|
	} data;
 | 
						|
};
 | 
						|
 | 
						|
#define nv_falcon(priv) (&(priv)->base)
 | 
						|
 | 
						|
#define nvkm_falcon_create(p,e,c,b,d,i,f,r)                                 \
 | 
						|
	nvkm_falcon_create_((p), (e), (c), (b), (d), (i), (f),              \
 | 
						|
			       sizeof(**r),(void **)r)
 | 
						|
#define nvkm_falcon_destroy(p)                                              \
 | 
						|
	nvkm_engine_destroy(&(p)->base)
 | 
						|
#define nvkm_falcon_init(p) ({                                              \
 | 
						|
	struct nvkm_falcon *falcon = (p);                                   \
 | 
						|
	_nvkm_falcon_init(nv_object(falcon));                               \
 | 
						|
})
 | 
						|
#define nvkm_falcon_fini(p,s) ({                                            \
 | 
						|
	struct nvkm_falcon *falcon = (p);                                   \
 | 
						|
	_nvkm_falcon_fini(nv_object(falcon), (s));                          \
 | 
						|
})
 | 
						|
 | 
						|
int nvkm_falcon_create_(struct nvkm_object *, struct nvkm_object *,
 | 
						|
			   struct nvkm_oclass *, u32, bool, const char *,
 | 
						|
			   const char *, int, void **);
 | 
						|
 | 
						|
void nvkm_falcon_intr(struct nvkm_subdev *subdev);
 | 
						|
 | 
						|
#define _nvkm_falcon_dtor _nvkm_engine_dtor
 | 
						|
int  _nvkm_falcon_init(struct nvkm_object *);
 | 
						|
int  _nvkm_falcon_fini(struct nvkm_object *, bool);
 | 
						|
u32  _nvkm_falcon_rd32(struct nvkm_object *, u64);
 | 
						|
void _nvkm_falcon_wr32(struct nvkm_object *, u64, u32);
 | 
						|
#endif
 |