Message ID | 1360170854-32029-2-git-send-email-hauke@hauke-m.de |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, 6 Feb 2013 18:14:11 +0100 Hauke Mehrtens <hauke@hauke-m.de> wrote: > The mac address is already stored in the sprom structure by the > platform code of the SoC this Ethernet core is found on, it just has to > be fetched from this structure instead of accessing the nvram here. > This patch also adds a return value to indicate if a mac address could > be fetched from the sprom structure. > > Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Michael Buesch <m@bues.ch> > --- > > This patch could cause merge problems with the mips tree. This version, > removing the usage of nvram_getenv and nvram_parse_macaddr, should be > used. > > include/linux/ssb/ssb_driver_gige.h | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/include/linux/ssb/ssb_driver_gige.h b/include/linux/ssb/ssb_driver_gige.h > index 6b05dcd..912af3c 100644 > --- a/include/linux/ssb/ssb_driver_gige.h > +++ b/include/linux/ssb/ssb_driver_gige.h > @@ -97,21 +97,16 @@ static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev) > return 0; > } > > -#ifdef CONFIG_BCM47XX > -#include <asm/mach-bcm47xx/nvram.h> > /* Get the device MAC address */ > -static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) > -{ > - char buf[20]; > - if (nvram_getenv("et0macaddr", buf, sizeof(buf)) < 0) > - return; > - nvram_parse_macaddr(buf, macaddr); > -} > -#else > -static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) > +static inline int ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) > { > + struct ssb_gige *dev = pdev_to_ssb_gige(pdev); > + if (!dev) > + return -ENODEV; > + > + memcpy(macaddr, dev->dev->bus->sprom.et0mac, 6); > + return 0; > } > -#endif > > extern int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev, > struct pci_dev *pdev);
diff --git a/include/linux/ssb/ssb_driver_gige.h b/include/linux/ssb/ssb_driver_gige.h index 6b05dcd..912af3c 100644 --- a/include/linux/ssb/ssb_driver_gige.h +++ b/include/linux/ssb/ssb_driver_gige.h @@ -97,21 +97,16 @@ static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev) return 0; } -#ifdef CONFIG_BCM47XX -#include <asm/mach-bcm47xx/nvram.h> /* Get the device MAC address */ -static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) -{ - char buf[20]; - if (nvram_getenv("et0macaddr", buf, sizeof(buf)) < 0) - return; - nvram_parse_macaddr(buf, macaddr); -} -#else -static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) +static inline int ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) { + struct ssb_gige *dev = pdev_to_ssb_gige(pdev); + if (!dev) + return -ENODEV; + + memcpy(macaddr, dev->dev->bus->sprom.et0mac, 6); + return 0; } -#endif extern int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev, struct pci_dev *pdev);
The mac address is already stored in the sprom structure by the platform code of the SoC this Ethernet core is found on, it just has to be fetched from this structure instead of accessing the nvram here. This patch also adds a return value to indicate if a mac address could be fetched from the sprom structure. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- This patch could cause merge problems with the mips tree. This version, removing the usage of nvram_getenv and nvram_parse_macaddr, should be used. include/linux/ssb/ssb_driver_gige.h | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)