Re: SBus HME startup failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 6, 2009 at 11:46 PM, David Miller <davem@xxxxxxxxxxxxx> wrote:
>
> Meelis and Eric, does the following patch do the trick?
>
> --------------------
> 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: David S. Miller <davem@xxxxxxxxxxxxx>
>
> diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
> index 7a72a31..cc4013b 100644
> --- a/drivers/net/sunhme.c
> +++ b/drivers/net/sunhme.c
> @@ -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 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) {
>                qp = quattro_sbus_find(op);
>                if (qp == NULL)
> @@ -2734,10 +2742,6 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe)
>        if (qp != NULL)
>                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. */
>        hp->happy_bursts = of_getintprop_default(sbus_dp,
>                                                 "burst-sizes", 0x00);
>

This works for me as well-- thanks.

I wasn't confident enough that the direct parent of a non-QFE HME
would always be an "sbus" node, though it certainly seems like a valid
assumption.

-- 
E
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux