Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Aug 2010 15:53:20 +0000 (08:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Aug 2010 15:53:20 +0000 (08:53 -0700)
* 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (150 commits)
  MIPS: PowerTV: Separate PowerTV USB support from non-USB code
  MIPS: strip the un-needed sections of vmlinuz
  MIPS: Clean up the calculation of VMLINUZ_LOAD_ADDRESS
  MIPS: Clean up arch/mips/boot/compressed/decompress.c
  MIPS: Clean up arch/mips/boot/compressed/ld.script
  MIPS: Unify the suffix of compressed vmlinux.bin
  MIPS: PowerTV: Add Gaia platform definitions.
  MIPS: BCM47xx: Fix nvram_getenv return value.
  MIPS: Octeon: Allow more than 3.75GB of memory with PCIe
  MIPS: Clean up notify_die() usage.
  MIPS: Remove unused task_struct.trap_no field.
  Documentation: Mention that KProbes is supported on MIPS
  SAMPLES: kprobe_example: Make it print something on MIPS.
  MIPS: kprobe: Add support.
  MIPS: Add instrunction format for BREAK and SYSCALL
  MIPS: kprobes: Define regs_return_value()
  MIPS: Ritually kill stupid printk.
  MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts.
  MIPS: Octeon: Support 256 MSI on PCIe
  MIPS: Decode core number for R2 CPUs.
  ...

1  2 
drivers/net/Kconfig
drivers/net/au1000_eth.c

diff --combined drivers/net/Kconfig
index ebe68395ecf8c98cd292052d6e78cf5ad9f4ff31,adead30a0566a9f5fb35fc4db04544c3bbfabcf6..23c13180ff14811dd5925e231db7ac795c99c05c
@@@ -484,7 -484,7 +484,7 @@@ config XTENSA_XT2000_SONI
  
  config MIPS_AU1X00_ENET
        tristate "MIPS AU1000 Ethernet support"
-       depends on SOC_AU1X00
+       depends on MIPS_ALCHEMY
        select PHYLIB
        select CRC32
        help
@@@ -530,15 -530,14 +530,15 @@@ config SH_ET
        depends on SUPERH && \
                (CPU_SUBTYPE_SH7710 || CPU_SUBTYPE_SH7712 || \
                 CPU_SUBTYPE_SH7763 || CPU_SUBTYPE_SH7619 || \
 -               CPU_SUBTYPE_SH7724)
 +               CPU_SUBTYPE_SH7724 || CPU_SUBTYPE_SH7757)
        select CRC32
        select MII
        select MDIO_BITBANG
        select PHYLIB
        help
          Renesas SuperH Ethernet device driver.
 -        This driver support SH7710, SH7712, SH7763, SH7619, and SH7724.
 +        This driver supporting CPUs are:
 +              - SH7710, SH7712, SH7763, SH7619, SH7724, and SH7757.
  
  config SUNLANCE
        tristate "Sun LANCE support"
@@@ -1464,7 -1463,7 +1464,7 @@@ config FORCEDET
  config CS89x0
        tristate "CS89x0 support"
        depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \
 -              || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS)
 +              || ARCH_IXDP2X01 || MACH_MX31ADS)
        ---help---
          Support for CS89x0 chipset based Ethernet cards. If you have a
          network (Ethernet) card of this type, say Y and read the
  config CS89x0_NONISA_IRQ
        def_bool y
        depends on CS89x0 != n
 -      depends on MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS
 +      depends on MACH_IXDP2351 || ARCH_IXDP2X01 || MACH_MX31ADS
  
  config TC35815
        tristate "TOSHIBA TC35815 Ethernet support"
@@@ -1660,7 -1659,6 +1660,7 @@@ config R604
        depends on NET_PCI && PCI
        select CRC32
        select MII
 +      select PHYLIB
        help
          This is a driver for the R6040 Fast Ethernet MACs found in the
          the RDC R-321x System-on-chips.
@@@ -1750,12 -1748,11 +1750,12 @@@ config TLA
          Please email feedback to <torben.mathiasen@compaq.com>.
  
  config KS8842
 -      tristate "Micrel KSZ8842"
 -      depends on HAS_IOMEM
 +      tristate "Micrel KSZ8841/42 with generic bus interface"
 +      depends on HAS_IOMEM && DMA_ENGINE
        help
 -        This platform driver is for Micrel KSZ8842 / KS8842
 -        2-port ethernet switch chip (managed, VLAN, QoS).
 +       This platform driver is for KSZ8841(1-port) / KS8842(2-port)
 +       ethernet switch chip (managed, VLAN, QoS) from Micrel or
 +       Timberdale(FPGA).
  
  config KS8851
         tristate "Micrel KS8851 SPI"
