diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2012-03-08 19:12:12 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-03-09 12:47:56 -0800 |
commit | 927353a75602dd97144352f53177e18093fdd198 (patch) | |
tree | c857c5f64ef1854e229d4b45e8115d07ae61827a /include/linux/serial_core.h | |
parent | dfe42443ea1d30c98db59b7b1f914bc147d31336 (diff) | |
download | lwn-927353a75602dd97144352f53177e18093fdd198.tar.gz lwn-927353a75602dd97144352f53177e18093fdd198.zip |
serial: introduce generic port in/out helpers
Looking at the existing serial drivers (esp. the 8250 derived
variants) we see a common trend. They create a hardware specific
port struct, which in turn contains a generic serial_port struct.
The other trend, is that they all create some sort of shortcut
to go through the hardware specific struct, to the serial_port
struct, which has the basic in/out operations within. Looking
for the serial_in and serial_out in several drivers shows this.
Rather than let this continue, lets create a generic set of
similar helper wrappers that can be used on a struct port, so
we can eliminate bouncing out through hardware specific struct
pointers just to come back into struct port where possible.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/serial_core.h')
-rw-r--r-- | include/linux/serial_core.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 585bfd03d2ee..f51bf2e70c69 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -383,6 +383,16 @@ struct uart_port { void *private_data; /* generic platform data pointer */ }; +static inline int serial_port_in(struct uart_port *up, int offset) +{ + return up->serial_in(up, offset); +} + +static inline void serial_port_out(struct uart_port *up, int offset, int value) +{ + up->serial_out(up, offset, value); +} + /* * This is the state information which is persistent across opens. */ |