aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/skge.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-10-06 22:39:31 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-06 22:39:31 -0400
commit69259abb64d4da77273bf59accfc9fa79e7165f4 (patch)
treebd043ab03a788b749c8d5ae4049d8defae9abf34 /drivers/net/skge.c
parentdd53df265b1ee7a1fbbc76bb62c3bec2383bbd44 (diff)
parent12e94471b2be5ef9b55b10004a3a2cd819490036 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/pcmcia/pcnet_cs.c net/caif/caif_socket.c
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r--drivers/net/skge.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index a8a63581d63d..bfec2e0f5275 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -43,6 +43,7 @@
43#include <linux/seq_file.h> 43#include <linux/seq_file.h>
44#include <linux/mii.h> 44#include <linux/mii.h>
45#include <linux/slab.h> 45#include <linux/slab.h>
46#include <linux/dmi.h>
46#include <asm/irq.h> 47#include <asm/irq.h>
47 48
48#include "skge.h" 49#include "skge.h"
@@ -3869,6 +3870,8 @@ static void __devinit skge_show_addr(struct net_device *dev)
3869 netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr); 3870 netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr);
3870} 3871}
3871 3872
3873static int only_32bit_dma;
3874
3872static int __devinit skge_probe(struct pci_dev *pdev, 3875static int __devinit skge_probe(struct pci_dev *pdev,
3873 const struct pci_device_id *ent) 3876 const struct pci_device_id *ent)
3874{ 3877{
@@ -3890,7 +3893,7 @@ static int __devinit skge_probe(struct pci_dev *pdev,
3890 3893
3891 pci_set_master(pdev); 3894 pci_set_master(pdev);
3892 3895
3893 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { 3896 if (!only_32bit_dma && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
3894 using_dac = 1; 3897 using_dac = 1;
3895 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); 3898 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
3896 } else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) { 3899 } else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
@@ -4148,8 +4151,21 @@ static struct pci_driver skge_driver = {
4148 .shutdown = skge_shutdown, 4151 .shutdown = skge_shutdown,
4149}; 4152};
4150 4153
4154static struct dmi_system_id skge_32bit_dma_boards[] = {
4155 {
4156 .ident = "Gigabyte nForce boards",
4157 .matches = {
4158 DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co"),
4159 DMI_MATCH(DMI_BOARD_NAME, "nForce"),
4160 },
4161 },
4162 {}
4163};
4164
4151static int __init skge_init_module(void) 4165static int __init skge_init_module(void)
4152{ 4166{
4167 if (dmi_check_system(skge_32bit_dma_boards))
4168 only_32bit_dma = 1;
4153 skge_debug_init(); 4169 skge_debug_init();
4154 return pci_register_driver(&skge_driver); 4170 return pci_register_driver(&skge_driver);
4155} 4171}