linux/drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h
<<
>>
Prefs
   1#ifndef __NVKM_FALCON_H__
   2#define __NVKM_FALCON_H__
   3#define nvkm_falcon(p) container_of((p), struct nvkm_falcon, engine)
   4#include <core/engine.h>
   5struct nvkm_fifo_chan;
   6
   7struct nvkm_falcon {
   8        const struct nvkm_falcon_func *func;
   9        struct nvkm_engine engine;
  10
  11        u32 addr;
  12        u8  version;
  13        u8  secret;
  14
  15        struct nvkm_memory *core;
  16        bool external;
  17
  18        struct {
  19                u32 limit;
  20                u32 *data;
  21                u32  size;
  22        } code;
  23
  24        struct {
  25                u32 limit;
  26                u32 *data;
  27                u32  size;
  28        } data;
  29};
  30
  31int nvkm_falcon_new_(const struct nvkm_falcon_func *, struct nvkm_device *,
  32                     int index, bool enable, u32 addr, struct nvkm_engine **);
  33
  34struct nvkm_falcon_func {
  35        struct {
  36                u32 *data;
  37                u32  size;
  38        } code;
  39        struct {
  40                u32 *data;
  41                u32  size;
  42        } data;
  43        u32 pmc_enable;
  44        void (*init)(struct nvkm_falcon *);
  45        void (*intr)(struct nvkm_falcon *, struct nvkm_fifo_chan *);
  46        struct nvkm_sclass sclass[];
  47};
  48#endif
  49