diff options
author | Fabian Frederick <fabf@skynet.be> | 2014-10-05 13:01:02 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-05 22:20:52 -0500 |
commit | b6b30d67f39b7522d606751c0dba019577f0835a (patch) | |
tree | b5568061924fbe66cf25ddd2b1915109f729ac78 | |
parent | 0a0661ddb8fc9298a293558898e1045fbf54f256 (diff) |
serial: use container_of to resolve uart_sio_port from uart_port
Use container_of instead of casting first structure member.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/tty/serial/m32r_sio.c | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/drivers/tty/serial/m32r_sio.c b/drivers/tty/serial/m32r_sio.c index 5702828fb62e..8f7f83a14c93 100644 --- a/drivers/tty/serial/m32r_sio.c +++ b/drivers/tty/serial/m32r_sio.c | |||
@@ -249,7 +249,8 @@ static void serial_out(struct uart_sio_port *up, int offset, int value) | |||
249 | 249 | ||
250 | static void m32r_sio_stop_tx(struct uart_port *port) | 250 | static void m32r_sio_stop_tx(struct uart_port *port) |
251 | { | 251 | { |
252 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 252 | struct uart_sio_port *up = |
253 | container_of(port, struct uart_sio_port, port); | ||
253 | 254 | ||
254 | if (up->ier & UART_IER_THRI) { | 255 | if (up->ier & UART_IER_THRI) { |
255 | up->ier &= ~UART_IER_THRI; | 256 | up->ier &= ~UART_IER_THRI; |
@@ -260,7 +261,8 @@ static void m32r_sio_stop_tx(struct uart_port *port) | |||
260 | static void m32r_sio_start_tx(struct uart_port *port) | 261 | static void m32r_sio_start_tx(struct uart_port *port) |
261 | { | 262 | { |
262 | #ifdef CONFIG_SERIAL_M32R_PLDSIO | 263 | #ifdef CONFIG_SERIAL_M32R_PLDSIO |
263 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 264 | struct uart_sio_port *up = |
265 | container_of(port, struct uart_sio_port, port); | ||
264 | struct circ_buf *xmit = &up->port.state->xmit; | 266 | struct circ_buf *xmit = &up->port.state->xmit; |
265 | 267 | ||
266 | if (!(up->ier & UART_IER_THRI)) { | 268 | if (!(up->ier & UART_IER_THRI)) { |
@@ -274,7 +276,8 @@ static void m32r_sio_start_tx(struct uart_port *port) | |||
274 | } | 276 | } |
275 | while((serial_in(up, UART_LSR) & UART_EMPTY) != UART_EMPTY); | 277 | while((serial_in(up, UART_LSR) & UART_EMPTY) != UART_EMPTY); |
276 | #else | 278 | #else |
277 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 279 | struct uart_sio_port *up = |
280 | container_of(port, struct uart_sio_port, port); | ||
278 | 281 | ||
279 | if (!(up->ier & UART_IER_THRI)) { | 282 | if (!(up->ier & UART_IER_THRI)) { |
280 | up->ier |= UART_IER_THRI; | 283 | up->ier |= UART_IER_THRI; |
@@ -285,7 +288,8 @@ static void m32r_sio_start_tx(struct uart_port *port) | |||
285 | 288 | ||
286 | static void m32r_sio_stop_rx(struct uart_port *port) | 289 | static void m32r_sio_stop_rx(struct uart_port *port) |
287 | { | 290 | { |
288 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 291 | struct uart_sio_port *up = |
292 | container_of(port, struct uart_sio_port, port); | ||
289 | 293 | ||
290 | up->ier &= ~UART_IER_RLSI; | 294 | up->ier &= ~UART_IER_RLSI; |
291 | up->port.read_status_mask &= ~UART_LSR_DR; | 295 | up->port.read_status_mask &= ~UART_LSR_DR; |
@@ -294,7 +298,8 @@ static void m32r_sio_stop_rx(struct uart_port *port) | |||
294 | 298 | ||
295 | static void m32r_sio_enable_ms(struct uart_port *port) | 299 | static void m32r_sio_enable_ms(struct uart_port *port) |
296 | { | 300 | { |
297 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 301 | struct uart_sio_port *up = |
302 | container_of(port, struct uart_sio_port, port); | ||
298 | 303 | ||
299 | up->ier |= UART_IER_MSI; | 304 | up->ier |= UART_IER_MSI; |
300 | serial_out(up, UART_IER, up->ier); | 305 | serial_out(up, UART_IER, up->ier); |
@@ -581,7 +586,8 @@ static void m32r_sio_timeout(unsigned long data) | |||
581 | 586 | ||
582 | static unsigned int m32r_sio_tx_empty(struct uart_port *port) | 587 | static unsigned int m32r_sio_tx_empty(struct uart_port *port) |
583 | { | 588 | { |
584 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 589 | struct uart_sio_port *up = |
590 | container_of(port, struct uart_sio_port, port); | ||
585 | unsigned long flags; | 591 | unsigned long flags; |
586 | unsigned int ret; | 592 | unsigned int ret; |
587 | 593 | ||
@@ -609,7 +615,8 @@ static void m32r_sio_break_ctl(struct uart_port *port, int break_state) | |||
609 | 615 | ||
610 | static int m32r_sio_startup(struct uart_port *port) | 616 | static int m32r_sio_startup(struct uart_port *port) |
611 | { | 617 | { |
612 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 618 | struct uart_sio_port *up = |
619 | container_of(port, struct uart_sio_port, port); | ||
613 | int retval; | 620 | int retval; |
614 | 621 | ||
615 | sio_init(); | 622 | sio_init(); |
@@ -652,7 +659,8 @@ static int m32r_sio_startup(struct uart_port *port) | |||
652 | 659 | ||
653 | static void m32r_sio_shutdown(struct uart_port *port) | 660 | static void m32r_sio_shutdown(struct uart_port *port) |
654 | { | 661 | { |
655 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 662 | struct uart_sio_port *up = |
663 | container_of(port, struct uart_sio_port, port); | ||
656 | 664 | ||
657 | /* | 665 | /* |
658 | * Disable interrupts from this port | 666 | * Disable interrupts from this port |
@@ -681,7 +689,8 @@ static unsigned int m32r_sio_get_divisor(struct uart_port *port, | |||
681 | static void m32r_sio_set_termios(struct uart_port *port, | 689 | static void m32r_sio_set_termios(struct uart_port *port, |
682 | struct ktermios *termios, struct ktermios *old) | 690 | struct ktermios *termios, struct ktermios *old) |
683 | { | 691 | { |
684 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 692 | struct uart_sio_port *up = |
693 | container_of(port, struct uart_sio_port, port); | ||
685 | unsigned char cval = 0; | 694 | unsigned char cval = 0; |
686 | unsigned long flags; | 695 | unsigned long flags; |
687 | unsigned int baud, quot; | 696 | unsigned int baud, quot; |
@@ -780,7 +789,8 @@ static void m32r_sio_set_termios(struct uart_port *port, | |||
780 | static void m32r_sio_pm(struct uart_port *port, unsigned int state, | 789 | static void m32r_sio_pm(struct uart_port *port, unsigned int state, |
781 | unsigned int oldstate) | 790 | unsigned int oldstate) |
782 | { | 791 | { |
783 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 792 | struct uart_sio_port *up = |
793 | container_of(port, struct uart_sio_port, port); | ||
784 | 794 | ||
785 | if (up->pm) | 795 | if (up->pm) |
786 | up->pm(port, state, oldstate); | 796 | up->pm(port, state, oldstate); |
@@ -825,7 +835,8 @@ m32r_sio_request_std_resource(struct uart_sio_port *up, struct resource **res) | |||
825 | 835 | ||
826 | static void m32r_sio_release_port(struct uart_port *port) | 836 | static void m32r_sio_release_port(struct uart_port *port) |
827 | { | 837 | { |
828 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 838 | struct uart_sio_port *up = |
839 | container_of(port, struct uart_sio_port, port); | ||
829 | unsigned long start, offset = 0, size = 0; | 840 | unsigned long start, offset = 0, size = 0; |
830 | 841 | ||
831 | size <<= up->port.regshift; | 842 | size <<= up->port.regshift; |
@@ -862,7 +873,8 @@ static void m32r_sio_release_port(struct uart_port *port) | |||
862 | 873 | ||
863 | static int m32r_sio_request_port(struct uart_port *port) | 874 | static int m32r_sio_request_port(struct uart_port *port) |
864 | { | 875 | { |
865 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 876 | struct uart_sio_port *up = |
877 | container_of(port, struct uart_sio_port, port); | ||
866 | struct resource *res = NULL; | 878 | struct resource *res = NULL; |
867 | int ret = 0; | 879 | int ret = 0; |
868 | 880 | ||
@@ -889,7 +901,8 @@ static int m32r_sio_request_port(struct uart_port *port) | |||
889 | 901 | ||
890 | static void m32r_sio_config_port(struct uart_port *port, int unused) | 902 | static void m32r_sio_config_port(struct uart_port *port, int unused) |
891 | { | 903 | { |
892 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 904 | struct uart_sio_port *up = |
905 | container_of(port, struct uart_sio_port, port); | ||
893 | unsigned long flags; | 906 | unsigned long flags; |
894 | 907 | ||
895 | spin_lock_irqsave(&up->port.lock, flags); | 908 | spin_lock_irqsave(&up->port.lock, flags); |
@@ -1000,7 +1013,8 @@ static inline void wait_for_xmitr(struct uart_sio_port *up) | |||
1000 | 1013 | ||
1001 | static void m32r_sio_console_putchar(struct uart_port *port, int ch) | 1014 | static void m32r_sio_console_putchar(struct uart_port *port, int ch) |
1002 | { | 1015 | { |
1003 | struct uart_sio_port *up = (struct uart_sio_port *)port; | 1016 | struct uart_sio_port *up = |
1017 | container_of(port, struct uart_sio_port, port); | ||
1004 | 1018 | ||
1005 | wait_for_xmitr(up); | 1019 | wait_for_xmitr(up); |
1006 | sio_out(up, SIOTXB, ch); | 1020 | sio_out(up, SIOTXB, ch); |