diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/debugfs.c | 13 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/nvm.c | 23 |
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) |