serial: 8250_lpss: Configure DMA also w/o DMA filter
commit 1bfcbe5805d0cfc83c3544dcd01e0a282c1f6790 upstream. If the platform doesn't use DMA device filter (as is the case with Elkhart Lake), whole lpss8250_dma_setup() setup is skipped. This results in skipping also *_maxburst setup which is undesirable. Refactor lpss8250_dma_setup() to configure DMA even if filter is not setup. Cc: stable <stable@kernel.org> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20221108121952.5497-3-ilpo.jarvinen@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8679087e93
commit
5f4611fe01
@ -268,8 +268,13 @@ static int lpss8250_dma_setup(struct lpss8250 *lpss, struct uart_8250_port *port
|
||||
struct dw_dma_slave *rx_param, *tx_param;
|
||||
struct device *dev = port->port.dev;
|
||||
|
||||
if (!lpss->dma_param.dma_dev)
|
||||
if (!lpss->dma_param.dma_dev) {
|
||||
dma = port->dma;
|
||||
if (dma)
|
||||
goto out_configuration_only;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
rx_param = devm_kzalloc(dev, sizeof(*rx_param), GFP_KERNEL);
|
||||
if (!rx_param)
|
||||
@ -280,16 +285,18 @@ static int lpss8250_dma_setup(struct lpss8250 *lpss, struct uart_8250_port *port
|
||||
return -ENOMEM;
|
||||
|
||||
*rx_param = lpss->dma_param;
|
||||
dma->rxconf.src_maxburst = lpss->dma_maxburst;
|
||||
|
||||
*tx_param = lpss->dma_param;
|
||||
dma->txconf.dst_maxburst = lpss->dma_maxburst;
|
||||
|
||||
dma->fn = lpss8250_dma_filter;
|
||||
dma->rx_param = rx_param;
|
||||
dma->tx_param = tx_param;
|
||||
|
||||
port->dma = dma;
|
||||
|
||||
out_configuration_only:
|
||||
dma->rxconf.src_maxburst = lpss->dma_maxburst;
|
||||
dma->txconf.dst_maxburst = lpss->dma_maxburst;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user