summaryrefslogtreecommitdiff
path: root/src/intel.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-07-13 09:34:53 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-07-13 10:09:38 +0100
commit5de1b74d64f807b59c730871d4cb171484db9780 (patch)
tree39a4eca409890b339b75d817a16957683f3d0137 /src/intel.h
parent3a7c25ff8ddd45c9d9eca5cc2228552847ca9e7d (diff)
modes: There may be more than one crtc and output... DESTROY THEM ALL!
In order to cleanup all CRTCs and outputs on shutdown, we need to keep a list of the individual structures and iterate over that list on shutdown. Also, the output and crtcs are configured just once and not for each screen generation so move the shutdown to the termination and not on CloseScreen. Oops. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/intel.h')
-rw-r--r--src/intel.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/intel.h b/src/intel.h
index 5342dca1..2f43b0e9 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -132,7 +132,7 @@ list_is_empty(struct list *head)
#ifndef container_of
#define container_of(ptr, type, member) \
- (type *)((char *)(ptr) - (char *) &((type *)0)->member)
+ ((type *)((char *)(ptr) - (char *) &((type *)0)->member))
#endif
#ifndef list_entry
@@ -278,8 +278,7 @@ typedef struct intel_screen_private {
long FbMapSize;
long GTTMapSize;
- xf86OutputPtr output;
- xf86CrtcPtr crtc;
+ void *modes;
drm_intel_bo *front_buffer;
dri_bufmgr *bufmgr;
@@ -438,7 +437,8 @@ enum {
};
extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
-extern void drmmode_close_screen(intel_screen_private *intel);
+extern void drmmode_remove_fb(intel_screen_private *intel);
+extern void drmmode_fini(intel_screen_private *intel);
extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
extern int drmmode_output_dpms_status(xf86OutputPtr output);
extern Bool drmmode_do_pageflip(ScreenPtr screen, dri_bo *new_front, void *data);