icnss2: Add code to pass device configs to wlan host driver

Add code to pass device configs to wlan host driver.

Change-Id: I977fc564914f9fbdabc0004eff4c5c2f14a1fc7c
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
This commit is contained in:
Sandeep Singh
2022-03-10 11:08:38 +05:30
committed by Gerrit - the friendly Code Review server
parent 3974704e22
commit 9c8339eabe
3 changed files with 27 additions and 0 deletions

View File

@@ -409,6 +409,17 @@ bool icnss_is_fw_down(void)
} }
EXPORT_SYMBOL(icnss_is_fw_down); EXPORT_SYMBOL(icnss_is_fw_down);
unsigned long icnss_get_device_config(void)
{
struct icnss_priv *priv = icnss_get_plat_priv();
if (!priv)
return 0;
return priv->device_config;
}
EXPORT_SYMBOL(icnss_get_device_config);
bool icnss_is_rejuvenate(void) bool icnss_is_rejuvenate(void)
{ {
if (!penv) if (!penv)
@@ -4078,6 +4089,14 @@ static void icnss_init_control_params(struct icnss_priv *priv)
priv->ctrl_params.bdf_type = ICNSS_BDF_BIN; priv->ctrl_params.bdf_type = ICNSS_BDF_BIN;
} }
static void icnss_read_device_configs(struct icnss_priv *priv)
{
if (of_property_read_bool(priv->pdev->dev.of_node,
"wlan-ipa-disabled")) {
set_bit(ICNSS_IPA_DISABLED, &priv->device_config);
}
}
static inline void icnss_runtime_pm_init(struct icnss_priv *priv) static inline void icnss_runtime_pm_init(struct icnss_priv *priv)
{ {
pm_runtime_get_sync(&priv->pdev->dev); pm_runtime_get_sync(&priv->pdev->dev);
@@ -4161,6 +4180,8 @@ static int icnss_probe(struct platform_device *pdev)
icnss_init_control_params(priv); icnss_init_control_params(priv);
icnss_read_device_configs(priv);
ret = icnss_resource_parse(priv); ret = icnss_resource_parse(priv);
if (ret) if (ret)
goto out_reset_drvdata; goto out_reset_drvdata;

View File

@@ -473,6 +473,7 @@ struct icnss_priv {
uint32_t fw_soc_wake_ack_irq; uint32_t fw_soc_wake_ack_irq;
char foundry_name; char foundry_name;
bool bdf_download_support; bool bdf_download_support;
unsigned long device_config;
}; };
struct icnss_reg_info { struct icnss_reg_info {

View File

@@ -24,6 +24,10 @@ enum icnss_uevent {
ICNSS_UEVENT_SMMU_FAULT, ICNSS_UEVENT_SMMU_FAULT,
}; };
enum icnss_device_config {
ICNSS_IPA_DISABLED,
};
struct icnss_uevent_hang_data { struct icnss_uevent_hang_data {
void *hang_event_data; void *hang_event_data;
uint16_t hang_event_data_len; uint16_t hang_event_data_len;
@@ -204,4 +208,5 @@ extern int icnss_prevent_l1(struct device *dev);
extern void icnss_allow_l1(struct device *dev); extern void icnss_allow_l1(struct device *dev);
extern int icnss_get_mhi_state(struct device *dev); extern int icnss_get_mhi_state(struct device *dev);
extern int icnss_is_pci_ep_awake(struct device *dev); extern int icnss_is_pci_ep_awake(struct device *dev);
extern unsigned long icnss_get_device_config(void);
#endif /* _ICNSS_WLAN_H_ */ #endif /* _ICNSS_WLAN_H_ */