aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/altera_uart.h4
-rw-r--r--include/linux/kbd_kern.h7
-rw-r--r--include/linux/keyboard.h2
-rw-r--r--include/linux/platform_data/efm32-uart.h18
-rw-r--r--include/linux/serial.h4
-rw-r--r--include/linux/serialP.h142
-rw-r--r--include/linux/serial_core.h12
-rw-r--r--include/linux/sunserialcore.h33
-rw-r--r--include/linux/tty.h6
-rw-r--r--include/linux/tty_driver.h8
-rw-r--r--include/linux/vt_kern.h26
11 files changed, 102 insertions, 160 deletions
diff --git a/include/linux/altera_uart.h b/include/linux/altera_uart.h
index a10a90791976..c022c82db7ca 100644
--- a/include/linux/altera_uart.h
+++ b/include/linux/altera_uart.h
@@ -5,8 +5,6 @@
5#ifndef __ALTUART_H 5#ifndef __ALTUART_H
6#define __ALTUART_H 6#define __ALTUART_H
7 7
8#include <linux/init.h>
9
10struct altera_uart_platform_uart { 8struct altera_uart_platform_uart {
11 unsigned long mapbase; /* Physical address base */ 9 unsigned long mapbase; /* Physical address base */
12 unsigned int irq; /* Interrupt vector */ 10 unsigned int irq; /* Interrupt vector */
@@ -14,6 +12,4 @@ struct altera_uart_platform_uart {
14 unsigned int bus_shift; /* Bus shift (address stride) */ 12 unsigned int bus_shift; /* Bus shift (address stride) */
15}; 13};
16 14
17int __init early_altera_uart_setup(struct altera_uart_platform_uart *platp);
18
19#endif /* __ALTUART_H */ 15#endif /* __ALTUART_H */
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h
index ec2d17bc1f1e..daf4a3a40ee0 100644
--- a/include/linux/kbd_kern.h
+++ b/include/linux/kbd_kern.h
@@ -7,8 +7,6 @@
7 7
8extern struct tasklet_struct keyboard_tasklet; 8extern struct tasklet_struct keyboard_tasklet;
9 9
10extern int shift_state;
11
12extern char *func_table[MAX_NR_FUNC]; 10extern char *func_table[MAX_NR_FUNC];
13extern char func_buf[]; 11extern char func_buf[];
14extern char *funcbufptr; 12extern char *funcbufptr;
@@ -65,8 +63,6 @@ struct kbd_struct {
65#define VC_META 4 /* 0 - meta, 1 - meta=prefix with ESC */ 63#define VC_META 4 /* 0 - meta, 1 - meta=prefix with ESC */
66}; 64};
67 65
68extern struct kbd_struct kbd_table[];
69
70extern int kbd_init(void); 66extern int kbd_init(void);
71 67
72extern unsigned char getledstate(void); 68extern unsigned char getledstate(void);
@@ -79,6 +75,7 @@ extern void (*kbd_ledfunc)(unsigned int led);
79extern int set_console(int nr); 75extern int set_console(int nr);
80extern void schedule_console_callback(void); 76extern void schedule_console_callback(void);
81 77
78/* FIXME: review locking for vt.c callers */
82static inline void set_leds(void) 79static inline void set_leds(void)
83{ 80{
84 tasklet_schedule(&keyboard_tasklet); 81 tasklet_schedule(&keyboard_tasklet);
@@ -142,8 +139,6 @@ static inline void chg_vc_kbd_led(struct kbd_struct * kbd, int flag)
142 139
143struct console; 140struct console;
144 141
145int getkeycode(unsigned int scancode);
146int setkeycode(unsigned int scancode, unsigned int keycode);
147void compute_shiftstate(void); 142void compute_shiftstate(void);
148 143
149/* defkeymap.c */ 144/* defkeymap.c */
diff --git a/include/linux/keyboard.h b/include/linux/keyboard.h
index 33a63f62d57f..86e5214ae735 100644
--- a/include/linux/keyboard.h
+++ b/include/linux/keyboard.h
@@ -24,8 +24,6 @@
24 24
25#ifdef __KERNEL__ 25#ifdef __KERNEL__
26struct notifier_block; 26struct notifier_block;
27extern const int NR_TYPES;
28extern const int max_vals[];
29extern unsigned short *key_maps[MAX_NR_KEYMAPS]; 27extern unsigned short *key_maps[MAX_NR_KEYMAPS];
30extern unsigned short plain_map[NR_KEYS]; 28extern unsigned short plain_map[NR_KEYS];
31 29
diff --git a/include/linux/platform_data/efm32-uart.h b/include/linux/platform_data/efm32-uart.h
new file mode 100644
index 000000000000..ed0e975b3c54
--- /dev/null
+++ b/include/linux/platform_data/efm32-uart.h
@@ -0,0 +1,18 @@
1/*
2 *
3 *
4 */
5#ifndef __LINUX_PLATFORM_DATA_EFM32_UART_H__
6#define __LINUX_PLATFORM_DATA_EFM32_UART_H__
7
8#include <linux/types.h>
9
10/**
11 * struct efm32_uart_pdata
12 * @location: pinmux location for the I/O pins (to be written to the ROUTE
13 * register)
14 */
15struct efm32_uart_pdata {
16 u8 location;
17};
18#endif /* ifndef __LINUX_PLATFORM_DATA_EFM32_UART_H__ */
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 3d86517fe7d5..441980ecc4e5 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -152,8 +152,8 @@ struct serial_uart_config {
152#define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE) 152#define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
153 153
154#define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1) 154#define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
155#define ASYNC_USR_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI| \ 155#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
156 ASYNC_CALLOUT_NOHUP|ASYNC_SPD_SHI|ASYNC_LOW_LATENCY) 156 ASYNC_LOW_LATENCY)
157#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI) 157#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
158#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI) 158#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
159#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI) 159#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
diff --git a/include/linux/serialP.h b/include/linux/serialP.h
deleted file mode 100644
index e811a615f696..000000000000
--- a/include/linux/serialP.h
+++ /dev/null
@@ -1,142 +0,0 @@
1/*
2 * Private header file for the (dumb) serial driver
3 *
4 * Copyright (C) 1997 by Theodore Ts'o.
5 *
6 * Redistribution of this file is permitted under the terms of the GNU
7 * Public License (GPL)
8 */
9
10#ifndef _LINUX_SERIALP_H
11#define _LINUX_SERIALP_H
12
13/*
14 * This is our internal structure for each serial port's state.
15 *
16 * Many fields are paralleled by the structure used by the serial_struct
17 * structure.
18 *
19 * For definitions of the flags field, see tty.h
20 */
21
22#include <linux/termios.h>
23#include <linux/workqueue.h>
24#include <linux/interrupt.h>
25#include <linux/circ_buf.h>
26#include <linux/wait.h>
27
28struct serial_state {
29 int magic;
30 int baud_base;
31 unsigned long port;
32 int irq;
33 int flags;
34 int hub6;
35 int type;
36 int line;
37 int revision; /* Chip revision (950) */
38 int xmit_fifo_size;
39 int custom_divisor;
40 int count;
41 u8 *iomem_base;
42 u16 iomem_reg_shift;
43 unsigned short close_delay;
44 unsigned short closing_wait; /* time to wait before closing */
45 struct async_icount icount;
46 int io_type;
47 struct async_struct *info;
48 struct pci_dev *dev;
49};
50
51struct async_struct {
52 int magic;
53 unsigned long port;
54 int hub6;
55 int flags;
56 int xmit_fifo_size;
57 struct serial_state *state;
58 struct tty_struct *tty;
59 int read_status_mask;
60 int ignore_status_mask;
61 int timeout;
62 int quot;
63 int x_char; /* xon/xoff character */
64 int close_delay;
65 unsigned short closing_wait;
66 unsigned short closing_wait2; /* obsolete */
67 int IER; /* Interrupt Enable Register */
68 int MCR; /* Modem control register */
69 int LCR; /* Line control register */
70 int ACR; /* 16950 Additional Control Reg. */
71 unsigned long event;
72 unsigned long last_active;
73 int line;
74 int blocked_open; /* # of blocked opens */
75 struct circ_buf xmit;
76 spinlock_t xmit_lock;
77 u8 *iomem_base;
78 u16 iomem_reg_shift;
79 int io_type;
80 struct work_struct work;
81 struct tasklet_struct tlet;
82#ifdef DECLARE_WAITQUEUE
83 wait_queue_head_t open_wait;
84 wait_queue_head_t close_wait;
85 wait_queue_head_t delta_msr_wait;
86#else
87 struct wait_queue *open_wait;
88 struct wait_queue *close_wait;
89 struct wait_queue *delta_msr_wait;
90#endif
91 struct async_struct *next_port; /* For the linked list */
92 struct async_struct *prev_port;
93};
94
95#define CONFIGURED_SERIAL_PORT(info) ((info)->port || ((info)->iomem_base))
96
97#define SERIAL_MAGIC 0x5301
98#define SSTATE_MAGIC 0x5302
99
100/*
101 * Events are used to schedule things to happen at timer-interrupt
102 * time, instead of at rs interrupt time.
103 */
104#define RS_EVENT_WRITE_WAKEUP 0
105
106/*
107 * Multiport serial configuration structure --- internal structure
108 */
109struct rs_multiport_struct {
110 int port1;
111 unsigned char mask1, match1;
112 int port2;
113 unsigned char mask2, match2;
114 int port3;
115 unsigned char mask3, match3;
116 int port4;
117 unsigned char mask4, match4;
118 int port_monitor;
119};
120
121#if defined(__alpha__) && !defined(CONFIG_PCI)
122/*
123 * Digital did something really horribly wrong with the OUT1 and OUT2
124 * lines on at least some ALPHA's. The failure mode is that if either
125 * is cleared, the machine locks up with endless interrupts.
126 *
127 * This is still used by arch/mips/au1000/common/serial.c for some weird
128 * reason (mips != alpha!)
129 */
130#define ALPHA_KLUDGE_MCR (UART_MCR_OUT2 | UART_MCR_OUT1)
131#elif defined(CONFIG_SBC8560)
132/*
133 * WindRiver did something similarly broken on their SBC8560 board. The
134 * UART tristates its IRQ output while OUT2 is clear, but they pulled
135 * the interrupt line _up_ instead of down, so if we register the IRQ
136 * while the UART is in that state, we die in an IRQ storm. */
137#define ALPHA_KLUDGE_MCR (UART_MCR_OUT2)
138#else
139#define ALPHA_KLUDGE_MCR 0
140#endif
141
142#endif /* _LINUX_SERIAL_H */
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index c91ace70c21d..f51bf2e70c69 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -210,6 +210,8 @@
210/* Atheros AR933X SoC */ 210/* Atheros AR933X SoC */
211#define PORT_AR933X 99 211#define PORT_AR933X 99
212 212
213/* Energy Micro efm32 SoC */
214#define PORT_EFMUART 100
213 215
214#ifdef __KERNEL__ 216#ifdef __KERNEL__
215 217
@@ -381,6 +383,16 @@ struct uart_port {
381 void *private_data; /* generic platform data pointer */ 383 void *private_data; /* generic platform data pointer */
382}; 384};
383 385
386static inline int serial_port_in(struct uart_port *up, int offset)
387{
388 return up->serial_in(up, offset);
389}
390
391static inline void serial_port_out(struct uart_port *up, int offset, int value)
392{
393 up->serial_out(up, offset, value);
394}
395
384/* 396/*
385 * This is the state information which is persistent across opens. 397 * This is the state information which is persistent across opens.
386 */ 398 */
diff --git a/include/linux/sunserialcore.h b/include/linux/sunserialcore.h
new file mode 100644
index 000000000000..68e7430bb0fe
--- /dev/null
+++ b/include/linux/sunserialcore.h
@@ -0,0 +1,33 @@
1/* sunserialcore.h
2 *
3 * Generic SUN serial/kbd/ms layer. Based entirely
4 * upon drivers/sbus/char/sunserial.h which is:
5 *
6 * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
7 *
8 * Port to new UART layer is:
9 *
10 * Copyright (C) 2002 David S. Miller (davem@redhat.com)
11 */
12
13#ifndef _SERIAL_SUN_H
14#define _SERIAL_SUN_H
15
16/* Serial keyboard defines for L1-A processing... */
17#define SUNKBD_RESET 0xff
18#define SUNKBD_L1 0x01
19#define SUNKBD_UP 0x80
20#define SUNKBD_A 0x4d
21
22extern unsigned int suncore_mouse_baud_cflag_next(unsigned int, int *);
23extern int suncore_mouse_baud_detection(unsigned char, int);
24
25extern int sunserial_register_minors(struct uart_driver *, int);
26extern void sunserial_unregister_minors(struct uart_driver *, int);
27
28extern int sunserial_console_match(struct console *, struct device_node *,
29 struct uart_driver *, int, bool);
30extern void sunserial_console_termios(struct console *,
31 struct device_node *);
32
33#endif /* !(_SERIAL_SUN_H) */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 5dbb3cb05a82..a91ff403b3bf 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -52,6 +52,7 @@
52 * hardcoded at present.) 52 * hardcoded at present.)
53 */ 53 */
54#define NR_UNIX98_PTY_DEFAULT 4096 /* Default maximum for Unix98 ptys */ 54#define NR_UNIX98_PTY_DEFAULT 4096 /* Default maximum for Unix98 ptys */
55#define NR_UNIX98_PTY_RESERVE 1024 /* Default reserve for main devpts */
55#define NR_UNIX98_PTY_MAX (1 << MINORBITS) /* Absolute limit */ 56#define NR_UNIX98_PTY_MAX (1 << MINORBITS) /* Absolute limit */
56 57
57/* 58/*
@@ -480,10 +481,11 @@ extern void free_tty_struct(struct tty_struct *tty);
480extern void initialize_tty_struct(struct tty_struct *tty, 481extern void initialize_tty_struct(struct tty_struct *tty,
481 struct tty_driver *driver, int idx); 482 struct tty_driver *driver, int idx);
482extern void deinitialize_tty_struct(struct tty_struct *tty); 483extern void deinitialize_tty_struct(struct tty_struct *tty);
483extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx, 484extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx);
484 int first_ok);
485extern int tty_release(struct inode *inode, struct file *filp); 485extern int tty_release(struct inode *inode, struct file *filp);
486extern int tty_init_termios(struct tty_struct *tty); 486extern int tty_init_termios(struct tty_struct *tty);
487extern int tty_standard_install(struct tty_driver *driver,
488 struct tty_struct *tty);
487 489
488extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty); 490extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty);
489extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty); 491extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty);
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index 5cf685086dd3..6e6dbb7447b6 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -50,6 +50,8 @@
50 * Note that tty_shutdown() is not called if ops->shutdown is defined. 50 * Note that tty_shutdown() is not called if ops->shutdown is defined.
51 * This means one is responsible to take care of calling ops->remove (e.g. 51 * This means one is responsible to take care of calling ops->remove (e.g.
52 * via tty_driver_remove_tty) and releasing tty->termios. 52 * via tty_driver_remove_tty) and releasing tty->termios.
53 * Note that this hook may be called from *all* the contexts where one
54 * uses tty refcounting (e.g. tty_port_tty_get).
53 * 55 *
54 * 56 *
55 * void (*cleanup)(struct tty_struct * tty); 57 * void (*cleanup)(struct tty_struct * tty);
@@ -234,6 +236,7 @@
234 * if provided (otherwise EINVAL will be returned). 236 * if provided (otherwise EINVAL will be returned).
235 */ 237 */
236 238
239#include <linux/export.h>
237#include <linux/fs.h> 240#include <linux/fs.h>
238#include <linux/list.h> 241#include <linux/list.h>
239#include <linux/cdev.h> 242#include <linux/cdev.h>
@@ -298,7 +301,6 @@ struct tty_driver {
298 int name_base; /* offset of printed name */ 301 int name_base; /* offset of printed name */
299 int major; /* major device number */ 302 int major; /* major device number */
300 int minor_start; /* start of minor device number */ 303 int minor_start; /* start of minor device number */
301 int minor_num; /* number of *possible* devices */
302 int num; /* number of devices allocated */ 304 int num; /* number of devices allocated */
303 short type; /* type of tty driver */ 305 short type; /* type of tty driver */
304 short subtype; /* subtype of tty driver */ 306 short subtype; /* subtype of tty driver */
@@ -324,7 +326,7 @@ struct tty_driver {
324 326
325extern struct list_head tty_drivers; 327extern struct list_head tty_drivers;
326 328
327extern struct tty_driver *alloc_tty_driver(int lines); 329extern struct tty_driver *__alloc_tty_driver(int lines, struct module *owner);
328extern void put_tty_driver(struct tty_driver *driver); 330extern void put_tty_driver(struct tty_driver *driver);
329extern void tty_set_operations(struct tty_driver *driver, 331extern void tty_set_operations(struct tty_driver *driver,
330 const struct tty_operations *op); 332 const struct tty_operations *op);
@@ -332,6 +334,8 @@ extern struct tty_driver *tty_find_polling_driver(char *name, int *line);
332 334
333extern void tty_driver_kref_put(struct tty_driver *driver); 335extern void tty_driver_kref_put(struct tty_driver *driver);
334 336
337#define alloc_tty_driver(lines) __alloc_tty_driver(lines, THIS_MODULE)
338
335static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d) 339static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d)
336{ 340{
337 kref_get(&d->kref); 341 kref_get(&d->kref);
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index c2164fad0083..e33d77f15bda 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -167,4 +167,30 @@ extern int unregister_vt_notifier(struct notifier_block *nb);
167 167
168extern void hide_boot_cursor(bool hide); 168extern void hide_boot_cursor(bool hide);
169 169
170/* keyboard provided interfaces */
171extern int vt_do_diacrit(unsigned int cmd, void __user *up, int eperm);
172extern int vt_do_kdskbmode(int console, unsigned int arg);
173extern int vt_do_kdskbmeta(int console, unsigned int arg);
174extern int vt_do_kbkeycode_ioctl(int cmd, struct kbkeycode __user *user_kbkc,
175 int perm);
176extern int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe,
177 int perm, int console);
178extern int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb,
179 int perm);
180extern int vt_do_kdskled(int console, int cmd, unsigned long arg, int perm);
181extern int vt_do_kdgkbmode(int console);
182extern int vt_do_kdgkbmeta(int console);
183extern void vt_reset_unicode(int console);
184extern int vt_get_shift_state(void);
185extern void vt_reset_keyboard(int console);
186extern int vt_get_leds(int console, int flag);
187extern int vt_get_kbd_mode_bit(int console, int bit);
188extern void vt_set_kbd_mode_bit(int console, int bit);
189extern void vt_clr_kbd_mode_bit(int console, int bit);
190extern void vt_set_led_state(int console, int leds);
191extern void vt_set_led_state(int console, int leds);
192extern void vt_kbd_con_start(int console);
193extern void vt_kbd_con_stop(int console);
194
195
170#endif /* _VT_KERN_H */ 196#endif /* _VT_KERN_H */