modesetting: add set/drop master around VT switch

This commit is contained in:
Dave Airlie 2012-04-17 11:50:40 +01:00
parent 001dec8980
commit 00c663a3bc

View File

@ -756,10 +756,12 @@ static void
LeaveVT(int scrnIndex, int flags) LeaveVT(int scrnIndex, int flags)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
modesettingPtr ms = modesettingPTR(pScrn);
xf86_hide_cursors(pScrn); xf86_hide_cursors(pScrn);
pScrn->vtSema = FALSE; pScrn->vtSema = FALSE;
drmDropMaster(ms->fd);
} }
/* /*
@ -773,6 +775,11 @@ EnterVT(int scrnIndex, int flags)
pScrn->vtSema = TRUE; pScrn->vtSema = TRUE;
if (drmSetMaster(ms->fd)) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "drmSetMaster failed: %s\n",
strerror(errno));
}
if (!drmmode_set_desired_modes(pScrn, &ms->drmmode)) if (!drmmode_set_desired_modes(pScrn, &ms->drmmode))
return FALSE; return FALSE;
@ -815,8 +822,6 @@ CloseScreen(int scrnIndex, ScreenPtr pScreen)
pScreen->CreateScreenResources = ms->createScreenResources; pScreen->CreateScreenResources = ms->createScreenResources;
pScreen->BlockHandler = ms->BlockHandler; pScreen->BlockHandler = ms->BlockHandler;
drmDropMaster(ms->fd);
pScrn->vtSema = FALSE; pScrn->vtSema = FALSE;
pScreen->CloseScreen = ms->CloseScreen; pScreen->CloseScreen = ms->CloseScreen;
return (*pScreen->CloseScreen) (scrnIndex, pScreen); return (*pScreen->CloseScreen) (scrnIndex, pScreen);