summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-06-11 10:29:25 +1000
committerDave Airlie <airlied@redhat.com>2013-06-11 10:29:25 +1000
commita62d5e60896166be88fcf3778921b8d10baec2c1 (patch)
tree0b73c8c95d1b96a4b659ba369a5b816ced567654
parentcba29fd8c2f605ed66718aa3a6b5833deb5d4cf9 (diff)
modesetting: fix adjust frame crash
When SDL called this it was totally broken, actually hook up to the underlying drmmode function. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64808 Thanks to Peter Wu <lekensteyn@gmail.com> for harassing me. Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/driver.c13
-rw-r--r--src/drmmode_display.c2
-rw-r--r--src/drmmode_display.h2
3 files changed, 5 insertions, 12 deletions
diff --git a/src/driver.c b/src/driver.c
index 742aadd..c3d78be 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -956,16 +956,9 @@ static void
AdjustFrame(ADJUST_FRAME_ARGS_DECL)
{
SCRN_INFO_PTR(arg);
- xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
- xf86OutputPtr output = config->output[config->compat_output];
- xf86CrtcPtr crtc = output->crtc;
-
- if (crtc && crtc->enabled) {
- crtc->funcs->mode_set(crtc, pScrn->currentMode, pScrn->currentMode, x,
- y);
- crtc->x = output->initial_x + x;
- crtc->y = output->initial_y + y;
- }
+ modesettingPtr ms = modesettingPTR(pScrn);
+
+ drmmode_adjust_frame(pScrn, &ms->drmmode, x, y);
}
static void
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 2dc7576..ce90cea 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1267,7 +1267,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp)
return TRUE;
}
-void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y, int flags)
+void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y)
{
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
xf86OutputPtr output = config->output[config->compat_output];
diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index 1d5522b..adf4b99 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -118,7 +118,7 @@ Bool drmmode_SetSlaveBO(PixmapPtr ppix,
#endif
extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp);
-void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y, int flags);
+void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y);
extern Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode);
extern Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn);