Message ID | 20200827233002.21483-2-greearb@candelatech.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Kalle Valo |
Headers | show |
Series | None | expand |
Hi, Thank you for the patch! Yet something to improve: [auto build test ERROR on ath6kl/ath-next] [also build test ERROR on next-20200827] [cannot apply to v5.9-rc2] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/greearb-candelatech-com/ath11k-Support-reading-fwcfg-file-for-driver-options/20200828-073256 base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next config: arc-allyesconfig (attached as .config) compiler: arceb-elf-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): drivers/net/wireless/ath/ath11k/debug.c: In function 'ath11k_read_fwinfo': >> drivers/net/wireless/ath/ath11k/debug.c:427:7: error: 'ATH11K_HW_QCA6390_HW11' undeclared (first use in this function); did you mean 'ATH11K_HW_QCA6390_HW20'? 427 | case ATH11K_HW_QCA6390_HW11: | ^~~~~~~~~~~~~~~~~~~~~~ | ATH11K_HW_QCA6390_HW20 drivers/net/wireless/ath/ath11k/debug.c:427:7: note: each undeclared identifier is reported only once for each function it appears in # https://github.com/0day-ci/linux/commit/a7df025ce74fb120141d5c66a46febd63b74cb97 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review greearb-candelatech-com/ath11k-Support-reading-fwcfg-file-for-driver-options/20200828-073256 git checkout a7df025ce74fb120141d5c66a46febd63b74cb97 vim +427 drivers/net/wireless/ath/ath11k/debug.c 400 401 static ssize_t ath11k_read_fwinfo(struct file *file, 402 char __user *user_buf, 403 size_t count, loff_t *ppos) 404 { 405 struct ath11k_base *ab = file->private_data; 406 char *buf; 407 unsigned int len = 0, buf_len = 1000; 408 ssize_t ret_cnt; 409 410 buf = kzalloc(buf_len, GFP_KERNEL); 411 if (!buf) 412 return -ENOMEM; 413 414 /* TODO: Locking? */ 415 416 len = snprintf(buf, buf_len, "directory: %s\nfwcfg: fwcfg-%s-%s.txt\nbus: %s", 417 ab->hw_params.fw.dir, 418 ath11k_bus_str(ab->hif.bus), dev_name(ab->dev), dev_name(ab->dev)); 419 420 /* Just to be safe */ 421 buf[buf_len - 1] = 0; 422 len = strlen(buf); 423 424 len += snprintf(buf + len, buf_len - len, "\nversion: 0x%0x\nhw_rev: ", 425 ab->qmi.target.fw_version); 426 switch (ab->hw_rev) { > 427 case ATH11K_HW_QCA6390_HW11: 428 len += snprintf(buf + len, buf_len - len, "6390-hw1\n"); 429 break; 430 case ATH11K_HW_QCA6390_HW20: 431 len += snprintf(buf + len, buf_len - len, "6390-hw2\n"); 432 break; 433 case ATH11K_HW_IPQ8074: 434 len += snprintf(buf + len, buf_len - len, "8074\n"); 435 break; 436 } 437 438 len += snprintf(buf + len, buf_len - len, "board: %s\n", 439 ab->fw_board_name); 440 441 ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len); 442 443 kfree(buf); 444 return ret_cnt; 445 } 446 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/net/wireless/ath/ath11k/debug.c b/drivers/net/wireless/ath/ath11k/debug.c index 2ac0df8aee26..38ffcae67ab5 100644 --- a/drivers/net/wireless/ath/ath11k/debug.c +++ b/drivers/net/wireless/ath/ath11k/debug.c @@ -398,6 +398,59 @@ static const struct file_operations fops_pdev_stats = { .llseek = default_llseek, }; +static ssize_t ath11k_read_fwinfo(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k_base *ab = file->private_data; + char *buf; + unsigned int len = 0, buf_len = 1000; + ssize_t ret_cnt; + + buf = kzalloc(buf_len, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + /* TODO: Locking? */ + + len = snprintf(buf, buf_len, "directory: %s\nfwcfg: fwcfg-%s-%s.txt\nbus: %s", + ab->hw_params.fw.dir, + ath11k_bus_str(ab->hif.bus), dev_name(ab->dev), dev_name(ab->dev)); + + /* Just to be safe */ + buf[buf_len - 1] = 0; + len = strlen(buf); + + len += snprintf(buf + len, buf_len - len, "\nversion: 0x%0x\nhw_rev: ", + ab->qmi.target.fw_version); + switch (ab->hw_rev) { + case ATH11K_HW_QCA6390_HW11: + len += snprintf(buf + len, buf_len - len, "6390-hw1\n"); + break; + case ATH11K_HW_QCA6390_HW20: + len += snprintf(buf + len, buf_len - len, "6390-hw2\n"); + break; + case ATH11K_HW_IPQ8074: + len += snprintf(buf + len, buf_len - len, "8074\n"); + break; + } + + len += snprintf(buf + len, buf_len - len, "board: %s\n", + ab->fw_board_name); + + ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len); + + kfree(buf); + return ret_cnt; +} + +static const struct file_operations fops_fwinfo_services = { + .read = ath11k_read_fwinfo, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + static int ath11k_open_vdev_stats(struct inode *inode, struct file *file) { struct ath11k *ar = inode->i_private; @@ -1201,6 +1254,9 @@ int ath11k_debug_register(struct ath11k *ar) &ar->dfs_block_radar_events); } + debugfs_create_file("firmware_info", 0400, ar->debug.debugfs_pdev, ab, + &fops_fwinfo_services); + return 0; }