]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
Merge branch 'linux-3.8.y' of http://git.kernel.org/pub/scm/linux/kernel/git/stable...
authorDan Murphy <dmurphy@ti.com>
Fri, 5 Apr 2013 17:43:18 +0000 (12:43 -0500)
committerDan Murphy <dmurphy@ti.com>
Fri, 5 Apr 2013 17:43:18 +0000 (12:43 -0500)
* 'linux-3.8.y' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (125 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
  ...

Conflicts:
drivers/net/ethernet/ti/cpsw.c
drivers/net/wireless/iwlwifi/dvm/ucode.c

Signed-off-by: Dan Murphy <dmurphy@ti.com>
16 files changed:
1  2 
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/iwlwifi/dvm/lib.c
drivers/net/wireless/iwlwifi/dvm/ucode.c
drivers/net/wireless/iwlwifi/pcie/tx.c
drivers/net/wireless/mwifiex/init.c
drivers/net/wireless/mwifiex/main.h
drivers/net/wireless/rtlwifi/usb.c
include/linux/thermal.h
net/bluetooth/sco.c
net/mac80211/mlme.c
net/mac80211/sta_info.c

index e90beee19dd76544f1dba19fd1d01ebb871bb2ba,b9adf690f9f76f7ea646d75a8cf80465629f898f..a6d95614d7a415a4b37d56ca894ff8155d0ceb19
@@@ -297,12 -285,9 +297,15 @@@ extern void omap_reserve(void)
  
  struct omap_hwmod;
  extern int omap_dss_reset(struct omap_hwmod *);
 +int __init omapdss_init_of(void);
 +
 +/* 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 */
index 9ac384c319c6e4b0fc6663cf87be088bfacbc069,5c445ca1e271ca9f14c9e4fd008035ee449ad9b4..26ee4b388404316b55821638dc25e502406e950d
@@@ -578,15 -574,8 +584,15 @@@ void __init am33xx_init_early(void
        am33xx_clockdomains_init();
        am33xx_hwmod_init();
        omap_hwmod_init_postsetup();
-       am33xx_clk_init();
+       omap_clk_init = am33xx_clk_init;
  }
 +
 +void __init am33xx_init_late(void)
 +{
 +      omap_mux_late_init();
 +      omap2_common_pm_late_init();
 +      am33xx_pm_init();
 +}
  #endif
  
  #ifdef CONFIG_ARCH_OMAP4
Simple merge
index 69e088515c8437e4e58392e2beb1c784f7da2672,3b1be52ccf8d0c830dab11c3f020c946f3eeb846..5b2b6f40f0ad9061018aeda0b6797e2a89af0621
@@@ -454,12 -374,9 +454,12 @@@ void cpsw_tx_handler(void *token, int l
        struct net_device       *ndev = skb->dev;
        struct cpsw_priv        *priv = netdev_priv(ndev);
  
 +      /* 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);
-       cpts_tx_timestamp(priv->cpts, skb);
+               netif_wake_queue(ndev);
+       cpts_tx_timestamp(&priv->cpts, skb);
        priv->stats.tx_packets++;
        priv->stats.tx_bytes += len;
        dev_kfree_skb_any(skb);
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;
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
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
Simple merge