Targets were build tested and patches are refreshed. Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 42463
		
			
				
	
	
		
			145 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 025909cbf933cc20c2ff5ea9f87de8e17a739a08 Mon Sep 17 00:00:00 2001
 | 
						|
From: Andy Gross <agross@codeaurora.org>
 | 
						|
Date: Thu, 24 Apr 2014 11:31:22 -0500
 | 
						|
Subject: [PATCH 087/182] tty: serial: msm: Remove direct access to GSBI
 | 
						|
 | 
						|
This patch removes direct access of the GSBI registers.  GSBI configuration
 | 
						|
should be done through the GSBI driver directly.
 | 
						|
 | 
						|
Signed-off-by: Andy Gross <agross@codeaurora.org>
 | 
						|
Signed-off-by: Kumar Gala <galak@codeaurora.org>
 | 
						|
---
 | 
						|
 drivers/tty/serial/msm_serial.c |   48 ++-------------------------------------
 | 
						|
 drivers/tty/serial/msm_serial.h |    5 ----
 | 
						|
 2 files changed, 2 insertions(+), 51 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/tty/serial/msm_serial.c
 | 
						|
+++ b/drivers/tty/serial/msm_serial.c
 | 
						|
@@ -52,7 +52,6 @@ struct msm_port {
 | 
						|
 	struct clk		*clk;
 | 
						|
 	struct clk		*pclk;
 | 
						|
 	unsigned int		imr;
 | 
						|
-	void __iomem		*gsbi_base;
 | 
						|
 	int			is_uartdm;
 | 
						|
 	unsigned int		old_snap_state;
 | 
						|
 };
 | 
						|
