1 #ifndef __NOUVEAU_DISPLAY_H__
2 #define __NOUVEAU_DISPLAY_H__
6 #include "nouveau_drm.h"
8 struct nouveau_framebuffer
{
9 struct drm_framebuffer base
;
10 struct nouveau_bo
*nvbo
;
11 struct nouveau_vma vma
;
17 static inline struct nouveau_framebuffer
*
18 nouveau_framebuffer(struct drm_framebuffer
*fb
)
20 return container_of(fb
, struct nouveau_framebuffer
, base
);
23 int nouveau_framebuffer_init(struct drm_device
*, struct nouveau_framebuffer
*,
24 struct drm_mode_fb_cmd2
*, struct nouveau_bo
*);
26 struct nouveau_page_flip_state
{
27 struct list_head head
;
28 struct drm_pending_vblank_event
*event
;
29 int crtc
, bpp
, pitch
, x
, y
;
33 struct nouveau_display
{
35 void (*dtor
)(struct drm_device
*);
36 int (*init
)(struct drm_device
*);
37 void (*fini
)(struct drm_device
*);
39 struct drm_property
*dithering_mode
;
40 struct drm_property
*dithering_depth
;
41 struct drm_property
*underscan_property
;
42 struct drm_property
*underscan_hborder_property
;
43 struct drm_property
*underscan_vborder_property
;
44 /* not really hue and saturation: */
45 struct drm_property
*vibrant_hue_property
;
46 struct drm_property
*color_vibrance_property
;
49 static inline struct nouveau_display
*
50 nouveau_display(struct drm_device
*dev
)
52 return nouveau_drm(dev
)->display
;
55 int nouveau_display_create(struct drm_device
*dev
);
56 void nouveau_display_destroy(struct drm_device
*dev
);
57 int nouveau_display_init(struct drm_device
*dev
);
58 void nouveau_display_fini(struct drm_device
*dev
);
59 int nouveau_display_suspend(struct drm_device
*dev
);
60 void nouveau_display_resume(struct drm_device
*dev
);
62 int nouveau_crtc_page_flip(struct drm_crtc
*crtc
, struct drm_framebuffer
*fb
,
63 struct drm_pending_vblank_event
*event
);
64 int nouveau_finish_page_flip(struct nouveau_channel
*,
65 struct nouveau_page_flip_state
*);
67 int nouveau_display_dumb_create(struct drm_file
*, struct drm_device
*,
68 struct drm_mode_create_dumb
*args
);
69 int nouveau_display_dumb_map_offset(struct drm_file
*, struct drm_device
*,
70 u32 handle
, u64
*offset
);
71 int nouveau_display_dumb_destroy(struct drm_file
*, struct drm_device
*,
74 void nouveau_hdmi_mode_set(struct drm_encoder
*, struct drm_display_mode
*);
76 #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
77 extern int nouveau_backlight_init(struct drm_device
*);
78 extern void nouveau_backlight_exit(struct drm_device
*);
81 nouveau_backlight_init(struct drm_device
*dev
)
87 nouveau_backlight_exit(struct drm_device
*dev
) {