]> Git Repo - linux.git/commitdiff
Merge tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
authorLinus Torvalds <[email protected]>
Tue, 13 Dec 2016 19:18:24 +0000 (11:18 -0800)
committerLinus Torvalds <[email protected]>
Tue, 13 Dec 2016 19:18:24 +0000 (11:18 -0800)
Pull tty/serial updates from Greg KH:
 "Here's the tty/serial patchset for 4.10-rc1.

  It's been a quiet kernel cycle for this subsystem, just a small number
  of changes. A few new serial drivers, and some cleanups to the old
  vgacon logic, and other minor serial driver changes as well.

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
  serial: 8250_mid fix calltrace when hotplug 8250 serial controller
  console: Move userspace I/O out of console_lock to fix lockdep warning
  tty: nozomi: avoid sprintf buffer overflow
  serial: 8250_pci: Detach low-level driver during PCI error recovery
  serial: core: don't check port twice in a row
  mxs-auart: count FIFO overrun errors
  serial: 8250_dw: Add support for IrDA SIR mode
  serial: 8250: Expose set_ldisc function
  serial: 8250: Add IrDA to UART capabilities
  serial: 8250_dma: power off device after TX is done
  serial: 8250_port: export serial8250_rpm_{get|put}_tx()
  serial: sunsu: Free memory when probe fails
  serial: sunhv: Free memory when remove() is called
  vt: fix Scroll Lock LED trigger name
  tty: typo in comments in drivers/tty/vt/keyboard.c
  tty: amba-pl011: Add earlycon support for SBSA UART
  tty: nozomi: use permission-specific DEVICE_ATTR variants
  tty: serial: Make the STM32 serial port depend on it's arch
  serial: ifx6x60: Free memory when probe fails
  serial: ioc4_serial: Free memory when kzalloc fails during probe
  ...

1  2 
Documentation/admin-guide/vga-softcursor.rst
include/linux/console.h

index a663a745cff4bffd827ba8a06f9e9302c481b4c8,0000000000000000000000000000000000000000..f52175457e60ed5313dd61de46504a50472a4903
mode 100644,000000..100644
--- /dev/null
@@@ -1,66 -1,0 +1,62 @@@
- Linux now has some ability to manipulate cursor appearance. Normally, you
- can set the size of hardware cursor (and also work around some ugly bugs in
- those miserable Trident cards [#f1]_. You can now play a few new tricks:
- you can make your cursor look
- like a non-blinking red block, make it inverse background of the character it's
- over or to highlight that character and still choose whether the original
- hardware cursor should remain visible or not.  There may be other things I have
- never thought of.
 +Software cursor for VGA
 +=======================
 +
 +by Pavel Machek <[email protected]>
 +and Martin Mares <[email protected]>
 +
- .. [#f1] see ``#define TRIDENT_GLITCH`` in ``drivers/video/vgacon.c``.
++Linux now has some ability to manipulate cursor appearance.  Normally,
++you can set the size of hardware cursor.  You can now play a few new
++tricks: you can make your cursor look like a non-blinking red block,
++make it inverse background of the character it's over or to highlight
++that character and still choose whether the original hardware cursor
++should remain visible or not.  There may be other things I have never
++thought of.
 +
 +The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence
 +where 1, 2 and 3 are parameters described below. If you omit any of them,
 +they will default to zeroes.
 +
 +first Parameter
 +      specifies cursor size::
 +
 +              0=default
 +              1=invisible
 +              2=underline,
 +              ...
 +              8=full block
 +              + 16 if you want the software cursor to be applied
 +              + 32 if you want to always change the background color
 +              + 64 if you dislike having the background the same as the
 +                   foreground.
 +
 +      Highlights are ignored for the last two flags.
 +
 +second parameter
 +      selects character attribute bits you want to change
 +      (by simply XORing them with the value of this parameter). On standard
 +      VGA, the high four bits specify background and the low four the
 +      foreground. In both groups, low three bits set color (as in normal
 +      color codes used by the console) and the most significant one turns
 +      on highlight (or sometimes blinking -- it depends on the configuration
 +      of your VGA).
 +
 +third parameter
 +      consists of character attribute bits you want to set.
 +
 +      Bit setting takes place before bit toggling, so you can simply clear a
 +      bit by including it in both the set mask and the toggle mask.
 +
 +Examples
 +--------
 +
 +To get normal blinking underline, use::
 +
 +      echo -e '\033[?2c'
 +
 +To get blinking block, use::
 +
 +      echo -e '\033[?6c'
 +
 +To get red non-blinking block, use::
 +
 +      echo -e '\033[?17;0;64c'
diff --combined include/linux/console.h
index d530c4627e54ef1091be820a78d3616166ca8906,508b012bd5bd13d7419e380214fabf8d7baec6b3..9c26c6685587b5901ddb93230734e2e38450b6ac
@@@ -28,9 -28,17 +28,17 @@@ struct tty_struct
  #define VT100ID "\033[?1;2c"
  #define VT102ID "\033[?6c"
  
+ enum con_scroll {
+       SM_UP,
+       SM_DOWN,
+ };
  /**
   * struct consw - callbacks for consoles
   *
+  * @con_scroll: move lines from @top to @bottom in direction @dir by @lines.
+  *            Return true if no generic handling should be done.
+  *            Invoked by csi_M and printing to the console.
   * @con_set_palette: sets the palette of the console to @table (optional)
   * @con_scrolldelta: the contents of the console should be scrolled by @lines.
   *                 Invoked by user. (optional)
@@@ -44,7 -52,9 +52,9 @@@ struct consw 
        void    (*con_putc)(struct vc_data *, int, int, int);
        void    (*con_putcs)(struct vc_data *, const unsigned short *, int, int, int);
        void    (*con_cursor)(struct vc_data *, int);
-       int     (*con_scroll)(struct vc_data *, int, int, int, int);
+       bool    (*con_scroll)(struct vc_data *, unsigned int top,
+                       unsigned int bottom, enum con_scroll dir,
+                       unsigned int lines);
        int     (*con_switch)(struct vc_data *);
        int     (*con_blank)(struct vc_data *, int, int);
        int     (*con_font_set)(struct vc_data *, struct console_font *, unsigned);
@@@ -99,10 -109,6 +109,6 @@@ static inline int con_debug_leave(void
  }
  #endif
  
- /* scroll */
- #define SM_UP       (1)
- #define SM_DOWN     (2)
  /* cursor */
  #define CM_DRAW     (1)
  #define CM_ERASE    (2)
@@@ -173,6 -179,12 +179,6 @@@ static inline void console_sysfs_notify
  #endif
  extern bool console_suspend_enabled;
  
 -#ifdef CONFIG_OF
 -extern void console_set_by_of(void);
 -#else
 -static inline void console_set_by_of(void) {}
 -#endif
 -
  /* Suspend and resume console messages over PM events */
  extern void suspend_console(void);
  extern void resume_console(void);
This page took 0.105212 seconds and 4 git commands to generate.