@@ -599,9 +598,7 @@ static const char *msm_type(struct uart_
 | 
						|
 static void msm_release_port(struct uart_port *port)
 | 
						|
 {
 | 
						|
 	struct platform_device *pdev = to_platform_device(port->dev);
 | 
						|
-	struct msm_port *msm_port = UART_TO_MSM(port);
 | 
						|
 	struct resource *uart_resource;
 | 
						|
-	struct resource *gsbi_resource;
 | 
						|
 	resource_size_t size;
 | 
						|
 
 | 
						|
 	uart_resource = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 | 
						|
@@ -612,28 +609,12 @@ static void msm_release_port(struct uart
 | 
						|
 	release_mem_region(port->mapbase, size);
 | 
						|
 	iounmap(port->membase);
 | 
						|
 	port->membase = NULL;
 | 
						|
-
 | 
						|
-	if (msm_port->gsbi_base) {
 | 
						|
-		writel_relaxed(GSBI_PROTOCOL_IDLE,
 | 
						|
-				msm_port->gsbi_base + GSBI_CONTROL);
 | 
						|
-
 | 
						|
-		gsbi_resource = platform_get_resource(pdev, IORESOURCE_MEM, 1);
 | 
						|
-		if (unlikely(!gsbi_resource))
 | 
						|
-			return;
 | 
						|
-
 | 
						|
-		size = resource_size(gsbi_resource);
 | 
						|
-		release_mem_region(gsbi_resource->start, size);
 | 
						|
-		iounmap(msm_port->gsbi_base);
 | 
						|
-		msm_port->gsbi_base = NULL;
 | 
						|
-	}
 | 
						|
 }
 | 
						|
 
 | 
						|
 static int msm_request_port(struct uart_port *port)
 | 
						|
 {
 | 
						|
-	struct msm_port *msm_port = UART_TO_MSM(port);
 | 
						|
 	struct platform_device *pdev = to_platform_device(port->dev);
 | 
						|
 	struct resource *uart_resource;
 | 
						|
-	struct resource *gsbi_resource;
 | 
						|
 	resource_size_t size;
 | 
						|
 	int ret;
 | 
						|
 
 | 
						|
@@ -652,30 +633,8 @@ static int msm_request_port(struct uart_
 | 
						|
 		goto fail_release_port;
 | 
						|
 	}
 | 
						|
 
 | 
						|
-	gsbi_resource = platform_get_resource(pdev, IORESOURCE_MEM, 1);
 | 
						|
-	/* Is this a GSBI-based port? */
 | 
						|
-	if (gsbi_resource) {
 | 
						|
-		size = resource_size(gsbi_resource);
 | 
						|
-
 | 
						|
-		if (!request_mem_region(gsbi_resource->start, size,
 | 
						|
-						 "msm_serial")) {
 | 
						|
-			ret = -EBUSY;
 | 
						|
-			goto fail_release_port_membase;
 | 
						|
-		}
 | 
						|
-
 | 
						|
-		msm_port->gsbi_base = ioremap(gsbi_resource->start, size);
 | 
						|
-		if (!msm_port->gsbi_base) {
 | 
						|
-			ret = -EBUSY;
 | 
						|
-			goto fail_release_gsbi;
 | 
						|
-		}
 | 
						|
-	}
 | 
						|
-
 | 
						|
 	return 0;
 | 
						|
 
 | 
						|
-fail_release_gsbi:
 | 
						|
-	release_mem_region(gsbi_resource->start, size);
 | 
						|
-fail_release_port_membase:
 | 
						|
-	iounmap(port->membase);
 | 
						|
 fail_release_port:
 | 
						|
 	release_mem_region(port->mapbase, size);
 | 
						|
 	return ret;
 | 
						|
@@ -683,7 +642,6 @@ fail_release_port:
 | 
						|
 
 | 
						|
 static void msm_config_port(struct uart_port *port, int flags)
 | 
						|
 {
 | 
						|
-	struct msm_port *msm_port = UART_TO_MSM(port);
 | 
						|
 	int ret;
 | 
						|
 	if (flags & UART_CONFIG_TYPE) {
 | 
						|
 		port->type = PORT_MSM;
 | 
						|
@@ -691,9 +649,6 @@ static void msm_config_port(struct uart_
 | 
						|
 		if (ret)
 | 
						|
 			return;
 | 
						|
 	}
 | 
						|
-	if (msm_port->gsbi_base)
 | 
						|
-		writel_relaxed(GSBI_PROTOCOL_UART,
 | 
						|
-				msm_port->gsbi_base + GSBI_CONTROL);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static int msm_verify_port(struct uart_port *port, struct serial_struct *ser)
 | 
						|
@@ -1110,6 +1065,7 @@ static struct of_device_id msm_match_tab
 | 
						|
 
 | 
						|
 static struct platform_driver msm_platform_driver = {
 | 
						|
 	.remove = msm_serial_remove,
 | 
						|
+	.probe = msm_serial_probe,
 | 
						|
 	.driver = {
 | 
						|
 		.name = "msm_serial",
 | 
						|
 		.owner = THIS_MODULE,
 | 
						|
@@ -1125,7 +1081,7 @@ static int __init msm_serial_init(void)
 | 
						|
 	if (unlikely(ret))
 | 
						|
 		return ret;
 | 
						|
 
 | 
						|
-	ret = platform_driver_probe(&msm_platform_driver, msm_serial_probe);
 | 
						|
+	ret = platform_driver_register(&msm_platform_driver);
 | 
						|
 	if (unlikely(ret))
 | 
						|
 		uart_unregister_driver(&msm_uart_driver);
 | 
						|
 
 | 
						|
--- a/drivers/tty/serial/msm_serial.h
 | 
						|
+++ b/drivers/tty/serial/msm_serial.h
 | 
						|
@@ -109,11 +109,6 @@
 | 
						|
 #define UART_ISR		0x0014
 | 
						|
 #define UART_ISR_TX_READY	(1 << 7)
 | 
						|
 
 | 
						|
-#define GSBI_CONTROL		0x0
 | 
						|
-#define GSBI_PROTOCOL_CODE	0x30
 | 
						|
-#define GSBI_PROTOCOL_UART	0x40
 | 
						|
-#define GSBI_PROTOCOL_IDLE	0x0
 | 
						|
-
 | 
						|
 #define UARTDM_RXFS		0x50
 | 
						|
 #define UARTDM_RXFS_BUF_SHIFT	0x7
 | 
						|
 #define UARTDM_RXFS_BUF_MASK	0x7
 |