diff mbox

sunhme: SBUS QFE not detected anymore

Message ID 49B4632D.7010606@gentoo.org
State Accepted
Delegated to: David Miller
Headers show

Commit Message

Friedrich Oslage March 9, 2009, 12:30 a.m. UTC
Hi,

my Ultra 2 has a SBUS Happy Meal and a SBUS Quad FastEthernet, both used
to work fine but the qfe is no longer detected since:

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


The parent node, sbus_dp, seems not to be set correctly. And the
sbus_dp->name == "sbus" check fails.

According to prtconf [0] the tree looks like this:

SUNW,Ultra-2
  sbus
    SUNW,hme
    SUNW,qfe
    SUNW,qfe
    SUNW,qfe
    SUNW,qfe

Setting sbus_dp = to_of_device(op->dev.parent->parent)->node will
therefore get "SUNW,Ultra-2" instead of "sbus".

This also makes reading the burst sizes fail and end up with the
default, 0x0.

I attached a patch :)

[0]http://git.kernel.org/?p=linux/kernel/git/davem/prtconfs.git;a=blob_plain;f=ultra2_2

Cheers,
Friedrich

Comments

David Miller March 9, 2009, 3:14 a.m. UTC | #1
From: Friedrich Oslage <bluebird@gentoo.org>
Date: Mon, 09 Mar 2009 01:30:37 +0100

> my Ultra 2 has a SBUS Happy Meal and a SBUS Quad FastEthernet, both used
> to work fine but the qfe is no longer detected since:
> 
> 0b492fce3d72d982a7981905f85484a1e1ba7fde
> sunhme: Don't match PCI devices in SBUS probe.
 ...
> According to prtconf [0] the tree looks like this:
> 
> SUNW,Ultra-2
>   sbus
>     SUNW,hme
>     SUNW,qfe
>     SUNW,qfe
>     SUNW,qfe
>     SUNW,qfe
 ...
> I attached a patch :)

Patch applied, thanks a lot!
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

    sunhme: Fix qfe parent detection.
    
    Signed-off-by: Friedrich Oslage <bluebird@gentoo.org>

diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index d4fb4ac..4e9bd38 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2649,8 +2649,6 @@  static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe)
 	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"))