From 6041366afcc90d4679b8d865cad162b353afee70 Mon Sep 17 00:00:00 2001 From: Carolyn Wyborny Date: Thu, 11 Oct 2012 02:15:45 +0000 Subject: [PATCH] --- yaml --- r: 341670 b: refs/heads/master c: 1720ee3e4054eff175743820ceba16ecfe97943a h: refs/heads/master v: v3 --- [refs] | 2 +- .../net/ethernet/intel/igb/e1000_i210.c | 32 ++++++++++++++++--- .../net/ethernet/intel/igb/e1000_i210.h | 6 ++++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 76af9848bf34..b4f2c00c9b76 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3288d735781f8873775e5d2e5d33507119f79cca +refs/heads/master: 1720ee3e4054eff175743820ceba16ecfe97943a diff --git a/trunk/drivers/net/ethernet/intel/igb/e1000_i210.c b/trunk/drivers/net/ethernet/intel/igb/e1000_i210.c index 41474298d365..239650e5e545 100644 --- a/trunk/drivers/net/ethernet/intel/igb/e1000_i210.c +++ b/trunk/drivers/net/ethernet/intel/igb/e1000_i210.c @@ -350,16 +350,40 @@ s32 igb_read_nvm_i211(struct e1000_hw *hw, u16 offset, u16 words, if (ret_val != E1000_SUCCESS) hw_dbg("MAC Addr not found in iNVM\n"); break; - case NVM_ID_LED_SETTINGS: case NVM_INIT_CTRL_2: + ret_val = igb_read_invm_i211(hw, (u8)offset, data); + if (ret_val != E1000_SUCCESS) { + *data = NVM_INIT_CTRL_2_DEFAULT_I211; + ret_val = E1000_SUCCESS; + } + break; case NVM_INIT_CTRL_4: + ret_val = igb_read_invm_i211(hw, (u8)offset, data); + if (ret_val != E1000_SUCCESS) { + *data = NVM_INIT_CTRL_4_DEFAULT_I211; + ret_val = E1000_SUCCESS; + } + break; case NVM_LED_1_CFG: + ret_val = igb_read_invm_i211(hw, (u8)offset, data); + if (ret_val != E1000_SUCCESS) { + *data = NVM_LED_1_CFG_DEFAULT_I211; + ret_val = E1000_SUCCESS; + } + break; case NVM_LED_0_2_CFG: igb_read_invm_i211(hw, offset, data); + if (ret_val != E1000_SUCCESS) { + *data = NVM_LED_0_2_CFG_DEFAULT_I211; + ret_val = E1000_SUCCESS; + } break; - case NVM_COMPAT: - *data = ID_LED_DEFAULT_I210; - break; + case NVM_ID_LED_SETTINGS: + ret_val = igb_read_invm_i211(hw, (u8)offset, data); + if (ret_val != E1000_SUCCESS) { + *data = ID_LED_RESERVED_FFFF; + ret_val = E1000_SUCCESS; + } case NVM_SUB_DEV_ID: *data = hw->subsystem_device_id; break; diff --git a/trunk/drivers/net/ethernet/intel/igb/e1000_i210.h b/trunk/drivers/net/ethernet/intel/igb/e1000_i210.h index 974d23584d70..1c89358a99ab 100644 --- a/trunk/drivers/net/ethernet/intel/igb/e1000_i210.h +++ b/trunk/drivers/net/ethernet/intel/igb/e1000_i210.h @@ -84,4 +84,10 @@ enum E1000_INVM_STRUCTURE_TYPE { (ID_LED_DEF1_DEF2 << 4) | \ (ID_LED_DEF1_DEF2)) +/* NVM offset defaults for i211 device */ +#define NVM_INIT_CTRL_2_DEFAULT_I211 0X7243 +#define NVM_INIT_CTRL_4_DEFAULT_I211 0x00C1 +#define NVM_LED_1_CFG_DEFAULT_I211 0x0184 +#define NVM_LED_0_2_CFG_DEFAULT_I211 0x200C + #endif