Re: [RFC PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-24 Thread Jiri Slaby
On 08/22/2012 04:44 PM, Alan Cox wrote:
> Jiri - this seem more sensible ?

I would be faster if you CCed me :).

> From: Alan Cox 
> 
> These are used with the tty_port flags which are tty generic so move the
> flags into a more sensible place. This then makes it possible to add
> helpers such as those suggested by Huang Shijie.
> 
> Signed-off-by: Alan Cox 

Acked-by: Jiri Slaby 

>  include/linux/Kbuild  |1 +
>  include/linux/serial.h|   75 ++-
>  include/linux/tty.h   |1 +
>  include/linux/tty_flags.h |   78 
> +
>  4 files changed, 83 insertions(+), 72 deletions(-)
>  create mode 100644 include/linux/tty_flags.h

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-24 Thread Jiri Slaby
On 08/22/2012 04:44 PM, Alan Cox wrote:
 Jiri - this seem more sensible ?

I would be faster if you CCed me :).

 From: Alan Cox a...@linux.intel.com
 
 These are used with the tty_port flags which are tty generic so move the
 flags into a more sensible place. This then makes it possible to add
 helpers such as those suggested by Huang Shijie.
 
 Signed-off-by: Alan Cox a...@linux.intel.com

Acked-by: Jiri Slaby jsl...@suse.cz

  include/linux/Kbuild  |1 +
  include/linux/serial.h|   75 ++-
  include/linux/tty.h   |1 +
  include/linux/tty_flags.h |   78 
 +
  4 files changed, 83 insertions(+), 72 deletions(-)
  create mode 100644 include/linux/tty_flags.h

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Alan Cox
Jiri - this seem more sensible ?

From: Alan Cox 

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox 
---

 include/linux/Kbuild  |1 +
 include/linux/serial.h|   75 ++-
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 4 files changed, 83 insertions(+), 72 deletions(-)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index b3d6385..b45caff 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -370,6 +370,7 @@ header-y += tipc.h
 header-y += tipc_config.h
 header-y += toshiba.h
 header-y += tty.h
+header-y += tty_flags.h
 header-y += types.h
 header-y += udf_fs_i.h
 header-y += udp.h
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..3504f42 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -12,9 +12,12 @@
 
 #include 
 
+#include 
+
 #ifdef __KERNEL__
 #include 
 
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
@@ -94,78 +97,6 @@ struct serial_uart_config {
 #define UART_STARTECH  0x04
 #define UART_NATSEMI   0x08
 
-/*
- * Definitions for async_struct (and serial_struct) flags field
- *
- * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
- */
-#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
-   * on the callout port */
-#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
-#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
-#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
-#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
-#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
-#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
-#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
-   * autoconfiguration */
-#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
-#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
-#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
-#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
-#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
-#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
-#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
-   * checks.  Note: can be dangerous! */
-#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
-#define ASYNCB_LAST_USER   15
-
-/* Internal flags used only by kernel */
-#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
-#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
-#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
-#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
-#define ASYNCB_CLOSING 27 /* Serial port is closing */
-#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
-#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
-#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
-#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
-#define ASYNCB_FIRST_KERNEL22
-
-#define ASYNC_HUP_NOTIFY   (1U << ASYNCB_HUP_NOTIFY)
-#define ASYNC_SUSPENDED(1U << ASYNCB_SUSPENDED)
-#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
-#define ASYNC_SAK  (1U << ASYNCB_SAK)
-#define ASYNC_SPLIT_TERMIOS(1U << ASYNCB_SPLIT_TERMIOS)
-#define ASYNC_SPD_HI   (1U << ASYNCB_SPD_HI)
-#define ASYNC_SPD_VHI  (1U << ASYNCB_SPD_VHI)
-#define ASYNC_SKIP_TEST(1U << ASYNCB_SKIP_TEST)
-#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ)
-#define ASYNC_SESSION_LOCKOUT  (1U << ASYNCB_SESSION_LOCKOUT)
-#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT)
-#define ASYNC_CALLOUT_NOHUP(1U << ASYNCB_CALLOUT_NOHUP)
-#define ASYNC_HARDPPS_CD   (1U << ASYNCB_HARDPPS_CD)
-#define ASYNC_SPD_SHI  (1U << ASYNCB_SPD_SHI)
-#define ASYNC_LOW_LATENCY  (1U << ASYNCB_LOW_LATENCY)
-#define ASYNC_BUGGY_UART   (1U << ASYNCB_BUGGY_UART)
-#define ASYNC_AUTOPROBE(1U << ASYNCB_AUTOPROBE)
-
-#define ASYNC_FLAGS((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
-   ASYNC_LOW_LATENCY)
-#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
-#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
-#define ASYNC_SPD_MASK 

Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Jiri Slaby
On 08/21/2012 03:35 PM, Alan Cox wrote:
> From: Alan Cox 
> 
> These are used with the tty_port flags which are tty generic so move the
> flags into a more sensible place. This then makes it possible to add
> helpers such as those suggested by Huang Shijie.

