summaryrefslogtreecommitdiffstats
path: root/skge-quirk-to-4gb-dma.patch
diff options
context:
space:
mode:
Diffstat (limited to 'skge-quirk-to-4gb-dma.patch')
-rw-r--r--skge-quirk-to-4gb-dma.patch70
1 files changed, 0 insertions, 70 deletions
diff --git a/skge-quirk-to-4gb-dma.patch b/skge-quirk-to-4gb-dma.patch
deleted file mode 100644
index ebd146d..0000000
--- a/skge-quirk-to-4gb-dma.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Skge devices installed on some Gigabyte motherboards are not able to
-perform 64 dma correctly due to board PCI implementation, so limit
-DMA to 32bit if such boards are detected.
-
-Bug was reported here:
-https://bugzilla.redhat.com/show_bug.cgi?id=447489
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
-Tested-by: Luya Tshimbalanga <luya@fedoraproject.org>
----
- drivers/net/skge.c | 22 +++++++++++++++++++++-
- 1 files changed, 21 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/skge.c b/drivers/net/skge.c
-index a8a6358..571d4c3 100644
---- a/drivers/net/skge.c
-+++ b/drivers/net/skge.c
-@@ -43,5 +43,6 @@
- #include <linux/seq_file.h>
- #include <linux/mii.h>
-+#include <linux/dmi.h>
- #include <asm/irq.h>
-
- #include "skge.h"
-@@ -3869,6 +3870,8 @@ static void __devinit skge_show_addr(struct net_device *dev)
- netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr);
- }
-
-+static int only_32bit_dma;
-+
- static int __devinit skge_probe(struct pci_dev *pdev,
- const struct pci_device_id *ent)
- {
-@@ -3890,7 +3893,7 @@ static int __devinit skge_probe(struct pci_dev *pdev,
-
- pci_set_master(pdev);
-
-- if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-+ if (!only_32bit_dma && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
- using_dac = 1;
- err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
- } else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
-@@ -4148,8 +4151,25 @@ static struct pci_driver skge_driver = {
- .shutdown = skge_shutdown,
- };
-
-+#ifndef CONFIG_DMI
-+#warning "DMA quirk for Gigabyte nForce boards will not be applied"
-+#endif
-+
-+static struct dmi_system_id skge_32bit_dma_boards[] = {
-+ {
-+ .ident = "Gigabyte nForce boards",
-+ .matches = {
-+ DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co"),
-+ DMI_MATCH(DMI_BOARD_NAME, "nForce"),
-+ },
-+ },
-+ {}
-+};
-+
- static int __init skge_init_module(void)
- {
-+ if (dmi_check_system(skge_32bit_dma_boards))
-+ only_32bit_dma = 1;
- skge_debug_init();
- return pci_register_driver(&skge_driver);
- }
---
-1.5.5.6