pch_uart: don't hardcode PCI slot to get DMA device
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 30 Jul 2014 15:59:52 +0000 (18:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Aug 2014 23:04:21 +0000 (16:04 -0700)
The DMA is a function 0 of the multifunction device where SPI host is attached.
Thus, we may avoid to hardcode PCI slot number.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/pch_uart.c

index 2f06e5a7139635b1f652cb9fe55ff07fc2a5f39f..ea4ffc2ebb2fe9366da26d58b960b0c81e46553c 100644 (file)
@@ -736,9 +736,10 @@ static void pch_request_dma(struct uart_port *port)
        dma_cap_zero(mask);
        dma_cap_set(DMA_SLAVE, mask);
 
-       dma_dev = pci_get_bus_and_slot(priv->pdev->bus->number,
-                                      PCI_DEVFN(0xa, 0)); /* Get DMA's dev
-                                                               information */
+       /* Get DMA's dev information */
+       dma_dev = pci_get_slot(priv->pdev->bus,
+                       PCI_DEVFN(PCI_SLOT(priv->pdev->devfn), 0));
+
        /* Set Tx DMA */
        param = &priv->param_tx;
        param->dma_dev = &dma_dev->dev;