linux/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h

/* SPDX-License-Identifier: MIT */
#ifndef __NVKM_SUBDEV_H__
#define __NVKM_SUBDEV_H__
#include <core/device.h>

enum nvkm_subdev_type {};

struct nvkm_subdev {};

struct nvkm_subdev_func {};

extern const char *nvkm_subdev_type[NVKM_SUBDEV_NR];
int nvkm_subdev_new_(const struct nvkm_subdev_func *, struct nvkm_device *, enum nvkm_subdev_type,
		     int inst, struct nvkm_subdev **);
void __nvkm_subdev_ctor(const struct nvkm_subdev_func *, struct nvkm_device *,
			enum nvkm_subdev_type, int inst, struct nvkm_subdev *);

static inline void
nvkm_subdev_ctor(const struct nvkm_subdev_func *func, struct nvkm_device *device,
		 enum nvkm_subdev_type type, int inst, struct nvkm_subdev *subdev)
{}

void nvkm_subdev_disable(struct nvkm_device *, enum nvkm_subdev_type, int inst);
void nvkm_subdev_del(struct nvkm_subdev **);
int  nvkm_subdev_ref(struct nvkm_subdev *);
void nvkm_subdev_unref(struct nvkm_subdev *);
int  nvkm_subdev_preinit(struct nvkm_subdev *);
int  nvkm_subdev_oneinit(struct nvkm_subdev *);
int  nvkm_subdev_init(struct nvkm_subdev *);
int  nvkm_subdev_fini(struct nvkm_subdev *, bool suspend);
int  nvkm_subdev_info(struct nvkm_subdev *, u64, u64 *);
void nvkm_subdev_intr(struct nvkm_subdev *);

/* subdev logging */
#define nvkm_printk_ok(s,u,l)
#define nvkm_printk___(s,u,l,p,f,a...)
#define nvkm_printk__(s,l,p,f,a...)
#define nvkm_printk_(s,l,p,f,a...)
#define nvkm_printk(s,l,p,f,a...)
#define nvkm_fatal(s,f,a...)
#define nvkm_error(s,f,a...)
#define nvkm_warn(s,f,a...)
#define nvkm_info(s,f,a...)
#define nvkm_debug(s,f,a...)
#define nvkm_trace(s,f,a...)
#define nvkm_spam(s,f,a...)

#define nvkm_error_ratelimited(s,f,a...)
#endif