aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/serial_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/serial_core.h')
-rw-r--r--include/linux/serial_core.h47
1 files changed, 32 insertions, 15 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index bccf4bac22f5..ad9329669aba 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -160,21 +160,33 @@ struct uart_port {
160 /* flags must be updated while holding port mutex */ 160 /* flags must be updated while holding port mutex */
161 upf_t flags; 161 upf_t flags;
162 162
163#define UPF_FOURPORT ((__force upf_t) (1 << 1)) 163 /*
164#define UPF_SAK ((__force upf_t) (1 << 2)) 164 * These flags must be equivalent to the flags defined in
165#define UPF_SPD_MASK ((__force upf_t) (0x1030)) 165 * include/uapi/linux/tty_flags.h which are the userspace definitions
166#define UPF_SPD_HI ((__force upf_t) (0x0010)) 166 * assigned from the serial_struct flags in uart_set_info()
167#define UPF_SPD_VHI ((__force upf_t) (0x0020)) 167 * [for bit definitions in the UPF_CHANGE_MASK]
168#define UPF_SPD_CUST ((__force upf_t) (0x0030)) 168 *
169#define UPF_SPD_SHI ((__force upf_t) (0x1000)) 169 * Bits [0..UPF_LAST_USER] are userspace defined/visible/changeable
170#define UPF_SPD_WARP ((__force upf_t) (0x1010)) 170 * except bit 15 (UPF_NO_TXEN_TEST) which is masked off.
171#define UPF_SKIP_TEST ((__force upf_t) (1 << 6)) 171 * The remaining bits are serial-core specific and not modifiable by
172#define UPF_AUTO_IRQ ((__force upf_t) (1 << 7)) 172 * userspace.
173#define UPF_HARDPPS_CD ((__force upf_t) (1 << 11)) 173 */
174#define UPF_LOW_LATENCY ((__force upf_t) (1 << 13)) 174#define UPF_FOURPORT ((__force upf_t) ASYNC_FOURPORT /* 1 */ )
175#define UPF_BUGGY_UART ((__force upf_t) (1 << 14)) 175#define UPF_SAK ((__force upf_t) ASYNC_SAK /* 2 */ )
176#define UPF_SPD_HI ((__force upf_t) ASYNC_SPD_HI /* 4 */ )
177#define UPF_SPD_VHI ((__force upf_t) ASYNC_SPD_VHI /* 5 */ )
178#define UPF_SPD_CUST ((__force upf_t) ASYNC_SPD_CUST /* 0x0030 */ )
179#define UPF_SPD_WARP ((__force upf_t) ASYNC_SPD_WARP /* 0x1010 */ )
180#define UPF_SPD_MASK ((__force upf_t) ASYNC_SPD_MASK /* 0x1030 */ )
181#define UPF_SKIP_TEST ((__force upf_t) ASYNC_SKIP_TEST /* 6 */ )
182#define UPF_AUTO_IRQ ((__force upf_t) ASYNC_AUTO_IRQ /* 7 */ )
183#define UPF_HARDPPS_CD ((__force upf_t) ASYNC_HARDPPS_CD /* 11 */ )
184#define UPF_SPD_SHI ((__force upf_t) ASYNC_SPD_SHI /* 12 */ )
185#define UPF_LOW_LATENCY ((__force upf_t) ASYNC_LOW_LATENCY /* 13 */ )
186#define UPF_BUGGY_UART ((__force upf_t) ASYNC_BUGGY_UART /* 14 */ )
176#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15)) 187#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15))
177#define UPF_MAGIC_MULTIPLIER ((__force upf_t) (1 << 16)) 188#define UPF_MAGIC_MULTIPLIER ((__force upf_t) ASYNC_MAGIC_MULTIPLIER /* 16 */ )
189
178/* Port has hardware-assisted h/w flow control (iow, auto-RTS *not* auto-CTS) */ 190/* Port has hardware-assisted h/w flow control (iow, auto-RTS *not* auto-CTS) */
179#define UPF_HARD_FLOW ((__force upf_t) (1 << 21)) 191#define UPF_HARD_FLOW ((__force upf_t) (1 << 21))
180/* Port has hardware-assisted s/w flow control */ 192/* Port has hardware-assisted s/w flow control */
@@ -190,9 +202,14 @@ struct uart_port {
190#define UPF_DEAD ((__force upf_t) (1 << 30)) 202#define UPF_DEAD ((__force upf_t) (1 << 30))
191#define UPF_IOREMAP ((__force upf_t) (1 << 31)) 203#define UPF_IOREMAP ((__force upf_t) (1 << 31))
192 204
193#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff)) 205#define __UPF_CHANGE_MASK 0x17fff
206#define UPF_CHANGE_MASK ((__force upf_t) __UPF_CHANGE_MASK)
194#define UPF_USR_MASK ((__force upf_t) (UPF_SPD_MASK|UPF_LOW_LATENCY)) 207#define UPF_USR_MASK ((__force upf_t) (UPF_SPD_MASK|UPF_LOW_LATENCY))
195 208
209#if __UPF_CHANGE_MASK > ASYNC_FLAGS
210#error Change mask not equivalent to userspace-visible bit defines
211#endif
212
196 /* status must be updated while holding port lock */ 213 /* status must be updated while holding port lock */
197 upstat_t status; 214 upstat_t status;
198 215