qcacld-3.0: Don't send zero ITO to target
Currently, userspace sends "QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION" vendor command for power configuration. With this vendor command, driver receives the PS parameters which it sends it to the target. Usually, inactivity timeout is 200ms, but in some scenario, if driver send the inactivity timeout as zero, then it causes crash in target as target expects non-zero value. Scenarios: 1. Userspace updates inactivity timeout to zero. 2. For OPM mode as disable(0) or enable(1), driver updates the PS params to zero. So, inactivity timeout is zero. So, to fix this, return invalid if userspace send ITO value as zero and update vdev PS params for OPM mode as user defined(2). Change-Id: I120829f12ed350ad7ad0bfb983ad49087dea4fc8 CRs-Fixed: 3653524
This commit is contained in:

committed by
Ravindra Konda

parent
6154cb19ca
commit
5adb10addb
@@ -829,6 +829,26 @@ ucfg_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS ucfg_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
|
||||
struct pmo_ps_params *ps_params);
|
||||
|
||||
/**
|
||||
* ucfg_pmo_core_vdev_set_ps_opm_mode() - Set OPM mode
|
||||
* @vdev: pointer to vdev object
|
||||
* @opm_mode: OPM mode
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS ucfg_pmo_core_vdev_set_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
|
||||
enum powersave_mode opm_mode);
|
||||
|
||||
/**
|
||||
* ucfg_pmo_core_vdev_get_ps_opm_mode() - Get OPM mode
|
||||
* @vdev: pointer to vdev object
|
||||
* @opm_mode: OPM mode
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS ucfg_pmo_core_vdev_get_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
|
||||
enum powersave_mode *opm_mode);
|
||||
|
||||
/**
|
||||
* ucfg_pmo_get_gtk_rsp(): API to send gtk response request to fwr
|
||||
* @vdev: objmgr vdev handle
|
||||
|
@@ -607,6 +607,18 @@ QDF_STATUS ucfg_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
|
||||
return pmo_core_vdev_get_ps_params(vdev, ps_params);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_pmo_core_vdev_set_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
|
||||
enum powersave_mode opm_mode)
|
||||
{
|
||||
return pmo_vdev_set_ps_opm_mode(vdev, opm_mode);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_pmo_core_vdev_get_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
|
||||
enum powersave_mode *opm_mode)
|
||||
{
|
||||
return pmo_vdev_get_ps_opm_mode(vdev, opm_mode);
|
||||
}
|
||||
|
||||
bool
|
||||
ucfg_pmo_is_arp_offload_enabled(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
|
Reference in New Issue
Block a user