2015-01-14 04:40:22 +00:00
|
|
|
#ifndef __NVKM_BUS_H__
|
|
|
|
#define __NVKM_BUS_H__
|
2012-11-04 00:01:53 +00:00
|
|
|
#include <core/subdev.h>
|
|
|
|
|
2015-01-14 04:40:22 +00:00
|
|
|
struct nvkm_bus {
|
2015-08-20 04:54:20 +00:00
|
|
|
const struct nvkm_bus_func *func;
|
2015-08-20 04:54:06 +00:00
|
|
|
struct nvkm_subdev subdev;
|
2012-11-04 00:01:53 +00:00
|
|
|
};
|
|
|
|
|
2013-10-15 00:49:39 +00:00
|
|
|
/* interface to sequencer */
|
2015-01-14 04:40:22 +00:00
|
|
|
struct nvkm_hwsq;
|
2015-08-20 04:54:20 +00:00
|
|
|
int nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **);
|
2015-01-14 04:40:22 +00:00
|
|
|
int nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec);
|
|
|
|
void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data);
|
|
|
|
void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data);
|
|
|
|
void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data);
|
|
|
|
void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec);
|
2015-08-20 04:54:20 +00:00
|
|
|
|
|
|
|
int nv04_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
|
|
|
|
int nv31_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
|
|
|
|
int nv50_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
|
|
|
|
int g94_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
|
|
|
|
int gf100_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
|
2012-11-04 00:01:53 +00:00
|
|
|
#endif
|