**/
 static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw)
 {
+       struct e1000_adapter *adapter = hw->adapter;
        struct e1000_phy_info *phy = &hw->phy;
        u32 i, data, cnf_size, cnf_base_addr, sw_cfg_mask;
-       s32 ret_val;
+       s32 ret_val = 0;
        u16 word_addr, reg_data, reg_addr, phy_page = 0;
 
+       if (!(hw->mac.type == e1000_ich8lan && phy->type == e1000_phy_igp_3) &&
+               !(hw->mac.type == e1000_pchlan))
+               return ret_val;
+
        ret_val = hw->phy.ops.acquire(hw);
        if (ret_val)
                return ret_val;
         * Therefore, after each PHY reset, we will load the
         * configuration data out of the NVM manually.
         */
-       if ((hw->mac.type == e1000_ich8lan && phy->type == e1000_phy_igp_3) ||
-               (hw->mac.type == e1000_pchlan)) {
-               struct e1000_adapter *adapter = hw->adapter;
-
-               /* Check if SW needs to configure the PHY */
-               if ((adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_M_AMT) ||
-                   (adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_M) ||
-                   (hw->mac.type == e1000_pchlan))
-                       sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M;
-               else
-                       sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG;
+       if ((adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_M_AMT) ||
+           (adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_M) ||
+           (hw->mac.type == e1000_pchlan))
+               sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M;
+       else
+               sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG;
 
-               data = er32(FEXTNVM);
-               if (!(data & sw_cfg_mask))
-                       goto out;
+       data = er32(FEXTNVM);
+       if (!(data & sw_cfg_mask))
+               goto out;
 
-               /* Wait for basic configuration completes before proceeding */
-               e1000_lan_init_done_ich8lan(hw);
+       /* Wait for basic configuration completes before proceeding */
+       e1000_lan_init_done_ich8lan(hw);
 
+       /*
+        * Make sure HW does not configure LCD from PHY
+        * extended configuration before SW configuration
+        */
+       data = er32(EXTCNF_CTRL);
+       if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE)
+               goto out;
+
+       cnf_size = er32(EXTCNF_SIZE);
+       cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK;
+       cnf_size >>= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT;
+       if (!cnf_size)
+               goto out;
+
+       cnf_base_addr = data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK;
+       cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT;
+
+       if (!(data & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) &&
+           (hw->mac.type == e1000_pchlan)) {
                /*
-                * Make sure HW does not configure LCD from PHY
-                * extended configuration before SW configuration
+                * HW configures the SMBus address and LEDs when the
+                * OEM and LCD Write Enable bits are set in the NVM.
+                * When both NVM bits are cleared, SW will configure
+                * them instead.
                 */
-               data = er32(EXTCNF_CTRL);
-               if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE)
+               data = er32(STRAP);
+               data &= E1000_STRAP_SMBUS_ADDRESS_MASK;
+               reg_data = data >> E1000_STRAP_SMBUS_ADDRESS_SHIFT;
+               reg_data |= HV_SMB_ADDR_PEC_EN | HV_SMB_ADDR_VALID;
+               ret_val = e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR,
+                                                       reg_data);
+               if (ret_val)
                        goto out;
 
-               cnf_size = er32(EXTCNF_SIZE);
-               cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK;
-               cnf_size >>= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT;
-               if (!cnf_size)
+               data = er32(LEDCTL);
+               ret_val = e1000_write_phy_reg_hv_locked(hw, HV_LED_CONFIG,
+                                                       (u16)data);
+               if (ret_val)
                        goto out;
+       }
 
-               cnf_base_addr = data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK;
-               cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT;
-
-               if (!(data & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) &&
-                   (hw->mac.type == e1000_pchlan)) {
-                       /*
-                        * HW configures the SMBus address and LEDs when the
-                        * OEM and LCD Write Enable bits are set in the NVM.
-                        * When both NVM bits are cleared, SW will configure
-                        * them instead.
-                        */
-                       data = er32(STRAP);
-                       data &= E1000_STRAP_SMBUS_ADDRESS_MASK;
-                       reg_data = data >> E1000_STRAP_SMBUS_ADDRESS_SHIFT;
-                       reg_data |= HV_SMB_ADDR_PEC_EN | HV_SMB_ADDR_VALID;
-                       ret_val = e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR,
-                                                               reg_data);
-                       if (ret_val)
-                               goto out;
-
-                       data = er32(LEDCTL);
-                       ret_val = e1000_write_phy_reg_hv_locked(hw,
-                                                               HV_LED_CONFIG,
-                                                               (u16)data);
-                       if (ret_val)
-                               goto out;
-               }
-               /* Configure LCD from extended configuration region. */
+       /* Configure LCD from extended configuration region. */
 
-               /* cnf_base_addr is in DWORD */
-               word_addr = (u16)(cnf_base_addr << 1);
+       /* cnf_base_addr is in DWORD */
+       word_addr = (u16)(cnf_base_addr << 1);
 
-               for (i = 0; i < cnf_size; i++) {
-                       ret_val = e1000_read_nvm(hw, (word_addr + i * 2), 1,
-                                                  ®_data);
-                       if (ret_val)
-                               goto out;
+       for (i = 0; i < cnf_size; i++) {
+               ret_val = e1000_read_nvm(hw, (word_addr + i * 2), 1,
+                                        ®_data);
+               if (ret_val)
+                       goto out;
 
-                       ret_val = e1000_read_nvm(hw, (word_addr + i * 2 + 1),
-                                                  1, ®_addr);
-                       if (ret_val)
-                               goto out;
+               ret_val = e1000_read_nvm(hw, (word_addr + i * 2 + 1),
+                                        1, ®_addr);
+               if (ret_val)
+                       goto out;
 
-                       /* Save off the PHY page for future writes. */
-                       if (reg_addr == IGP01E1000_PHY_PAGE_SELECT) {
-                               phy_page = reg_data;
-                               continue;
-                       }
+               /* Save off the PHY page for future writes. */
+               if (reg_addr == IGP01E1000_PHY_PAGE_SELECT) {
+                       phy_page = reg_data;
+                       continue;
+               }
 
-                       reg_addr &= PHY_REG_MASK;
-                       reg_addr |= phy_page;
+               reg_addr &= PHY_REG_MASK;
+               reg_addr |= phy_page;
 
-                       ret_val = phy->ops.write_reg_locked(hw,
-                                                           (u32)reg_addr,
-                                                           reg_data);
-                       if (ret_val)
-                               goto out;
-               }
+               ret_val = phy->ops.write_reg_locked(hw, (u32)reg_addr,
+                                                   reg_data);
+               if (ret_val)
+                       goto out;
        }
 
 out: