]> git.karo-electronics.de Git - karo-tx-uboot.git/commitdiff
Merge git://git.denx.de/u-boot-net
authorTom Rini <trini@konsulko.com>
Wed, 13 Jan 2016 23:03:05 +0000 (18:03 -0500)
committerTom Rini <trini@konsulko.com>
Thu, 14 Jan 2016 02:05:16 +0000 (21:05 -0500)
common/fdt_support.c
drivers/net/e1000.c
drivers/net/e1000.h
drivers/net/e1000_spi.c
include/net.h

index a539389a9e88b5eb75a36b73de45c5214ea256a1..09f923716ca1888d8b4e00bf44a2d1af7a594681 100644 (file)
@@ -482,47 +482,49 @@ int fdt_fixup_memory(void *blob, u64 start, u64 size)
 void fdt_fixup_ethernet(void *fdt)
 {
        int node, i, j;
-       char enet[16], *tmp, *end;
+       char *tmp, *end;
        char mac[16];
        const char *path;
        unsigned char mac_addr[6];
+       int offset;
 
        node = fdt_path_offset(fdt, "/aliases");
        if (node < 0)
                return;
 
-       if (!getenv("ethaddr")) {
-               if (getenv("usbethaddr")) {
-                       strcpy(mac, "usbethaddr");
-               } else {
-                       debug("No ethernet MAC Address defined\n");
-                       return;
-               }
-       } else {
-               strcpy(mac, "ethaddr");
-       }
-
-       i = 0;
-       while ((tmp = getenv(mac)) != NULL) {
-               sprintf(enet, "ethernet%d", i);
-               path = fdt_getprop(fdt, node, enet, NULL);
-               if (!path) {
-                       debug("No alias for %s\n", enet);
-                       sprintf(mac, "eth%daddr", ++i);
-                       continue;
-               }
+       for (offset = fdt_first_property_offset(fdt, node);
+            offset > 0;
+            offset = fdt_next_property_offset(fdt, offset)) {
+               const char *name;
+               int len = strlen("ethernet");
+
+               path = fdt_getprop_by_offset(fdt, offset, &name, NULL);
+               if (!strncmp(name, "ethernet", len)) {
+                       i = trailing_strtol(name);
+                       if (i != -1) {
+                               if (i == 0)
+                                       strcpy(mac, "ethaddr");
+                               else
+                                       sprintf(mac, "eth%daddr", i);
+                       } else {
+                               continue;
+                       }
+                       tmp = getenv(mac);
+                       if (!tmp)
+                               continue;
+
+                       for (j = 0; j < 6; j++) {
+                               mac_addr[j] = tmp ?
+                                             simple_strtoul(tmp, &end, 16) : 0;
+                               if (tmp)
+                                       tmp = (*end) ? end + 1 : end;
+                       }
 
-               for (j = 0; j < 6; j++) {
-                       mac_addr[j] = tmp ? simple_strtoul(tmp, &end, 16) : 0;
-                       if (tmp)
-                               tmp = (*end) ? end+1 : end;
+                       do_fixup_by_path(fdt, path, "mac-address",
+                                        &mac_addr, 6, 0);
+                       do_fixup_by_path(fdt, path, "local-mac-address",
+                                        &mac_addr, 6, 1);
                }
-
-               do_fixup_by_path(fdt, path, "mac-address", &mac_addr, 6, 0);
-               do_fixup_by_path(fdt, path, "local-mac-address",
-                               &mac_addr, 6, 1);
-
-               sprintf(mac, "eth%daddr", ++i);
        }
 }
 
index 027f2bfd11f7c273f9ebf3aec14872af68e8d218..70fc02ee5ca6bb9bb28abf9361eb359398e6089e 100644 (file)
@@ -551,43 +551,6 @@ static int32_t e1000_init_eeprom_params(struct e1000_hw *hw)
                eeprom->use_eerd = true;
                eeprom->use_eewr = false;
                break;
-
-       /* ich8lan does not support currently. if needed, please
-        * add corresponding code and functions.
-        */
-#if 0
-       case e1000_ich8lan:
-               {
-               int32_t  i = 0;
-
-               eeprom->type = e1000_eeprom_ich8;
-               eeprom->use_eerd = false;
-               eeprom->use_eewr = false;
-               eeprom->word_size = E1000_SHADOW_RAM_WORDS;
-               uint32_t flash_size = E1000_READ_ICH_FLASH_REG(hw,
-                               ICH_FLASH_GFPREG);
-               /* Zero the shadow RAM structure. But don't load it from NVM
-                * so as to save time for driver init */
-               if (hw->eeprom_shadow_ram != NULL) {
-                       for (i = 0; i < E1000_SHADOW_RAM_WORDS; i++) {
-                               hw->eeprom_shadow_ram[i].modified = false;
-                               hw->eeprom_shadow_ram[i].eeprom_word = 0xFFFF;
-                       }
-               }
-
-               hw->flash_base_addr = (flash_size & ICH_GFPREG_BASE_MASK) *
-                               ICH_FLASH_SECTOR_SIZE;
-
-               hw->flash_bank_size = ((flash_size >> 16)
-                               & ICH_GFPREG_BASE_MASK) + 1;
-               hw->flash_bank_size -= (flash_size & ICH_GFPREG_BASE_MASK);
-
-               hw->flash_bank_size *= ICH_FLASH_SECTOR_SIZE;
-
-               hw->flash_bank_size /= 2 * sizeof(uint16_t);
-               break;
-               }
-#endif
        default:
                break;
        }
@@ -838,14 +801,6 @@ e1000_read_eeprom(struct e1000_hw *hw, uint16_t offset,
        if (eeprom->use_eerd == true)
                return e1000_read_eeprom_eerd(hw, offset, words, data);
 
-       /* ich8lan does not support currently. if needed, please
-        * add corresponding code and functions.
-        */
-#if 0
-       /* ICH EEPROM access is done via the ICH flash controller */
-       if (eeprom->type == e1000_eeprom_ich8)
-               return e1000_read_eeprom_ich8(hw, offset, words, data);
-#endif
        /* Set up the SPI or Microwire EEPROM for bit-bang reading.  We have
         * acquired the EEPROM at this point, so any returns should relase it */
        if (eeprom->type == e1000_eeprom_spi) {
@@ -1732,17 +1687,7 @@ e1000_init_hw(struct e1000_hw *hw, unsigned char enetaddr[6])
                 * occuring when accessing our register space */
                E1000_WRITE_FLUSH(hw);
        }
-#if 0
-       /* Set the PCI priority bit correctly in the CTRL register.  This
-        * determines if the adapter gives priority to receives, or if it
-        * gives equal priority to transmits and receives.  Valid only on
-        * 82542 and 82543 silicon.
-        */
-       if (hw->dma_fairness && hw->mac_type <= e1000_82543) {
-               ctrl = E1000_READ_REG(hw, CTRL);
-               E1000_WRITE_REG(hw, CTRL, ctrl | E1000_CTRL_PRIOR);
-       }
-#endif
+
        switch (hw->mac_type) {
        case e1000_82545_rev_3:
        case e1000_82546_rev_3:
@@ -1842,20 +1787,6 @@ e1000_init_hw(struct e1000_hw *hw, unsigned char enetaddr[6])
                break;
        }
 
-#if 0
-       /* Clear all of the statistics registers (clear on read).  It is
-        * important that we do this after we have tried to establish link
-        * because the symbol error count will increment wildly if there
-        * is no link.
-        */
-       e1000_clear_hw_cntrs(hw);
-
-       /* ICH8 No-snoop bits are opposite polarity.
-        * Set to snoop by default after reset. */
-       if (hw->mac_type == e1000_ich8lan)
-               e1000_set_pci_ex_no_snoop(hw, PCI_EX_82566_SNOOP_ALL);
-#endif
-
        if (hw->device_id == E1000_DEV_ID_82546GB_QUAD_COPPER ||
                hw->device_id == E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3) {
                ctrl_ext = E1000_READ_REG(hw, CTRL_EXT);
@@ -5230,10 +5161,6 @@ _e1000_disable(struct e1000_hw *hw)
        E1000_WRITE_REG(hw, RDH, 0);
        E1000_WRITE_REG(hw, RDT, 0);
 
-       /* put the card in its initial state */
-#if 0
-       E1000_WRITE_REG(hw, CTRL, E1000_CTRL_RST);
-#endif
        mdelay(10);
 }
 
@@ -5359,7 +5286,6 @@ static int e1000_init_one(struct e1000_hw *hw, int cardnum, pci_dev_t devno,
 
 #ifndef CONFIG_E1000_NO_NVM
        /* Validate the EEPROM and get chipset information */
-#if !defined(CONFIG_MVBC_1G)
        if (e1000_init_eeprom_params(hw)) {
                E1000_ERR(hw, "EEPROM is invalid!\n");
                return -EINVAL;
@@ -5367,7 +5293,6 @@ static int e1000_init_one(struct e1000_hw *hw, int cardnum, pci_dev_t devno,
        if ((E1000_READ_REG(hw, I210_EECD) & E1000_EECD_FLUPD) &&
            e1000_validate_eeprom_checksum(hw))
                return -ENXIO;
-#endif
        e1000_read_mac_addr(hw, enetaddr);
 #endif
        e1000_get_bus_type(hw);
index c851922ae5c791670778b9111e96cade2fea3419..e46edcd4e1d845e17a5e07739e7166eea2353a77 100644 (file)
@@ -1093,11 +1093,6 @@ struct e1000_hw {
        e1000_media_type media_type;
        e1000_fc_type fc;
        e1000_bus_type bus_type;
-#if 0
-       e1000_bus_speed bus_speed;
-       e1000_bus_width bus_width;
-       uint32_t io_base;
-#endif
        uint32_t                asf_firmware_present;
 #ifndef CONFIG_E1000_NO_NVM
        uint32_t                eeprom_semaphore_present;
@@ -1116,29 +1111,11 @@ struct e1000_hw {
        uint32_t original_fc;
        uint32_t txcw;
        uint32_t autoneg_failed;
-#if 0
-       uint32_t max_frame_size;
-       uint32_t min_frame_size;
-       uint32_t mc_filter_type;
-       uint32_t num_mc_addrs;
-       uint32_t collision_delta;
-       uint32_t tx_packet_delta;
-       uint32_t ledctl_default;
-       uint32_t ledctl_mode1;
-       uint32_t ledctl_mode2;
-#endif
        uint16_t autoneg_advertised;
        uint16_t pci_cmd_word;
        uint16_t fc_high_water;
        uint16_t fc_low_water;
        uint16_t fc_pause_time;
-#if 0
-       uint16_t current_ifs_val;
-       uint16_t ifs_min_val;
-       uint16_t ifs_max_val;
-       uint16_t ifs_step_size;
-       uint16_t ifs_ratio;
-#endif
        uint16_t device_id;
        uint16_t vendor_id;
        uint16_t subsystem_id;
@@ -1149,9 +1126,6 @@ struct e1000_hw {
        uint8_t forced_speed_duplex;
        uint8_t wait_autoneg_complete;
        uint8_t dma_fairness;
-#if 0
-       uint8_t perm_mac_addr[NODE_ADDRESS_SIZE];
-#endif
        bool disable_polarity_correction;
        bool            speed_downgraded;
        bool get_link_status;
@@ -1162,11 +1136,6 @@ struct e1000_hw {
        bool report_tx_early;
        bool phy_reset_disable;
        bool            initialize_hw_bits_disable;
-#if 0
-       bool adaptive_ifs;
-       bool ifs_params_forced;
-       bool in_ifs_mode;
-#endif
        e1000_smart_speed       smart_speed;
        e1000_dsp_config        dsp_config_state;
 };
index df72375238f5814e873d1a69b6389c61ac03c625..576ddb8b24290f6a20220553b5cb2d60a4e97b26 100644 (file)
@@ -182,22 +182,21 @@ static int e1000_spi_eeprom_enable_wr(struct e1000_hw *hw, bool intr)
  * These have been tested to perform correctly, but they are not used by any
  * of the EEPROM commands at this time.
  */
-#if 0
-static int e1000_spi_eeprom_disable_wr(struct e1000_hw *hw, bool intr)
+static __maybe_unused int e1000_spi_eeprom_disable_wr(struct e1000_hw *hw,
+                                                     bool intr)
 {
        u8 op[] = { SPI_EEPROM_DISABLE_WR };
        e1000_standby_eeprom(hw);
        return e1000_spi_xfer(hw, 8*sizeof(op), op, NULL, intr);
 }
 
-static int e1000_spi_eeprom_write_status(struct e1000_hw *hw,
-               u8 status, bool intr)
+static __maybe_unused int e1000_spi_eeprom_write_status(struct e1000_hw *hw,
+                                                       u8 status, bool intr)
 {
        u8 op[] = { SPI_EEPROM_WRITE_STATUS, status };
        e1000_standby_eeprom(hw);
        return e1000_spi_xfer(hw, 8*sizeof(op), op, NULL, intr);
 }
-#endif
 
 static int e1000_spi_eeprom_read_status(struct e1000_hw *hw, bool intr)
 {
index ebed29ad577e898aecfefcfad784510f7ff6ea28..ac44d614ca335e390d801e3be50aaac6acccac71 100644 (file)
@@ -181,8 +181,7 @@ int eth_unregister(struct eth_device *dev);/* Remove network device */
 
 extern struct eth_device *eth_current;
 
-static inline __attribute__((always_inline))
-struct eth_device *eth_get_dev(void)
+static __always_inline struct eth_device *eth_get_dev(void)
 {
        return eth_current;
 }
@@ -200,14 +199,14 @@ static inline unsigned char *eth_get_ethaddr(void)
 /* Used only when NetConsole is enabled */
 int eth_is_active(struct eth_device *dev); /* Test device for active state */
 /* Set active state */
-static inline __attribute__((always_inline)) int eth_init_state_only(void)
+static __always_inline int eth_init_state_only(void)
 {
        eth_get_dev()->state = ETH_STATE_ACTIVE;
 
        return 0;
 }
 /* Set passive state */
-static inline __attribute__((always_inline)) void eth_halt_state_only(void)
+static __always_inline void eth_halt_state_only(void)
 {
        eth_get_dev()->state = ETH_STATE_PASSIVE;
 }
@@ -657,7 +656,7 @@ int nc_input_packet(uchar *pkt, struct in_addr src_ip, unsigned dest_port,
        unsigned src_port, unsigned len);
 #endif
 
-static inline __attribute__((always_inline)) int eth_is_on_demand_init(void)
+static __always_inline int eth_is_on_demand_init(void)
 {
 #ifdef CONFIG_NETCONSOLE
        extern enum proto_t net_loop_last_protocol;