xf86-video-intel: 2 commits - src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Aug 14 00:43:13 PDT 2013


 src/sna/sna_driver.c |   33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

New commits:
commit 394978867edf3746c285491db6be41abfe325d87
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Aug 14 08:38:52 2013 +0100

    sna: Check that we successfully install the required hosting midlayer
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index c27deb6..83a5bba 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -430,6 +430,13 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 		goto cleanup;
 	}
 
+	/* Sanity check */
+	if (hosted() && (sna->flags & SNA_IS_HOSTED) == 0) {
+		xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+			   "Failed to setup hosted device.\n");
+		goto cleanup;
+	}
+
 	preferred_depth = sna->info->gen < 030 ? 15 : 24;
 	if (!fb_supports_depth(fd, preferred_depth))
 		preferred_depth = 24;
commit 3d818c0a36919add462c05d01a64b297f693fa69
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Aug 14 08:34:46 2013 +0100

    sna: unwrap old modesetting API whilst hosted
    
    If we are hosted, then we do not have our own modesetting backend and
    calling it results in fireworks. So leave the old modesetting entry
    points for the hosting midlayer to control.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 7f2c0ac..c27deb6 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -1080,6 +1080,15 @@ static Bool sna_pm_event(SCRN_ARG_TYPE arg, pmEvent event, Bool undo)
 	return TRUE;
 }
 
+static Bool sna_enter_vt__hosted(VT_FUNC_ARGS_DECL)
+{
+	return TRUE;
+}
+
+static void sna_leave_vt__hosted(VT_FUNC_ARGS_DECL)
+{
+}
+
 Bool sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
 {
 	DBG(("%s: entity_num=%d\n", __FUNCTION__, entity_num));
@@ -1110,13 +1119,18 @@ Bool sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
 
 	scrn->PreInit = sna_pre_init;
 	scrn->ScreenInit = sna_screen_init;
-	scrn->SwitchMode = sna_switch_mode;
-	scrn->AdjustFrame = sna_adjust_frame;
-	scrn->EnterVT = sna_enter_vt;
-	scrn->LeaveVT = sna_leave_vt;
+	if (!hosted()) {
+		scrn->SwitchMode = sna_switch_mode;
+		scrn->AdjustFrame = sna_adjust_frame;
+		scrn->EnterVT = sna_enter_vt;
+		scrn->LeaveVT = sna_leave_vt;
+		scrn->ValidMode = sna_valid_mode;
+		scrn->PMEvent = sna_pm_event;
+	} else {
+		scrn->EnterVT = sna_enter_vt__hosted;
+		scrn->LeaveVT = sna_leave_vt__hosted;
+	}
 	scrn->FreeScreen = sna_free_screen;
-	scrn->ValidMode = sna_valid_mode;
-	scrn->PMEvent = sna_pm_event;
 
 	xf86SetEntitySharable(entity_num);
 	xf86SetEntityInstanceForScreen(scrn, entity_num,


More information about the xorg-commit mailing list