]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge branch 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Aug 2010 16:17:27 +0000 (09:17 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Aug 2010 16:17:27 +0000 (09:17 -0700)
* 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6:
  IXP4xx: Fix LL debugging on little-endian CPU.
  IXP4xx: Fix sparse warnings in I/O primitives.
  IXP4xx: Make mdio_bus struct static in the Ethernet driver.
  IXP4xx: Fix ixp4xx_crypto little-endian operation.
  IXP4xx: Prevent HSS transmitter lockup by disabling FRaMe signals.
  ixp4xx/vulcan: add PCI support
  ixp4xx: base support for Arcom Vulcan

1  2 
drivers/net/arm/ixp4xx_eth.c
drivers/net/wan/ixp4xx_hss.c

index 4f1cc7164ad9f41435e338a31286c4746120f90b,656e2ae322806f9b05907e6da6743ae27d40517c..6028226a7270fbb91807ce2084ef3b720657529f
@@@ -241,7 -241,7 +241,7 @@@ static inline void memcpy_swab32(u32 *d
  
  static spinlock_t mdio_lock;
  static struct eth_regs __iomem *mdio_regs; /* mdio command and status only */
- struct mii_bus *mdio_bus;
+ static struct mii_bus *mdio_bus;
  static int ports_open;
  static struct port *npe_port_tab[MAX_NPES];
  static struct dma_pool *dma_pool;
@@@ -708,6 -708,7 +708,6 @@@ static int eth_xmit(struct sk_buff *skb
        /* NPE firmware pads short frames with zeros internally */
        wmb();
        queue_put_desc(TX_QUEUE(port->id), tx_desc_phys(port, n), desc);
 -      dev->trans_start = jiffies;
  
        if (qmgr_stat_below_low_watermark(txreadyq)) { /* empty */
  #if DEBUG_TX
  static void eth_set_mcast_list(struct net_device *dev)
  {
        struct port *port = netdev_priv(dev);
 -      struct dev_mc_list *mclist;
 +      struct netdev_hw_addr *ha;
        u8 diffs[ETH_ALEN], *addr;
        int i;
 +      static const u8 allmulti[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 };
 +
 +      if (dev->flags & IFF_ALLMULTI) {
 +              for (i = 0; i < ETH_ALEN; i++) {
 +                      __raw_writel(allmulti[i], &port->regs->mcast_addr[i]);
 +                      __raw_writel(allmulti[i], &port->regs->mcast_mask[i]);
 +              }
 +              __raw_writel(DEFAULT_RX_CNTRL0 | RX_CNTRL0_ADDR_FLTR_EN,
 +                      &port->regs->rx_control[0]);
 +              return;
 +      }
  
        if ((dev->flags & IFF_PROMISC) || netdev_mc_empty(dev)) {
                __raw_writel(DEFAULT_RX_CNTRL0 & ~RX_CNTRL0_ADDR_FLTR_EN,
        memset(diffs, 0, ETH_ALEN);
  
        addr = NULL;
 -      netdev_for_each_mc_addr(mclist, dev) {
 +      netdev_for_each_mc_addr(ha, dev) {
                if (!addr)
 -                      addr = mclist->dmi_addr; /* first MAC address */
 +                      addr = ha->addr; /* first MAC address */
                for (i = 0; i < ETH_ALEN; i++)
 -                      diffs[i] |= addr[i] ^ mclist->dmi_addr[i];
 +                      diffs[i] |= addr[i] ^ ha->addr[i];
        }
  
        for (i = 0; i < ETH_ALEN; i++) {
@@@ -782,8 -772,7 +782,8 @@@ static int eth_ioctl(struct net_device 
  
        if (!netif_running(dev))
                return -EINVAL;
 -      return phy_mii_ioctl(port->phydev, if_mii(req), cmd);
 +
 +      return phy_mii_ioctl(port->phydev, req, cmd);
  }
  
  /* ethtool support */
index 88e363033e23a629101736b03d79c552759583fe,31b0b4d1f57337041b04d6767339c27808f21a6b..6c571e198835216dd3489899142d87a12ee4d4bf
@@@ -396,7 -396,7 +396,7 @@@ static void hss_config(struct port *por
        msg.cmd = PORT_CONFIG_WRITE;
        msg.hss_port = port->id;
        msg.index = HSS_CONFIG_TX_PCR;
-       msg.data32 = PCR_FRM_SYNC_OUTPUT_RISING | PCR_MSB_ENDIAN |
+       msg.data32 = PCR_FRM_PULSE_DISABLED | PCR_MSB_ENDIAN |
                PCR_TX_DATA_ENABLE | PCR_SOF_NO_FBIT;
        if (port->clock_type == CLOCK_INT)
                msg.data32 |= PCR_SYNC_CLK_DIR_OUTPUT;
@@@ -891,6 -891,7 +891,6 @@@ static int hss_hdlc_xmit(struct sk_buf
  
        wmb();
        queue_put_desc(queue_ids[port->id].tx, tx_desc_phys(port, n), desc);
 -      dev->trans_start = jiffies;
  
        if (qmgr_stat_below_low_watermark(txreadyq)) { /* empty */
  #if DEBUG_TX