qcacmn: Fix incorrect layering in scan component
Replace ucfg api call with wlan api calls for internal components. Change-Id: I0289bf44753d3692468a12fbe7109e348c8e8957 CRs-Fixed: 3011167
这个提交包含在:
@@ -29,6 +29,7 @@
|
||||
|
||||
#include <qdf_status.h>
|
||||
#include <wlan_objmgr_cmn.h>
|
||||
#include "wlan_scan_public_structs.h"
|
||||
|
||||
/* Preprocessor Definitions and Constants */
|
||||
|
||||
@@ -705,4 +706,22 @@ void wlan_serialization_purge_all_scan_cmd_by_vdev_id(
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_ser_vdev_queue_disable(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_get_vdev_status() - API to check vdev scan status
|
||||
* @vdev: vdev object
|
||||
*
|
||||
* Return: enum scm_scan_status
|
||||
*/
|
||||
enum scm_scan_status
|
||||
wlan_get_vdev_status(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_get_pdev_status() - API to check pdev scan status
|
||||
* @pdev: pdev object
|
||||
*
|
||||
* Return: enum scm_scan_status
|
||||
*/
|
||||
enum scm_scan_status
|
||||
wlan_get_pdev_status(struct wlan_objmgr_pdev *pdev);
|
||||
#endif
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -851,6 +851,36 @@ void wlan_ser_purge_pdev_cmd_cb(struct wlan_objmgr_psoc *psoc,
|
||||
wlan_serialization_purge_all_pdev_cmd(pdev);
|
||||
}
|
||||
|
||||
static inline enum scm_scan_status
|
||||
wlan_get_scan_status_from_serialization_status(enum
|
||||
wlan_serialization_cmd_status
|
||||
status)
|
||||
{
|
||||
enum scm_scan_status scan_status;
|
||||
|
||||
switch (status) {
|
||||
case WLAN_SER_CMD_IN_PENDING_LIST:
|
||||
scan_status = SCAN_IS_PENDING;
|
||||
break;
|
||||
case WLAN_SER_CMD_IN_ACTIVE_LIST:
|
||||
scan_status = SCAN_IS_ACTIVE;
|
||||
break;
|
||||
case WLAN_SER_CMDS_IN_ALL_LISTS:
|
||||
scan_status = SCAN_IS_ACTIVE_AND_PENDING;
|
||||
break;
|
||||
case WLAN_SER_CMD_NOT_FOUND:
|
||||
scan_status = SCAN_NOT_IN_PROGRESS;
|
||||
break;
|
||||
default:
|
||||
scm_warn("invalid serialization status %d", status);
|
||||
QDF_ASSERT(0);
|
||||
scan_status = SCAN_NOT_IN_PROGRESS;
|
||||
break;
|
||||
}
|
||||
|
||||
return scan_status;
|
||||
}
|
||||
|
||||
void wlan_serialization_purge_all_cmd(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
wlan_objmgr_iterate_obj_list(psoc, WLAN_PDEV_OP,
|
||||
@@ -1006,3 +1036,31 @@ QDF_STATUS wlan_ser_vdev_queue_disable(struct wlan_objmgr_vdev *vdev)
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
enum scm_scan_status
|
||||
wlan_get_vdev_status(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
enum wlan_serialization_cmd_status status;
|
||||
|
||||
if (!vdev) {
|
||||
ser_err("null vdev");
|
||||
return SCAN_NOT_IN_PROGRESS;
|
||||
}
|
||||
status = wlan_serialization_vdev_scan_status(vdev);
|
||||
|
||||
return wlan_get_scan_status_from_serialization_status(status);
|
||||
}
|
||||
|
||||
enum scm_scan_status
|
||||
wlan_get_pdev_status(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
enum wlan_serialization_cmd_status status;
|
||||
|
||||
if (!pdev) {
|
||||
ser_err("null pdev");
|
||||
return SCAN_NOT_IN_PROGRESS;
|
||||
}
|
||||
status = wlan_serialization_pdev_scan_status(pdev);
|
||||
|
||||
return wlan_get_scan_status_from_serialization_status(status);
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户