diff options
| -rw-r--r-- | drivers/serial/imx.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index dd1e071834be..0ce2b4a45e6d 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
| @@ -167,11 +167,6 @@ | |||
| 167 | #define MINOR_START 41 | 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 | * This determines how often we check the modem status signals | 170 | * This determines how often we check the modem status signals |
| 176 | * for any change. They generally aren't connected to an IRQ | 171 | * for any change. They generally aren't connected to an IRQ |
| 177 | * so we have to poll them. We also check immediately before | 172 | * so we have to poll them. We also check immediately before |
| @@ -721,9 +716,11 @@ static const char *imx_type(struct uart_port *port) | |||
| 721 | */ | 716 | */ |
| 722 | static void imx_release_port(struct uart_port *port) | 717 | static void imx_release_port(struct uart_port *port) |
| 723 | { | 718 | { |
| 724 | struct imx_port *sport = (struct imx_port *)port; | 719 | struct platform_device *pdev = to_platform_device(port->dev); |
| 720 | struct resource *mmres; | ||
| 725 | 721 | ||
| 726 | release_mem_region(sport->port.mapbase, UART_PORT_SIZE); | 722 | mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 723 | release_mem_region(mmres->start, mmres->end - mmres->start + 1); | ||
| 727 | } | 724 | } |
| 728 | 725 | ||
| 729 | /* | 726 | /* |
| @@ -731,10 +728,18 @@ static void imx_release_port(struct uart_port *port) | |||
| 731 | */ | 728 | */ |
| 732 | static int imx_request_port(struct uart_port *port) | 729 | static int imx_request_port(struct uart_port *port) |
| 733 | { | 730 | { |
| 734 | struct imx_port *sport = (struct imx_port *)port; | 731 | struct platform_device *pdev = to_platform_device(port->dev); |
| 732 | struct resource *mmres; | ||
| 733 | void *ret; | ||
| 734 | |||
| 735 | mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
| 736 | if (!mmres) | ||
| 737 | return -ENODEV; | ||
| 738 | |||
| 739 | ret = request_mem_region(mmres->start, mmres->end - mmres->start + 1, | ||
| 740 | "imx-uart"); | ||
| 735 | 741 | ||
| 736 | return request_mem_region(sport->port.mapbase, UART_PORT_SIZE, | 742 | return ret ? 0 : -EBUSY; |
| 737 | "imx-uart") != NULL ? 0 : -EBUSY; | ||
| 738 | } | 743 | } |
| 739 | 744 | ||
| 740 | /* | 745 | /* |
