Merge remote-tracking branch 'origin/wlan-cmn.driver.lnx.1.0-dev' into wlan-cmn.driver.lnx.2.0-dev

* origin/wlan-cmn.driver.lnx.1.0-dev:
  Release 5.1.0.22D
  qcacmn: Address 32 bit specific compilation issues
  Release 5.1.0.22C
  qcacmn: CL 1546483 - update fw common interface files
  Release 5.1.0.22B
  Release 5.1.0.22A
  qcacmn: Fix incorrect channel list passed to the firmware
  qcacmn: Add workqueue APIs in QDF

Change-Id: Ib44c3c1cc32bd6279abb78d25a546596669803fb
This commit is contained in:
Vishwajith Upendra 2016-07-27 16:18:19 -07:00
commit 8e86381872
11 changed files with 160 additions and 12 deletions

View file

@ -1,2 +1,2 @@
Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.22
Matches Component wlan-cld3.driver.lnx.1.1 version 5.1.0.22
Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.22D
Matches Component wlan-cld3.driver.lnx.1.1 version 5.1.0.22C

View file

@ -258,8 +258,7 @@ uint32_t DEBUG_CE_DEST_RING_READ_IDX_GET(struct hif_softc *scn,
& (uint64_t)(0xF00000000))>>32))
#define VADDR_FOR_CE(scn, CE_ctrl_addr)\
((uint32_t *)((uint64_t)(scn->vaddr_rri_on_ddr) + \
COPY_ENGINE_ID(CE_ctrl_addr)*sizeof(uint32_t)))
((scn->vaddr_rri_on_ddr) + COPY_ENGINE_ID(CE_ctrl_addr))
#define SRRI_FROM_DDR_ADDR(addr) ((*(addr)) & 0xFFFF)
#define DRRI_FROM_DDR_ADDR(addr) (((*(addr))>>16) & 0xFFFF)

View file

