sa->sa_family = dev->type;
 
-       if (tp->version == RTL_VER_01) {
-               ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data);
-       } else {
-               /* if device doesn't support MAC pass through this will
-                * be expected to be non-zero
-                */
-               ret = vendor_mac_passthru_addr_read(tp, sa);
-               if (ret < 0)
-                       ret = pla_ocp_read(tp, PLA_BACKUP, 8, sa->sa_data);
+       ret = eth_platform_get_mac_address(&dev->dev, sa->sa_data);
+       if (ret < 0) {
+               if (tp->version == RTL_VER_01) {
+                       ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data);
+               } else {
+                       /* if device doesn't support MAC pass through this will
+                        * be expected to be non-zero
+                        */
+                       ret = vendor_mac_passthru_addr_read(tp, sa);
+                       if (ret < 0)
+                               ret = pla_ocp_read(tp, PLA_BACKUP, 8,
+                                                  sa->sa_data);
+               }
        }
 
        if (ret < 0) {