Yes, the idea looks good to me. I was actually thinking of the same.

But there are two issues with this patch (see below).

> --- a/include/linux/serial.h
> +++ b/include/linux/serial.h
> @@ -15,6 +15,8 @@
>  #ifdef __KERNEL__
>  #include 
>  
> +#include 
> +

There are no minus lines in serial.h -- we have two copies of the flags
now? That looks insane.

The flags are a user API. You concealed them by the #include inside the
__KERNEL__ section (if I consider we do not have the flags defined twice).

And if we move the include outside of the __KERNEL__ section, we shall
update Kconfig, so that the new header is installed.

>  /*
>   * Counters of the input lines (CTS, DSR, RI, CD) interrupts
>   */
> diff --git a/include/linux/tty.h b/include/linux/tty.h
> index 69a787f..dbebd1e 100644
> --- a/include/linux/tty.h
> +++ b/include/linux/tty.h
> @@ -43,6 +43,7 @@
>  #include 
>  #include 
>  #include 
> +#include 

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Alan Cox
From: Alan Cox 

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox 
---

 include/linux/serial.h|2 +
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 3 files changed, 81 insertions(+)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..d63866d 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -15,6 +15,8 @@
 #ifdef __KERNEL__
 #include 
 
+#include 
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 69a787f..dbebd1e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -43,6 +43,7 @@
 #include 
 #include 
 #include 
+#include 
 
 
 
diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
new file mode 100644
index 000..eefcb48
--- /dev/null
+++ b/include/linux/tty_flags.h
@@ -0,0 +1,78 @@
+#ifndef _LINUX_TTY_FLAGS_H
+#define _LINUX_TTY_FLAGS_H
+
+/*
+ * Definitions for async_struct (and serial_struct) flags field also
+ * shared by the tty_port flags structures.
+ *
+ * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
+ */
+#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
+   * on the callout port */
+#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
+#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
+#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
+#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
+#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
+#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
+#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
+   * autoconfiguration */
+#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
+#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
+#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
+#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
+#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
+#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
+#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
+   * checks.  Note: can be dangerous! */
+#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
+#define ASYNCB_LAST_USER   15
+
+/* Internal flags used only by kernel */
+#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
+#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
+#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
+#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
+#define ASYNCB_CLOSING 27 /* Serial port is closing */
+#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
+#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
+#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
+#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
+#define ASYNCB_FIRST_KERNEL22
+
+#define ASYNC_HUP_NOTIFY   (1U << ASYNCB_HUP_NOTIFY)
+#define ASYNC_SUSPENDED(1U << ASYNCB_SUSPENDED)
+#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
+#define ASYNC_SAK  (1U << ASYNCB_SAK)
+#define ASYNC_SPLIT_TERMIOS(1U << ASYNCB_SPLIT_TERMIOS)
+#define ASYNC_SPD_HI   (1U << ASYNCB_SPD_HI)
+#define ASYNC_SPD_VHI  (1U << ASYNCB_SPD_VHI)
+#define ASYNC_SKIP_TEST(1U << ASYNCB_SKIP_TEST)
+#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ)
+#define ASYNC_SESSION_LOCKOUT  (1U << ASYNCB_SESSION_LOCKOUT)
+#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT)
+#define ASYNC_CALLOUT_NOHUP(1U << ASYNCB_CALLOUT_NOHUP)
+#define ASYNC_HARDPPS_CD   (1U << ASYNCB_HARDPPS_CD)
+#define ASYNC_SPD_SHI  (1U << ASYNCB_SPD_SHI)
+#define ASYNC_LOW_LATENCY  (1U << ASYNCB_LOW_LATENCY)
+#define ASYNC_BUGGY_UART   (1U << ASYNCB_BUGGY_UART)
+#define ASYNC_AUTOPROBE(1U << ASYNCB_AUTOPROBE)
+
+#define ASYNC_FLAGS((1U << (ASYNCB_LAST_USER + 1)) - 1)
+#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
+   ASYNC_LOW_LATENCY)
+#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
+#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
+#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
+
+#define ASYNC_INITIALIZED  (1U << ASYNCB_INITIALIZED)
+#define ASYNC_NORMAL_ACTIVE(1U << 

[PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Alan Cox
From: Alan Cox a...@linux.intel.com

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox a...@linux.intel.com
---

 include/linux/serial.h|2 +
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 3 files changed, 81 insertions(+)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..d63866d 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -15,6 +15,8 @@
 #ifdef __KERNEL__
 #include asm/page.h
 
+#include linux/tty_flags.h
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 69a787f..dbebd1e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -43,6 +43,7 @@
 #include linux/tty_driver.h
 #include linux/tty_ldisc.h
 #include linux/mutex.h
+#include linux/tty_flags.h
 
 
 
diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
new file mode 100644
index 000..eefcb48
--- /dev/null
+++ b/include/linux/tty_flags.h
@@ -0,0 +1,78 @@
+#ifndef _LINUX_TTY_FLAGS_H
+#define _LINUX_TTY_FLAGS_H
+
+/*
+ * Definitions for async_struct (and serial_struct) flags field also
+ * shared by the tty_port flags structures.
+ *
+ * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
+ */
+#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
+   * on the callout port */
+#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
+#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
+#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
+#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
+#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
+#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
+#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
+   * autoconfiguration */
+#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
+#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
+#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
+#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
+#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
+#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
+#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
+   * checks.  Note: can be dangerous! */
+#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
+#define ASYNCB_LAST_USER   15
+
+/* Internal flags used only by kernel */
+#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
+#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
+#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
+#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
+#define ASYNCB_CLOSING 27 /* Serial port is closing */
+#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
+#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
+#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
+#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
+#define ASYNCB_FIRST_KERNEL22
+
+#define ASYNC_HUP_NOTIFY   (1U  ASYNCB_HUP_NOTIFY)
+#define ASYNC_SUSPENDED(1U  ASYNCB_SUSPENDED)
+#define ASYNC_FOURPORT (1U  ASYNCB_FOURPORT)
+#define ASYNC_SAK  (1U  ASYNCB_SAK)
+#define ASYNC_SPLIT_TERMIOS(1U  ASYNCB_SPLIT_TERMIOS)
+#define ASYNC_SPD_HI   (1U  ASYNCB_SPD_HI)
+#define ASYNC_SPD_VHI  (1U  ASYNCB_SPD_VHI)
+#define ASYNC_SKIP_TEST(1U  ASYNCB_SKIP_TEST)
+#define ASYNC_AUTO_IRQ (1U  ASYNCB_AUTO_IRQ)
+#define ASYNC_SESSION_LOCKOUT  (1U  ASYNCB_SESSION_LOCKOUT)
+#define ASYNC_PGRP_LOCKOUT (1U  ASYNCB_PGRP_LOCKOUT)
+#define ASYNC_CALLOUT_NOHUP(1U  ASYNCB_CALLOUT_NOHUP)
+#define ASYNC_HARDPPS_CD   (1U  ASYNCB_HARDPPS_CD)
+#define ASYNC_SPD_SHI  (1U  ASYNCB_SPD_SHI)
+#define ASYNC_LOW_LATENCY  (1U  ASYNCB_LOW_LATENCY)
+#define ASYNC_BUGGY_UART   (1U  ASYNCB_BUGGY_UART)
+#define ASYNC_AUTOPROBE(1U  ASYNCB_AUTOPROBE)
+
+#define ASYNC_FLAGS((1U  (ASYNCB_LAST_USER + 1)) - 1)
+#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
+   ASYNC_LOW_LATENCY)
+#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
+#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
+#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
+

Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Jiri Slaby
On 08/21/2012 03:35 PM, Alan Cox wrote:
 From: Alan Cox a...@linux.intel.com
 
 These are used with the tty_port flags which are tty generic so move the
 flags into a more sensible place. This then makes it possible to add
 helpers such as those suggested by Huang Shijie.

Yes, the idea looks good to me. I was actually thinking of the same.

But there are two issues with this patch (see below).

 --- a/include/linux/serial.h
 +++ b/include/linux/serial.h
 @@ -15,6 +15,8 @@
  #ifdef __KERNEL__
  #include asm/page.h
  
 +#include linux/tty_flags.h
 +

There are no minus lines in serial.h -- we have two copies of the flags
now? That looks insane.

