lkml.org 
[lkml]   [2011]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] pch_uart: Add MSI support
Date
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
---
drivers/tty/serial/pch_uart.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 4652109..9db9773 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -234,6 +234,7 @@ struct eg20t_port {
int tx_dma_use;
void *rx_buf_virt;
dma_addr_t rx_buf_dma;
+ int use_msi;
};

/**
@@ -1429,6 +1430,12 @@ static struct eg20t_port *pch_uart_init_port(struct pci_dev *pdev,
goto init_port_hal_free;
}

+ ret = pci_enable_msi(pdev);
+ if (ret)
+ priv->use_msi = 0;
+ else
+ priv->use_msi = 1;
+
iobase = pci_resource_start(pdev, 0);
mapbase = pci_resource_start(pdev, 1);
priv->mapbase = mapbase;
@@ -1485,6 +1492,9 @@ static void pch_uart_pci_remove(struct pci_dev *pdev)
struct eg20t_port *priv;

priv = (struct eg20t_port *)pci_get_drvdata(pdev);
+
+ if (priv->use_msi)
+ pci_disable_msi(pdev);
pch_uart_exit_port(priv);
pci_disable_device(pdev);
kfree(priv);
@@ -1568,6 +1578,8 @@ static int __devinit pch_uart_pci_probe(struct pci_dev *pdev,
return ret;

probe_disable_device:
+ if (priv->use_msi)
+ pci_disable_msi(pdev);
pci_disable_device(pdev);
probe_error:
return ret;
--
1.7.3.4


\
 
 \ /
  Last update: 2011-06-22 11:53    [from the cache]
©2003-2011 Jasper Spaans