cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

head.h (4306B)


      1#ifndef __NV50_KMS_HEAD_H__
      2#define __NV50_KMS_HEAD_H__
      3#define nv50_head(c) container_of((c), struct nv50_head, base.base)
      4#include <linux/workqueue.h>
      5
      6#include "disp.h"
      7#include "atom.h"
      8#include "crc.h"
      9#include "lut.h"
     10
     11#include "nouveau_crtc.h"
     12#include "nouveau_encoder.h"
     13
     14struct nv50_head {
     15	const struct nv50_head_func *func;
     16	struct nouveau_crtc base;
     17	struct nv50_crc crc;
     18	struct nv50_lut olut;
     19	struct nv50_msto *msto;
     20};
     21
     22struct nv50_head *nv50_head_create(struct drm_device *, int index);
     23void nv50_head_flush_set(struct nv50_head *head, struct nv50_head_atom *asyh);
     24void nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh);
     25void nv50_head_flush_clr(struct nv50_head *head,
     26			 struct nv50_head_atom *asyh, bool flush);
     27
     28struct nv50_head_func {
     29	int (*view)(struct nv50_head *, struct nv50_head_atom *);
     30	int (*mode)(struct nv50_head *, struct nv50_head_atom *);
     31	bool (*olut)(struct nv50_head *, struct nv50_head_atom *, int);
     32	bool (*ilut_check)(int size);
     33	bool olut_identity;
     34	int  olut_size;
     35	int (*olut_set)(struct nv50_head *, struct nv50_head_atom *);
     36	int (*olut_clr)(struct nv50_head *);
     37	void (*core_calc)(struct nv50_head *, struct nv50_head_atom *);
     38	int (*core_set)(struct nv50_head *, struct nv50_head_atom *);
     39	int (*core_clr)(struct nv50_head *);
     40	int (*curs_layout)(struct nv50_head *, struct nv50_wndw_atom *,
     41			   struct nv50_head_atom *);
     42	int (*curs_format)(struct nv50_head *, struct nv50_wndw_atom *,
     43			   struct nv50_head_atom *);
     44	int (*curs_set)(struct nv50_head *, struct nv50_head_atom *);
     45	int (*curs_clr)(struct nv50_head *);
     46	int (*base)(struct nv50_head *, struct nv50_head_atom *);
     47	int (*ovly)(struct nv50_head *, struct nv50_head_atom *);
     48	int (*dither)(struct nv50_head *, struct nv50_head_atom *);
     49	int (*procamp)(struct nv50_head *, struct nv50_head_atom *);
     50	int (*or)(struct nv50_head *, struct nv50_head_atom *);
     51	void (*static_wndw_map)(struct nv50_head *, struct nv50_head_atom *);
     52};
     53
     54extern const struct nv50_head_func head507d;
     55int head507d_view(struct nv50_head *, struct nv50_head_atom *);
     56int head507d_mode(struct nv50_head *, struct nv50_head_atom *);
     57bool head507d_olut(struct nv50_head *, struct nv50_head_atom *, int);
     58void head507d_core_calc(struct nv50_head *, struct nv50_head_atom *);
     59int head507d_core_clr(struct nv50_head *);
     60int head507d_curs_layout(struct nv50_head *, struct nv50_wndw_atom *,
     61			 struct nv50_head_atom *);
     62int head507d_curs_format(struct nv50_head *, struct nv50_wndw_atom *,
     63			 struct nv50_head_atom *);
     64int head507d_base(struct nv50_head *, struct nv50_head_atom *);
     65int head507d_ovly(struct nv50_head *, struct nv50_head_atom *);
     66int head507d_dither(struct nv50_head *, struct nv50_head_atom *);
     67int head507d_procamp(struct nv50_head *, struct nv50_head_atom *);
     68
     69extern const struct nv50_head_func head827d;
     70
     71extern const struct nv50_head_func head907d;
     72int head907d_view(struct nv50_head *, struct nv50_head_atom *);
     73int head907d_mode(struct nv50_head *, struct nv50_head_atom *);
     74bool head907d_olut(struct nv50_head *, struct nv50_head_atom *, int);
     75bool head907d_ilut_check(int size);
     76int head907d_olut_set(struct nv50_head *, struct nv50_head_atom *);
     77int head907d_olut_clr(struct nv50_head *);
     78int head907d_core_set(struct nv50_head *, struct nv50_head_atom *);
     79int head907d_core_clr(struct nv50_head *);
     80int head907d_curs_set(struct nv50_head *, struct nv50_head_atom *);
     81int head907d_curs_clr(struct nv50_head *);
     82int head907d_ovly(struct nv50_head *, struct nv50_head_atom *);
     83int head907d_procamp(struct nv50_head *, struct nv50_head_atom *);
     84int head907d_or(struct nv50_head *, struct nv50_head_atom *);
     85
     86extern const struct nv50_head_func head917d;
     87int head917d_curs_layout(struct nv50_head *, struct nv50_wndw_atom *,
     88			 struct nv50_head_atom *);
     89
     90extern const struct nv50_head_func headc37d;
     91int headc37d_view(struct nv50_head *, struct nv50_head_atom *);
     92int headc37d_curs_format(struct nv50_head *, struct nv50_wndw_atom *,
     93			 struct nv50_head_atom *);
     94int headc37d_curs_set(struct nv50_head *, struct nv50_head_atom *);
     95int headc37d_curs_clr(struct nv50_head *);
     96int headc37d_dither(struct nv50_head *, struct nv50_head_atom *);
     97void headc37d_static_wndw_map(struct nv50_head *, struct nv50_head_atom *);
     98
     99extern const struct nv50_head_func headc57d;
    100#endif