1. 29 5月, 2020 2 次提交
  2. 21 5月, 2020 1 次提交
  3. 18 5月, 2020 1 次提交
  4. 28 4月, 2020 2 次提交
  5. 02 4月, 2020 1 次提交
  6. 05 3月, 2020 1 次提交
  7. 04 3月, 2020 1 次提交
  8. 28 2月, 2020 1 次提交
  9. 18 2月, 2020 1 次提交
    • V
      Bluetooth: hci_qca: Bug fixes while collecting controller memory dump · 7c2c3e63
      Venkata Lakshmi Narayana Gubba 提交于
      This patch will fix the below issues
       1. Discarding memory dump events if memdump state is moved to
          MEMDUMP_TIMEOUT.
       2. Fixed race conditions between qca_hw_error() and qca_controller_memdump
          while free memory dump buffers using mutex lock
       3. Moved timeout timer to delayed work queue
       4. Injecting HW error event in a case when dumps failed to receive and HW
          error event is not yet received.
       5. Clearing hw error and command timeout function callbacks before
          sending pre shutdown command.
      
       Collecting memory dump will follow any of the below sequence.
      
       Sequence 1:
         Receiving Memory dump events from the controller
         Received entire dump in stipulated time
         Received HW error event from the controller
         Controller Reset from HOST
      
       Sequence 2:
         Receiving Memory dump events from the controller
         Failed to Receive entire dump in stipulated time
         A Timeout schedules and if no HW error event received a fake HW
           error event will be injected.
         Controller Reset from HOST.
      
       Sequence 3:
         Received HW error event
         HOST trigger SSR by sending crash packet to controller.
         Received entire dump in stipulated time
         Controller Reset from HOST
      
      Fixes: d841502c ("Bluetooth: hci_qca: Collect controller memory dump during SSR")
      Reported-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
      Signed-off-by: NVenkata Lakshmi Narayana Gubba <gubbaven@codeaurora.org>
      Reviewed-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      7c2c3e63
  10. 05 2月, 2020 1 次提交
  11. 03 2月, 2020 1 次提交
  12. 16 1月, 2020 3 次提交
  13. 14 1月, 2020 1 次提交
  14. 09 1月, 2020 2 次提交
  15. 04 1月, 2020 2 次提交
  16. 09 11月, 2019 1 次提交
  17. 04 11月, 2019 1 次提交
    • C
      Bluetooth: hci_qca: add PM support · 41d5b25f
      Claire Chang 提交于
      Add PM suspend/resume callbacks for hci_qca driver.
      
      BT host will make sure both Rx and Tx go into sleep state in
      qca_suspend. Without this, Tx may still remain in awake state, which
      prevents BTSOC from entering deep sleep. For example, BlueZ will send
      Set Event Mask to device when suspending and this will wake the device
      Rx up. However, the Tx idle timeout on the host side is 2000 ms. If the
      host is suspended before its Tx idle times out, it won't send
      HCI_IBS_SLEEP_IND to the device and the device Rx will remain awake.
      
      We implement this by canceling relevant work in workqueue, sending
      HCI_IBS_SLEEP_IND to the device and then waiting HCI_IBS_SLEEP_IND sent
      by the device.
      
      In order to prevent the device from being awaken again after qca_suspend
      is called, we introduce QCA_SUSPEND flag. QCA_SUSPEND is set in the
      beginning of qca_suspend to indicate system is suspending and that we'd
      like to ignore any further wake events.
      
      With QCA_SUSPEND and spinlock, we can avoid race condition, e.g. if
      qca_enqueue acquires qca->hci_ibs_lock before qca_suspend calls
      cancel_work_sync and then qca_enqueue adds a new qca->ws_awake_device
      work after the previous one is cancelled.
      
      If BTSOC wants to wake the whole system up after qca_suspend is called,
      it will keep sending HCI_IBS_WAKE_IND and uart driver will take care of
      waking the system. For example, uart driver will reconfigure its Rx pin
      to a normal GPIO pin and enable irq wake on that pin when suspending.
      Once host detects Rx falling, the system will begin resuming. Then, the
      BT host clears QCA_SUSPEND flag in qca_resume and begins dealing with
      normal HCI packets. By doing so, only a few HCI_IBS_WAKE_IND packets are
      lost and there is no data packet loss.
      Signed-off-by: NClaire Chang <tientzu@chromium.org>
      Reviewed-by: NBalakrishna Godavarthi <bgodavar@codeaurora.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      41d5b25f
  18. 21 10月, 2019 1 次提交
  19. 17 10月, 2019 5 次提交
  20. 05 9月, 2019 4 次提交
  21. 04 9月, 2019 1 次提交
  22. 14 8月, 2019 1 次提交
  23. 13 8月, 2019 2 次提交
  24. 01 8月, 2019 1 次提交
  25. 06 7月, 2019 2 次提交
    • R
      Bluetooth: hci_qca: Load customized NVM based on the device property · 99c905c6
      Rocky Liao 提交于
      QCA BTSOC NVM is a customized firmware file and different vendors may
      want to have different BTSOC configuration (e.g. Configure SCO over PCM
      or I2S, Setting Tx power, etc.) via this file. This patch will allow
      vendors to download different NVM firmware file by reading a device
      property "firmware-name".
      Signed-off-by: NRocky Liao <rjliao@codeaurora.org>
      Tested-by: NHarish Bandi <c-hbandi@codeaurora.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      99c905c6
    • M
      Bluetooth: hci_qca: wcn3990: Drop baudrate change vendor event · 2faa3f15
      Matthias Kaehlcke 提交于
      Firmware download to the WCN3990 often fails with a 'TLV response size
      mismatch' error:
      
      [  133.064659] Bluetooth: hci0: setting up wcn3990
      [  133.489150] Bluetooth: hci0: QCA controller version 0x02140201
      [  133.495245] Bluetooth: hci0: QCA Downloading qca/crbtfw21.tlv
      [  133.507214] Bluetooth: hci0: QCA TLV response size mismatch
      [  133.513265] Bluetooth: hci0: QCA Failed to download patch (-84)
      
      This is caused by a vendor event that corresponds to an earlier command
      to change the baudrate. The event is not processed in the context of the
      baudrate change and is later interpreted as response to the firmware
      download command (which is also a vendor command), but the driver detects
      that the event doesn't have the expected amount of associated data.
      
      More details:
      
      For the WCN3990 the vendor command for a baudrate change isn't sent as
      synchronous HCI command, because the controller sends the corresponding
      vendor event with the new baudrate. The event is received and decoded
      after the baudrate change of the host port.
      
      Identify the 'unused' event when it is received and don't add it to
      the queue of RX frames.
      Signed-off-by: NMatthias Kaehlcke <mka@chromium.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      2faa3f15