From 4bf615e184850a3c9d0a435467af3e0dfe6b567f Mon Sep 17 00:00:00 2001 From: Zhu Jianmin Date: Wed, 23 May 2018 19:52:46 +0800 Subject: [PATCH] qcacld-3.0: Fix reassoc issue for Passpoint TC5.2.a After DUT connected AP, run on CLI: iwpriv wlan0 reassoc, QDF_BUG(0) in driver on Rome. When reassoc to current connected AP, LFR2 and LFR3 have different design. Helium supports LFR3, send WMI_ROAM_INVOKE_CMDID to F/W to trigger offload roaming. Rome only supports LFR2, Send vdev start cmd to F/W while vdev already started first, then send reassoc frame. Passpoint TC5.2a need reassoc to current connected AP. Change-Id: Ic0e2c945c6978835f39ec1746f625a0c52f643a7 CRs-Fixed: 2232538 --- core/wma/src/wma_dev_if.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index fdf6630b039e..3ac67b1104e1 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -2643,8 +2643,12 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma, params.chan_freq = cds_chan_to_freq(req->chan); params.chan_mode = chan_mode; + /* For Rome, only supports LFR2, not LFR3, for reassoc, need send vdev + * start cmd to F/W while vdev started first, then send reassoc frame + */ if (!isRestart && - qdf_atomic_read(&iface->bss_status) == WMA_BSS_STATUS_STARTED) { + qdf_atomic_read(&iface->bss_status) == WMA_BSS_STATUS_STARTED && + wmi_service_enabled(wma->wmi_handle, wmi_service_roam_ho_offload)) { req_msg = wma_find_vdev_req(wma, req->vdev_id, WMA_TARGET_REQ_TYPE_VDEV_STOP, false);