]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
Merge tag 'v3.8.6' into connectivity-linux-3.8.y
authorFelipe Balbi <balbi@ti.com>
Mon, 8 Apr 2013 14:06:08 +0000 (17:06 +0300)
committerFelipe Balbi <balbi@ti.com>
Mon, 8 Apr 2013 14:06:08 +0000 (17:06 +0300)
This is the 3.8.6 stable release

* tag 'v3.8.6': (402 commits)
  Linux 3.8.6
  bonding: get netdev_rx_handler_unregister out of locks
  smsc75xx: fix jumbo frame support
  pch_gbe: fix ip_summed checksum reporting on rx
  net: fq_codel: Fix off-by-one error
  net: fix the use of this_cpu_ptr
  net: ethernet: cpsw: fix erroneous condition in error check
  net: add a synchronize_net() in netdev_rx_handler_unregister()
  ks8851: Fix interpretation of rxlen field.
  ipv6: don't accept node local multicast traffic from the wire
  ipv6: don't accept multicast traffic with scope 0
  ipv6: fix bad free of addrconf_init_net
  fec: Fix the build as module
  DM9000B: driver initialization upgrade
  atl1e: drop pci-msi support because of packet corruption
  aoe: reserve enough headroom on skbs
  net: fix *_DIAG_MAX constants
  drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting tx queue
  drivers: net: ethernet: davinci_emac: use netif_wake_queue() while restarting tx queue
  bonding: fix disabling of arp_interval and miimon
  ...

Signed-off-by: Felipe Balbi <balbi@ti.com>
Conflicts:
arch/arm/mach-omap2/common.h
drivers/net/ethernet/ti/cpsw.c
drivers/net/wireless/iwlwifi/dvm/ucode.c

26 files changed:
1  2 
arch/arm/include/asm/pgtable.h
arch/arm/kernel/smp.c
arch/arm/mach-omap2/common.h
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/timer.c
drivers/net/ethernet/ti/cpsw.c
drivers/net/ethernet/ti/davinci_emac.c
drivers/net/wireless/ath/ath9k/ar9003_calib.c
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/iwlwifi/dvm/lib.c
drivers/net/wireless/iwlwifi/dvm/ucode.c
drivers/net/wireless/iwlwifi/iwl-devtrace.h
drivers/net/wireless/iwlwifi/pcie/internal.h
drivers/net/wireless/iwlwifi/pcie/tx.c
drivers/net/wireless/mwifiex/init.c
drivers/net/wireless/mwifiex/join.c
drivers/net/wireless/mwifiex/main.h
drivers/net/wireless/mwifiex/pcie.c
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rtlwifi/usb.c
drivers/usb/host/ehci-hcd.c
drivers/watchdog/Kconfig
net/bluetooth/sco.c
net/ipv4/tcp.c
net/mac80211/mlme.c
net/mac80211/sta_info.c

Simple merge
Simple merge
index cf7699130666b0fd71cf563cd029b66c166e9c10,b9adf690f9f76f7ea646d75a8cf80465629f898f..f923aed7032e01a6d448483e288f827709ff3ff3
@@@ -289,10 -286,8 +289,13 @@@ extern void omap_reserve(void)
  struct omap_hwmod;
  extern int omap_dss_reset(struct omap_hwmod *);
  
 +/* AXI ERROR DEFINES */
 +#define AXI_L2_ERROR (1 << 30)
 +#define AXI_ASYNC_ERROR (1 << 29)
 +#define AXI_ERROR (AXI_L2_ERROR | AXI_ASYNC_ERROR)
 +
+ /* SoC specific clock initializer */
+ extern int (*omap_clk_init)(void);
  #endif /* __ASSEMBLER__ */
  #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
Simple merge
Simple merge
Simple merge
index f727e326b63c676d5ab2d35beaa6df9f14f0829f,4ebcb241290f90932d7ae485408a79bc60a31e0b..031276c56627e47b436cbcb2b16e0fd4343a3f4a
@@@ -1048,12 -1050,12 +1048,12 @@@ static void emac_tx_handler(void *token
  {
        struct sk_buff          *skb = token;
        struct net_device       *ndev = skb->dev;
 -      struct emac_priv        *priv = netdev_priv(ndev);
 -
 -      atomic_dec(&priv->cur_tx);
  
 +      /* Check whether the queue is stopped due to stalled tx dma, if the
 +       * queue is stopped then start the queue as we have free desc for tx
 +       */
        if (unlikely(netif_queue_stopped(ndev)))
-               netif_start_queue(ndev);
+               netif_wake_queue(ndev);
        ndev->stats.tx_packets++;
        ndev->stats.tx_bytes += len;
        dev_kfree_skb_any(skb);
index 4cc13940c8950d2a7ad2a3fdf1a092ac3736a7d5,e99f48103f834d2ad308ae9297b36803413f596d..f76c3ca07a4501603883bbcbe9feb901d4eca390
@@@ -1022,7 -971,12 +1022,8 @@@ static bool ar9003_hw_init_cal(struct a
        u32 agc_ctrl = 0, agc_supp_cals = AR_PHY_AGC_CONTROL_OFFSET_CAL |
                                          AR_PHY_AGC_CONTROL_FLTR_CAL   |
                                          AR_PHY_AGC_CONTROL_PKDET_CAL;
 -      int i, j;
 -      u32 cl_idx[AR9300_MAX_CHAINS] = { AR_PHY_CL_TAB_0,
 -                                        AR_PHY_CL_TAB_1,
 -                                        AR_PHY_CL_TAB_2 };
  
+       /* Use chip chainmask only for calibration */
        ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask);
  
        if (rtt) {
@@@ -1150,12 -1132,25 +1151,15 @@@ skip_tx_iqcal
                ar9003_hw_rtt_disable(ah);
        }
  
+       /* Revert chainmask to runtime parameters */
+       ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask);
        /* Initialize list pointers */
        ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
 -      ah->supp_cals = IQ_MISMATCH_CAL;
 -
 -      if (ah->supp_cals & IQ_MISMATCH_CAL) {
 -              INIT_CAL(&ah->iq_caldata);
 -              INSERT_CAL(ah, &ah->iq_caldata);
 -              ath_dbg(common, CALIBRATE, "enabling IQ Calibration\n");
 -      }
  
 -      if (ah->supp_cals & TEMP_COMP_CAL) {
 -              INIT_CAL(&ah->tempCompCalData);
 -              INSERT_CAL(ah, &ah->tempCompCalData);
 -              ath_dbg(common, CALIBRATE,
 -                      "enabling Temperature Compensation Calibration\n");
 -      }
 +      INIT_CAL(&ah->iq_caldata);
 +      INSERT_CAL(ah, &ah->iq_caldata);
 +      ath_dbg(common, CALIBRATE, "enabling IQ Calibration\n");
  
        /* Initialize current pointer to first element in list */
        ah->cal_list_curr = ah->cal_list;
Simple merge
index 736fe9bb140ebab643e065742469ef0a9f667e31,9b138b8f2cf2475c2a531ac5529a386ae96718db..ff3b36a3d1ef22940a8699e4e16b813e06302f62
@@@ -367,7 -450,20 +367,14 @@@ int iwl_load_ucode_wait_alive(struct iw
                return -EIO;
        }
  
+       priv->ucode_loaded = true;
+       /*
+        * This step takes a long time (60-80ms!!) and
+        * WoWLAN image should be loaded quickly, so
+        * skip it for WoWLAN.
+        */
        if (ucode_type != IWL_UCODE_WOWLAN) {
 -              ret = iwl_verify_ucode(priv, ucode_type);
 -              if (ret) {
 -                      priv->cur_ucode = old_type;
 -                      return ret;
 -              }
 -
                /* delay a bit to give rfkill time to run */
                msleep(5);
        }
Simple merge
Simple merge
Simple merge
Simple merge
index 156b52732f3d576cb458bc3f6b3e2eb2818f2d90,82bc6841a42b912a3469c5485d6f7258488ed566..5847d6d0881e7ce30180d26cc275425c55eda76b
@@@ -851,8 -854,10 +851,9 @@@ static void _rtl_usb_transmit(struct ie
        if (unlikely(!_urb)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
                         "Can't allocate urb. Drop skb!\n");
+               kfree_skb(skb);
                return;
        }
 -      urb_list = &rtlusb->tx_pending[ep_num];
        _rtl_submit_tx_urb(hw, _urb);
  }
  
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
Simple merge