1. 15 9月, 2010 17 次提交
  2. 11 9月, 2010 10 次提交
  3. 08 9月, 2010 9 次提交
  4. 04 9月, 2010 1 次提交
    • W
      iwlagn: open/close envlope to force move BT state machine · f7322f8f
      Wey-Yi Guy 提交于
      In uCode, BT state machine need to receive open envlope
      command before perform calibration; followed by close envlope
      command to move to next stage.
      
      Since Linux has two separated uCode, one for init and the second
      one for runtime; we use open envlope commands for init uCode to
      indicate we are ready to perform calibration operation.
      But for runtime uCode, we are not doing any init calibration,
      so we issue open/close envlope commands to force uCode move to
      "BT COEX ON" state.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      f7322f8f
  5. 01 9月, 2010 3 次提交
    • I
      rt2x00: Cleanup rt2x00usb_watchdog_reset_tx · cd35a391
      Ivo van Doorn 提交于
      rt2x00usb_watchdog_reset_tx performs the same task
      as rt2x00usb_kill_tx_queue, with the only difference
      is that it waits for all entries to be returned to
      the driver and for all frames the status has been
      reported to mac80211.
      
      We can easily split this task by calling rt2x00usb_kill_tx_queue,
      sleep for a short period and invoke the TX status reporting
      function. By adding the sleep() to the kill_entry we make sure
      that even during shutdown we guarentee the entry has been killed when
      the function returns. To make this work correctly the interrupt
      handlers have to be updated to prevent checking for the RADIO_ENABLED
      flag too early which prevents the ownership of the entry to be reset.
      Additionally a check for the DEVICE_PRESENT flag is not required but
      is nice to prevent race conditions when the device was unplugged.
      
      Additionally rather then calling rt2x00usb_work_txdone() for
      status reporting we let the driver perform the TX status reporting
      first. If this is not sufficient then rt2x00usb_work_txdone() will
      still be used to cleanup the mess.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cd35a391
    • I
      rt2x00: Split watchdog check into a DMA and STATUS timeout · 652a9dd2
      Ivo van Doorn 提交于
      The watchdog for rt2800usb triggers frequently causing all URB's
      to be canceled often enough to interrupt the normal TX flow.
      More research indicated that not the URB upload to the USB host
      were hanging, but instead the TX status reports.
      
      To correctly detect what is going on, we introduce Q_INDEX_DMA_DONE
      which is an index counter between Q_INDEX_DONE and Q_INDEX and indicates
      if the frame has been transfered to the device.
      
      This also requires the rt2x00queue timeout functions to be updated
      to differentiate between a DMA timeout (time between Q_INDEX and
      Q_INDEX_DMA_DONE timeout) and a STATUS timeout (time between
      Q_INDEX_DMA_DONE and Q_INDEX_DONE timeout)
      
      All Q_INDEX_DMA_DONE code was taken from the RFC from
      Helmut Schaa <helmut.schaa@googlemail.com> for the implementation
      for watchdog for rt2800pci.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      652a9dd2
    • I
      rt2x00: Correctly kill beacon queue · 0e3afe5b
      Ivo van Doorn 提交于
      USB devices upload their beacon and then automatically send
      it out every beacon interval. However when killing a TX queue
      we only kill the URB and not the actual transmission of the beacon.
      
      This will reset the Beacon register to prevent any beacons from
      being transmitted.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0e3afe5b