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