[PATCH 1/8] net: smc91x: Fix device tree based configuration so it's usable
Tony Lindgren
tony at atomide.com
Wed Nov 27 13:36:30 EST 2013
* Tony Lindgren <tony at atomide.com> [131116 07:17]:
>
> Here's what I was thinking with the reg-io-width-mask. Anybody
> have comments on using reg-io-width vs reg-io-width-mask?
...
> --- a/drivers/net/ethernet/smsc/smc91x.c
> +++ b/drivers/net/ethernet/smsc/smc91x.c
> @@ -2222,11 +2234,31 @@ static int smc_drv_probe(struct platform_device *pdev)
> */
>
> lp = netdev_priv(ndev);
> + lp->cfg.flags = 0;
>
> if (pd) {
> memcpy(&lp->cfg, pd, sizeof(lp->cfg));
> lp->io_shift = SMC91X_IO_SHIFT(lp->cfg.flags);
> - } else {
> + }
> +
> +#if IS_BUILTIN(CONFIG_OF)
> + match = of_match_device(of_match_ptr(smc91x_match), &pdev->dev);
> + if (match) {
> + u32 val;
> +
> + of_property_read_u32(np, "reg-io-width", &val);
> + if (val == 0)
> + lp->cfg.flags |= SMC91X_USE_16BIT;
> + if (val & 1)
> + lp->cfg.flags |= SMC91X_USE_8BIT;
> + if (val & 2)
> + lp->cfg.flags |= SMC91X_USE_16BIT;
> + if (val & 4)
> + lp->cfg.flags |= SMC91X_USE_32BIT;
> + }
> +#endif
> +
> + if (!pd && !match) {
> lp->cfg.flags |= (SMC_CAN_USE_8BIT) ? SMC91X_USE_8BIT : 0;
> lp->cfg.flags |= (SMC_CAN_USE_16BIT) ? SMC91X_USE_16BIT : 0;
> lp->cfg.flags |= (SMC_CAN_USE_32BIT) ? SMC91X_USE_32BIT : 0;
Looks this patch is missing the check for the return value for
of_property_read_u32(), will repost this patch separately as the
others in this series are out of the way now.
Regards,
Tony
More information about the linux-arm-kernel
mailing list