aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs.c13
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h5
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/nvm.c23
3 files changed, 41 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
index 931723a03a43..e8f62a6a1b57 100644
--- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
@@ -720,6 +720,19 @@ int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir)
720 goto err; 720 goto err;
721#endif 721#endif
722 722
723 if (!debugfs_create_blob("nvm_hw", S_IRUSR,
724 mvm->debugfs_dir, &mvm->nvm_hw_blob))
725 goto err;
726 if (!debugfs_create_blob("nvm_sw", S_IRUSR,
727 mvm->debugfs_dir, &mvm->nvm_sw_blob))
728 goto err;
729 if (!debugfs_create_blob("nvm_calib", S_IRUSR,
730 mvm->debugfs_dir, &mvm->nvm_calib_blob))
731 goto err;
732 if (!debugfs_create_blob("nvm_prod", S_IRUSR,
733 mvm->debugfs_dir, &mvm->nvm_prod_blob))
734 goto err;
735
723 /* 736 /*
724 * Create a symlink with mac80211. It will be removed when mac80211 737 * Create a symlink with mac80211. It will be removed when mac80211
725 * exists (before the opmode exists which removes the target.) 738 * exists (before the opmode exists which removes the target.)
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index e7c97ccec5e8..7dc57cfe5803 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -494,6 +494,11 @@ struct iwl_mvm {
494 u32 dbgfs_sram_offset, dbgfs_sram_len; 494 u32 dbgfs_sram_offset, dbgfs_sram_len;
495 bool disable_power_off; 495 bool disable_power_off;
496 bool disable_power_off_d3; 496 bool disable_power_off_d3;
497
498 struct debugfs_blob_wrapper nvm_hw_blob;
499 struct debugfs_blob_wrapper nvm_sw_blob;
500 struct debugfs_blob_wrapper nvm_calib_blob;
501 struct debugfs_blob_wrapper nvm_prod_blob;
497#endif 502#endif
498 503
499 struct iwl_mvm_phy_ctxt phy_ctxts[NUM_PHY_CTX]; 504 struct iwl_mvm_phy_ctxt phy_ctxts[NUM_PHY_CTX];
diff --git a/drivers/net/wireless/iwlwifi/mvm/nvm.c b/drivers/net/wireless/iwlwifi/mvm/nvm.c
index 2beffd028b67..48089b1625ff 100644
--- a/drivers/net/wireless/iwlwifi/mvm/nvm.c
+++ b/drivers/net/wireless/iwlwifi/mvm/nvm.c
@@ -443,6 +443,29 @@ int iwl_nvm_init(struct iwl_mvm *mvm)
443 } 443 }
444 mvm->nvm_sections[section].data = temp; 444 mvm->nvm_sections[section].data = temp;
445 mvm->nvm_sections[section].length = ret; 445 mvm->nvm_sections[section].length = ret;
446
447#ifdef CONFIG_IWLWIFI_DEBUGFS
448 switch (section) {
449 case NVM_SECTION_TYPE_HW:
450 mvm->nvm_hw_blob.data = temp;
451 mvm->nvm_hw_blob.size = ret;
452 break;
453 case NVM_SECTION_TYPE_SW:
454 mvm->nvm_sw_blob.data = temp;
455 mvm->nvm_sw_blob.size = ret;
456 break;
457 case NVM_SECTION_TYPE_CALIBRATION:
458 mvm->nvm_calib_blob.data = temp;
459 mvm->nvm_calib_blob.size = ret;
460 break;
461 case NVM_SECTION_TYPE_PRODUCTION:
462 mvm->nvm_prod_blob.data = temp;
463 mvm->nvm_prod_blob.size = ret;
464 break;
465 default:
466 WARN(1, "section: %d", section);
467 }
468#endif
446 } 469 }
447 kfree(nvm_buffer); 470 kfree(nvm_buffer);
448 if (ret < 0) 471 if (ret < 0)