uterm: vt: keep graphics mode during VT switch

If we open a VT, we assume that we are the only user on it. Therefore, we
put it into graphics mode _once_ and keep it this way. Resetting it to
text mode is useless, as there is no other user and every VT has its own
modes.

This also fixes page-flip issues during VT-switches which caused the
text-mode fbdev layer to claim one vertical-sync for their own page-flip
only for us to override it immediately after it is done.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-11-05 14:47:38 +01:00
parent 8e837167c5
commit 614fe3dc81

View File

@ -204,9 +204,6 @@ static void real_sig_enter(struct uterm_vt *vt, struct signalfd_siginfo *info)
log_debug("enter VT %d %p due to VT signal", vt->real_num, vt); log_debug("enter VT %d %p due to VT signal", vt->real_num, vt);
ioctl(vt->real_fd, VT_RELDISP, VT_ACKACQ); ioctl(vt->real_fd, VT_RELDISP, VT_ACKACQ);
if (ioctl(vt->real_fd, KDSETMODE, KD_GRAPHICS))
log_warn("cannot set graphics mode on vt %p (%d): %m", vt,
errno);
vt_call_activate(vt); vt_call_activate(vt);
} }
@ -246,8 +243,6 @@ static void real_sig_leave(struct uterm_vt *vt, struct signalfd_siginfo *info)
return; return;
} }
ioctl(vt->real_fd, VT_RELDISP, 1); ioctl(vt->real_fd, VT_RELDISP, 1);
if (ioctl(vt->real_fd, KDSETMODE, KD_TEXT))
log_warn("cannot set text mode on vt %p (%d): %m", vt, errno);
} }
static void real_vt_input(struct ev_fd *fd, int mask, void *data) static void real_vt_input(struct ev_fd *fd, int mask, void *data)