1. 22 Jun, 2012 4 commits
    • Ido Yariv's avatar
      wlcore: Change raw io functions to return errors · 0c2a6ce0
      Ido Yariv authored
      Make wl1271_raw_write and wl1271_raw_read return errors so the driver
      could handle these appropriately.
      Since the prototype has changed, also rename the prefix of these
      functions to wlcore.
      Signed-off-by: default avatarIdo Yariv <ido@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      0c2a6ce0
    • Ido Yariv's avatar
      wlcore: Change read/write ops to return errors · 02eb1d9d
      Ido Yariv authored
      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: default avatarIdo Yariv <ido@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      02eb1d9d
    • Ido Yariv's avatar
      wlcore: Disable interrupts while recovering · b666bb7f
      Ido Yariv authored
      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: default avatarIdo Yariv <ido@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      b666bb7f
    • Ido Yariv's avatar
      wlcore: Fix sdio out-of-sync power state · 645865fc
      Ido Yariv authored
      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: default avatarIdo Yariv <ido@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      645865fc
  2. 21 Jun, 2012 12 commits
  3. 13 Jun, 2012 6 commits
  4. 08 Jun, 2012 14 commits
  5. 07 Jun, 2012 4 commits