Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ARM] 4998/1: <IMX UART>: do not use hardcoded io space size

Do not use hardcoded io space size. Instead use the information provided
by the resource.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Sascha Hauer and committed by
Russell King
3d454446 789d5258

+15 -10
+15 -10
drivers/serial/imx.c
··· 167 167 #define MINOR_START 41 168 168 169 169 /* 170 - * This is the size of our serial port register set. 171 - */ 172 - #define UART_PORT_SIZE 0x100 173 - 174 - /* 175 170 * This determines how often we check the modem status signals 176 171 * for any change. They generally aren't connected to an IRQ 177 172 * so we have to poll them. We also check immediately before ··· 716 721 */ 717 722 static void imx_release_port(struct uart_port *port) 718 723 { 719 - struct imx_port *sport = (struct imx_port *)port; 724 + struct platform_device *pdev = to_platform_device(port->dev); 725 + struct resource *mmres; 720 726 721 - release_mem_region(sport->port.mapbase, UART_PORT_SIZE); 727 + mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0); 728 + release_mem_region(mmres->start, mmres->end - mmres->start + 1); 722 729 } 723 730 724 731 /* ··· 728 731 */ 729 732 static int imx_request_port(struct uart_port *port) 730 733 { 731 - struct imx_port *sport = (struct imx_port *)port; 734 + struct platform_device *pdev = to_platform_device(port->dev); 735 + struct resource *mmres; 736 + void *ret; 732 737 733 - return request_mem_region(sport->port.mapbase, UART_PORT_SIZE, 734 - "imx-uart") != NULL ? 0 : -EBUSY; 738 + mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0); 739 + if (!mmres) 740 + return -ENODEV; 741 + 742 + ret = request_mem_region(mmres->start, mmres->end - mmres->start + 1, 743 + "imx-uart"); 744 + 745 + return ret ? 0 : -EBUSY; 735 746 } 736 747 737 748 /*