The flags are a user API. You concealed them by the #include inside the
__KERNEL__ section (if I consider we do not have the flags defined twice).

And if we move the include outside of the __KERNEL__ section, we shall
update Kconfig, so that the new header is installed.

  /*
   * Counters of the input lines (CTS, DSR, RI, CD) interrupts
   */
 diff --git a/include/linux/tty.h b/include/linux/tty.h
 index 69a787f..dbebd1e 100644
 --- a/include/linux/tty.h
 +++ b/include/linux/tty.h
 @@ -43,6 +43,7 @@
  #include linux/tty_driver.h
  #include linux/tty_ldisc.h
  #include linux/mutex.h
 +#include linux/tty_flags.h

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-22 Thread Alan Cox
Jiri - this seem more sensible ?

From: Alan Cox a...@linux.intel.com

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox a...@linux.intel.com
---

 include/linux/Kbuild  |1 +
 include/linux/serial.h|   75 ++-
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 4 files changed, 83 insertions(+), 72 deletions(-)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index b3d6385..b45caff 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -370,6 +370,7 @@ header-y += tipc.h
 header-y += tipc_config.h
 header-y += toshiba.h
 header-y += tty.h
+header-y += tty_flags.h
 header-y += types.h
 header-y += udf_fs_i.h
 header-y += udp.h
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..3504f42 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -12,9 +12,12 @@
 
 #include linux/types.h
 
+#include linux/tty_flags.h
+
 #ifdef __KERNEL__
 #include asm/page.h
 
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
@@ -94,78 +97,6 @@ struct serial_uart_config {
 #define UART_STARTECH  0x04
 #define UART_NATSEMI   0x08
 
-/*
- * Definitions for async_struct (and serial_struct) flags field
- *
- * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
- */
-#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
-   * on the callout port */
-#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
-#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
-#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
-#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
-#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
-#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
-#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
-   * autoconfiguration */
-#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
-#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
-#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
-#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
-#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
-#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
-#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
-   * checks.  Note: can be dangerous! */
-#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
-#define ASYNCB_LAST_USER   15
-
-/* Internal flags used only by kernel */
-#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
-#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
-#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
-#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
-#define ASYNCB_CLOSING 27 /* Serial port is closing */
-#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
-#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
-#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
-#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
-#define ASYNCB_FIRST_KERNEL22
-
-#define ASYNC_HUP_NOTIFY   (1U  ASYNCB_HUP_NOTIFY)
-#define ASYNC_SUSPENDED(1U  ASYNCB_SUSPENDED)
-#define ASYNC_FOURPORT (1U  ASYNCB_FOURPORT)
-#define ASYNC_SAK  (1U  ASYNCB_SAK)
-#define ASYNC_SPLIT_TERMIOS(1U  ASYNCB_SPLIT_TERMIOS)
-#define ASYNC_SPD_HI   (1U  ASYNCB_SPD_HI)
-#define ASYNC_SPD_VHI  (1U  ASYNCB_SPD_VHI)
-#define ASYNC_SKIP_TEST(1U  ASYNCB_SKIP_TEST)
-#define ASYNC_AUTO_IRQ (1U  ASYNCB_AUTO_IRQ)
-#define ASYNC_SESSION_LOCKOUT  (1U  ASYNCB_SESSION_LOCKOUT)
-#define ASYNC_PGRP_LOCKOUT (1U  ASYNCB_PGRP_LOCKOUT)
-#define ASYNC_CALLOUT_NOHUP(1U  ASYNCB_CALLOUT_NOHUP)
-#define ASYNC_HARDPPS_CD   (1U  ASYNCB_HARDPPS_CD)
-#define ASYNC_SPD_SHI  (1U  ASYNCB_SPD_SHI)
-#define ASYNC_LOW_LATENCY  (1U  ASYNCB_LOW_LATENCY)
-#define ASYNC_BUGGY_UART   (1U  ASYNCB_BUGGY_UART)
-#define ASYNC_AUTOPROBE(1U  ASYNCB_AUTOPROBE)
-
-#define ASYNC_FLAGS((1U  (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
-   ASYNC_LOW_LATENCY)
-#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
-#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
-#define 

Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Huang Shijie
On Tue, Aug 21, 2012 at 9:35 PM, Alan Cox  wrote:
> Huang - how about we add this patch first which moves the flags somewhere 
> more sensible
> and then your helper function (and probably a few others) would merge cleanly 
> ?
>
Allen, Could you post a formal patch?
I can change my patch based on it.

