diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-07-17 14:48:58 +0300 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-07-17 14:48:58 +0300 | 
| commit | 351ea50df545a4acaf8f61784949ceedbe923f03 (patch) | |
| tree | 12c8e902625bbbccb3e3e9ac482db3d44398f702 | |
| parent | 4ab3c51e0540ba8464fe34d84cc35821bb77ae92 (diff) | |
| download | linux-351ea50df545a4acaf8f61784949ceedbe923f03.tar.xz | |
Revert "serial: imx-serial - move DMA buffer configuration to DT"
This reverts commit a3015affdf76ef279fbbb3710a220bab7e9ea04b as there
are complaints that it is incorrect.
Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Nandor Han <nandor.han@ge.com>
Cc: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
| -rw-r--r-- | Documentation/devicetree/bindings/serial/fsl-imx-uart.txt | 2 | ||||
| -rw-r--r-- | drivers/tty/serial/imx.c | 25 | 
2 files changed, 8 insertions, 19 deletions
| diff --git a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt index e6b572409cf5..574c3a2c77d5 100644 --- a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt @@ -9,7 +9,6 @@ Optional properties:  - fsl,irda-mode : Indicate the uart supports irda mode  - fsl,dte-mode : Indicate the uart works in DTE mode. The uart works                    in DCE mode by default. -- fsl,dma-size : Indicate the size of the DMA buffer and its periods  Please check Documentation/devicetree/bindings/serial/serial.txt  for the complete list of generic properties. @@ -29,5 +28,4 @@ uart1: serial@73fbc000 {  	interrupts = <31>;  	uart-has-rtscts;  	fsl,dte-mode; -	fsl,dma-size = <1024 4>;  }; diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 9e3162bf3bd1..e33da75ceac5 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -186,11 +186,6 @@  #define UART_NR 8 -/* RX DMA buffer periods */ -#define RX_DMA_PERIODS 4 -#define RX_BUF_SIZE	(PAGE_SIZE) - -  /* i.MX21 type uart runs on all i.mx except i.MX1 and i.MX6q */  enum imx_uart_type {  	IMX1_UART, @@ -226,7 +221,6 @@ struct imx_port {  	struct dma_chan		*dma_chan_rx, *dma_chan_tx;  	struct scatterlist	rx_sgl, tx_sgl[2];  	void			*rx_buf; -	unsigned int		rx_buf_size;  	struct circ_buf		rx_ring;  	unsigned int		rx_periods;  	dma_cookie_t		rx_cookie; @@ -967,6 +961,8 @@ static void imx_timeout(unsigned long data)  	}  } +#define RX_BUF_SIZE	(PAGE_SIZE) +  /*   * There are two kinds of RX DMA interrupts(such as in the MX6Q):   *   [1] the RX DMA buffer is full. @@ -1049,6 +1045,9 @@ static void dma_rx_callback(void *data)  	}  } +/* RX DMA buffer periods */ +#define RX_DMA_PERIODS 4 +  static int start_rx_dma(struct imx_port *sport)  {  	struct scatterlist *sgl = &sport->rx_sgl; @@ -1059,8 +1058,9 @@ static int start_rx_dma(struct imx_port *sport)  	sport->rx_ring.head = 0;  	sport->rx_ring.tail = 0; +	sport->rx_periods = RX_DMA_PERIODS; -	sg_init_one(sgl, sport->rx_buf, sport->rx_buf_size); +	sg_init_one(sgl, sport->rx_buf, RX_BUF_SIZE);  	ret = dma_map_sg(dev, sgl, 1, DMA_FROM_DEVICE);  	if (ret == 0) {  		dev_err(dev, "DMA mapping error for RX.\n"); @@ -1171,7 +1171,7 @@ static int imx_uart_dma_init(struct imx_port *sport)  		goto err;  	} -	sport->rx_buf = kzalloc(sport->rx_buf_size, GFP_KERNEL); +	sport->rx_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);  	if (!sport->rx_buf) {  		ret = -ENOMEM;  		goto err; @@ -2036,7 +2036,6 @@ static int serial_imx_probe_dt(struct imx_port *sport,  {  	struct device_node *np = pdev->dev.of_node;  	int ret; -	u32 dma_buf_size[2];  	sport->devdata = of_device_get_match_data(&pdev->dev);  	if (!sport->devdata) @@ -2060,14 +2059,6 @@ static int serial_imx_probe_dt(struct imx_port *sport,  	if (of_get_property(np, "rts-gpios", NULL))  		sport->have_rtsgpio = 1; -	if (!of_property_read_u32_array(np, "fsl,dma-size", dma_buf_size, 2)) { -		sport->rx_buf_size = dma_buf_size[0] * dma_buf_size[1]; -		sport->rx_periods = dma_buf_size[1]; -	} else { -		sport->rx_buf_size = RX_BUF_SIZE; -		sport->rx_periods = RX_DMA_PERIODS; -	} -  	return 0;  }  #else | 
