diff options
Diffstat (limited to 'include/linux/serial_core.h')
| -rw-r--r-- | include/linux/serial_core.h | 47 |
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 | ||
