qcacmn: Support for RF path selection
Includes changes: 1. Save frequency values from EXT and EXT2 events to psoc object - wireless_modes, low/high 2 GHz chan and low/high 5 GHz chan from EXT event - wireless_modes_ext, similar frequency range fields with _ext from EXT2 event. Frequency range fields with _ext are non-zero when a radio supports overlapping frequency. Eg.Radio that supports 5 GHz full and 5 GHz high band will have low/high 5 GHz fields populated with primary band values in EXT event and low/high 5 GHz fields are populated in EXT2 event with secondary band values. These values are stored in tgt info for later use. 2. Modify regulatory APIs to get and set the wireless modes in reg component 3. Retrieve frequency fields from EXT2 event Change-Id: I49ebcc7ee7b26bd115f37abc8cb5b6fa5a415eda CRs-Fixed: 3576551
このコミットが含まれているのは:
@@ -644,6 +644,17 @@ QDF_STATUS ucfg_reg_11d_vdev_created_update(struct wlan_objmgr_vdev *vdev)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ucfg_reg_update_hal_cap_wireless_modes() - update wireless modes
|
||||
* @psoc: psoc ptr
|
||||
* @modes: value of modes to update
|
||||
* @phy_id: phy id
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS ucfg_reg_update_hal_cap_wireless_modes(struct wlan_objmgr_psoc *psoc,
|
||||
uint64_t modes, uint8_t phy_id);
|
||||
|
||||
/**
|
||||
* ucfg_reg_get_hal_reg_cap() - return hal reg cap
|
||||
* @psoc: psoc ptr
|
||||
@@ -666,15 +677,22 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
uint16_t phy_cnt);
|
||||
|
||||
/**
|
||||
* ucfg_reg_update_hal_reg_cap() - update hal reg cap
|
||||
* ucfg_reg_update_hal_reg_range_caps() - update hal reg frequency range fields
|
||||
* @psoc: psoc ptr
|
||||
* @wireless_modes: 11AX wireless modes
|
||||
* @low_2g_chan: low 2g channel
|
||||
* @high_2g_chan: high 2g channel
|
||||
* @low_5g_chan: low 5g channel
|
||||
* @high_5g_chan: high 2g channel
|
||||
* @phy_id: phy id
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
uint64_t wireless_modes, uint8_t phy_id);
|
||||
QDF_STATUS ucfg_reg_update_hal_reg_range_caps(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t low_2g_chan,
|
||||
uint32_t high_2g_chan,
|
||||
uint32_t low_5g_chan,
|
||||
uint32_t high_5g_chan,
|
||||
uint8_t phy_id);
|
||||
|
||||
/**
|
||||
* ucfg_set_ignore_fw_reg_offload_ind() - API to set ignore regdb offload ind
|
||||
|
@@ -332,6 +332,14 @@ QDF_STATUS ucfg_reg_11d_vdev_created_update(struct wlan_objmgr_vdev *vdev)
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS ucfg_reg_update_hal_cap_wireless_modes(struct wlan_objmgr_psoc *psoc,
|
||||
uint64_t modes, uint8_t phy_id)
|
||||
{
|
||||
return reg_update_hal_cap_wireless_modes(psoc, modes, phy_id);
|
||||
}
|
||||
|
||||
qdf_export_symbol(ucfg_reg_update_hal_cap_wireless_modes);
|
||||
|
||||
struct wlan_psoc_host_hal_reg_capabilities_ext *ucfg_reg_get_hal_reg_cap(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
@@ -348,13 +356,19 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
qdf_export_symbol(ucfg_reg_set_hal_reg_cap);
|
||||
|
||||
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
uint64_t wireless_modes, uint8_t phy_id)
|
||||
QDF_STATUS ucfg_reg_update_hal_reg_range_caps(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t low_2g_chan,
|
||||
uint32_t high_2g_chan,
|
||||
uint32_t low_5g_chan,
|
||||
uint32_t high_5g_chan,
|
||||
uint8_t phy_id)
|
||||
{
|
||||
return reg_update_hal_reg_cap(psoc, wireless_modes, phy_id);
|
||||
return reg_update_hal_reg_range_caps(psoc, low_2g_chan,
|
||||
high_2g_chan, low_5g_chan, high_5g_chan,
|
||||
phy_id);
|
||||
}
|
||||
|
||||
qdf_export_symbol(ucfg_reg_update_hal_reg_cap);
|
||||
qdf_export_symbol(ucfg_reg_update_hal_reg_range_caps);
|
||||
|
||||
#ifdef DISABLE_CHANNEL_LIST
|
||||
#ifdef CONFIG_CHAN_FREQ_API
|
||||
|
新しいイシューから参照
ユーザーをブロックする