Merge tag 'tty-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver updates from Greg KH: "Here is the big tty and serial driver pull request for 4.19-rc1. It's not all that big, just a number of small serial driver updates and fixes, along with some better vt handling for unicode characters for those using braille terminals. All of these patches have been in linux-next for a long time with no reported issues" * tag 'tty-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (73 commits) tty: serial: 8250: Revert NXP SC16C2552 workaround serial: 8250_exar: Read INT0 from slave device, too tty: rocket: Fix possible buffer overwrite on register_PCI serial: 8250_dw: Add ACPI support for uart on Broadcom SoC serial: 8250_dw: always set baud rate in dw8250_set_termios dt-bindings: serial: Add binding for uartlite tty: serial: uartlite: Add support for suspend and resume tty: serial: uartlite: Add clock adaptation tty: serial: uartlite: Add structure for private data serial: sh-sci: Improve support for separate TEI and DRI interrupts serial: sh-sci: Remove SCIx_RZ_SCIFA_REGTYPE serial: sh-sci: Allow for compressed SCIF address serial: sh-sci: Improve interrupts description serial: 8250: Use cached port name directly in messages serial: 8250_exar: Drop unused variable in pci_xr17v35x_setup() vt: drop unused struct vt_struct vt: avoid a VLA in the unicode screen scroll function vt: add /dev/vcsu* to devices.txt vt: coherence validation code for the unicode screen buffer vt: selection: take screen contents from uniscr if available ...
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
#include <linux/vt.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
struct vt_struct;
|
||||
struct uni_pagedir;
|
||||
struct uni_screen;
|
||||
|
||||
#define NPAR 16
|
||||
|
||||
@@ -140,6 +140,7 @@ struct vc_data {
|
||||
struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */
|
||||
struct uni_pagedir *vc_uni_pagedir;
|
||||
struct uni_pagedir **vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */
|
||||
struct uni_screen *vc_uni_screen; /* unicode screen content */
|
||||
bool vc_panic_force_write; /* when oops/panic this VC can accept forced output/blanking */
|
||||
/* additional information is in vt_kern.h */
|
||||
};
|
||||
@@ -148,7 +149,7 @@ struct vc {
|
||||
struct vc_data *d;
|
||||
struct work_struct SAK_work;
|
||||
|
||||
/* might add scrmem, vt_struct, kbd at some time,
|
||||
/* might add scrmem, kbd at some time,
|
||||
to have everything in one place - the disadvantage
|
||||
would be that vc_cons etc can no longer be static */
|
||||
};
|
||||
|
@@ -32,6 +32,7 @@ extern unsigned char default_blu[];
|
||||
|
||||
extern unsigned short *screen_pos(struct vc_data *vc, int w_offset, int viewed);
|
||||
extern u16 screen_glyph(struct vc_data *vc, int offset);
|
||||
extern u32 screen_glyph_unicode(struct vc_data *vc, int offset);
|
||||
extern void complement_pos(struct vc_data *vc, int offset);
|
||||
extern void invert_screen(struct vc_data *vc, int offset, int count, int shift);
|
||||
|
||||
@@ -42,4 +43,9 @@ extern u16 vcs_scr_readw(struct vc_data *vc, const u16 *org);
|
||||
extern void vcs_scr_writew(struct vc_data *vc, u16 val, u16 *org);
|
||||
extern void vcs_scr_updated(struct vc_data *vc);
|
||||
|
||||
extern int vc_uniscr_check(struct vc_data *vc);
|
||||
extern void vc_uniscr_copy_line(struct vc_data *vc, void *dest, int viewed,
|
||||
unsigned int row, unsigned int col,
|
||||
unsigned int nr);
|
||||
|
||||
#endif
|
||||
|
@@ -160,6 +160,9 @@ extern void serial8250_do_shutdown(struct uart_port *port);
|
||||
extern void serial8250_do_pm(struct uart_port *port, unsigned int state,
|
||||
unsigned int oldstate);
|
||||
extern void serial8250_do_set_mctrl(struct uart_port *port, unsigned int mctrl);
|
||||
extern void serial8250_do_set_divisor(struct uart_port *port, unsigned int baud,
|
||||
unsigned int quot,
|
||||
unsigned int quot_frac);
|
||||
extern int fsl8250_handle_irq(struct uart_port *port);
|
||||
int serial8250_handle_irq(struct uart_port *port, unsigned int iir);
|
||||
unsigned char serial8250_rx_chars(struct uart_8250_port *up, unsigned char lsr);
|
||||
|
@@ -127,6 +127,13 @@ struct uart_port {
|
||||
struct ktermios *);
|
||||
unsigned int (*get_mctrl)(struct uart_port *);
|
||||
void (*set_mctrl)(struct uart_port *, unsigned int);
|
||||
unsigned int (*get_divisor)(struct uart_port *,
|
||||
unsigned int baud,
|
||||
unsigned int *frac);
|
||||
void (*set_divisor)(struct uart_port *,
|
||||
unsigned int baud,
|
||||
unsigned int quot,
|
||||
unsigned int quot_frac);
|
||||
int (*startup)(struct uart_port *port);
|
||||
void (*shutdown)(struct uart_port *port);
|
||||
void (*throttle)(struct uart_port *port);
|
||||
|
@@ -119,13 +119,13 @@
|
||||
|
||||
#include <linux/fs.h>
|
||||
#include <linux/wait.h>
|
||||
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* the semaphore definition
|
||||
*/
|
||||
struct ld_semaphore {
|
||||
long count;
|
||||
atomic_long_t count;
|
||||
raw_spinlock_t wait_lock;
|
||||
unsigned int wait_readers;
|
||||
struct list_head read_wait;
|
||||
|
Reference in New Issue
Block a user