1. 21 4月, 2016 2 次提交
    • K
      ath10k: refactor firmware images to struct ath10k_fw_components · 7ebf721d
      Kalle Valo 提交于
      To make it easier to share ath10k_core_fetch_board_data_api_n() with testmode.c
      refactor all firmware components to struct ath10k_fw_components. This structure
      will hold firmware related files, for example firmware-N.bin and board-N.bin.
      
      For firmware-N.bin create a new struct ath10k_fw_file which contains the actual
      firmware image as well as the parsed data from the image.
      
      Modify ath10k_core_start() to take struct ath10k_fw_components() as an argument
      which makes it possible in following patches to drop some ugly hacks from
      testmode.c.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7ebf721d
    • K
      ath10k: remove deprecated firmware API 1 support · 3fb55c79
      Kalle Valo 提交于
      This has ben deprecated years ago, I haven't heard anyone using it since and
      most likely it won't even work anymore. So just remove all of it.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3fb55c79
  2. 19 4月, 2016 4 次提交
    • R
      ath10k: add dynamic tx mode switch config support for qca4019 · 7e247a9e
      Raja Mani 提交于
      push-pull mode needs certain amount the host driver involvement for
      managing queues in the host memory and packet delivery to firmware.
      qca4019 wifi firmware has an option to stay in push mode for less
      number of active traffic flow and then switch to push-pull mode when
      the active traffic flow goes beyond the certain limit.
      
      The advantage of staying in push mode for less active traffic is, the
      host cpu consumption is reduced. qca4019 firmware supports this
      flexibility of the mode switch. It takes the host driver interest
      (LOW_PERF/HIGH_PERF) via WMI_EXT_RESOURCE_CFG_CMDID,
      
       LOW_PERF  - fw would stay in push mode and switch to push-pull
                     based on demand.
       HIGH_PERF - fw would stay in push-pull mode from the boot.
      
      To make this configuration generic, new WMI services
      WMI_SERVICE_TX_MODE_PUSH_ONLY, WMI_SERVICE_TX_MODE_PUSH_PULL,
      WMI_SERVICE_TX_MODE_DYNAMIC are introduced to take dynamic tx mode
      switch support availability in firmware.
      Based on WMI_SERVICE_TX_MODE_DYNAMIC, LOW_PERF or HIGHT_PERF is
      configured to the firmware.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NTamizh chelvam <c_traja@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7e247a9e
    • D
      ath10k: add some sanity checks to peer_map_event() functions · de72a20d
      Dan Carpenter 提交于
      Smatch complains that since "ev->peer_id" comes from skb->data that
      means we can't trust it and have to do a bounds check on it to prevent
      an array overflow.
      
      Fixes: 6942726f ('ath10k: add fast peer_map lookup')
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      de72a20d
    • R
      ath10k: fix rx_channel during hw reconfigure · 1ce8c148
      Rajkumar Manoharan 提交于
      Upon firmware assert, restart work will be triggered so that mac80211
      will reconfigure the driver. An issue is reported that after restart
      work, survey dump data do not contain in-use (SURVEY_INFO_IN_USE) info
      for operating channel. During reconfigure, since mac80211 already has
      valid channel context for given radio, channel context iteration return
      num_chanctx > 0. Hence rx_channel is always NULL. Fix this by assigning
      channel context to rx_channel when driver restart is in progress.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1ce8c148
    • M
      ath10k: fix return value for btcoex and peer stats debugfs · 87be054a
      Mohammed Shafi Shajakhan 提交于
      Return value is incorrect for btcoex and peer stats debugfs
      'write' entries if the user provides a value that matches with
      the already available debugfs entry, this results in the debugfs
      entry getting stuck and the operation has to be terminated manually.
      Fix this by returning the appropriate return 'count' as we do it for
      other debugfs entries like pktlog etc.
      
      Fixes: cc61a1bb ("ath10k: enable debugfs provision to enable Peer Stats feature")
      Fixes: c28e6f06 ("ath10k: fix sanity check on enabling btcoex via debugfs")
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      87be054a
  3. 14 4月, 2016 5 次提交
  4. 13 4月, 2016 5 次提交
  5. 07 4月, 2016 3 次提交
  6. 05 4月, 2016 1 次提交
  7. 04 4月, 2016 12 次提交
  8. 23 3月, 2016 4 次提交
    • M
      ath10k: enable debugfs provision to enable Peer Stats feature · cc61a1bb
      Mohammed Shafi Shajakhan 提交于
      Provide a debugfs entry to enable/ disable Peer Stats feature.
      Peer Stats feature is for developers/users who are more interested
      in studying in Rx/Tx stats with multiple clients connected, hence
      disable this by default. Enabling this feature by default results
      in unneccessary processing of Peer Stats event for every 500ms
      and updating peer_stats list (allocating memory) and cleaning it up
      ifexceeds the higher limit and this can be an unnecessary overhead
      during long run stress testing.
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      cc61a1bb
    • R
      ath10k: incorporate qca4019 cal data download sequence · 3d9195ea
      Raja Mani 提交于
      qca4019 calibration data is stored in the host memory and it's mandatory
      to download it even before reading board id and chip id from the target.
      Also, there is a need to execute otp (download and run) twice, one after
      cal data download and another one after board data download.
      
      Existing cal data file name 'cal-<bus>-<id>.bin' and device tree entry
      'qcom,ath10k-calibration-data' used in ath10k has assumption that it
      carries other data (like board data) also along with the calibration data.
      But, qca4019 cal data contains pure calibration data (doesn't include
      any other info). So, using existing same cal file name and DT entry
      in qca4019 case would alter the purpose of it. To avoid this, new cal
      file name 'pre-cal-<bus>-<id>.bin' and new device tree entry name
      'qcom,ath10k-pre-calibration-data are introduced.
      
      Overall qca4019's firmware download sequence would look like,
      
         1) Download cal data (either from a file or device tree entry)
            at the address specified by target in the host interest area
            member "hi_board_data".
      
         2) Download otp and run with 0x10 (PARAM_GET_EEPROM_BOARD_ID)
            as a argument.
      
            At this point, otp will take back up of downloaded cal data
            content in another location in the target and return valid
            board id and chip id to the host.
      
         3) Download board data at the address specified by target
            in host interest area member "hi_board_data".
      
         4) Download otp and run with 0x10000 (PARAM_FLASH_SECTION_ALL) as
            a argument.
      
            Now otp will apply cal data content from it's backup on top
            of board data download in step 3 and prepare final data base.
      
         5) Download code swap and athwlan binary content.
      
      Above sequences are implemented (step 1 to step 4) in the name of
      pre calibration configuration.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3d9195ea
    • R
      ath10k: move cal data len to hw_params · 0b8e3c4c
      Raja Mani 提交于
      ath10k_download_cal_dt() compares obtained cal data content length
      against QCA988X_CAL_DATA_LEN (2116 bytes). It was written by keeping
      qca988x in mind. In fact, cal data length is more chip specific.
      To make ath10k_download_cal_dt() more generic and reusable for other
      chipsets (like qca4019), cal data length is moved to hw_params.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0b8e3c4c
    • R
      ath10k: pass cal data location as an argument to ath10k_download_cal_{file|dt} · f454add4
      Raja Mani 提交于
      Both ath10k_download_cal_file() and ath10k_download_cal_dt() uses
      hard coded file pointer (ar->cal_file) and device tree entry
      (qcom,ath10k-calibration-data) respectively to get calibration
      data content.
      
      There is a need to use those two functions in qca4019 calibration
      download sequence with different file pointer and device tree entry name.
      Modify those two functions to take cal data location as an argument.
      So that it can serve the purpose for other file pointer and device
      tree entry.
      
      This is just preparation before adding actual qca4019 calibration
      download sequence. No functional changes.
      Signed-off-by: NRaja Mani <rmani@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f454add4
  9. 22 3月, 2016 3 次提交
  10. 18 3月, 2016 1 次提交