diff options
Diffstat (limited to 'drivers/net/sunlance.c')
-rw-r--r-- | drivers/net/sunlance.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c index 0e3fdf7c6dd3..ec0413609f36 100644 --- a/drivers/net/sunlance.c +++ b/drivers/net/sunlance.c | |||
@@ -1566,20 +1566,21 @@ static int __exit sunlance_sun4_remove(void) | |||
1566 | static int __devinit sunlance_sbus_probe(struct of_device *dev, const struct of_device_id *match) | 1566 | static int __devinit sunlance_sbus_probe(struct of_device *dev, const struct of_device_id *match) |
1567 | { | 1567 | { |
1568 | struct sbus_dev *sdev = to_sbus_device(&dev->dev); | 1568 | struct sbus_dev *sdev = to_sbus_device(&dev->dev); |
1569 | struct device_node *dp = dev->node; | ||
1570 | int err; | 1569 | int err; |
1571 | 1570 | ||
1572 | if (!strcmp(dp->name, "le")) { | 1571 | if (sdev->parent) { |
1573 | err = sparc_lance_probe_one(sdev, NULL, NULL); | 1572 | struct of_device *parent = &sdev->parent->ofdev; |
1574 | } else if (!strcmp(dp->name, "ledma")) { | ||
1575 | struct sbus_dma *ledma = find_ledma(sdev); | ||
1576 | 1573 | ||
1577 | err = sparc_lance_probe_one(sdev->child, ledma, NULL); | 1574 | if (!strcmp(parent->node->name, "ledma")) { |
1578 | } else { | 1575 | struct sbus_dma *ledma = find_ledma(to_sbus_device(&parent->dev)); |
1579 | BUG_ON(strcmp(dp->name, "lebuffer")); | ||
1580 | 1576 | ||
1581 | err = sparc_lance_probe_one(sdev->child, NULL, sdev); | 1577 | err = sparc_lance_probe_one(sdev, ledma, NULL); |
1582 | } | 1578 | } else if (!strcmp(parent->node->name, "lebuffer")) { |
1579 | err = sparc_lance_probe_one(sdev, NULL, to_sbus_device(&parent->dev)); | ||
1580 | } else | ||
1581 | err = sparc_lance_probe_one(sdev, NULL, NULL); | ||
1582 | } else | ||
1583 | err = sparc_lance_probe_one(sdev, NULL, NULL); | ||
1583 | 1584 | ||
1584 | return err; | 1585 | return err; |
1585 | } | 1586 | } |
@@ -1604,12 +1605,6 @@ static struct of_device_id sunlance_sbus_match[] = { | |||
1604 | { | 1605 | { |
1605 | .name = "le", | 1606 | .name = "le", |
1606 | }, | 1607 | }, |
1607 | { | ||
1608 | .name = "ledma", | ||
1609 | }, | ||
1610 | { | ||
1611 | .name = "lebuffer", | ||
1612 | }, | ||
1613 | {}, | 1608 | {}, |
1614 | }; | 1609 | }; |
1615 | 1610 | ||