1. 29 9月, 2010 3 次提交
    • S
      iwlwifi: send DC calib config to runtime ucode · 6d6a1afd
      Shanyu Zhao 提交于
      Since uCode is responsible for doing DC calibration, there's no need
      to let init uCode to do initial DC calibration then send results
      back to driver, then driver sends the results to runtime uCode.
      Driver can simply tell runtime uCode to do DC calibration.
      
      Actually, this patch does not disable DC calib for init uCode. It just
      prevent driver from saving and sending the DC calib results (from init
      ucode) to runtime uCode. The driver still uses 0xffffffff in
      CALIB_CFG_CMD for init ucode.
      Signed-off-by: NShanyu Zhao <shanyu.zhao@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      6d6a1afd
    • S
      iwlagn: set CSR register for 6050g2 devices · 02796d77
      Shanyu Zhao 提交于
      For 6050g2 devices driver needs to set a special bit to CSR register
      so that uCode can do things correctly in calibration routines.
      Signed-off-by: NShanyu Zhao <shanyu.zhao@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      02796d77
    • S
      iwlwifi: add iwl_nic_ops structure to iwl_ops · 6b5ce501
      Shanyu Zhao 提交于
      iwlwifi driver supports multiple devices. Since some device needs
      special configuration we create a new iwl_nic_ops structure which is
      configurable per device. Currently there is only one function pointer
      inside this structure: additional_nic_config().
      
      The iwl_nic_ops structure is added to the top level in struct iwl_ops,
      making it easier to change per device. Duplication of the iwl_lib_ops
      structure is no longer needed.
      
      With this new ops the previous function pointer set_calib_version is
      no longer needed since it is just a per device nic configuration.
      
      As part of the code restructuring, a bug is addressed. Indication of
      calib version to uCode is only needed for 6050 devices, however,
      current implementation set calib version for all 6000 devices for
      which DC calib is needed. To fix this, create iwl6050_ops for 6050
      devices and only populate iwl_nic_ops in this structure.
      Signed-off-by: NShanyu Zhao <shanyu.zhao@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      6b5ce501
  2. 18 9月, 2010 1 次提交
  3. 28 8月, 2010 1 次提交
  4. 27 8月, 2010 2 次提交
  5. 26 8月, 2010 13 次提交
  6. 25 8月, 2010 2 次提交
  7. 14 8月, 2010 2 次提交
    • W
      iwlwifi: use long monitor timer to avoid un-necessary reload · 3198c68c
      Wey-Yi Guy 提交于
      For 5000 and 6000g2b series of devices, use long monitor timer to check
      stuck tx queues.
      
      .6000g2b series device, it is WiFi/BT combo device, there are some cases,
      tx queues are not move for a period of time because the WiFi/BT coex.
      
      .5000 series device, it is being reported firmware got reload more
      often than necessary, so extend the timer to avoid un-necessary reload.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      3198c68c
    • W
      iwlwifi: long monitor timer · ce60659a
      Wey-Yi Guy 提交于
      Change the name for monitor timer, also adding define for long monitor
      timer; long monitor timer can be used for the type of devices require longer
      time to determine the uCode is stuck on tx and needed reload.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      ce60659a
  8. 10 8月, 2010 1 次提交
    • J
      iwlagn: fix rts cts protection · 94597ab2
      Johannes Berg 提交于
      Currently the driver will try to protect all frames,
      which leads to a lot of odd things like sending an
      RTS with a zeroed RA before multicast frames, which
      is clearly bogus.
      
      In order to fix all of this, we need to take a step
      back and see what we need to achieve:
       * we need RTS/CTS protection if requested by
         the AP for the BSS, mac80211 tells us this
       * in that case, CTS-to-self should only be
         enabled when mac80211 tells us
       * additionally, as a hardware workaround, on
         some devices we have to protect aggregated
         frames with RTS
      
      To achieve the first two items, set up the RXON
      accordingly and set the protection required flag
      in the transmit command when mac80211 requests
      protection for the frame.
      
      To achieve the last item, set the rate-control
      RTS-requested flag for all stations that we have
      aggregation sessions with, and set the protection
      required flag when sending aggregated frames (on
      those devices where this is required).
      
      Since otherwise bugs can occur, do not allow the
      user to override the RTS-for-aggregation setting
      from sysfs any more.
      
      Finally, also clean up the way all these flags get
      set in the driver and move everything into the
      device-specific functions.
      
      Cc: stable@kernel.org [2.6.35]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      94597ab2
  9. 23 7月, 2010 2 次提交
  10. 10 7月, 2010 1 次提交
  11. 03 7月, 2010 3 次提交
  12. 26 6月, 2010 3 次提交
  13. 06 6月, 2010 3 次提交
  14. 14 5月, 2010 2 次提交
  15. 11 5月, 2010 1 次提交
    • J
      iwlwifi: rework broadcast station management · 2c810ccd
      Johannes Berg 提交于
      Currently, the broadcast station is managed along
      with the interface type, rather than always being
      present. That leads to a bug with injection -- it
      is currently not possible to inject frames when
      the only virtual interface is a monitor, because
      in that the required broadcast station is missing.
      
      Additionally, allocating and deallocating the
      broadcast station's LQ all the time is wasteful,
      and the code to support this is fairly complex.
      
      So this changes completely the way we manage the
      broadcast station. Rather than manage it along
      with any interface, we now allocate it when we
      bring the device up, and remove it again when we
      bring the device down. When we bring the device
      up, we don't immediately program the broadcast
      station into it, instead we just mark it active
      and rely on the next restore cycle to upload it
      to the device. This works because an unassociated
      RXON is always required at least once to set up
      device parameters, which implies a reprogramming
      of stations into the device.
      
      As we now manage all stations properly, there no
      longer is a need for forcing a clearing of them
      via iwl_clear_ucode_stations(), which can become
      a lot simpler.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      2c810ccd