cnss2: Add API to get Audio dev direct link cap
Currently cnss_get_fw_cap is checking both FW and Audio cap to enable direct link, add new API to check audio node available for direct link. So that this API can be queried when direct link is being used. Change-Id: Ic2032b338da74021f2b6c483c9480f185554f2d5 CRs-Fixed: 3711887
This commit is contained in:

committed by
Ravindra Konda

parent
87ab436e3d
commit
0df07c1ee9
26
cnss2/main.c
26
cnss2/main.c
@@ -590,8 +590,6 @@ bool cnss_get_fw_cap(struct device *dev, enum cnss_fw_caps fw_cap)
|
|||||||
case CNSS_FW_CAP_DIRECT_LINK_SUPPORT:
|
case CNSS_FW_CAP_DIRECT_LINK_SUPPORT:
|
||||||
is_supported = !!(plat_priv->fw_caps &
|
is_supported = !!(plat_priv->fw_caps &
|
||||||
QMI_WLFW_DIRECT_LINK_SUPPORT_V01);
|
QMI_WLFW_DIRECT_LINK_SUPPORT_V01);
|
||||||
if (is_supported && cnss_get_audio_iommu_domain(plat_priv))
|
|
||||||
is_supported = false;
|
|
||||||
break;
|
break;
|
||||||
case CNSS_FW_CAP_CALDB_SEG_DDR_SUPPORT:
|
case CNSS_FW_CAP_CALDB_SEG_DDR_SUPPORT:
|
||||||
is_supported = !!(plat_priv->fw_caps &
|
is_supported = !!(plat_priv->fw_caps &
|
||||||
@@ -607,6 +605,30 @@ bool cnss_get_fw_cap(struct device *dev, enum cnss_fw_caps fw_cap)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(cnss_get_fw_cap);
|
EXPORT_SYMBOL(cnss_get_fw_cap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cnss_audio_is_direct_link_supported - Check whether Audio can be used for direct link support
|
||||||
|
* @dev: Device
|
||||||
|
*
|
||||||
|
* Return: TRUE if supported, FALSE on failure or if not supported
|
||||||
|
*/
|
||||||
|
bool cnss_audio_is_direct_link_supported(struct device *dev)
|
||||||
|
{
|
||||||
|
struct cnss_plat_data *plat_priv = cnss_bus_dev_to_plat_priv(dev);
|
||||||
|
bool is_supported = false;
|
||||||
|
|
||||||
|
if (!plat_priv) {
|
||||||
|
cnss_pr_err("plat_priv not available to check audio direct link cap\n");
|
||||||
|
return is_supported;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cnss_get_audio_iommu_domain(plat_priv) == 0)
|
||||||
|
is_supported = true;
|
||||||
|
|
||||||
|
return is_supported;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(cnss_audio_is_direct_link_supported);
|
||||||
|
|
||||||
|
|
||||||
void cnss_request_pm_qos(struct device *dev, u32 qos_val)
|
void cnss_request_pm_qos(struct device *dev, u32 qos_val)
|
||||||
{
|
{
|
||||||
struct cnss_plat_data *plat_priv = cnss_bus_dev_to_plat_priv(dev);
|
struct cnss_plat_data *plat_priv = cnss_bus_dev_to_plat_priv(dev);
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _NET_CNSS2_H
|
#ifndef _NET_CNSS2_H
|
||||||
@@ -451,6 +451,7 @@ extern int cnss_send_buffer_to_afcmem(struct device *dev, const uint8_t *afcdb,
|
|||||||
uint32_t len, uint8_t slotid);
|
uint32_t len, uint8_t slotid);
|
||||||
extern int cnss_reset_afcmem(struct device *dev, uint8_t slotid);
|
extern int cnss_reset_afcmem(struct device *dev, uint8_t slotid);
|
||||||
extern bool cnss_get_fw_cap(struct device *dev, enum cnss_fw_caps fw_cap);
|
extern bool cnss_get_fw_cap(struct device *dev, enum cnss_fw_caps fw_cap);
|
||||||
|
extern bool cnss_audio_is_direct_link_supported(struct device *dev);
|
||||||
extern int cnss_set_wfc_mode(struct device *dev, struct cnss_wfc_cfg cfg);
|
extern int cnss_set_wfc_mode(struct device *dev, struct cnss_wfc_cfg cfg);
|
||||||
extern int cnss_thermal_cdev_register(struct device *dev,
|
extern int cnss_thermal_cdev_register(struct device *dev,
|
||||||
unsigned long max_state,
|
unsigned long max_state,
|
||||||
|
Reference in New Issue
Block a user