On Mon, Jul 16, 2012 at 11:04:55AM +1000, Marc Reilly wrote:
> This patch adds a handler to the fec platform data to get MAC address.
> If a handler is not specified the driver uses the existing one.

We already have a generic mechanism for that. See eth_register_ethaddr.
If you pass a MAC address to this function this one will be used instead
of the default one from the driver.

Sascha

> 
> Signed-off-by: Marc Reilly <[email protected]>
> ---
>  drivers/net/fec_imx.c |    6 +++++-
>  include/fec.h         |    4 ++++
>  2 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
> index 599a9b4..5084758 100644
> --- a/drivers/net/fec_imx.c
> +++ b/drivers/net/fec_imx.c
> @@ -629,10 +629,14 @@ static int fec_probe(struct device_d *dev)
>       edev->send = fec_send;
>       edev->recv = fec_recv;
>       edev->halt = fec_halt;
> -     edev->get_ethaddr = fec_get_hwaddr;
>       edev->set_ethaddr = fec_set_hwaddr;
>       edev->parent = dev;
>  
> +     if (pdata->get_hwaddr)
> +             edev->get_ethaddr = pdata->get_hwaddr;
> +     else
> +             edev->get_ethaddr = fec_get_hwaddr;
> +
>       fec->regs = dev_request_mem_region(dev, 0);
>  
>       /* Reset chip. */
> diff --git a/include/fec.h b/include/fec.h
> index f56b023..5072bbf 100644
> --- a/include/fec.h
> +++ b/include/fec.h
> @@ -36,6 +36,8 @@ typedef enum {
>       RGMII,
>  } xceiver_type;
>  
> +struct eth_device;
> +
>  /*
>   * Define the phy connected externally for FEC drivers
>   * (like MPC52xx and i.MX27)
> @@ -43,6 +45,8 @@ typedef enum {
>  struct fec_platform_data {
>          xceiver_type xcv_type;
>       int             phy_addr;
> +
> +     int (*get_hwaddr)(struct eth_device *dev, unsigned char *mac);
>  };
>  
>  #endif /* __INCLUDE_NETWORK_FEC_H */
> -- 
> 1.7.7
> 
> 
> _______________________________________________
> barebox mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to