serial/imx: get rid of the uses of cpu_is_mx1()
The patch removes all the uses of cpu_is_mx1(). Instead, it uses the .id_table of platform_driver to distinguish the uart device type, IMX1_UART and IMX21_UART. The IMX21_UART type runs on all i.mx except i.mx1. A couple of !cpu_is_mx1 logic gets turned into is_imx21_uart, as the codes wrapped there are really IMX21 type uart specific. It also removes macro MX1_UCR3_REF25 and MX1_UCR3_REF30 which are not used anywhere. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Alan Cox <alan@linux.intel.com> Cc: Greg Kroah-Hartman <gregkh@suse.de> Acked-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
		
							parent
							
								
									b0189cd087
								
							
						
					
					
						commit
						fe6b540ac0
					
				| @ -587,9 +587,9 @@ static struct clk_lookup lookups[] __initdata = { | ||||
| 	_REGISTER_CLOCK(NULL, "mma", mma_clk) | ||||
| 	_REGISTER_CLOCK("imx_udc.0", NULL, usbd_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt", gpt_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx1-uart.0", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx1-uart.1", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx1-uart.2", NULL, uart_clk) | ||||
| 	_REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk) | ||||
| 	_REGISTER_CLOCK("imx1-cspi.0", NULL, spi_clk) | ||||
| 	_REGISTER_CLOCK("imx1-cspi.1", NULL, spi_clk) | ||||
|  | ||||
| @ -1162,10 +1162,10 @@ static struct clk_lookup lookups[] = { | ||||
| 	_REGISTER_CLOCK(NULL, "perclk3", per_clk[2]) | ||||
| 	_REGISTER_CLOCK(NULL, "perclk4", per_clk[3]) | ||||
| 	_REGISTER_CLOCK(NULL, "clko", clko_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart_clk[0]) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart_clk[1]) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart_clk[2]) | ||||
| 	_REGISTER_CLOCK("imx-uart.3", NULL, uart_clk[3]) | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart_clk[0]) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart_clk[1]) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart_clk[2]) | ||||
| 	_REGISTER_CLOCK("imx21-uart.3", NULL, uart_clk[3]) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt1", gpt_clk[0]) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt1", gpt_clk[1]) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt1", gpt_clk[2]) | ||||
|  | ||||
| @ -272,11 +272,12 @@ DEFINE_CLOCK(can2_clk,	 1, CCM_CGCR1,  3, get_rate_ipg, NULL, NULL); | ||||
| 	}, | ||||
| 
 | ||||
