diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-13 09:34:53 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-13 10:09:38 +0100 |
commit | 5de1b74d64f807b59c730871d4cb171484db9780 (patch) | |
tree | 39a4eca409890b339b75d817a16957683f3d0137 /src/intel.h | |
parent | 3a7c25ff8ddd45c9d9eca5cc2228552847ca9e7d (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.h | 8 |
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); |