diff options
author | David S. Miller <davem@davemloft.net> | 2010-10-06 22:39:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-06 22:39:31 -0400 |
commit | 69259abb64d4da77273bf59accfc9fa79e7165f4 (patch) | |
tree | bd043ab03a788b749c8d5ae4049d8defae9abf34 /drivers/net/skge.c | |
parent | dd53df265b1ee7a1fbbc76bb62c3bec2383bbd44 (diff) | |
parent | 12e94471b2be5ef9b55b10004a3a2cd819490036 (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.c | 18 |
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 | ||
3873 | static int only_32bit_dma; | ||
3874 | |||
3872 | static int __devinit skge_probe(struct pci_dev *pdev, | 3875 | static 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 | ||
4154 | static 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 | |||
4151 | static int __init skge_init_module(void) | 4165 | static 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 | } |