Commit 0b492fce authored by David S. Miller's avatar David S. Miller

sunhme: Don't match PCI devices in SBUS probe.

Unfortunately, the OF device tree nodes for SBUS and PCI
hme devices have the same device node name on some systems.

So if the name of the parent node isn't 'sbus', skip it.

Based upon an excellent report and detective work by
Meelis Roos and Eric Brower.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Tested-by: default avatarMeelis Roos <mroos@linux.ee>
parent beeebc92
...@@ -2629,6 +2629,14 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) ...@@ -2629,6 +2629,14 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe)
int i, qfe_slot = -1; int i, qfe_slot = -1;
int err = -ENODEV; int err = -ENODEV;
sbus_dp = to_of_device(op->dev.parent)->node;
if (is_qfe)
sbus_dp = to_of_device(op->dev.parent->parent)->node;
/* We can match PCI devices too, do not accept those here. */
if (strcmp(sbus_dp->name, "sbus"))
return err;
if (is_qfe) { if (is_qfe) {
qp = quattro_sbus_find(op); qp = quattro_sbus_find(op);
if (qp == NULL) if (qp == NULL)
...@@ -2734,10 +2742,6 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) ...@@ -2734,10 +2742,6 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe)
if (qp != NULL) if (qp != NULL)
hp->happy_flags |= HFLAG_QUATTRO; hp->happy_flags |= HFLAG_QUATTRO;
sbus_dp = to_of_device(op->dev.parent)->node;
if (is_qfe)
sbus_dp = to_of_device(op->dev.parent->parent)->node;
/* Get the supported DVMA burst sizes from our Happy SBUS. */ /* Get the supported DVMA burst sizes from our Happy SBUS. */
hp->happy_bursts = of_getintprop_default(sbus_dp, hp->happy_bursts = of_getintprop_default(sbus_dp,
"burst-sizes", 0x00); "burst-sizes", 0x00);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment