浏览代码

serial: 8250_lpss: set PCI master only for private DMA

There is no need to set PCI bus mastering when device is not doing any DMA.
Though on Intel Quark DMA is a part of UART IP and thus shares same device in
Linux kernel.

Enable bus mastering only for Quark case.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andy Shevchenko 8 年之前
父节点
当前提交
3f3a46951e
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/tty/serial/8250/8250_lpss.c

+ 2 - 2
drivers/tty/serial/8250/8250_lpss.c

@@ -183,6 +183,8 @@ static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port)
 	if (ret)
 	if (ret)
 		return;
 		return;
 
 
+	pci_set_master(pdev);
+
 	/* Special DMA address for UART */
 	/* Special DMA address for UART */
 	dma->rx_dma_addr = 0xfffff000;
 	dma->rx_dma_addr = 0xfffff000;
 	dma->tx_dma_addr = 0xfffff000;
 	dma->tx_dma_addr = 0xfffff000;
@@ -280,8 +282,6 @@ static int lpss8250_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	if (ret)
 	if (ret)
 		return ret;
 		return ret;
 
 
-	pci_set_master(pdev);
-
 	lpss = devm_kzalloc(&pdev->dev, sizeof(*lpss), GFP_KERNEL);
 	lpss = devm_kzalloc(&pdev->dev, sizeof(*lpss), GFP_KERNEL);
 	if (!lpss)
 	if (!lpss)
 		return -ENOMEM;
 		return -ENOMEM;