thanks
Huang Shijie
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Huang Shijie
On Tue, Aug 21, 2012 at 9:35 PM, Alan Cox  wrote:
> Huang - how about we add this patch first which moves the flags somewhere 
> more sensible
thanks.

I am really happy with this patch.

Huang Shijie

> and then your helper function (and probably a few others) would merge cleanly 
> ?
>
> Alan
> --
>
>
> From: Alan Cox 
>
> These are used with the tty_port flags which are tty generic so move the
> flags into a more sensible place. This then makes it possible to add
> helpers such as those suggested by Huang Shijie.
>
> Signed-off-by: Alan Cox 
> ---
>
>  include/linux/serial.h|2 +
>  include/linux/tty.h   |1 +
>  include/linux/tty_flags.h |   78 
> +
>  3 files changed, 81 insertions(+)
>  create mode 100644 include/linux/tty_flags.h
>
> diff --git a/include/linux/serial.h b/include/linux/serial.h
> index 90e9f98..d63866d 100644
> --- a/include/linux/serial.h
> +++ b/include/linux/serial.h
> @@ -15,6 +15,8 @@
>  #ifdef __KERNEL__
>  #include 
>
> +#include 
> +
>  /*
>   * Counters of the input lines (CTS, DSR, RI, CD) interrupts
>   */
> diff --git a/include/linux/tty.h b/include/linux/tty.h
> index 69a787f..dbebd1e 100644
> --- a/include/linux/tty.h
> +++ b/include/linux/tty.h
> @@ -43,6 +43,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>
>
>
> diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
> new file mode 100644
> index 000..eefcb48
> --- /dev/null
> +++ b/include/linux/tty_flags.h
> @@ -0,0 +1,78 @@
> +#ifndef _LINUX_TTY_FLAGS_H
> +#define _LINUX_TTY_FLAGS_H
> +
> +/*
> + * Definitions for async_struct (and serial_struct) flags field also
> + * shared by the tty_port flags structures.
> + *
> + * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
> + */
> +#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
> +   * on the callout port */
> +#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
> settings */
> +#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
> +#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
> +#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
> +#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
> +#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration 
> */
> +#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
> +   * autoconfiguration */
> +#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
> +#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
> +#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
> +#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
> +#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
> +#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
> +#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
> +   * checks.  Note: can be dangerous! */
> +#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code 
> */
> +#define ASYNCB_LAST_USER   15
> +
> +/* Internal flags used only by kernel */
> +#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
> +#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
> +#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
> +#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
> +#define ASYNCB_CLOSING 27 /* Serial port is closing */
> +#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
> +#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
> +#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used 
> */
> +#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
> +#define ASYNCB_FIRST_KERNEL22
> +
> +#define ASYNC_HUP_NOTIFY   (1U << ASYNCB_HUP_NOTIFY)
> +#define ASYNC_SUSPENDED(1U << ASYNCB_SUSPENDED)
> +#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
> +#define ASYNC_SAK  (1U << ASYNCB_SAK)
> +#define ASYNC_SPLIT_TERMIOS(1U << ASYNCB_SPLIT_TERMIOS)
> +#define ASYNC_SPD_HI   (1U << ASYNCB_SPD_HI)
> +#define ASYNC_SPD_VHI  (1U << ASYNCB_SPD_VHI)
> +#define ASYNC_SKIP_TEST(1U << ASYNCB_SKIP_TEST)
> +#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ)
> +#define ASYNC_SESSION_LOCKOUT  (1U << ASYNCB_SESSION_LOCKOUT)
> +#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT)
> +#define ASYNC_CALLOUT_NOHUP(1U << ASYNCB_CALLOUT_NOHUP)
> +#define ASYNC_HARDPPS_CD   (1U << ASYNCB_HARDPPS_CD)
> +#define ASYNC_SPD_SHI  (1U << ASYNCB_SPD_SHI)
> +#define ASYNC_LOW_LATENCY  (1U << ASYNCB_LOW_LATENCY)
> +#define ASYNC_BUGGY_UART   (1U << ASYNCB_BUGGY_UART)
> +#define ASYNC_AUTOPROBE   

[PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Alan Cox
Huang - how about we add this patch first which moves the flags somewhere more 
sensible
and then your helper function (and probably a few others) would merge cleanly ?

Alan
--


From: Alan Cox 

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox 
---

 include/linux/serial.h|2 +
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 3 files changed, 81 insertions(+)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..d63866d 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -15,6 +15,8 @@
 #ifdef __KERNEL__
 #include 
 
+#include 
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 69a787f..dbebd1e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -43,6 +43,7 @@
 #include 
 #include 
 #include 
+#include 
 
 
 
diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
new file mode 100644
index 000..eefcb48
--- /dev/null
+++ b/include/linux/tty_flags.h
@@ -0,0 +1,78 @@
+#ifndef _LINUX_TTY_FLAGS_H
+#define _LINUX_TTY_FLAGS_H
+
+/*
+ * Definitions for async_struct (and serial_struct) flags field also
+ * shared by the tty_port flags structures.
+ *
+ * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
+ */
+#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
+   * on the callout port */
+#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
+#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
+#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
+#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
+#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
+#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
+#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
+   * autoconfiguration */
+#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
+#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
+#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
+#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
+#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
+#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
+#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
+   * checks.  Note: can be dangerous! */
+#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
+#define ASYNCB_LAST_USER   15
+
+/* Internal flags used only by kernel */
+#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
+#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
+#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
+#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
+#define ASYNCB_CLOSING 27 /* Serial port is closing */
+#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
+#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
+#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
+#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
+#define ASYNCB_FIRST_KERNEL22
+
+#define ASYNC_HUP_NOTIFY   (1U << ASYNCB_HUP_NOTIFY)
+#define ASYNC_SUSPENDED(1U << ASYNCB_SUSPENDED)
+#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
+#define ASYNC_SAK  (1U << ASYNCB_SAK)
+#define ASYNC_SPLIT_TERMIOS(1U << ASYNCB_SPLIT_TERMIOS)
+#define ASYNC_SPD_HI   (1U << ASYNCB_SPD_HI)
+#define ASYNC_SPD_VHI  (1U << ASYNCB_SPD_VHI)
+#define ASYNC_SKIP_TEST(1U << ASYNCB_SKIP_TEST)
+#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ)
+#define ASYNC_SESSION_LOCKOUT  (1U << ASYNCB_SESSION_LOCKOUT)
+#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT)
+#define ASYNC_CALLOUT_NOHUP(1U << ASYNCB_CALLOUT_NOHUP)
+#define ASYNC_HARDPPS_CD   (1U << ASYNCB_HARDPPS_CD)
+#define ASYNC_SPD_SHI  (1U << ASYNCB_SPD_SHI)
+#define ASYNC_LOW_LATENCY  (1U << ASYNCB_LOW_LATENCY)
+#define ASYNC_BUGGY_UART   (1U << ASYNCB_BUGGY_UART)
+#define ASYNC_AUTOPROBE(1U << ASYNCB_AUTOPROBE)
+
+#define ASYNC_FLAGS((1U << (ASYNCB_LAST_USER + 1)) - 1)
+#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
+   ASYNC_LOW_LATENCY)
+#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
+#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)

Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Huang Shijie
On Tue, Aug 21, 2012 at 9:35 PM, Alan Cox a...@lxorguk.ukuu.org.uk wrote:
 Huang - how about we add this patch first which moves the flags somewhere 
 more sensible
 and then your helper function (and probably a few others) would merge cleanly 
 ?

Allen, Could you post a formal patch?
I can change my patch based on it.

thanks
Huang Shijie
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Alan Cox
Huang - how about we add this patch first which moves the flags somewhere more 
sensible
and then your helper function (and probably a few others) would merge cleanly ?

Alan
--


From: Alan Cox a...@linux.intel.com

These are used with the tty_port flags which are tty generic so move the
flags into a more sensible place. This then makes it possible to add
helpers such as those suggested by Huang Shijie.

Signed-off-by: Alan Cox a...@linux.intel.com
---

 include/linux/serial.h|2 +
 include/linux/tty.h   |1 +
 include/linux/tty_flags.h |   78 +
 3 files changed, 81 insertions(+)
 create mode 100644 include/linux/tty_flags.h

diff --git a/include/linux/serial.h b/include/linux/serial.h
index 90e9f98..d63866d 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -15,6 +15,8 @@
 #ifdef __KERNEL__
 #include asm/page.h
 
+#include linux/tty_flags.h
+
 /*
  * Counters of the input lines (CTS, DSR, RI, CD) interrupts
  */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 69a787f..dbebd1e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -43,6 +43,7 @@
 #include linux/tty_driver.h
 #include linux/tty_ldisc.h
 #include linux/mutex.h
+#include linux/tty_flags.h
 
 
 
diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
new file mode 100644
index 000..eefcb48
--- /dev/null
+++ b/include/linux/tty_flags.h
@@ -0,0 +1,78 @@
+#ifndef _LINUX_TTY_FLAGS_H
+#define _LINUX_TTY_FLAGS_H
+
+/*
+ * Definitions for async_struct (and serial_struct) flags field also
+ * shared by the tty_port flags structures.
+ *
+ * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
+ */
+#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
+   * on the callout port */
+#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
settings */
+#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
+#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
+#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
+#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
+#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration */
+#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
+   * autoconfiguration */
+#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
+#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
+#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
+#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
+#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
+#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
+#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
+   * checks.  Note: can be dangerous! */
+#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code */
+#define ASYNCB_LAST_USER   15
+
+/* Internal flags used only by kernel */
+#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
+#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
+#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
+#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
+#define ASYNCB_CLOSING 27 /* Serial port is closing */
+#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
+#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
+#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used */
+#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
+#define ASYNCB_FIRST_KERNEL22
+
+#define ASYNC_HUP_NOTIFY   (1U  ASYNCB_HUP_NOTIFY)
+#define ASYNC_SUSPENDED(1U  ASYNCB_SUSPENDED)
+#define ASYNC_FOURPORT (1U  ASYNCB_FOURPORT)
+#define ASYNC_SAK  (1U  ASYNCB_SAK)
+#define ASYNC_SPLIT_TERMIOS(1U  ASYNCB_SPLIT_TERMIOS)
+#define ASYNC_SPD_HI   (1U  ASYNCB_SPD_HI)
+#define ASYNC_SPD_VHI  (1U  ASYNCB_SPD_VHI)
+#define ASYNC_SKIP_TEST(1U  ASYNCB_SKIP_TEST)
+#define ASYNC_AUTO_IRQ (1U  ASYNCB_AUTO_IRQ)
+#define ASYNC_SESSION_LOCKOUT  (1U  ASYNCB_SESSION_LOCKOUT)
+#define ASYNC_PGRP_LOCKOUT (1U  ASYNCB_PGRP_LOCKOUT)
+#define ASYNC_CALLOUT_NOHUP(1U  ASYNCB_CALLOUT_NOHUP)
+#define ASYNC_HARDPPS_CD   (1U  ASYNCB_HARDPPS_CD)
+#define ASYNC_SPD_SHI  (1U  ASYNCB_SPD_SHI)
+#define ASYNC_LOW_LATENCY  (1U  ASYNCB_LOW_LATENCY)
+#define ASYNC_BUGGY_UART   (1U  ASYNCB_BUGGY_UART)
+#define ASYNC_AUTOPROBE(1U  ASYNCB_AUTOPROBE)
+
+#define ASYNC_FLAGS((1U  (ASYNCB_LAST_USER + 1)) - 1)
+#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
+   ASYNC_LOW_LATENCY)
+#define ASYNC_SPD_CUST   

Re: [PATCH] tty: move the async flags from the serial code into the tty includes

2012-08-21 Thread Huang Shijie
On Tue, Aug 21, 2012 at 9:35 PM, Alan Cox a...@lxorguk.ukuu.org.uk wrote:
 Huang - how about we add this patch first which moves the flags somewhere 
 more sensible
thanks.

I am really happy with this patch.