| static struct clk_lookup lookups[] = { | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.4", NULL, uart5_clk) | ||||
| 	/* i.mx25 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.4", NULL, uart5_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.0", "usb", usbotg_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk) | ||||
|  | ||||
| @ -624,12 +624,13 @@ DEFINE_CLOCK1(csi_clk,     0, NULL,   0, parent, &csi_clk1, &per4_clk); | ||||
| 	}, | ||||
| 
 | ||||
| static struct clk_lookup lookups[] = { | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.4", NULL, uart5_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.5", NULL, uart6_clk) | ||||
| 	/* i.mx27 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.4", NULL, uart5_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.5", NULL, uart6_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt1", gpt1_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt2", gpt2_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt3", gpt3_clk) | ||||
|  | ||||
| @ -547,11 +547,12 @@ static struct clk_lookup lookups[] = { | ||||
| 	_REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk1) | ||||
| 	_REGISTER_CLOCK("fsl-usb2-udc", "usb_ahb", usb_clk2) | ||||
| 	_REGISTER_CLOCK("mx3-camera.0", NULL, csi_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.4", NULL, uart5_clk) | ||||
| 	/* i.mx31 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.4", NULL, uart5_clk) | ||||
| 	_REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk) | ||||
| 	_REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) | ||||
| 	_REGISTER_CLOCK("imx-i2c.2", NULL, i2c3_clk) | ||||
|  | ||||
| @ -486,9 +486,10 @@ static struct clk_lookup lookups[] = { | ||||
| 	_REGISTER_CLOCK(NULL, "spdif", spdif_clk) | ||||
| 	_REGISTER_CLOCK("imx-ssi.0", NULL, ssi1_clk) | ||||
| 	_REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	/* i.mx35 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.0", "usb", usbotg_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk) | ||||
| 	_REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk) | ||||
|  | ||||
| @ -1422,9 +1422,10 @@ DEFINE_CLOCK(ipu_di1_clk, 0, MXC_CCM_CCGR6, MXC_CCM_CCGRx_CG6_OFFSET, | ||||
|        }, | ||||
| 
 | ||||
| static struct clk_lookup mx51_lookups[] = { | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	/* i.mx51 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt", gpt_clk) | ||||
| 	_REGISTER_CLOCK("fec.0", NULL, fec_clk) | ||||
| 	_REGISTER_CLOCK("mxc_pwm.0", "pwm", pwm1_clk) | ||||
| @ -1470,11 +1471,12 @@ static struct clk_lookup mx51_lookups[] = { | ||||
| }; | ||||
| 
 | ||||
| static struct clk_lookup mx53_lookups[] = { | ||||
| 	_REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx-uart.4", NULL, uart5_clk) | ||||
| 	/* i.mx53 has the i.mx21 type uart */ | ||||
| 	_REGISTER_CLOCK("imx21-uart.0", NULL, uart1_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.1", NULL, uart2_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.2", NULL, uart3_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.3", NULL, uart4_clk) | ||||
| 	_REGISTER_CLOCK("imx21-uart.4", NULL, uart5_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "gpt", gpt_clk) | ||||
| 	_REGISTER_CLOCK("fec.0", NULL, fec_clk) | ||||
| 	_REGISTER_CLOCK(NULL, "iim_clk", iim_clk) | ||||
|  | ||||
| @ -152,7 +152,7 @@ struct platform_device *__init imx_add_imx_uart_3irq( | ||||
| 		}, | ||||
| 	}; | ||||
| 
 | ||||
| 	return imx_add_platform_device("imx-uart", data->id, res, | ||||
| 	return imx_add_platform_device("imx1-uart", data->id, res, | ||||
| 			ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||||
| } | ||||
| 
 | ||||
| @ -172,6 +172,7 @@ struct platform_device *__init imx_add_imx_uart_1irq( | ||||
| 		}, | ||||
| 	}; | ||||
| 
 | ||||
| 	return imx_add_platform_device("imx-uart", data->id, res, ARRAY_SIZE(res), | ||||
| 			pdata, sizeof(*pdata)); | ||||
| 	/* i.mx21 type uart runs on all i.mx except i.mx1 */ | ||||
| 	return imx_add_platform_device("imx21-uart", data->id, | ||||
| 			res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||||
| } | ||||
|  | ||||
| @ -48,7 +48,6 @@ | ||||
| 
 | ||||
| #include <asm/io.h> | ||||
| #include <asm/irq.h> | ||||
| #include <mach/hardware.h> | ||||
| #include <mach/imx-uart.h> | ||||
| 
 | ||||
| /* Register definitions */ | ||||
| @ -66,8 +65,9 @@ | ||||
| #define UBIR  0xa4 /* BRM Incremental Register */ | ||||
| #define UBMR  0xa8 /* BRM Modulator Register */ | ||||
| #define UBRC  0xac /* Baud Rate Count Register */ | ||||
| #define MX2_ONEMS 0xb0 /* One Millisecond register */ | ||||
| #define UTS (cpu_is_mx1() ? 0xd0 : 0xb4) /* UART Test Register */ | ||||
| #define IMX21_ONEMS 0xb0 /* One Millisecond register */ | ||||
| #define IMX1_UTS 0xd0 /* UART Test Register on i.mx1 */ | ||||
| #define IMX21_UTS 0xb4 /* UART Test Register on all other i.mx*/ | ||||
| 
 | ||||
| /* UART Control Register Bit Fields.*/ | ||||
| #define  URXD_CHARRDY    (1<<15) | ||||
| @ -87,7 +87,7 @@ | ||||
| #define  UCR1_RTSDEN     (1<<5)	 /* RTS delta interrupt enable */ | ||||
| #define  UCR1_SNDBRK     (1<<4)	 /* Send break */ | ||||
| #define  UCR1_TDMAEN     (1<<3)	 /* Transmitter ready DMA enable */ | ||||
| #define  MX1_UCR1_UARTCLKEN  (1<<2)	 /* UART clock enabled, mx1 only */ | ||||
| #define  IMX1_UCR1_UARTCLKEN  (1<<2)  /* UART clock enabled, i.mx1 only */ | ||||
| #define  UCR1_DOZE       (1<<1)	 /* Doze */ | ||||
| #define  UCR1_UARTEN     (1<<0)	 /* UART enabled */ | ||||
| #define  UCR2_ESCI     	 (1<<15) /* Escape seq interrupt enable */ | ||||
| @ -113,9 +113,7 @@ | ||||
| #define  UCR3_RXDSEN	 (1<<6)  /* Receive status interrupt enable */ | ||||
| #define  UCR3_AIRINTEN   (1<<5)  /* Async IR wake interrupt enable */ | ||||
| #define  UCR3_AWAKEN	 (1<<4)  /* Async wake interrupt enable */ | ||||
| #define  MX1_UCR3_REF25 	 (1<<3)  /* Ref freq 25 MHz, only on mx1 */ | ||||
| #define  MX1_UCR3_REF30 	 (1<<2)  /* Ref Freq 30 MHz, only on mx1 */ | ||||
| #define  MX2_UCR3_RXDMUXSEL	 (1<<2)  /* RXD Muxed Input Select, on mx2/mx3 */ | ||||
| #define  IMX21_UCR3_RXDMUXSEL	 (1<<2)  /* RXD Muxed Input Select */ | ||||
| #define  UCR3_INVT  	 (1<<1)  /* Inverted Infrared transmission */ | ||||
| #define  UCR3_BPEN  	 (1<<0)  /* Preset registers enable */ | ||||
| #define  UCR4_CTSTL_SHF  10      /* CTS trigger level shift */ | ||||
| @ -181,6 +179,18 @@ | ||||
| 
 | ||||
| #define UART_NR 8 | ||||
| 
 | ||||
| /* i.mx21 type uart runs on all i.mx except i.mx1 */ | ||||
| enum imx_uart_type { | ||||
| 	IMX1_UART, | ||||
| 	IMX21_UART, | ||||
| }; | ||||
| 
 | ||||
| /* device type dependent stuff */ | ||||
| struct imx_uart_data { | ||||
| 	unsigned uts_reg; | ||||
| 	enum imx_uart_type devtype; | ||||
| }; | ||||
| 
 | ||||
| struct imx_port { | ||||
| 	struct uart_port	port; | ||||
| 	struct timer_list	timer; | ||||
| @ -192,6 +202,7 @@ struct imx_port { | ||||
| 	unsigned int		irda_inv_tx:1; | ||||
| 	unsigned short		trcv_delay; /* transceiver delay */ | ||||
| 	struct clk		*clk; | ||||
| 	struct imx_uart_data	*devdata; | ||||
| }; | ||||
| 
 | ||||
| #ifdef CONFIG_IRDA | ||||
| @ -200,6 +211,45 @@ struct imx_port { | ||||
| #define USE_IRDA(sport)	(0) | ||||
| #endif | ||||
| 
 | ||||
| static struct imx_uart_data imx_uart_devdata[] = { | ||||
| 	[IMX1_UART] = { | ||||
| 		.uts_reg = IMX1_UTS, | ||||
| 		.devtype = IMX1_UART, | ||||
| 	}, | ||||
| 	[IMX21_UART] = { | ||||
| 		.uts_reg = IMX21_UTS, | ||||
| 		.devtype = IMX21_UART, | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| static struct platform_device_id imx_uart_devtype[] = { | ||||
| 	{ | ||||
| 		.name = "imx1-uart", | ||||
| 		.driver_data = (kernel_ulong_t) &imx_uart_devdata[IMX1_UART], | ||||
| 	}, { | ||||
| 		.name = "imx21-uart", | ||||
| 		.driver_data = (kernel_ulong_t) &imx_uart_devdata[IMX21_UART], | ||||
| 	}, { | ||||
| 		/* sentinel */ | ||||
| 	} | ||||
| }; | ||||
| MODULE_DEVICE_TABLE(platform, imx_uart_devtype); | ||||
| 
 | ||||
| static inline unsigned uts_reg(struct imx_port *sport) | ||||
| { | ||||
| 	return sport->devdata->uts_reg; | ||||
| } | ||||
| 
 | ||||
| static inline int is_imx1_uart(struct imx_port *sport) | ||||
| { | ||||
| 	return sport->devdata->devtype == IMX1_UART; | ||||
| } | ||||
| 
 | ||||
| static inline int is_imx21_uart(struct imx_port *sport) | ||||
| { | ||||
| 	return sport->devdata->devtype == IMX21_UART; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Handle any change of modem status signal since we were last called. | ||||
|  */ | ||||
| @ -326,7 +376,8 @@ static inline void imx_transmit_buffer(struct imx_port *sport) | ||||
| 	struct circ_buf *xmit = &sport->port.state->xmit; | ||||
| 
 | ||||
| 	while (!uart_circ_empty(xmit) && | ||||
| 			!(readl(sport->port.membase + UTS) & UTS_TXFULL)) { | ||||
| 			!(readl(sport->port.membase + uts_reg(sport)) | ||||
| 				& UTS_TXFULL)) { | ||||
| 		/* send xmit->buf[xmit->tail]
 | ||||
| 		 * out the port here */ | ||||
| 		writel(xmit->buf[xmit->tail], sport->port.membase + URTX0); | ||||
| @ -373,7 +424,7 @@ static void imx_start_tx(struct uart_port *port) | ||||
| 		writel(temp, sport->port.membase + UCR4); | ||||
| 	} | ||||
| 
 | ||||
| 	if (readl(sport->port.membase + UTS) & UTS_TXEMPTY) | ||||
| 	if (readl(sport->port.membase + uts_reg(sport)) & UTS_TXEMPTY) | ||||
| 		imx_transmit_buffer(sport); | ||||
| } | ||||
| 
 | ||||
| @ -689,9 +740,9 @@ static int imx_startup(struct uart_port *port) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (!cpu_is_mx1()) { | ||||
| 	if (is_imx21_uart(sport)) { | ||||
| 		temp = readl(sport->port.membase + UCR3); | ||||
| 		temp |= MX2_UCR3_RXDMUXSEL; | ||||
| 		temp |= IMX21_UCR3_RXDMUXSEL; | ||||
| 		writel(temp, sport->port.membase + UCR3); | ||||
| 	} | ||||
| 
 | ||||
| @ -923,9 +974,9 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios, | ||||
| 	writel(num, sport->port.membase + UBIR); | ||||
| 	writel(denom, sport->port.membase + UBMR); | ||||
| 
 | ||||
| 	if (!cpu_is_mx1()) | ||||
| 	if (is_imx21_uart(sport)) | ||||
| 		writel(sport->port.uartclk / div / 1000, | ||||
| 				sport->port.membase + MX2_ONEMS); | ||||
| 				sport->port.membase + IMX21_ONEMS); | ||||
| 
 | ||||
| 	writel(old_ucr1, sport->port.membase + UCR1); | ||||
| 
 | ||||
| @ -1041,7 +1092,7 @@ static void imx_console_putchar(struct uart_port *port, int ch) | ||||
| { | ||||
| 	struct imx_port *sport = (struct imx_port *)port; | ||||
| 
 | ||||
| 	while (readl(sport->port.membase + UTS) & UTS_TXFULL) | ||||
| 	while (readl(sport->port.membase + uts_reg(sport)) & UTS_TXFULL) | ||||
| 		barrier(); | ||||
| 
 | ||||
| 	writel(ch, sport->port.membase + URTX0); | ||||
| @ -1062,8 +1113,8 @@ imx_console_write(struct console *co, const char *s, unsigned int count) | ||||
| 	ucr1 = old_ucr1 = readl(sport->port.membase + UCR1); | ||||
| 	old_ucr2 = readl(sport->port.membase + UCR2); | ||||
| 
 | ||||
| 	if (cpu_is_mx1()) | ||||
| 		ucr1 |= MX1_UCR1_UARTCLKEN; | ||||
| 	if (is_imx1_uart(sport)) | ||||
| 		ucr1 |= IMX1_UCR1_UARTCLKEN; | ||||
| 	ucr1 |= UCR1_UARTEN; | ||||
| 	ucr1 &= ~(UCR1_TXMPTYEN | UCR1_RRDYEN | UCR1_RTSDEN); | ||||
| 
 | ||||
| @ -1262,6 +1313,7 @@ static int serial_imx_probe(struct platform_device *pdev) | ||||
| 	init_timer(&sport->timer); | ||||
| 	sport->timer.function = imx_timeout; | ||||
| 	sport->timer.data     = (unsigned long)sport; | ||||
| 	sport->devdata = (struct imx_uart_data	*) pdev->id_entry->driver_data; | ||||
| 
 | ||||
| 	sport->clk = clk_get(&pdev->dev, "uart"); | ||||
| 	if (IS_ERR(sport->clk)) { | ||||
| @ -1340,6 +1392,7 @@ static struct platform_driver serial_imx_driver = { | ||||
| 
 | ||||
| 	.suspend	= serial_imx_suspend, | ||||
| 	.resume		= serial_imx_resume, | ||||
| 	.id_table	= imx_uart_devtype, | ||||
| 	.driver		= { | ||||
| 		.name	= "imx-uart", | ||||
| 		.owner	= THIS_MODULE, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user