Loading drivers/net/wireless/cnss2/main.c +30 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #define CNSS_QMI_TIMEOUT_DEFAULT 10000 #define CNSS_BDF_TYPE_DEFAULT CNSS_BDF_ELF #define CNSS_TIME_SYNC_PERIOD_DEFAULT 900000 #define CNSS_MIN_TIME_SYNC_PERIOD 2000 static struct cnss_plat_data *plat_env; Loading Loading @@ -2329,6 +2330,33 @@ static void cnss_unregister_bus_scale(struct cnss_plat_data *plat_priv) msm_bus_scale_unregister_client(bus_bw_info->bus_client); } static ssize_t qtime_sync_period_show(struct device *dev, struct device_attribute *attr, char *buf) { struct cnss_plat_data *plat_priv = dev_get_drvdata(dev); return scnprintf(buf, PAGE_SIZE, "%u\n", plat_priv->ctrl_params.time_sync_period); } static ssize_t qtime_sync_period_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { unsigned int qtime_sync_period = 0; if (sscanf(buf, "%du", &qtime_sync_period) != 1) { cnss_pr_err("Invalid qtime sync sysfs command\n"); return -EINVAL; } if (qtime_sync_period >= CNSS_MIN_TIME_SYNC_PERIOD) cnss_pci_update_qtime_sync_period(dev, qtime_sync_period); return count; } static ssize_t recovery_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) Loading Loading @@ -2419,11 +2447,13 @@ static ssize_t fs_ready_store(struct device *dev, static DEVICE_ATTR_WO(fs_ready); static DEVICE_ATTR_WO(shutdown); static DEVICE_ATTR_WO(recovery); static DEVICE_ATTR_RW(qtime_sync_period); static struct attribute *cnss_attrs[] = { &dev_attr_fs_ready.attr, &dev_attr_shutdown.attr, &dev_attr_recovery.attr, &dev_attr_qtime_sync_period.attr, NULL, }; Loading drivers/net/wireless/cnss2/main.h +2 −1 Original line number Diff line number Diff line Loading @@ -479,5 +479,6 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv, void *va, phys_addr_t pa, size_t size); unsigned int cnss_get_timeout(struct cnss_plat_data *plat_priv, enum cnss_timeout_type); int cnss_pci_update_qtime_sync_period(struct device *dev, unsigned int qtime_sync_period); #endif /* _CNSS_MAIN_H */ drivers/net/wireless/cnss2/pci.c +18 −0 Original line number Diff line number Diff line Loading @@ -1502,6 +1502,24 @@ static void cnss_pci_stop_time_sync_update(struct cnss_pci_data *pci_priv) cancel_delayed_work_sync(&pci_priv->time_sync_work); } int cnss_pci_update_qtime_sync_period(struct device *dev, unsigned int qtime_sync_period) { struct cnss_plat_data *plat_priv = dev_get_drvdata(dev); struct cnss_pci_data *pci_priv = plat_priv->bus_priv; if (!plat_priv || !pci_priv) return -ENODEV; cnss_pci_stop_time_sync_update(pci_priv); plat_priv->ctrl_params.time_sync_period = qtime_sync_period; cnss_pci_start_time_sync_update(pci_priv); cnss_pr_dbg("WLAN qtime sync period %u\n", plat_priv->ctrl_params.time_sync_period); return 0; } int cnss_pci_call_driver_probe(struct cnss_pci_data *pci_priv) { int ret = 0; Loading Loading
drivers/net/wireless/cnss2/main.c +30 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #define CNSS_QMI_TIMEOUT_DEFAULT 10000 #define CNSS_BDF_TYPE_DEFAULT CNSS_BDF_ELF #define CNSS_TIME_SYNC_PERIOD_DEFAULT 900000 #define CNSS_MIN_TIME_SYNC_PERIOD 2000 static struct cnss_plat_data *plat_env; Loading Loading @@ -2329,6 +2330,33 @@ static void cnss_unregister_bus_scale(struct cnss_plat_data *plat_priv) msm_bus_scale_unregister_client(bus_bw_info->bus_client); } static ssize_t qtime_sync_period_show(struct device *dev, struct device_attribute *attr, char *buf) { struct cnss_plat_data *plat_priv = dev_get_drvdata(dev); return scnprintf(buf, PAGE_SIZE, "%u\n", plat_priv->ctrl_params.time_sync_period); } static ssize_t qtime_sync_period_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { unsigned int qtime_sync_period = 0; if (sscanf(buf, "%du", &qtime_sync_period) != 1) { cnss_pr_err("Invalid qtime sync sysfs command\n"); return -EINVAL; } if (qtime_sync_period >= CNSS_MIN_TIME_SYNC_PERIOD) cnss_pci_update_qtime_sync_period(dev, qtime_sync_period); return count; } static ssize_t recovery_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) Loading Loading @@ -2419,11 +2447,13 @@ static ssize_t fs_ready_store(struct device *dev, static DEVICE_ATTR_WO(fs_ready); static DEVICE_ATTR_WO(shutdown); static DEVICE_ATTR_WO(recovery); static DEVICE_ATTR_RW(qtime_sync_period); static struct attribute *cnss_attrs[] = { &dev_attr_fs_ready.attr, &dev_attr_shutdown.attr, &dev_attr_recovery.attr, &dev_attr_qtime_sync_period.attr, NULL, }; Loading
drivers/net/wireless/cnss2/main.h +2 −1 Original line number Diff line number Diff line Loading @@ -479,5 +479,6 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv, void *va, phys_addr_t pa, size_t size); unsigned int cnss_get_timeout(struct cnss_plat_data *plat_priv, enum cnss_timeout_type); int cnss_pci_update_qtime_sync_period(struct device *dev, unsigned int qtime_sync_period); #endif /* _CNSS_MAIN_H */
drivers/net/wireless/cnss2/pci.c +18 −0 Original line number Diff line number Diff line Loading @@ -1502,6 +1502,24 @@ static void cnss_pci_stop_time_sync_update(struct cnss_pci_data *pci_priv) cancel_delayed_work_sync(&pci_priv->time_sync_work); } int cnss_pci_update_qtime_sync_period(struct device *dev, unsigned int qtime_sync_period) { struct cnss_plat_data *plat_priv = dev_get_drvdata(dev); struct cnss_pci_data *pci_priv = plat_priv->bus_priv; if (!plat_priv || !pci_priv) return -ENODEV; cnss_pci_stop_time_sync_update(pci_priv); plat_priv->ctrl_params.time_sync_period = qtime_sync_period; cnss_pci_start_time_sync_update(pci_priv); cnss_pr_dbg("WLAN qtime sync period %u\n", plat_priv->ctrl_params.time_sync_period); return 0; } int cnss_pci_call_driver_probe(struct cnss_pci_data *pci_priv) { int ret = 0; Loading