| .. | .. |
|---|
| 5117 | 5117 | |
|---|
| 5118 | 5118 | /* Adjust EEE LED frequency */ |
|---|
| 5119 | 5119 | RTL_W8(tp, EEE_LED, RTL_R8(tp, EEE_LED) & ~0x07); |
|---|
| 5120 | + printk("r8169 EEE_LED value init: %x\n",RTL_R16(tp,0x18)); |
|---|
| 5121 | + RTL_W16(tp, 0x18, 0x024F); |
|---|
| 5122 | + printk("r8169 EEE_LED write: %x\n",RTL_R16(tp,0x18)); |
|---|
| 5123 | + |
|---|
| 5120 | 5124 | } |
|---|
| 5121 | 5125 | |
|---|
| 5122 | 5126 | static void rtl_hw_start_8411(struct rtl8169_private *tp) |
|---|
| .. | .. |
|---|
| 7435 | 7439 | clk_disable_unprepare(data); |
|---|
| 7436 | 7440 | } |
|---|
| 7437 | 7441 | |
|---|
| 7442 | +extern ssize_t at24_mac1_read(unsigned char* mac); |
|---|
| 7438 | 7443 | static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) |
|---|
| 7439 | 7444 | { |
|---|
| 7440 | 7445 | const struct rtl_cfg_info *cfg = rtl_cfg_infos + ent->driver_data; |
|---|
| .. | .. |
|---|
| 7442 | 7447 | struct net_device *dev; |
|---|
| 7443 | 7448 | int chipset, region, i; |
|---|
| 7444 | 7449 | int jumbo_max, rc; |
|---|
| 7450 | + unsigned char mac[6]; |
|---|
| 7445 | 7451 | |
|---|
| 7446 | 7452 | dev = devm_alloc_etherdev(&pdev->dev, sizeof (*tp)); |
|---|
| 7447 | 7453 | if (!dev) |
|---|
| .. | .. |
|---|
| 7593 | 7599 | default: |
|---|
| 7594 | 7600 | break; |
|---|
| 7595 | 7601 | } |
|---|
| 7596 | | - for (i = 0; i < ETH_ALEN; i++) |
|---|
| 7597 | | - dev->dev_addr[i] = RTL_R8(tp, MAC0 + i); |
|---|
| 7602 | +// for (i = 0; i < ETH_ALEN; i++) |
|---|
| 7603 | +// dev->dev_addr[i] = RTL_R8(tp, MAC0 + i); |
|---|
| 7604 | + memset(mac, 0x00, 6); |
|---|
| 7605 | + at24_mac1_read(mac); |
|---|
| 7606 | + |
|---|
| 7607 | + if ((mac[0] == 0x68) && (mac[1] == 0xed)) |
|---|
| 7608 | + { |
|---|
| 7609 | + printk("rtl811h mac read from eeprom success!! \n"); |
|---|
| 7610 | + for (i = 0; i < ETH_ALEN; i++) |
|---|
| 7611 | + dev->dev_addr[i] = mac[i]; |
|---|
| 7612 | + } |
|---|
| 7613 | + else |
|---|
| 7614 | + { |
|---|
| 7615 | + printk("rtl811h mac read from eeprom error!! \n"); |
|---|
| 7616 | + |
|---|
| 7617 | + dev->dev_addr[0] = 0x66; |
|---|
| 7618 | + dev->dev_addr[1] = 0xED; |
|---|
| 7619 | + dev->dev_addr[2] = 0xB5; |
|---|
| 7620 | + dev->dev_addr[3] = 0x64; |
|---|
| 7621 | + dev->dev_addr[4] = 0x72; |
|---|
| 7622 | + dev->dev_addr[5] = 0x2C; |
|---|
| 7623 | + } |
|---|
| 7624 | + |
|---|
| 7625 | + rtl_rar_set(tp, dev->dev_addr); |
|---|
| 7598 | 7626 | |
|---|
| 7599 | 7627 | dev->ethtool_ops = &rtl8169_ethtool_ops; |
|---|
| 7600 | 7628 | dev->watchdog_timeo = RTL8169_TX_TIMEOUT; |
|---|
| .. | .. |
|---|
| 7696 | 7724 | .driver.pm = RTL8169_PM_OPS, |
|---|
| 7697 | 7725 | }; |
|---|
| 7698 | 7726 | |
|---|
| 7699 | | -module_pci_driver(rtl8169_pci_driver); |
|---|
| 7727 | +//module_pci_driver(rtl8169_pci_driver); |
|---|
| 7728 | +module_pci_driver2(rtl8169_pci_driver); //late_initcall(); |
|---|