]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
vt(4): Merge several bug fixes and improvements
authordumbbell <dumbbell@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Sep 2014 14:38:18 +0000 (14:38 +0000)
committerdumbbell <dumbbell@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Sep 2014 14:38:18 +0000 (14:38 +0000)
commit836f2b8727b004bb71f5a6ca1585a29cc7a10fab
tree39c1eb5f69b5197e87d789cdc00f0b3f1c497016
parent07986821e69eddbbd2608e6dc3f3ead52be80b24
vt(4): Merge several bug fixes and improvements

SVN revisions in this MFC:
  269779 270705 270706 271180 271250 271253 271682 271684

Detailed commit list:

r269779:
  fbd: Fix a bug where vt_fb_attach() success would be considered a failure

  vt_fb_attach() currently always returns 0, but it could return a code
  defined in errno.h. However, it doesn't return a CN_* code. So checking
  its return value against CN_DEAD (which is 0) is incorrect, and in this
  case, a success becomes a failure.

  The consequence was unimportant, because the caller (drm_fb_helper.c)
  would only log an error message in this case. The console would still
  work.

  Approved by: nwhitehorn

r270705:
  vt(4): Add cngrab() and cnungrab() callbacks

  They are used when a panic occurs or when entering a DDB session for
  instance.

  cngrab() forces a vt-switch to the console window, no matter if the
  original window is another terminal or an X session. However, cnungrab()
  doesn't vt-switch back to the original window currently.

r270706:
  drm: Don't "taskqueue" vt-switch if under DDB/panic situation

  If DDB is active, we can't use a taskqueue thread to switch away from
  the X window, because this thread can't run.

  Reviewed by: ray@
  Approved by: ray@

r271180:
  vt_vga: vd_setpixel_t and vd_drawrect_t are noop in text mode

r271250:
  vt(4): Change the terminal and buffer sizes, even without a font

  This fixes a bug where scroll lock would not work for tty #0 when using
  vt_vga's textmode. The reason was that this window is created with a
  static 256x100 buffer, larger than the real size of 80x25.

  Now, in vt_change_font() and vt_compute_drawable_area(), we still
  perform operations even of the window has no font loaded (this is the
  case in textmode here vw->vw_font == NULL). One of these operation
  resizes the buffer accordingly.

  In vt_compute_drawable_area(), we take the terminal size as is (ie.
  80x25) for the drawable area.

  The font argument to vt_set_border() is removed (it was never used) and
  the code now uses the computed drawable area instead of re-doing its own
  calculation.

  Reported by: Harald Schmalzbauer <h.schmalzbauer_omnilan.de>
  Tested by: Harald Schmalzbauer <h.schmalzbauer_omnilan.de>

r271253:
  pause_sbt(): Take the cold path (ie. use DELAY()) if KDB is active

  This fixes a panic in the i915 driver when one uses debug.kdb.enter=1
  under vt(4).

  PR: 193269
  Reported by: emaste@
  Submitted by: avg@

r271682:
  vt(4): Fix a LOR which occurs during a call to vt_upgrade()

  Reported by: kib@
  Review: https://reviews.freebsd.org/D785
  Reviewed by: ray@
  Approved by: ray@

r271684:
  vt(4): Use vt_fb_drawrect() and vt_fb_setpixel() in all vt_fb-derivative

  Review: https://reviews.freebsd.org/D789
  Reviewed by: nwhitehorn
  Approved by: nwhitehorn

Approved by: re (gjb)

git-svn-id: svn://svn.freebsd.org/base/stable/10@271769 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
13 files changed:
sys/dev/drm2/drm_fb_helper.c
sys/dev/fb/fbd.c
sys/dev/vt/hw/efifb/efifb.c
sys/dev/vt/hw/fb/vt_early_fb.c
sys/dev/vt/hw/fb/vt_fb.c
sys/dev/vt/hw/fb/vt_fb.h
sys/dev/vt/hw/vga/vt_vga.c
sys/dev/vt/vt.h
sys/dev/vt/vt_core.c
sys/kern/kern_synch.c
sys/kern/subr_terminal.c
sys/powerpc/ps3/ps3_syscons.c
sys/sys/terminal.h