@ -203,10 +203,64 @@ static inline void qdf_sched_work(qdf_handle_t hdl, qdf_work_t *work)
__qdf_sched_work(hdl, work);
}
/**
* qdf_sched_delayed_work() - Schedule a delayed task
* @hdl: OS handle
* @work: pointer to delayed work
* @delay: delay interval
* Return: none
*/
static inline void qdf_sched_delayed_work(qdf_handle_t hdl,
qdf_delayed_work_t *work,
uint32_t delay)
{
__qdf_sched_delayed_work(hdl, work, delay);
}
/**
* qdf_cancel_work() - Cancel a work
* @hdl: OS handle
* @work: pointer to work
*
* Cancel work and wait for its execution to finish.
* This function can be used even if the work re-queues
* itself or migrates to another workqueue. On return
* from this function, work is guaranteed to be not
* pending or executing on any CPU. The caller must
* ensure that the workqueue on which work was last
* queued can't be destroyed before this function returns.
*
* Return: true if work was pending, false otherwise
*/
static inline bool qdf_cancel_work(qdf_handle_t hdl,
qdf_work_t *work)
{
return __qdf_cancel_work(hdl, work);
}
/**
* qdf_cancel_delayed_work() - Cancel a delayed work
* @hdl: OS handle
* @work: pointer to delayed work
*
* This is qdf_cancel_work for delayed works.
*
* Return: true if work was pending, false otherwise
*/
static inline bool qdf_cancel_delayed_work(qdf_handle_t hdl,
qdf_delayed_work_t *work)
{
return __qdf_cancel_delayed_work(hdl, work);
}
/**
* qdf_flush_work - Flush a deferred task on non-interrupt context
* @hdl: OS handle
* @work: pointer to work
*
* Wait until work has finished execution. work is guaranteed to be
* idle on return if it hasn't been requeued since flush started.
*
* Return: none
*/
static inline void qdf_flush_work(qdf_handle_t hdl, qdf_work_t *work)
@ -214,6 +268,21 @@ static inline void qdf_flush_work(qdf_handle_t hdl, qdf_work_t *work)
__qdf_flush_work(hdl, work);
}
/**
* qdf_flush_delayed_work() - Flush a delayed work
* @hdl: OS handle
* @work: pointer to delayed work
*
* This is qdf_flush_work for delayed works.
*
* Return: none
*/
static inline void qdf_flush_delayed_work(qdf_handle_t hdl,
qdf_delayed_work_t *work)
{
__qdf_flush_delayed_work(hdl, work);
}
/**
* qdf_disable_work - disable the deferred task (synchronous)
* @hdl: OS handle
@ -225,7 +294,6 @@ static inline uint32_t qdf_disable_work(qdf_handle_t hdl, qdf_work_t *work)
return __qdf_disable_work(hdl, work);
}
/**
* qdf_destroy_work - destroy the deferred task (synchronous)
* @hdl: OS handle

View file

@ -156,6 +156,45 @@ static inline QDF_STATUS __qdf_sched_work(qdf_handle_t hdl, __qdf_work_t *work)
return QDF_STATUS_SUCCESS;
}
/**
* __qdf_sched_delayed_work() - Schedule a delayed work
* @hdl: OS handle
* @work: pointer to delayed work
* @delay: delay interval
* Return: none
*/
static inline QDF_STATUS __qdf_sched_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work,
uint32_t delay)
{
schedule_delayed_work(work, delay);
return QDF_STATUS_SUCCESS;
}
/**
* __qdf_cancel_work() - Cancel a work
* @hdl: OS handle
* @work: pointer to work
* Return: true if work was pending, false otherwise
*/
static inline bool __qdf_cancel_work(qdf_handle_t hdl,
__qdf_work_t *work)
{
return cancel_work_sync(work);
}
/**
* __qdf_cancel_delayed_work() - Cancel a delayed work
* @hdl: OS handle
* @work: pointer to delayed work
* Return: true if work was pending, false otherwise
*/
static inline bool __qdf_cancel_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work)
{
return cancel_delayed_work_sync(work);
}
/**
* __qdf_flush_work - Flush a deferred task on non-interrupt context
* @hdl: OS handle
@ -167,6 +206,20 @@ static inline uint32_t __qdf_flush_work(qdf_handle_t hdl, __qdf_work_t *work)
flush_work(work);
return QDF_STATUS_SUCCESS;
}
/**
* __qdf_flush_delayed_work() - Flush a delayed work
* @hdl: OS handle
* @work: pointer to delayed work
* Return: none
*/
static inline uint32_t __qdf_flush_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work)
{
flush_delayed_work(work);
return QDF_STATUS_SUCCESS;
}
#else
static inline QDF_STATUS __qdf_init_work(qdf_handle_t hdl,
__qdf_work_t *work,
@ -210,11 +263,38 @@ static inline QDF_STATUS __qdf_sched_work(qdf_handle_t hdl, __qdf_work_t *work)
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS __qdf_sched_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work,
uint32_t delay)
{
schedule_delayed_work(&work->dwork, delay);
return QDF_STATUS_SUCCESS;
}
static inline bool __qdf_cancel_work(qdf_handle_t hdl,
__qdf_work_t *work)
{
return cancel_work_sync(&work->work);
}
static inline bool __qdf_cancel_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work)
{
return cancel_delayed_work_sync(&work->dwork);
}
static inline uint32_t __qdf_flush_work(qdf_handle_t hdl, __qdf_work_t *work)
{
flush_work(&work->work);
return QDF_STATUS_SUCCESS;
}
static inline uint32_t __qdf_flush_delayed_work(qdf_handle_t hdl,
__qdf_delayed_work_t *work)
{
flush_delayed_work(&work->dwork);
return QDF_STATUS_SUCCESS;
}
#endif
/**

View file

@ -1115,8 +1115,8 @@ void __qdf_dmaaddr_to_32s(qdf_dma_addr_t dmaaddr,
uint32_t *lo, uint32_t *hi)
{
if (sizeof(dmaaddr) > sizeof(uint32_t)) {
*lo = (uint32_t) (dmaaddr & 0x0ffffffff);
*hi = (uint32_t) (dmaaddr >> 32);
*lo = lower_32_bits(dmaaddr);
*hi = upper_32_bits(dmaaddr);
} else {
*lo = dmaaddr;
*hi = 0;

View file

@ -819,7 +819,7 @@ QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
QDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
uint8_t chan_count,
uint8_t *chan_list,
uint32_t *chan_list,
uint8_t list_type, uint32_t vdev_id);
QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,

View file

@ -698,7 +698,7 @@ QDF_STATUS (*send_roam_scan_offload_scan_period_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_roam_scan_offload_chan_list_cmd)(wmi_unified_t wmi_handle,
uint8_t chan_count,
uint8_t *chan_list,
uint32_t *chan_list,
uint8_t list_type, uint32_t vdev_id);
QDF_STATUS (*send_roam_scan_offload_rssi_change_cmd)(wmi_unified_t wmi_handle,

View file

@ -543,7 +543,7 @@ QDF_STATUS send_roam_scan_offload_scan_period_cmd_tlv(wmi_unified_t wmi_handle,
QDF_STATUS send_roam_scan_offload_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
uint8_t chan_count,
uint8_t *chan_list,
uint32_t *chan_list,
uint8_t list_type, uint32_t vdev_id);
QDF_STATUS send_roam_scan_offload_rssi_change_cmd_tlv(wmi_unified_t wmi_handle,

View file

@ -1580,6 +1580,7 @@ static uint8_t *wmi_id_to_name(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_READ_DATA_FROM_FLASH_CMDID);
CASE_RETURN_STRING(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID);
CASE_RETURN_STRING(WMI_PEER_SET_RX_BLOCKSIZE_CMDID);
CASE_RETURN_STRING(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID);
}
return "Invalid WMI cmd";

View file

@ -3360,7 +3360,7 @@ QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
*/
QDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
uint8_t chan_count,
uint8_t *chan_list,
uint32_t *chan_list,
uint8_t list_type, uint32_t vdev_id)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;

View file

@ -10187,7 +10187,7 @@ error:
*/
QDF_STATUS send_roam_scan_offload_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
uint8_t chan_count,
uint8_t *chan_list,
uint32_t *chan_list,
uint8_t list_type, uint32_t vdev_id)
{
wmi_buf_t buf = NULL;