Loading drivers/net/wireless/cnss2/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -96,3 +96,11 @@ config CNSS_WCN7850 CNSS WCN7850 chipset. These changes are needed to support the new hardware architecture for CNSS WCN7850 chipset. config CNSS_REQ_FW_DIRECT bool "Enable request_firmware_direct for firmware or configuration file" depends on CNSS2 help This enables calling request_firmware_direct for firmware or configuration file to avoid 60s timeout while search file under user space failure. drivers/net/wireless/cnss2/bus.c +15 −0 Original line number Diff line number Diff line Loading @@ -588,3 +588,18 @@ int cnss_bus_get_msi_assignment(struct cnss_plat_data *plat_priv, return -EINVAL; } } bool cnss_bus_is_smmu_s1_enabled(struct cnss_plat_data *plat_priv) { if (!plat_priv) return false; switch (plat_priv->bus_type) { case CNSS_BUS_PCI: return cnss_pci_is_smmu_s1_enabled(plat_priv->bus_priv); default: cnss_pr_err("Unsupported bus type: %d\n", plat_priv->bus_type); return false; } } drivers/net/wireless/cnss2/bus.h +1 −0 Original line number Diff line number Diff line Loading @@ -69,4 +69,5 @@ int cnss_bus_get_msi_assignment(struct cnss_plat_data *plat_priv, int *num_vectors, u32 *user_base_data, u32 *base_vector); bool cnss_bus_is_smmu_s1_enabled(struct cnss_plat_data *plat_priv); #endif /* _CNSS_BUS_H */ drivers/net/wireless/cnss2/main.c +12 −0 Original line number Diff line number Diff line Loading @@ -2485,6 +2485,18 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv, } #endif /* CONFIG_QCOM_MINIDUMP */ int cnss_request_firmware_direct(struct cnss_plat_data *plat_priv, const struct firmware **fw_entry, const char *filename) { if (IS_ENABLED(CONFIG_CNSS_REQ_FW_DIRECT)) return request_firmware_direct(fw_entry, filename, &plat_priv->plat_dev->dev); else return request_firmware(fw_entry, filename, &plat_priv->plat_dev->dev); } #if IS_ENABLED(CONFIG_INTERCONNECT) /** * cnss_register_bus_scale() - Setup interconnect voting data Loading drivers/net/wireless/cnss2/main.h +3 −0 Original line number Diff line number Diff line Loading @@ -562,4 +562,7 @@ int cnss_get_tcs_info(struct cnss_plat_data *plat_priv); unsigned int cnss_get_timeout(struct cnss_plat_data *plat_priv, enum cnss_timeout_type); int cnss_dev_specific_power_on(struct cnss_plat_data *plat_priv); int cnss_request_firmware_direct(struct cnss_plat_data *plat_priv, const struct firmware **fw_entry, const char *filename); #endif /* _CNSS_MAIN_H */ Loading
drivers/net/wireless/cnss2/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -96,3 +96,11 @@ config CNSS_WCN7850 CNSS WCN7850 chipset. These changes are needed to support the new hardware architecture for CNSS WCN7850 chipset. config CNSS_REQ_FW_DIRECT bool "Enable request_firmware_direct for firmware or configuration file" depends on CNSS2 help This enables calling request_firmware_direct for firmware or configuration file to avoid 60s timeout while search file under user space failure.
drivers/net/wireless/cnss2/bus.c +15 −0 Original line number Diff line number Diff line Loading @@ -588,3 +588,18 @@ int cnss_bus_get_msi_assignment(struct cnss_plat_data *plat_priv, return -EINVAL; } } bool cnss_bus_is_smmu_s1_enabled(struct cnss_plat_data *plat_priv) { if (!plat_priv) return false; switch (plat_priv->bus_type) { case CNSS_BUS_PCI: return cnss_pci_is_smmu_s1_enabled(plat_priv->bus_priv); default: cnss_pr_err("Unsupported bus type: %d\n", plat_priv->bus_type); return false; } }
drivers/net/wireless/cnss2/bus.h +1 −0 Original line number Diff line number Diff line Loading @@ -69,4 +69,5 @@ int cnss_bus_get_msi_assignment(struct cnss_plat_data *plat_priv, int *num_vectors, u32 *user_base_data, u32 *base_vector); bool cnss_bus_is_smmu_s1_enabled(struct cnss_plat_data *plat_priv); #endif /* _CNSS_BUS_H */
drivers/net/wireless/cnss2/main.c +12 −0 Original line number Diff line number Diff line Loading @@ -2485,6 +2485,18 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv, } #endif /* CONFIG_QCOM_MINIDUMP */ int cnss_request_firmware_direct(struct cnss_plat_data *plat_priv, const struct firmware **fw_entry, const char *filename) { if (IS_ENABLED(CONFIG_CNSS_REQ_FW_DIRECT)) return request_firmware_direct(fw_entry, filename, &plat_priv->plat_dev->dev); else return request_firmware(fw_entry, filename, &plat_priv->plat_dev->dev); } #if IS_ENABLED(CONFIG_INTERCONNECT) /** * cnss_register_bus_scale() - Setup interconnect voting data Loading
drivers/net/wireless/cnss2/main.h +3 −0 Original line number Diff line number Diff line Loading @@ -562,4 +562,7 @@ int cnss_get_tcs_info(struct cnss_plat_data *plat_priv); unsigned int cnss_get_timeout(struct cnss_plat_data *plat_priv, enum cnss_timeout_type); int cnss_dev_specific_power_on(struct cnss_plat_data *plat_priv); int cnss_request_firmware_direct(struct cnss_plat_data *plat_priv, const struct firmware **fw_entry, const char *filename); #endif /* _CNSS_MAIN_H */