| From 2b96c21b6e34f18968be422f502aabee24366f97 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Wed, 11 Jan 2017 16:43:39 +0200 |
| Subject: [PATCH 225/255] serial: sh-sci: Remove unused platform data |
| capabilities field |
| |
| The field isn't set by any platform but is only used internally in the |
| driver to hold data parsed from DT. Move it to the sci_port structure. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 97ed9790c514066bfae67f22e084b505ed5af436) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/tty/serial/sh-sci.c | 11 +++++++---- |
| include/linux/serial_sci.h | 6 ------ |
| 2 files changed, 7 insertions(+), 10 deletions(-) |
| |
| --- a/drivers/tty/serial/sh-sci.c |
| +++ b/drivers/tty/serial/sh-sci.c |
| @@ -149,6 +149,7 @@ struct sci_port { |
| unsigned int rx_timeout; |
| #endif |
| |
| + bool has_rtscts; |
| bool autorts; |
| }; |
| |
| @@ -680,7 +681,7 @@ static void sci_init_pins(struct uart_po |
| |
| /* Enable RXD and TXD pin functions */ |
| ctrl &= ~(SCPCR_RXDC | SCPCR_TXDC); |
| - if (to_sci_port(port)->cfg->capabilities & SCIx_HAVE_RTSCTS) { |
| + if (to_sci_port(port)->has_rtscts) { |
| /* RTS# is output, driven 1 */ |
| ctrl |= SCPCR_RTSC; |
| serial_port_out(port, SCPDR, |
| @@ -1738,7 +1739,7 @@ static void sci_set_mctrl(struct uart_po |
| |
| mctrl_gpio_set(s->gpios, mctrl); |
| |
| - if (!(s->cfg->capabilities & SCIx_HAVE_RTSCTS)) |
| + if (!s->has_rtscts) |
| return; |
| |
| if (!(mctrl & TIOCM_RTS)) { |
| @@ -2815,6 +2816,7 @@ sci_parse_dt(struct platform_device *pde |
| struct device_node *np = pdev->dev.of_node; |
| const struct of_device_id *match; |
| struct plat_sci_port *p; |
| + struct sci_port *sp; |
| int id; |
| |
| if (!IS_ENABLED(CONFIG_OF) || !np) |
| @@ -2835,13 +2837,14 @@ sci_parse_dt(struct platform_device *pde |
| return NULL; |
| } |
| |
| + sp = &sci_ports[id]; |
| *dev_id = id; |
| |
| p->type = SCI_OF_TYPE(match->data); |
| p->regtype = SCI_OF_REGTYPE(match->data); |
| |
| if (of_find_property(np, "uart-has-rtscts", NULL)) |
| - p->capabilities |= SCIx_HAVE_RTSCTS; |
| + sp->has_rtscts = true; |
| |
| return p; |
| } |
| @@ -2869,7 +2872,7 @@ static int sci_probe_single(struct platf |
| if (IS_ERR(sciport->gpios) && PTR_ERR(sciport->gpios) != -ENOSYS) |
| return PTR_ERR(sciport->gpios); |
| |
| - if (p->capabilities & SCIx_HAVE_RTSCTS) { |
| + if (sciport->has_rtscts) { |
| if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, |
| UART_GPIO_CTS)) || |
| !IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, |
| --- a/include/linux/serial_sci.h |
| +++ b/include/linux/serial_sci.h |
| @@ -44,17 +44,11 @@ struct plat_sci_port_ops { |
| }; |
| |
| /* |
| - * Port-specific capabilities |
| - */ |
| -#define SCIx_HAVE_RTSCTS BIT(0) |
| - |
| -/* |
| * Platform device specific platform_data struct |
| */ |
| struct plat_sci_port { |
| unsigned int type; /* SCI / SCIF / IRDA / HSCIF */ |
| upf_t flags; /* UPF_* flags */ |
| - unsigned long capabilities; /* Port features/capabilities */ |
| |
| unsigned int sampling_rate; |
| unsigned int scscr; /* SCSCR initialization */ |