1. 22 6月, 2012 3 次提交
    • I
      wlcore: Change read/write ops to return errors · 02eb1d9d
      Ido Yariv 提交于
      While bus operations may fail, either due to HW or FW issues, these are
      never propagated to higher layers. As a result, the core driver has no
      way of knowing that the operations failed, and will only recover if high
      level logic requires it (e.g. no command completion).
      
      Change read/write bus operations to return errors to let higher layer
      functionality handle these.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      02eb1d9d
    • I
      wlcore: Disable interrupts while recovering · b666bb7f
      Ido Yariv 提交于
      In case a recovery is initiated, the FW can no longer be trusted, and
      the driver should not handle any new FW events.
      
      Disable the interrupt handler when a recovery is scheduled and balance
      it back in the op_stop callback.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      b666bb7f
    • I
      wlcore: Fix sdio out-of-sync power state · 645865fc
      Ido Yariv 提交于
      wl12xx_sdio_power_off() manually powers down the card regardless of the
      runtime pm state. If wl12xx_sdio_power_on() is called before the card
      was suspended by runtime PM, it will not power up the card.
      
      As part of the HW detection, the chip's power is toggled. Since this
      happens in the context of probing sdio, the power reference counter will
      be higher than zero. As a result, when wl12xx_sdio_power_off() is
      called, the chip will be powered down while still having a positive
      power reference counter. If the interface is quickly activated, the
      driver might try to transfer data to a powered off chip.
      
      Fix this by ensuring that wl12xx_sdio_power_on() explicitly powers on
      the chip in case runtime pm claims the chip is already powered on. To
      avoid cases in which it is not possible to determine if the chip was
      really powered on (card's power reference counter is positive), operate
      on the mmc_card instead of the function.
      
      Also verify that the chip is indeed powered on before powering off, to
      avoid wrong reference counter values in error cases.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      645865fc
  2. 21 6月, 2012 7 次提交
    • A
      wl18xx: sane defaults for HT capabilities · fa2adfcd
      Arik Nemtsov 提交于
      Introduce a default set of HT capabilities that are set according to the
      number of antennas on the board. Move the HT setting code down to allow
      the number of antennas to be set (and optionally overridden) before it.
      
      Remove the "mimo" HT option, since the default mode now enables MIMO is
      possible.
      
      Use this opportunity to add a helper function for setting HT
      capabilities and reduce the volume of the code a bit.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      fa2adfcd
    • I
      wlcore: read FW logs from FW memory on watchdog recovery · 1e41213f
      Igal Chernobelsky 提交于
      FW uses a few memory blocks as a buffer to accumulate FW logs before
      transmitting them to the host over SDIO. When FW WatchDog recovery
      occurs, the last FW traces are still pending in the buffer. Driver is
      to read these FW traces whether log mode is continuous or on demand.
      
      FW memory blocks allocated for the log buffer are handled as a link list:
      the first 4 bytes in each memory block contain FW address to the next block.
      The end of list condition depends on FW log mode:
      - on demand: the list is cyclic, the next address is equal to the first address
      - continuous: the address is  equal to 0x2000000
      
      Log data resides inside FW memory block with offset depending on
      logger mode:
      - on demand:  4 bytes (address of the next memory block)
      - continuous: 4 bytes and Rx Descriptor structure size
      
      Described FW logger API is backward compatible with previous FW versions.
      Signed-off-by: NIgal Chernobelsky <igalc@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      1e41213f
    • Y
      wlcore: do not report noise level in get survey op · add779a0
      Yoni Divinsky 提交于
      The get survey op expects the low level driver to report
      the noise level for a a given channel.
      
      The noise calculated in wlcore is (rssi-snr/2), but since
      the snr reported by the FW is a derivative from the rssi
      this calculation is useless, and should not be reported
      to the user space.
      
      Reporting incorrect noise, results in the wpa_supplicant
      miscalculating the roaming candidate priority, thus causing
      a situation where an AP with a lower rssi level would be
      chosen over a better AP.
      Signed-off-by: NYoni Divinsky <yoni.divinsky@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      add779a0
    • A
      wlcore: reconfigure sleep_auth when removing interfaces · 2f18cf7c
      Arik Nemtsov 提交于
      The sleep_auth value of the last interface to be set up prevailed when
      an interface was removed. Take care of this by correctly configuring the
      value according to the remaining STA/AP interfaces.
      
      Take this opportunity to refactor the sleep_auth setting code for better
      readability.
      
      [Small style fix. -- Luca]
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      2f18cf7c
    • A
      wlcore: allow setting sleep_auth before interface init · 66340e5b
      Arik Nemtsov 提交于
      Hold a value for sta_sleep_auth that is amenable to change by debugfs.
      When detecting a legal value in this variable on interface init, use it
      as an override value for sleep_auth.
      
      This makes debugging more intuitive using the debugfs value.
      
      Increment the conf version since we added an element to the conf
      structure.
      
      Note: An AP going up will always set sleep_auth to PSM_CAM.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      66340e5b
    • L
      wlcore: add a debugfs entry to allow changing the sleep mode by hand · 26b5858a
      Luciano Coelho 提交于
      For FW debugging purposes, we may need to change the sleep mode
      (aka. sleep_auth) by hand, and set it to the mode we want.  To allow
      this, a debugfs entry is added.
      
      Now we store the sleep_auth value that has been set and use that
      instead of the quirk to decide whether we should enter ELP or not.
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      26b5858a
    • A
      wlcore: suppress error message on Rx BA session removal · c954910b
      Arik Nemtsov 提交于
      The ampdu_action() function is called on the reconfig() path to remove
      existing Rx BA sessions. Since these don't exist for the low level
      driver, we output an error message. Turn the message into a debug
      message for now, until the mac80211 reconfig flow is changed.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      c954910b
  3. 14 6月, 2012 6 次提交
  4. 08 6月, 2012 8 次提交
  5. 07 6月, 2012 12 次提交
  6. 06 6月, 2012 4 次提交