1. 07 3月, 2016 13 次提交
  2. 06 3月, 2016 14 次提交
  3. 05 3月, 2016 2 次提交
  4. 04 3月, 2016 11 次提交
    • L
      net: ezchip: adapt driver to little endian architecture · b54b8c2d
      Lada Trimasova 提交于
      Since ezchip network driver is written with big endian EZChip platform it
      is necessary to add support for little endian architecture.
      
      The first issue is that the order of the bits in a bit field is
      implementation specific. So all the bit fields are removed.
      Named constants are used to access necessary fields.
      
      And the second one is that network byte order is big endian.
      For example, data on ethernet is transmitted with most-significant
      octet (byte) first. So in case of little endian architecture
      it is important to swap data byte order when we read it from
      register. In case of unaligned access we can use "get_unaligned_be32"
      and in other case we can use function "ioread32_rep" which reads all
      data from register and works either with little endian or big endian
      architecture.
      
      And then when we are going to write data to register we need to restore
      byte order using the function "put_unaligned_be32" in case of
      unaligned access and in other case "iowrite32_rep".
      
      The last little fix is a space between type and pointer to observe
      coding style.
      Signed-off-by: NLada Trimasova <ltrimas@synopsys.com>
      Cc: Alexey Brodkin <abrodkin@synopsys.com>
      Cc: Noam Camus <noamc@ezchip.com>
      Cc: Tal Zilcer <talz@ezchip.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b54b8c2d
    • S
      sh_eth, ravb: Use ARCH_RENESAS · 274ba628
      Simon Horman 提交于
      Make use of ARCH_RENESAS in place of ARCH_SHMOBILE.
      
      This is part of an ongoing process to migrate from ARCH_SHMOBILE to
      ARCH_RENESAS the motivation for which being that RENESAS seems to be a more
      appropriate name than SHMOBILE for the majority of Renesas ARM based SoCs.
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      274ba628
    • A
      net: mellanox: add DEVLINK dependencies · 3d1cbe83
      Arnd Bergmann 提交于
      The new NET_DEVLINK infrastructure can be a loadable module, but the drivers
      using it might be built-in, which causes link errors like:
      
      drivers/net/built-in.o: In function `mlx4_load_one':
      :(.text+0x2fbfda): undefined reference to `devlink_port_register'
      :(.text+0x2fc084): undefined reference to `devlink_port_unregister'
      drivers/net/built-in.o: In function `mlxsw_sx_port_remove':
      :(.text+0x33a03a): undefined reference to `devlink_port_type_clear'
      :(.text+0x33a04e): undefined reference to `devlink_port_unregister'
      
      There are multiple ways to avoid this:
      
      a) add 'depends on NET_DEVLINK || !NET_DEVLINK' dependencies
         for each user
      b) use 'select NET_DEVLINK' from each driver that uses it
         and hide the symbol in Kconfig.
      c) make NET_DEVLINK a 'bool' option so we don't have to
         list it as a dependency, and rely on the APIs to be
         stubbed out when it is disabled
      d) use IS_REACHABLE() rather than IS_ENABLED() to check for
         NET_DEVLINK in include/net/devlink.h
      
      This implements a variation of approach a) by adding an
      intermediate symbol that drivers can depend on, and changes
      the three drivers using it.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 09d4d087 ("mlx4: Implement devlink interface")
      Fixes: c4745500 ("mlxsw: Implement devlink interface")
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3d1cbe83
    • J
      net: relax setup_tc ndo op handle restriction · 5eb4dce3
      John Fastabend 提交于
      I added this check in setup_tc to multiple drivers,
      
       if (handle != TC_H_ROOT || tc->type != TC_SETUP_MQPRIO)
      
      Unfortunately restricting to TC_H_ROOT like this breaks the old
      instantiation of mqprio to setup a hardware qdisc. This patch
      relaxes the test to only check the type to make it equivalent
      to the check before I broke it. With this the old instantiation
      continues to work.
      
      A good smoke test is to setup mqprio with,
      
      # tc qdisc add dev eth4 root mqprio num_tc 8 \
        map 0 1 2 3 4 5 6 7 \
        queues 0@0 1@1 2@2 3@3 4@4 5@5 6@6 7@7
      
      Fixes: e4c6734e ("net: rework ndo tc op to consume additional qdisc handle paramete")
      Reported-by: NSingh Krishneil <krishneil.k.singh@intel.com>
      Reported-by: NJake Keller <jacob.e.keller@intel.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Shradha Shah <sshah@solarflare.com>
      CC: Or Gerlitz <ogerlitz@mellanox.com>
      CC: Ariel Elior <ariel.elior@qlogic.com>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Bruce Allan <bruce.w.allan@intel.com>
      CC: Jesse Brandeburg <jesse.brandeburg@intel.com>
      CC: Don Skidmore <donald.c.skidmore@intel.com>
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5eb4dce3
    • M
      ath9k: clear bb filter calibration power threshold · 25c0f301
      Miaoqing Pan 提交于
      JP WiFi certification for bandwidth of channel 14 failed, the OBW
      is lower than the requirement. Clear the bb filter calibration power
      threshold to increase OBW(+2). The fix only for qca9531 chip now.
      Signed-off-by: NMiaoqing Pan <miaoqing@codeaurora.org>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      25c0f301
    • A
      ath9k: reduce stack usage in ar9003_aic_cal_post_process · e9a26010
      Arnd Bergmann 提交于
      In some configurations, this function uses more than the warning limit
      of 1024 bytes:
      
      drivers/net/wireless/ath/ath9k/ar9003_aic.c: In function 'ar9003_aic_cal_post_process':
      drivers/net/wireless/ath/ath9k/ar9003_aic.c:434:1: error: the frame size of 1040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
      
      It turns out that there are two large arrays on the stack here, but
      almost all the data in them is never used outside of the loop in
      which it gets written, so we can replace the array with a single
      instance.
      
      The .valid flag is used later, so I'm replacing the array of structures
      with an array of bools. An obvious follow-up optimization would be
      to replace it with a bitmask and set_bit()/find_first_bit()/
      find_last_bit()/... operations. However, I have not tested this patch,
      so I sticked to the simpler transformation that does the job of
      reducing the stack usage to a harmless level.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      e9a26010
    • M
      ath9k: make NF load complete quickly and reliably · 82def495
      Miaoqing Pan 提交于
      Make NF load complete quickly and reliably. NF load execution
      is delayed by HW to end of frame if frame Rx or Tx is ongoing.
      Increasing timeout to max frame duration. If NF cal is ongoing
      before NF load, stop it before load, and restart it afterwards.
      Signed-off-by: NMiaoqing Pan <miaoqing@codeaurora.org>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      82def495
    • M
      ath10k: fix sanity check on enabling btcoex via debugfs · c28e6f06
      Mohammed Shafi Shajakhan 提交于
      First check for the device state before enabling / disabling
      btcoex, also return a proper error value. Enabling / disabling
      btcoex ideally does a f/w + ath10k_core_restart so the checks
      that are applicable for 'simulate_fw_crash' shall be applicable
      for this as well
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c28e6f06
    • A
      ath10k: reduce number of peers to support peer stats feature · af9a6a3a
      Anilkumar Kolli 提交于
      To enable per peer stats feature we are reducing the number of peers.
      Firmware has introduced tx stats feature. We have memory limitation in
      firmware to add these additional bytes.
      
      These are the new variables introduced in the firmware.
      ========		=======================
      Variable	      	Bytes required/per rate
      ========		=======================
      TX success packets 	1
      TX failed packets	1
      Retry packets		1
      Success bytes		2
      TX failed bytes		2
      Retry bytes		2
      Tx duration		4
      Rate			1
      Bw and AMPDU flags	1
      Total			16 (because of allocation in word pattern)
      
      Firmware sends these tx_stats in pktlog.
      If we consider 4 feedbacks at a time, Frimware need about ~1K memory for coding
      and 8192 bytes required / per rate [ 4*16*128(peers)].
      To accommodate this firmware needs to reduce 10 peers.
      
      This fixes a firmware crash with firmware-5.bin_10.2.4.70.22-2.
      Signed-off-by: NAnilkumar Kolli <akolli@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      af9a6a3a
    • R
      ath10k: process htt rx indication as batch mode · da6416ca
      Rajkumar Manoharan 提交于
      On multicore systems, it is possible that txrx tasket can run
      in parallel with pci tasklet (i.e smp affinity of ath10k irq is
      assigned to multiple CPUs). Feeding and consuming from the same
      rx completion list leads to txrx tasklet runs for longer period.
      Prevent this by processing a snapshot of rx queue by moving list
      into temporary list. Consecutive received frames will be processed
      in next batch.
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      da6416ca
    • R
      ath10k: reduce rx_lock contention for htt rx indication · e7827e51
      Rajkumar Manoharan 提交于
      Received frame indications are queued into a skb list and latest
      processed by txrx tasklet. This skb queue is protected by htt rx lock.
      Since the entire rx processing till delivering frame to mac80211 and
      replenish tasks are processed under rx_lock protection, there might be
      some delay in queuing newly received rx frame into that list on
      multicore systems. Optimize this by using skb list lock while accessing
      rx completion queue instead of htt rx lock.
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      e7827e51