diff options
Diffstat (limited to 'drivers/serial/s5pv210.c')
| -rw-r--r-- | drivers/serial/s5pv210.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/serial/s5pv210.c b/drivers/serial/s5pv210.c index 4a789e5361a4..6ebccd70a707 100644 --- a/drivers/serial/s5pv210.c +++ b/drivers/serial/s5pv210.c | |||
| @@ -28,8 +28,12 @@ | |||
| 28 | static int s5pv210_serial_setsource(struct uart_port *port, | 28 | static int s5pv210_serial_setsource(struct uart_port *port, |
| 29 | struct s3c24xx_uart_clksrc *clk) | 29 | struct s3c24xx_uart_clksrc *clk) |
| 30 | { | 30 | { |
| 31 | struct s3c2410_uartcfg *cfg = port->dev->platform_data; | ||
| 31 | unsigned long ucon = rd_regl(port, S3C2410_UCON); | 32 | unsigned long ucon = rd_regl(port, S3C2410_UCON); |
| 32 | 33 | ||
| 34 | if ((cfg->clocks_size) == 1) | ||
| 35 | return 0; | ||
| 36 | |||
| 33 | if (strcmp(clk->name, "pclk") == 0) | 37 | if (strcmp(clk->name, "pclk") == 0) |
| 34 | ucon &= ~S5PV210_UCON_CLKMASK; | 38 | ucon &= ~S5PV210_UCON_CLKMASK; |
| 35 | else if (strcmp(clk->name, "uclk1") == 0) | 39 | else if (strcmp(clk->name, "uclk1") == 0) |
| @@ -47,10 +51,14 @@ static int s5pv210_serial_setsource(struct uart_port *port, | |||
| 47 | static int s5pv210_serial_getsource(struct uart_port *port, | 51 | static int s5pv210_serial_getsource(struct uart_port *port, |
| 48 | struct s3c24xx_uart_clksrc *clk) | 52 | struct s3c24xx_uart_clksrc *clk) |
| 49 | { | 53 | { |
| 54 | struct s3c2410_uartcfg *cfg = port->dev->platform_data; | ||
| 50 | u32 ucon = rd_regl(port, S3C2410_UCON); | 55 | u32 ucon = rd_regl(port, S3C2410_UCON); |
| 51 | 56 | ||
| 52 | clk->divisor = 1; | 57 | clk->divisor = 1; |
| 53 | 58 | ||
| 59 | if ((cfg->clocks_size) == 1) | ||
| 60 | return 0; | ||
| 61 | |||
| 54 | switch (ucon & S5PV210_UCON_CLKMASK) { | 62 | switch (ucon & S5PV210_UCON_CLKMASK) { |
| 55 | case S5PV210_UCON_PCLK: | 63 | case S5PV210_UCON_PCLK: |
| 56 | clk->name = "pclk"; | 64 | clk->name = "pclk"; |
