diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/sungem.c | 31 | ||||
-rw-r--r-- | drivers/net/sungem.h | 2 |
2 files changed, 7 insertions, 26 deletions
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c index 4fa3e49f9358..07f38907884b 100644 --- a/drivers/net/sungem.c +++ b/drivers/net/sungem.c | |||
@@ -66,9 +66,7 @@ | |||
66 | 66 | ||
67 | #ifdef CONFIG_SPARC | 67 | #ifdef CONFIG_SPARC |
68 | #include <asm/idprom.h> | 68 | #include <asm/idprom.h> |
69 | #include <asm/openprom.h> | 69 | #include <asm/prom.h> |
70 | #include <asm/oplib.h> | ||
71 | #include <asm/pbm.h> | ||
72 | #endif | 70 | #endif |
73 | 71 | ||
74 | #ifdef CONFIG_PPC_PMAC | 72 | #ifdef CONFIG_PPC_PMAC |
@@ -2906,34 +2904,17 @@ static int __devinit gem_get_device_address(struct gem *gp) | |||
2906 | { | 2904 | { |
2907 | #if defined(CONFIG_SPARC) || defined(CONFIG_PPC_PMAC) | 2905 | #if defined(CONFIG_SPARC) || defined(CONFIG_PPC_PMAC) |
2908 | struct net_device *dev = gp->dev; | 2906 | struct net_device *dev = gp->dev; |
2909 | #endif | ||
2910 | |||
2911 | #if defined(CONFIG_SPARC) | ||
2912 | struct pci_dev *pdev = gp->pdev; | ||
2913 | struct pcidev_cookie *pcp = pdev->sysdata; | ||
2914 | int use_idprom = 1; | ||
2915 | |||
2916 | if (pcp != NULL) { | ||
2917 | const unsigned char *addr; | ||
2918 | int len; | ||
2919 | |||
2920 | addr = of_get_property(pcp->prom_node, "local-mac-address", | ||
2921 | &len); | ||
2922 | if (addr && len == 6) { | ||
2923 | use_idprom = 0; | ||
2924 | memcpy(dev->dev_addr, addr, 6); | ||
2925 | } | ||
2926 | } | ||
2927 | if (use_idprom) | ||
2928 | memcpy(dev->dev_addr, idprom->id_ethaddr, 6); | ||
2929 | #elif defined(CONFIG_PPC_PMAC) | ||
2930 | const unsigned char *addr; | 2907 | const unsigned char *addr; |
2931 | 2908 | ||
2932 | addr = get_property(gp->of_node, "local-mac-address", NULL); | 2909 | addr = get_property(gp->of_node, "local-mac-address", NULL); |
2933 | if (addr == NULL) { | 2910 | if (addr == NULL) { |
2911 | #ifdef CONFIG_SPARC | ||
2912 | addr = idprom->id_ethaddr; | ||
2913 | #else | ||
2934 | printk("\n"); | 2914 | printk("\n"); |
2935 | printk(KERN_ERR "%s: can't get mac-address\n", dev->name); | 2915 | printk(KERN_ERR "%s: can't get mac-address\n", dev->name); |
2936 | return -1; | 2916 | return -1; |
2917 | #endif | ||
2937 | } | 2918 | } |
2938 | memcpy(dev->dev_addr, addr, 6); | 2919 | memcpy(dev->dev_addr, addr, 6); |
2939 | #else | 2920 | #else |
@@ -3091,7 +3072,7 @@ static int __devinit gem_init_one(struct pci_dev *pdev, | |||
3091 | /* On Apple, we want a reference to the Open Firmware device-tree | 3072 | /* On Apple, we want a reference to the Open Firmware device-tree |
3092 | * node. We use it for clock control. | 3073 | * node. We use it for clock control. |
3093 | */ | 3074 | */ |
3094 | #ifdef CONFIG_PPC_PMAC | 3075 | #if defined(CONFIG_PPC_PMAC) || defined(CONFIG_SPARC) |
3095 | gp->of_node = pci_device_to_OF_node(pdev); | 3076 | gp->of_node = pci_device_to_OF_node(pdev); |
3096 | #endif | 3077 | #endif |
3097 | 3078 | ||
diff --git a/drivers/net/sungem.h b/drivers/net/sungem.h index a70067c85cc9..58cf87c5751e 100644 --- a/drivers/net/sungem.h +++ b/drivers/net/sungem.h | |||
@@ -1025,7 +1025,7 @@ struct gem { | |||
1025 | 1025 | ||
1026 | struct pci_dev *pdev; | 1026 | struct pci_dev *pdev; |
1027 | struct net_device *dev; | 1027 | struct net_device *dev; |
1028 | #ifdef CONFIG_PPC_PMAC | 1028 | #if defined(CONFIG_PPC_PMAC) || defined(CONFIG_SPARC) |
1029 | struct device_node *of_node; | 1029 | struct device_node *of_node; |
1030 | #endif | 1030 | #endif |
1031 | }; | 1031 | }; |