@@@ -2604,29 -2601,6 +2604,29 @@@ config CHELSIO_T
          To compile this driver as a module choose M here; the module
          will be called cxgb4.
  
 +config CHELSIO_T4VF_DEPENDS
 +      tristate
 +      depends on PCI && INET
 +      default y
 +
 +config CHELSIO_T4VF
 +      tristate "Chelsio Communications T4 Virtual Function Ethernet support"
 +      depends on CHELSIO_T4VF_DEPENDS
 +      help
 +        This driver supports Chelsio T4-based gigabit and 10Gb Ethernet
 +        adapters with PCI-E SR-IOV Virtual Functions.
 +
 +        For general information about Chelsio and our products, visit
 +        our website at <http://www.chelsio.com>.
 +
 +        For customer support, please visit our customer support page at
 +        <http://www.chelsio.com/support.htm>.
 +
 +        Please send feedback to <linux-bugs@chelsio.com>.
 +
 +        To compile this driver as a module choose M here; the module
 +        will be called cxgb4vf.
 +
  config EHEA
        tristate "eHEA Ethernet support"
        depends on IBMEBUS && INET && SPARSEMEM
  config ENIC
        tristate "Cisco VIC Ethernet NIC Support"
        depends on PCI && INET
 -      select INET_LRO
        help
          This enables the support for the Cisco VIC Ethernet card.
  
diff --combined drivers/net/au1000_eth.c
index 386d4feec652b4d33ec0b5648c176b3b2048d0bf,17e7e27eb2227d936b3432ead5a7b35ef107d354..15ae6df2ff00b89885e778f8b1a8241a1959ddc3
@@@ -104,14 -104,6 +104,6 @@@ MODULE_VERSION(DRV_VERSION)
   * complete immediately.
   */
  
- /* These addresses are only used if yamon doesn't tell us what
-  * the mac address is, and the mac address is not passed on the
-  * command line.
-  */
- static unsigned char au1000_mac_addr[6] __devinitdata = {
-       0x00, 0x50, 0xc2, 0x0c, 0x30, 0x00
- };
  struct au1000_private *au_macs[NUM_ETH_INTERFACES];
  
  /*
@@@ -978,7 -970,7 +970,7 @@@ static int au1000_ioctl(struct net_devi
        if (!aup->phy_dev)
                return -EINVAL; /* PHY not controllable */
  
 -      return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd);
 +      return phy_mii_ioctl(aup->phy_dev, rq, cmd);
  }
  
  static const struct net_device_ops au1000_netdev_ops = {
@@@ -1002,7 -994,6 +994,6 @@@ static int __devinit au1000_probe(struc
        db_dest_t *pDB, *pDBfree;
        int irq, i, err = 0;
        struct resource *base, *macen;
-       char ethaddr[6];
  
        base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!base) {
        }
        aup->mac_id = pdev->id;
  
-       if (pdev->id == 0) {
-               if (prom_get_ethernet_addr(ethaddr) == 0)
-                       memcpy(au1000_mac_addr, ethaddr, sizeof(au1000_mac_addr));
-               else {
-                       netdev_info(dev, "No MAC address found\n");
-                               /* Use the hard coded MAC addresses */
-               }
+       if (pdev->id == 0)
                au1000_setup_hw_rings(aup, MAC0_RX_DMA_ADDR, MAC0_TX_DMA_ADDR);
-       else if (pdev->id == 1)
+       else if (pdev->id == 1)
                au1000_setup_hw_rings(aup, MAC1_RX_DMA_ADDR, MAC1_TX_DMA_ADDR);
  
-       /*
-        * Assign to the Ethernet ports two consecutive MAC addresses
-        * to match those that are printed on their stickers
-        */
-       memcpy(dev->dev_addr, au1000_mac_addr, sizeof(au1000_mac_addr));
-       dev->dev_addr[5] += pdev->id;
+       /* set a random MAC now in case platform_data doesn't provide one */
+       random_ether_addr(dev->dev_addr);
  
        *aup->enable = 0;
        aup->mac_enabled = 0;
                dev_info(&pdev->dev, "no platform_data passed, PHY search on MAC0\n");
                aup->phy1_search_mac0 = 1;
        } else {
+               if (is_valid_ether_addr(pd->mac))
+                       memcpy(dev->dev_addr, pd->mac, 6);
                aup->phy_static_config = pd->phy_static_config;
                aup->phy_search_highest_addr = pd->phy_search_highest_addr;
                aup->phy1_search_mac0 = pd->phy1_search_mac0;