Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/benet/be_cmds.h include/linux/sysctl.h
This commit is contained in:
@@ -101,6 +101,10 @@ config TULIP_NAPI_HW_MITIGATION
|
||||
|
||||
If in doubt, say Y.
|
||||
|
||||
config TULIP_DM910X
|
||||
def_bool y
|
||||
depends on TULIP && SPARC
|
||||
|
||||
config DE4X5
|
||||
tristate "Generic DECchip & DIGITAL EtherWORKS PCI/EISA"
|
||||
depends on PCI || EISA
|
||||
|
@@ -92,6 +92,10 @@
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
#ifdef CONFIG_TULIP_DM910X
|
||||
#include <linux/of.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* Board/System/Debug information/definition ---------------- */
|
||||
#define PCI_DM9132_ID 0x91321282 /* Davicom DM9132 ID */
|
||||
@@ -377,6 +381,23 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
|
||||
if (!printed_version++)
|
||||
printk(version);
|
||||
|
||||
/*
|
||||
* SPARC on-board DM910x chips should be handled by the main
|
||||
* tulip driver, except for early DM9100s.
|
||||
*/
|
||||
#ifdef CONFIG_TULIP_DM910X
|
||||
if ((ent->driver_data == PCI_DM9100_ID && pdev->revision >= 0x30) ||
|
||||
ent->driver_data == PCI_DM9102_ID) {
|
||||
struct device_node *dp = pci_device_to_OF_node(pdev);
|
||||
|
||||
if (dp && of_get_property(dp, "local-mac-address", NULL)) {
|
||||
printk(KERN_INFO DRV_NAME
|
||||
": skipping on-board DM910x (use tulip)\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Init network device */
|
||||
dev = alloc_etherdev(sizeof(*db));
|
||||
if (dev == NULL)
|
||||
|
@@ -196,9 +196,13 @@ struct tulip_chip_table tulip_tbl[] = {
|
||||
| HAS_NWAY | HAS_PCI_MWI, tulip_timer, tulip_media_task },
|
||||
|
||||
/* DM910X */
|
||||
#ifdef CONFIG_TULIP_DM910X
|
||||
{ "Davicom DM9102/DM9102A", 128, 0x0001ebef,
|
||||
HAS_MII | HAS_MEDIA_TABLE | CSR12_IN_SROM | HAS_ACPI,
|
||||
tulip_timer, tulip_media_task },
|
||||
#else
|
||||
{ NULL },
|
||||
#endif
|
||||
|
||||
/* RS7112 */
|
||||
{ "Conexant LANfinity", 256, 0x0001ebef,
|
||||
@@ -228,8 +232,10 @@ static DEFINE_PCI_DEVICE_TABLE(tulip_pci_tbl) = {
|
||||
{ 0x1259, 0xa120, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET },
|
||||
{ 0x11F6, 0x9881, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMPEX9881 },
|
||||
{ 0x8086, 0x0039, PCI_ANY_ID, PCI_ANY_ID, 0, 0, I21145 },
|
||||
#ifdef CONFIG_TULIP_DM910X
|
||||
{ 0x1282, 0x9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X },
|
||||
{ 0x1282, 0x9102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X },
|
||||
#endif
|
||||
{ 0x1113, 0x1216, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET },
|
||||
{ 0x1113, 0x1217, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MX98715 },
|
||||
{ 0x1113, 0x9511, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET },
|
||||
@@ -1299,18 +1305,30 @@ static int __devinit tulip_init_one (struct pci_dev *pdev,
|
||||
}
|
||||
|
||||
/*
|
||||
* Early DM9100's need software CRC and the DMFE driver
|
||||
* DM910x chips should be handled by the dmfe driver, except
|
||||
* on-board chips on SPARC systems. Also, early DM9100s need
|
||||
* software CRC which only the dmfe driver supports.
|
||||
*/
|
||||
|
||||
if (pdev->vendor == 0x1282 && pdev->device == 0x9100)
|
||||
{
|
||||
/* Read Chip revision */
|
||||
if (pdev->revision < 0x30)
|
||||
{
|
||||
printk(KERN_ERR PFX "skipping early DM9100 with Crc bug (use dmfe)\n");
|
||||
#ifdef CONFIG_TULIP_DM910X
|
||||
if (chip_idx == DM910X) {
|
||||
struct device_node *dp;
|
||||
|
||||
if (pdev->vendor == 0x1282 && pdev->device == 0x9100 &&
|
||||
pdev->revision < 0x30) {
|
||||
printk(KERN_INFO PFX
|
||||
"skipping early DM9100 with Crc bug (use dmfe)\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
dp = pci_device_to_OF_node(pdev);
|
||||
if (!(dp && of_get_property(dp, "local-mac-address", NULL))) {
|
||||
printk(KERN_INFO PFX
|
||||
"skipping DM910x expansion card (use dmfe)\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Looks for early PCI chipsets where people report hangs
|
||||
|
Reference in New Issue
Block a user