Huang Shijie

 and then your helper function (and probably a few others) would merge cleanly 
 ?

 Alan
 --


 From: Alan Cox a...@linux.intel.com

 These are used with the tty_port flags which are tty generic so move the
 flags into a more sensible place. This then makes it possible to add
 helpers such as those suggested by Huang Shijie.

 Signed-off-by: Alan Cox a...@linux.intel.com
 ---

  include/linux/serial.h|2 +
  include/linux/tty.h   |1 +
  include/linux/tty_flags.h |   78 
 +
  3 files changed, 81 insertions(+)
  create mode 100644 include/linux/tty_flags.h

 diff --git a/include/linux/serial.h b/include/linux/serial.h
 index 90e9f98..d63866d 100644
 --- a/include/linux/serial.h
 +++ b/include/linux/serial.h
 @@ -15,6 +15,8 @@
  #ifdef __KERNEL__
  #include asm/page.h

 +#include linux/tty_flags.h
 +
  /*
   * Counters of the input lines (CTS, DSR, RI, CD) interrupts
   */
 diff --git a/include/linux/tty.h b/include/linux/tty.h
 index 69a787f..dbebd1e 100644
 --- a/include/linux/tty.h
 +++ b/include/linux/tty.h
 @@ -43,6 +43,7 @@
  #include linux/tty_driver.h
  #include linux/tty_ldisc.h
  #include linux/mutex.h
 +#include linux/tty_flags.h



 diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h
 new file mode 100644
 index 000..eefcb48
 --- /dev/null
 +++ b/include/linux/tty_flags.h
 @@ -0,0 +1,78 @@
 +#ifndef _LINUX_TTY_FLAGS_H
 +#define _LINUX_TTY_FLAGS_H
 +
 +/*
 + * Definitions for async_struct (and serial_struct) flags field also
 + * shared by the tty_port flags structures.
 + *
 + * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
 + */
 +#define ASYNCB_HUP_NOTIFY   0 /* Notify getty on hangups and closes
 +   * on the callout port */
 +#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport 
 settings */
 +#define ASYNCB_SAK  2 /* Secure Attention Key (Orange book) */
 +#define ASYNCB_SPLIT_TERMIOS3 /* Separate termios for dialin/callout */
 +#define ASYNCB_SPD_HI   4 /* Use 56000 instead of 38400 bps */
 +#define ASYNCB_SPD_VHI  5 /* Use 115200 instead of 38400 bps */
 +#define ASYNCB_SKIP_TEST6 /* Skip UART test during autoconfiguration 
 */
 +#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
 +   * autoconfiguration */
 +#define ASYNCB_SESSION_LOCKOUT  8 /* Lock out cua opens based on session */
 +#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
 +#define ASYNCB_CALLOUT_NOHUP   10 /* Don't do hangups for cua device */
 +#define ASYNCB_HARDPPS_CD  11 /* Call hardpps when CD goes high  */
 +#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
 +#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
 +#define ASYNCB_BUGGY_UART  14 /* This is a buggy UART, skip some safety
 +   * checks.  Note: can be dangerous! */
 +#define ASYNCB_AUTOPROBE   15 /* Port was autoprobed by PCI or PNP code 
 */
 +#define ASYNCB_LAST_USER   15
 +
 +/* Internal flags used only by kernel */
 +#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
 +#define ASYNCB_SUSPENDED   30 /* Serial port is suspended */
 +#define ASYNCB_NORMAL_ACTIVE   29 /* Normal device is active */
 +#define ASYNCB_BOOT_AUTOCONF   28 /* Autoconfigure port on bootup */
 +#define ASYNCB_CLOSING 27 /* Serial port is closing */
 +#define ASYNCB_CTS_FLOW26 /* Do CTS flow control */
 +#define ASYNCB_CHECK_CD25 /* i.e., CLOCAL */
 +#define ASYNCB_SHARE_IRQ   24 /* for multifunction cards, no longer used 
 */
 +#define ASYNCB_CONS_FLOW   23 /* flow control for console  */
 +#define ASYNCB_FIRST_KERNEL22
 +
 +#define ASYNC_HUP_NOTIFY   (1U  ASYNCB_HUP_NOTIFY)
 +#define ASYNC_SUSPENDED(1U  ASYNCB_SUSPENDED)
 +#define ASYNC_FOURPORT (1U  ASYNCB_FOURPORT)
 +#define ASYNC_SAK  (1U  ASYNCB_SAK)
 +#define ASYNC_SPLIT_TERMIOS(1U  ASYNCB_SPLIT_TERMIOS)
 +#define ASYNC_SPD_HI   (1U  ASYNCB_SPD_HI)
 +#define ASYNC_SPD_VHI  (1U  ASYNCB_SPD_VHI)
 +#define ASYNC_SKIP_TEST(1U  ASYNCB_SKIP_TEST)
 +#define ASYNC_AUTO_IRQ (1U  ASYNCB_AUTO_IRQ)
 +#define ASYNC_SESSION_LOCKOUT  (1U  ASYNCB_SESSION_LOCKOUT)
 +#define ASYNC_PGRP_LOCKOUT (1U  ASYNCB_PGRP_LOCKOUT)
 +#define ASYNC_CALLOUT_NOHUP(1U  ASYNCB_CALLOUT_NOHUP)
 +#define ASYNC_HARDPPS_CD   (1U  ASYNCB_HARDPPS_CD)
 +#define ASYNC_SPD_SHI  (1U  ASYNCB_SPD_SHI)
 +#define ASYNC_LOW_LATENCY  (1U  ASYNCB_LOW_LATENCY)
 +#define ASYNC_BUGGY_UART   (1U  ASYNCB_BUGGY_UART)
 +#define