diff options
author | Lendacky, Thomas <Thomas.Lendacky@amd.com> | 2014-11-04 17:06:56 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-05 21:50:12 -0500 |
commit | 9227dc5e579b6b2ef58ad0d3d0d23ddac77846ef (patch) | |
tree | cef535601eda5a1c79f6d6d96bf2b752993d72bb /drivers/net/ethernet/amd/xgbe/xgbe-main.c | |
parent | 174fd2597b0bd8c19fce6a97e8b0f753ef4ce7cb (diff) |
amd-xgbe: Add support for per DMA channel interrupts
This patch provides support for interrupts that are generated by the
Tx/Rx DMA channel pairs of the device. This allows for Tx and Rx
processing to run across multiple processsors.
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amd/xgbe/xgbe-main.c')
-rw-r--r-- | drivers/net/ethernet/amd/xgbe/xgbe-main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c index e5077fd5b012..cff9902d1456 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c | |||
@@ -264,12 +264,18 @@ static int xgbe_probe(struct platform_device *pdev) | |||
264 | pdata->awcache = XGBE_DMA_SYS_AWCACHE; | 264 | pdata->awcache = XGBE_DMA_SYS_AWCACHE; |
265 | } | 265 | } |
266 | 266 | ||
267 | /* Check for per channel interrupt support */ | ||
268 | if (of_property_read_bool(dev->of_node, XGBE_DMA_IRQS)) | ||
269 | pdata->per_channel_irq = 1; | ||
270 | |||
267 | ret = platform_get_irq(pdev, 0); | 271 | ret = platform_get_irq(pdev, 0); |
268 | if (ret < 0) { | 272 | if (ret < 0) { |
269 | dev_err(dev, "platform_get_irq failed\n"); | 273 | dev_err(dev, "platform_get_irq 0 failed\n"); |
270 | goto err_io; | 274 | goto err_io; |
271 | } | 275 | } |
272 | netdev->irq = ret; | 276 | pdata->dev_irq = ret; |
277 | |||
278 | netdev->irq = pdata->dev_irq; | ||
273 | netdev->base_addr = (unsigned long)pdata->xgmac_regs; | 279 | netdev->base_addr = (unsigned long)pdata->xgmac_regs; |
274 | 280 | ||
275 | /* Set all the function pointers */ | 281 | /* Set all the function pointers */ |