wndw.h (1590700d94ac53772491ed3103a4e8b8de01640a) wndw.h (ccd27db8c731817ef36e75de2b5fdc2e79550213)
1#ifndef __NV50_KMS_WNDW_H__
2#define __NV50_KMS_WNDW_H__
3#define nv50_wndw(p) container_of((p), struct nv50_wndw, plane)
4#include "disp.h"
5#include "atom.h"
6
7#include <nvif/notify.h>
8

--- 27 unchanged lines hidden (view full) ---

36 enum drm_plane_type, const char *name, int index,
37 const u32 *format, struct nv50_wndw **);
38void nv50_wndw_init(struct nv50_wndw *);
39void nv50_wndw_fini(struct nv50_wndw *);
40u32 nv50_wndw_flush_set(struct nv50_wndw *, u32 interlock,
41 struct nv50_wndw_atom *);
42u32 nv50_wndw_flush_clr(struct nv50_wndw *, u32 interlock, bool flush,
43 struct nv50_wndw_atom *);
1#ifndef __NV50_KMS_WNDW_H__
2#define __NV50_KMS_WNDW_H__
3#define nv50_wndw(p) container_of((p), struct nv50_wndw, plane)
4#include "disp.h"
5#include "atom.h"
6
7#include <nvif/notify.h>
8

--- 27 unchanged lines hidden (view full) ---

36 enum drm_plane_type, const char *name, int index,
37 const u32 *format, struct nv50_wndw **);
38void nv50_wndw_init(struct nv50_wndw *);
39void nv50_wndw_fini(struct nv50_wndw *);
40u32 nv50_wndw_flush_set(struct nv50_wndw *, u32 interlock,
41 struct nv50_wndw_atom *);
42u32 nv50_wndw_flush_clr(struct nv50_wndw *, u32 interlock, bool flush,
43 struct nv50_wndw_atom *);
44void nv50_wndw_ntfy_enable(struct nv50_wndw *, struct nv50_wndw_atom *);
44int nv50_wndw_wait_armed(struct nv50_wndw *, struct nv50_wndw_atom *);
45
46struct nv50_wndw_func {
47 int (*acquire)(struct nv50_wndw *, struct nv50_wndw_atom *asyw,
48 struct nv50_head_atom *asyh);
49 void (*release)(struct nv50_wndw *, struct nv50_wndw_atom *asyw,
50 struct nv50_head_atom *asyh);
51 void (*prepare)(struct nv50_wndw *, struct nv50_head_atom *asyh,
52 struct nv50_wndw_atom *asyw);
53
54 void (*sema_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
55 void (*sema_clr)(struct nv50_wndw *);
45int nv50_wndw_wait_armed(struct nv50_wndw *, struct nv50_wndw_atom *);
46
47struct nv50_wndw_func {
48 int (*acquire)(struct nv50_wndw *, struct nv50_wndw_atom *asyw,
49 struct nv50_head_atom *asyh);
50 void (*release)(struct nv50_wndw *, struct nv50_wndw_atom *asyw,
51 struct nv50_head_atom *asyh);
52 void (*prepare)(struct nv50_wndw *, struct nv50_head_atom *asyh,
53 struct nv50_wndw_atom *asyw);
54
55 void (*sema_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
56 void (*sema_clr)(struct nv50_wndw *);
57 void (*ntfy_reset)(struct nouveau_bo *, u32 offset);
56 void (*ntfy_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
57 void (*ntfy_clr)(struct nv50_wndw *);
58 void (*ntfy_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
59 void (*ntfy_clr)(struct nv50_wndw *);
58 int (*ntfy_wait_begun)(struct nv50_wndw *, struct nv50_wndw_atom *);
60 int (*ntfy_wait_begun)(struct nouveau_bo *, u32 offset,
61 struct nvif_device *);
59 void (*image_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
60 void (*image_clr)(struct nv50_wndw *);
61 void (*lut)(struct nv50_wndw *, struct nv50_wndw_atom *);
62
63 u32 (*update)(struct nv50_wndw *, u32 interlock);
64};
65
66extern const struct drm_plane_funcs nv50_wndw;
67
68struct nv50_wimm_func {
69 void (*point)(struct nv50_wndw *, struct nv50_wndw_atom *);
70
71 u32 (*update)(struct nv50_wndw *, u32 interlock);
72};
73#endif
62 void (*image_set)(struct nv50_wndw *, struct nv50_wndw_atom *);
63 void (*image_clr)(struct nv50_wndw *);
64 void (*lut)(struct nv50_wndw *, struct nv50_wndw_atom *);
65
66 u32 (*update)(struct nv50_wndw *, u32 interlock);
67};
68
69extern const struct drm_plane_funcs nv50_wndw;
70
71struct nv50_wimm_func {
72 void (*point)(struct nv50_wndw *, struct nv50_wndw_atom *);
73
74 u32 (*update)(struct nv50_wndw *, u32 interlock);
75};
76#endif