serial: 8250_lpss: Enable DMA on Intel Elkhart Lake
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 21 Jul 2021 16:24:52 +0000 (19:24 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Jul 2021 10:08:20 +0000 (12:08 +0200)
PSE UARTs on Intel Elkhart Lake support DMA mode.
Enable DMA on these ports.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210721162452.48764-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_lpss.c

index 4dee8a9..848d81e 100644 (file)
@@ -158,6 +158,16 @@ static int byt_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
 
 static int ehl_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
 {
+       struct uart_8250_dma *dma = &lpss->data.dma;
+       struct uart_8250_port *up = up_to_u8250p(port);
+
+       /*
+        * This simply makes the checks in the 8250_port to try the DMA
+        * channel request which in turn uses the magic of ACPI tables
+        * parsing (see drivers/dma/acpi-dma.c for the details) and
+        * matching with the registered General Purpose DMA controllers.
+        */
+       up->dma = dma;
        return 0;
 }