|
@@ -1633,13 +1633,18 @@ static inline void sis190_init_rxfilter(struct net_device *dev)
|
|
|
static int __devinit sis190_get_mac_addr(struct pci_dev *pdev,
|
|
|
struct net_device *dev)
|
|
|
{
|
|
|
- u8 from;
|
|
|
+ int rc;
|
|
|
+
|
|
|
+ rc = sis190_get_mac_addr_from_eeprom(pdev, dev);
|
|
|
+ if (rc < 0) {
|
|
|
+ u8 reg;
|
|
|
|
|
|
- pci_read_config_byte(pdev, 0x73, &from);
|
|
|
+ pci_read_config_byte(pdev, 0x73, ®);
|
|
|
|
|
|
- return (from & 0x00000001) ?
|
|
|
- sis190_get_mac_addr_from_apc(pdev, dev) :
|
|
|
- sis190_get_mac_addr_from_eeprom(pdev, dev);
|
|
|
+ if (reg & 0x00000001)
|
|
|
+ rc = sis190_get_mac_addr_from_apc(pdev, dev);
|
|
|
+ }
|
|
|
+ return rc;
|
|
|
}
|
|
|
|
|
|
static void sis190_set_speed_auto(struct net_device *dev)
|