* [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling @ 2017-06-13 20:24 Alexandre Belloni 2017-06-13 20:24 ` [PATCH v2 2/2] tty/serial: atmel: make the driver DT only Alexandre Belloni ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Alexandre Belloni @ 2017-06-13 20:24 UTC (permalink / raw) To: Richard Genoud, Greg Kroah-Hartman Cc: Nicolas Ferre, linux-serial, linux-arm-kernel, linux-kernel, Alexandre Belloni atmel_default_console_device was only used by AVR32, in particular arch/avr32/mach-at32ap/at32ap700x.c which is now gone. Remove it from the driver. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- Changes in v2: - added an empty line as suggested by Andy - properly based the patch on v4.12-rc1 drivers/tty/serial/atmel_serial.c | 43 --------------------------------------- 1 file changed, 43 deletions(-) diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c index c355ac9abafc..906e2b91bf57 100644 --- a/drivers/tty/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c @@ -2460,8 +2460,6 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port, return 0; } -struct platform_device *atmel_default_console_device; /* the serial console device */ - #ifdef CONFIG_SERIAL_ATMEL_CONSOLE static void atmel_console_putchar(struct uart_port *port, int ch) { @@ -2594,47 +2592,6 @@ static struct console atmel_console = { #define ATMEL_CONSOLE_DEVICE (&atmel_console) -/* - * Early console initialization (before VM subsystem initialized). - */ -static int __init atmel_console_init(void) -{ - int ret; - if (atmel_default_console_device) { - struct atmel_uart_data *pdata = - dev_get_platdata(&atmel_default_console_device->dev); - int id = pdata->num; - struct atmel_uart_port *atmel_port = &atmel_ports[id]; - - atmel_port->backup_imr = 0; - atmel_port->uart.line = id; - - add_preferred_console(ATMEL_DEVICENAME, id, NULL); - ret = atmel_init_port(atmel_port, atmel_default_console_device); - if (ret) - return ret; - register_console(&atmel_console); - } - - return 0; -} - -console_initcall(atmel_console_init); - -/* - * Late console initialization. - */ -static int __init atmel_late_console_init(void) -{ - if (atmel_default_console_device - && !(atmel_console.flags & CON_ENABLED)) - register_console(&atmel_console); - - return 0; -} - -core_initcall(atmel_late_console_init); - static inline bool atmel_is_console_port(struct uart_port *port) { return port->cons && port->cons->index == port->line; -- 2.11.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] tty/serial: atmel: make the driver DT only 2017-06-13 20:24 [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Alexandre Belloni @ 2017-06-13 20:24 ` Alexandre Belloni 2017-06-14 7:41 ` Richard Genoud 2017-06-14 7:40 ` [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Richard Genoud 2017-06-23 9:01 ` Uwe Kleine-König 2 siblings, 1 reply; 5+ messages in thread From: Alexandre Belloni @ 2017-06-13 20:24 UTC (permalink / raw) To: Richard Genoud, Greg Kroah-Hartman Cc: Nicolas Ferre, linux-serial, linux-arm-kernel, linux-kernel, Alexandre Belloni Now that AVR32 is gone, platform_data are not used to initialize the driver anymore, remove that path from the driver. Also remove the now unused struct atmel_uart_data. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- drivers/tty/serial/atmel_serial.c | 96 +++++++++++++------------------------ include/linux/platform_data/atmel.h | 10 ---- 2 files changed, 33 insertions(+), 73 deletions(-) diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c index 906e2b91bf57..937d67f22fba 100644 --- a/drivers/tty/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c @@ -1655,72 +1655,56 @@ static void atmel_init_property(struct atmel_uart_port *atmel_port, struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; - struct atmel_uart_data *pdata = dev_get_platdata(&pdev->dev); - - if (np) { - /* DMA/PDC usage specification */ - if (of_property_read_bool(np, "atmel,use-dma-rx")) { - if (of_property_read_bool(np, "dmas")) { - atmel_port->use_dma_rx = true; - atmel_port->use_pdc_rx = false; - } else { - atmel_port->use_dma_rx = false; - atmel_port->use_pdc_rx = true; - } + + /* DMA/PDC usage specification */ + if (of_property_read_bool(np, "atmel,use-dma-rx")) { + if (of_property_read_bool(np, "dmas")) { + atmel_port->use_dma_rx = true; + atmel_port->use_pdc_rx = false; } else { atmel_port->use_dma_rx = false; - atmel_port->use_pdc_rx = false; + atmel_port->use_pdc_rx = true; } + } else { + atmel_port->use_dma_rx = false; + atmel_port->use_pdc_rx = false; + } - if (of_property_read_bool(np, "atmel,use-dma-tx")) { - if (of_property_read_bool(np, "dmas")) { - atmel_port->use_dma_tx = true; - atmel_port->use_pdc_tx = false; - } else { - atmel_port->use_dma_tx = false; - atmel_port->use_pdc_tx = true; - } + if (of_property_read_bool(np, "atmel,use-dma-tx")) { + if (of_property_read_bool(np, "dmas")) { + atmel_port->use_dma_tx = true; + atmel_port->use_pdc_tx = false; } else { atmel_port->use_dma_tx = false; - atmel_port->use_pdc_tx = false; + atmel_port->use_pdc_tx = true; } - } else { - atmel_port->use_pdc_rx = pdata->use_dma_rx; - atmel_port->use_pdc_tx = pdata->use_dma_tx; - atmel_port->use_dma_rx = false; atmel_port->use_dma_tx = false; + atmel_port->use_pdc_tx = false; } - } static void atmel_init_rs485(struct uart_port *port, struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; - struct atmel_uart_data *pdata = dev_get_platdata(&pdev->dev); - - if (np) { - struct serial_rs485 *rs485conf = &port->rs485; - u32 rs485_delay[2]; - /* rs485 properties */ - if (of_property_read_u32_array(np, "rs485-rts-delay", - rs485_delay, 2) == 0) { - rs485conf->delay_rts_before_send = rs485_delay[0]; - rs485conf->delay_rts_after_send = rs485_delay[1]; - rs485conf->flags = 0; - } - if (of_get_property(np, "rs485-rx-during-tx", NULL)) - rs485conf->flags |= SER_RS485_RX_DURING_TX; + struct serial_rs485 *rs485conf = &port->rs485; + u32 rs485_delay[2]; - if (of_get_property(np, "linux,rs485-enabled-at-boot-time", - NULL)) - rs485conf->flags |= SER_RS485_ENABLED; - } else { - port->rs485 = pdata->rs485; + /* rs485 properties */ + if (of_property_read_u32_array(np, "rs485-rts-delay", + rs485_delay, 2) == 0) { + rs485conf->delay_rts_before_send = rs485_delay[0]; + rs485conf->delay_rts_after_send = rs485_delay[1]; + rs485conf->flags = 0; } + if (of_get_property(np, "rs485-rx-during-tx", NULL)) + rs485conf->flags |= SER_RS485_RX_DURING_TX; + + if (of_get_property(np, "linux,rs485-enabled-at-boot-time", NULL)) + rs485conf->flags |= SER_RS485_ENABLED; } static void atmel_set_ops(struct uart_port *port) @@ -2402,7 +2386,6 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port, { int ret; struct uart_port *port = &atmel_port->uart; - struct atmel_uart_data *pdata = dev_get_platdata(&pdev->dev); atmel_init_property(atmel_port, pdev); atmel_set_ops(port); @@ -2410,24 +2393,17 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port, atmel_init_rs485(port, pdev); port->iotype = UPIO_MEM; - port->flags = UPF_BOOT_AUTOCONF; + port->flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP; port->ops = &atmel_pops; port->fifosize = 1; port->dev = &pdev->dev; port->mapbase = pdev->resource[0].start; port->irq = pdev->resource[1].start; port->rs485_config = atmel_config_rs485; + port->membase = NULL; memset(&atmel_port->rx_ring, 0, sizeof(atmel_port->rx_ring)); - if (pdata && pdata->regs) { - /* Already mapped by setup code */ - port->membase = pdata->regs; - } else { - port->flags |= UPF_IOREMAP; - port->membase = NULL; - } - /* for console, the clock could already be configured */ if (!atmel_port->clk) { atmel_port->clk = clk_get(&pdev->dev, "usart"); @@ -2761,19 +2737,13 @@ static int atmel_serial_probe(struct platform_device *pdev) { struct atmel_uart_port *atmel_port; struct device_node *np = pdev->dev.of_node; - struct atmel_uart_data *pdata = dev_get_platdata(&pdev->dev); void *data; int ret = -ENODEV; bool rs485_enabled; BUILD_BUG_ON(ATMEL_SERIAL_RINGSIZE & (ATMEL_SERIAL_RINGSIZE - 1)); - if (np) - ret = of_alias_get_id(np, "serial"); - else - if (pdata) - ret = pdata->num; - + ret = of_alias_get_id(np, "serial"); if (ret < 0) /* port id not found in platform data nor device-tree aliases: * auto-enumerate it */ diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h index 3c8825b67298..d36bc8d17e97 100644 --- a/include/linux/platform_data/atmel.h +++ b/include/linux/platform_data/atmel.h @@ -9,7 +9,6 @@ #include <linux/mtd/nand.h> #include <linux/mtd/partitions.h> -#include <linux/serial.h> /* Compact Flash */ struct at91_cf_data { @@ -42,15 +41,6 @@ struct atmel_nand_data { bool need_reset_workaround; }; - /* Serial */ -struct atmel_uart_data { - int num; /* port num */ - short use_dma_tx; /* use transmit DMA? */ - short use_dma_rx; /* use receive DMA? */ - void __iomem *regs; /* virt. base address, if any */ - struct serial_rs485 rs485; /* rs485 settings */ -}; - /* FIXME: this needs a better location, but gets stuff building again */ extern int at91_suspend_entering_slow_clock(void); -- 2.11.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] tty/serial: atmel: make the driver DT only 2017-06-13 20:24 ` [PATCH v2 2/2] tty/serial: atmel: make the driver DT only Alexandre Belloni @ 2017-06-14 7:41 ` Richard Genoud 0 siblings, 0 replies; 5+ messages in thread From: Richard Genoud @ 2017-06-14 7:41 UTC (permalink / raw) To: Alexandre Belloni, Greg Kroah-Hartman Cc: Nicolas Ferre, linux-serial, linux-arm-kernel, linux-kernel On 13/06/2017 22:24, Alexandre Belloni wrote: > Now that AVR32 is gone, platform_data are not used to initialize the driver > anymore, remove that path from the driver. Also remove the now unused > struct atmel_uart_data. > > Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > --- > drivers/tty/serial/atmel_serial.c | 96 +++++++++++++------------------------ > include/linux/platform_data/atmel.h | 10 ---- > 2 files changed, 33 insertions(+), 73 deletions(-) Acked-by: Richard Genoud <richard.genoud@gmail.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling 2017-06-13 20:24 [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Alexandre Belloni 2017-06-13 20:24 ` [PATCH v2 2/2] tty/serial: atmel: make the driver DT only Alexandre Belloni @ 2017-06-14 7:40 ` Richard Genoud 2017-06-23 9:01 ` Uwe Kleine-König 2 siblings, 0 replies; 5+ messages in thread From: Richard Genoud @ 2017-06-14 7:40 UTC (permalink / raw) To: Alexandre Belloni, Greg Kroah-Hartman Cc: Nicolas Ferre, linux-serial, linux-arm-kernel, linux-kernel On 13/06/2017 22:24, Alexandre Belloni wrote: > atmel_default_console_device was only used by AVR32, in particular > arch/avr32/mach-at32ap/at32ap700x.c which is now gone. Remove it from the > driver. > > Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > --- > > Changes in v2: > - added an empty line as suggested by Andy > - properly based the patch on v4.12-rc1 > > drivers/tty/serial/atmel_serial.c | 43 --------------------------------------- > 1 file changed, 43 deletions(-) > Acked-by: Richard Genoud <richard.genoud@gmail.com> Thanks ! ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling 2017-06-13 20:24 [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Alexandre Belloni 2017-06-13 20:24 ` [PATCH v2 2/2] tty/serial: atmel: make the driver DT only Alexandre Belloni 2017-06-14 7:40 ` [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Richard Genoud @ 2017-06-23 9:01 ` Uwe Kleine-König 2 siblings, 0 replies; 5+ messages in thread From: Uwe Kleine-König @ 2017-06-23 9:01 UTC (permalink / raw) To: Alexandre Belloni Cc: Richard Genoud, Greg Kroah-Hartman, Nicolas Ferre, linux-serial, linux-arm-kernel, linux-kernel On Tue, Jun 13, 2017 at 10:24:38PM +0200, Alexandre Belloni wrote: > atmel_default_console_device was only used by AVR32, in particular > arch/avr32/mach-at32ap/at32ap700x.c which is now gone. Remove it from the > driver. > > Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> I found the same change independently, but as you were there first: Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-06-23 9:01 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-13 20:24 [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Alexandre Belloni 2017-06-13 20:24 ` [PATCH v2 2/2] tty/serial: atmel: make the driver DT only Alexandre Belloni 2017-06-14 7:41 ` Richard Genoud 2017-06-14 7:40 ` [PATCH v2 1/2] tty/serial: atmel: remove atmel_default_console_device handling Richard Genoud 2017-06-23 9:01 ` Uwe Kleine-König
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).