1 From 025909cbf933cc20c2ff5ea9f87de8e17a739a08 Mon Sep 17 00:00:00 2001
2 From: Andy Gross <agross@codeaurora.org>
3 Date: Thu, 24 Apr 2014 11:31:22 -0500
4 Subject: [PATCH 087/182] tty: serial: msm: Remove direct access to GSBI
6 This patch removes direct access of the GSBI registers. GSBI configuration
7 should be done through the GSBI driver directly.
9 Signed-off-by: Andy Gross <agross@codeaurora.org>
10 Signed-off-by: Kumar Gala <galak@codeaurora.org>
12 drivers/tty/serial/msm_serial.c | 48 ++-------------------------------------
13 drivers/tty/serial/msm_serial.h | 5 ----
14 2 files changed, 2 insertions(+), 51 deletions(-)
16 diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
17 index 053b98e..778e376 100644
18 --- a/drivers/tty/serial/msm_serial.c
19 +++ b/drivers/tty/serial/msm_serial.c
20 @@ -52,7 +52,6 @@ struct msm_port {
24 - void __iomem *gsbi_base;
26 unsigned int old_snap_state;
28 @@ -599,9 +598,7 @@ static const char *msm_type(struct uart_port *port)
29 static void msm_release_port(struct uart_port *port)
31 struct platform_device *pdev = to_platform_device(port->dev);
32 - struct msm_port *msm_port = UART_TO_MSM(port);
33 struct resource *uart_resource;
34 - struct resource *gsbi_resource;
37 uart_resource = platform_get_resource(pdev, IORESOURCE_MEM, 0);
38 @@ -612,28 +609,12 @@ static void msm_release_port(struct uart_port *port)
39 release_mem_region(port->mapbase, size);
40 iounmap(port->membase);
43 - if (msm_port->gsbi_base) {
44 - writel_relaxed(GSBI_PROTOCOL_IDLE,
45 - msm_port->gsbi_base + GSBI_CONTROL);
47 - gsbi_resource = platform_get_resource(pdev, IORESOURCE_MEM, 1);
48 - if (unlikely(!gsbi_resource))
51 - size = resource_size(gsbi_resource);
52 - release_mem_region(gsbi_resource->start, size);
53 - iounmap(msm_port->gsbi_base);
54 - msm_port->gsbi_base = NULL;
58 static int msm_request_port(struct uart_port *port)
60 - struct msm_port *msm_port = UART_TO_MSM(port);
61 struct platform_device *pdev = to_platform_device(port->dev);
62 struct resource *uart_resource;
63 - struct resource *gsbi_resource;
67 @@ -652,30 +633,8 @@ static int msm_request_port(struct uart_port *port)
68 goto fail_release_port;
71 - gsbi_resource = platform_get_resource(pdev, IORESOURCE_MEM, 1);
72 - /* Is this a GSBI-based port? */
73 - if (gsbi_resource) {
74 - size = resource_size(gsbi_resource);
76 - if (!request_mem_region(gsbi_resource->start, size,
79 - goto fail_release_port_membase;
82 - msm_port->gsbi_base = ioremap(gsbi_resource->start, size);
83 - if (!msm_port->gsbi_base) {
85 - goto fail_release_gsbi;
92 - release_mem_region(gsbi_resource->start, size);
93 -fail_release_port_membase:
94 - iounmap(port->membase);
96 release_mem_region(port->mapbase, size);
98 @@ -683,7 +642,6 @@ fail_release_port:
100 static void msm_config_port(struct uart_port *port, int flags)
102 - struct msm_port *msm_port = UART_TO_MSM(port);
104 if (flags & UART_CONFIG_TYPE) {
105 port->type = PORT_MSM;
106 @@ -691,9 +649,6 @@ static void msm_config_port(struct uart_port *port, int flags)
110 - if (msm_port->gsbi_base)
111 - writel_relaxed(GSBI_PROTOCOL_UART,
112 - msm_port->gsbi_base + GSBI_CONTROL);
115 static int msm_verify_port(struct uart_port *port, struct serial_struct *ser)
116 @@ -1110,6 +1065,7 @@ static struct of_device_id msm_match_table[] = {
118 static struct platform_driver msm_platform_driver = {
119 .remove = msm_serial_remove,
120 + .probe = msm_serial_probe,
122 .name = "msm_serial",
123 .owner = THIS_MODULE,
124 @@ -1125,7 +1081,7 @@ static int __init msm_serial_init(void)
128 - ret = platform_driver_probe(&msm_platform_driver, msm_serial_probe);
129 + ret = platform_driver_register(&msm_platform_driver);
131 uart_unregister_driver(&msm_uart_driver);
133 diff --git a/drivers/tty/serial/msm_serial.h b/drivers/tty/serial/msm_serial.h
134 index 1e9b68b..d98d45e 100644
135 --- a/drivers/tty/serial/msm_serial.h
136 +++ b/drivers/tty/serial/msm_serial.h
138 #define UART_ISR 0x0014
139 #define UART_ISR_TX_READY (1 << 7)
141 -#define GSBI_CONTROL 0x0
142 -#define GSBI_PROTOCOL_CODE 0x30
143 -#define GSBI_PROTOCOL_UART 0x40
144 -#define GSBI_PROTOCOL_IDLE 0x0
146 #define UARTDM_RXFS 0x50
147 #define UARTDM_RXFS_BUF_SHIFT 0x7
148 #define UARTDM_RXFS_BUF_MASK 0x7