linux/drivers/gpu/drm/nouveau/dispnv50/disp.h

#ifndef __NV50_KMS_H__
#define __NV50_KMS_H__
#include <linux/workqueue.h>
#include <nvif/mem.h>
#include <nvif/push.h>

#include "nouveau_display.h"

struct nv50_msto;
struct nouveau_encoder;

struct nv50_disp {};

static inline struct nv50_disp *
nv50_disp(struct drm_device *dev)
{}

struct nv50_disp_interlock {};

void corec37d_ntfy_init(struct nouveau_bo *, u32);

void head907d_olut_load(struct drm_color_lut *, int size, void __iomem *);

struct nv50_chan {};

struct nv50_dmac {};

struct nv50_outp_atom {};

int nv50_dmac_create(struct nouveau_drm *,
		     const s32 *oclass, u8 head, void *data, u32 size,
		     s64 syncbuf, struct nv50_dmac *dmac);
void nv50_dmac_destroy(struct nv50_dmac *);

/*
 * For normal encoders this just returns the encoder. For active MST encoders,
 * this returns the real outp that's driving displays on the topology.
 * Inactive MST encoders return NULL, since they would have no real outp to
 * return anyway.
 */
struct nouveau_encoder *nv50_real_outp(struct drm_encoder *encoder);

extern const u64 disp50xx_modifiers[];
extern const u64 disp90xx_modifiers[];
extern const u64 wndwc57e_modifiers[];
#endif