#include "head.h"
#include "base.h"
#include "core.h"
#include "curs.h"
#include "ovly.h"
#include "crc.h"
#include <nvif/class.h>
#include <nvif/event.h>
#include <nvif/cl0046.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_vblank.h>
#include "nouveau_connector.h"
void
nv50_head_flush_clr(struct nv50_head *head,
struct nv50_head_atom *asyh, bool flush)
{ … }
void
nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh)
{ … }
void
nv50_head_flush_set(struct nv50_head *head, struct nv50_head_atom *asyh)
{ … }
static void
nv50_head_atomic_check_procamp(struct nv50_head_atom *armh,
struct nv50_head_atom *asyh,
struct nouveau_conn_atom *asyc)
{ … }
static void
nv50_head_atomic_check_dither(struct nv50_head_atom *armh,
struct nv50_head_atom *asyh,
struct nouveau_conn_atom *asyc)
{ … }
static void
nv50_head_atomic_check_view(struct nv50_head_atom *armh,
struct nv50_head_atom *asyh,
struct nouveau_conn_atom *asyc)
{ … }
static int
nv50_head_atomic_check_lut(struct nv50_head *head,
struct nv50_head_atom *asyh)
{ … }
static void
nv50_head_atomic_check_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
{ … }
static int
nv50_head_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state)
{ … }
static const struct drm_crtc_helper_funcs
nv50_head_help = …;
static void
nv50_head_atomic_destroy_state(struct drm_crtc *crtc,
struct drm_crtc_state *state)
{ … }
static struct drm_crtc_state *
nv50_head_atomic_duplicate_state(struct drm_crtc *crtc)
{ … }
static void
nv50_head_reset(struct drm_crtc *crtc)
{ … }
static int
nv50_head_late_register(struct drm_crtc *crtc)
{ … }
static void
nv50_head_destroy(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs
nv50_head_func = …;
static const struct drm_crtc_funcs
nvd9_head_func = …;
static int
nv50_head_vblank_handler(struct nvif_event *event, void *repv, u32 repc)
{ … }
struct nv50_head *
nv50_head_create(struct drm_device *dev, int index)
{ … }