SenthilKumar Jegadeesan <sjegadee@xxxxxxxxxxxxxxxx> writes: > Introduce optional log level configuration for > existing debugfs fw_dbglog. > > It allow users to configure desired log level > for firmware debugs. > > To configure log level as WARN > > echo 0xffffffff 2 > /sys/kernel/debug/ieee80211/phy0/ath10k/fw_dbglog > > Loglevel Value > VERBOSE 0 > INFO 1 > WARN 2 > ERR 3 > > Signed-off-by: SenthilKumar Jegadeesan <sjegadee@xxxxxxxxxxxxxxxx> I did cosmetic changes to the log in the pending branch. > @@ -1331,19 +1331,30 @@ static ssize_t ath10k_write_fw_dbglog(struct file *file, > size_t count, loff_t *ppos) > { > struct ath10k *ar = file->private_data; > - unsigned long mask; > int ret; > + char buf[64]; > + unsigned int log_level, mask; > > - ret = kstrtoul_from_user(user_buf, count, 0, &mask); > - if (ret) > - return ret; > + simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count); > + > + /* make sure that buf is null terminated */ > + buf[sizeof(buf) - 1] = 0; > + > + ret = sscanf(buf, "%x %u", &mask, &log_level); > + > + if (!ret) > + return -EINVAL; > > mutex_lock(&ar->conf_mutex); > > ar->debug.fw_dbglog_mask = mask; > + ar->debug.fw_dbglog_level = (ret == 1) ? ATH10K_DBGLOG_LEVEL_WARN : > + log_level; And I simplified this a bit, please review. Full patch in pending branch. --- a/drivers/net/wireless/ath/ath10k/debug.c +++ b/drivers/net/wireless/ath/ath10k/debug.c @@ -1345,12 +1345,14 @@ static ssize_t ath10k_write_fw_dbglog(struct file *file, if (!ret) return -EINVAL; + if (ret == 1) + /* default if user did not specify */ + log_level = ATH10K_DBGLOG_LEVEL_WARN; + mutex_lock(&ar->conf_mutex); ar->debug.fw_dbglog_mask = mask; - ar->debug.fw_dbglog_level = (ret == 1) ? ATH10K_DBGLOG_LEVEL_WARN : - log_level; - + ar->debug.fw_dbglog_level = log_level; if (ar->state == ATH10K_STATE_ON) { ret = ath10k_wmi_dbglog_cfg(ar, ar->debug.fw_dbglog_mask, -- Kalle Valo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html