Commit 53e0b080 authored by David S. Miller's avatar David S. Miller

Merge branch 'intel-next'

Aaron Brown says:

====================
Intel Wired LAN Driver Updates

This series contains updates to ixgbe, igb and documentation.  The
first four have been sent up as part of other series where 1 or more
in the series were rejected and either dropped or still being worked
on for reasons unrelated to these patches.

Don makes recovery from a HW ECC error just schedule a reset as it turns
out the previous behaviour of forcing the user to reload is not necessary.
Mark adds WoL support to port 0 of a new device.  Jacob removes a magic
number from the ptp_caps.name and updates the SubmittingPatches
documentation with details on the Fixed: tag.  And Carolyn updates igb
files to remove the FSF physical mail address.

[ DaveM Note: SubmittingPatches change omitted, will go via LKML ]
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 0b95227a 74cfb2e1
################################################################################ ################################################################################
# #
# Intel 82575 PCI-Express Ethernet Linux driver # Intel 82575 PCI-Express Ethernet Linux driver
# Copyright(c) 1999 - 2013 Intel Corporation. # Copyright(c) 1999 - 2014 Intel Corporation.
# #
# This program is free software; you can redistribute it and/or modify it # This program is free software; you can redistribute it and/or modify it
# under the terms and conditions of the GNU General Public License, # under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
# more details. # more details.
# #
# You should have received a copy of the GNU General Public License along with # You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., # this program; if not, see <http://www.gnu.org/licenses/>.
# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
# #
# The full GNU General Public License is included in this distribution in # The full GNU General Public License is included in this distribution in
# the file called "COPYING". # the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -2720,7 +2719,7 @@ static const u8 e1000_emc_therm_limit[4] = { ...@@ -2720,7 +2719,7 @@ static const u8 e1000_emc_therm_limit[4] = {
* *
* Updates the temperatures in mac.thermal_sensor_data * Updates the temperatures in mac.thermal_sensor_data
**/ **/
s32 igb_get_thermal_sensor_data_generic(struct e1000_hw *hw) static s32 igb_get_thermal_sensor_data_generic(struct e1000_hw *hw)
{ {
s32 status = E1000_SUCCESS; s32 status = E1000_SUCCESS;
u16 ets_offset; u16 ets_offset;
...@@ -2774,7 +2773,7 @@ s32 igb_get_thermal_sensor_data_generic(struct e1000_hw *hw) ...@@ -2774,7 +2773,7 @@ s32 igb_get_thermal_sensor_data_generic(struct e1000_hw *hw)
* Sets the thermal sensor thresholds according to the NVM map * Sets the thermal sensor thresholds according to the NVM map
* and save off the threshold and location values into mac.thermal_sensor_data * and save off the threshold and location values into mac.thermal_sensor_data
**/ **/
s32 igb_init_thermal_sensor_thresh_generic(struct e1000_hw *hw) static s32 igb_init_thermal_sensor_thresh_generic(struct e1000_hw *hw)
{ {
s32 status = E1000_SUCCESS; s32 status = E1000_SUCCESS;
u16 ets_offset; u16 ets_offset;
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -266,8 +265,6 @@ u16 igb_rxpbs_adjust_82580(u32 data); ...@@ -266,8 +265,6 @@ u16 igb_rxpbs_adjust_82580(u32 data);
s32 igb_read_emi_reg(struct e1000_hw *, u16 addr, u16 *data); s32 igb_read_emi_reg(struct e1000_hw *, u16 addr, u16 *data);
s32 igb_set_eee_i350(struct e1000_hw *); s32 igb_set_eee_i350(struct e1000_hw *);
s32 igb_set_eee_i354(struct e1000_hw *); s32 igb_set_eee_i354(struct e1000_hw *);
s32 igb_init_thermal_sensor_thresh_generic(struct e1000_hw *);
s32 igb_get_thermal_sensor_data_generic(struct e1000_hw *hw);
#define E1000_I2C_THERMAL_SENSOR_ADDR 0xF8 #define E1000_I2C_THERMAL_SENSOR_ADDR 0xF8
#define E1000_EMC_INTERNAL_DATA 0x00 #define E1000_EMC_INTERNAL_DATA 0x00
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -35,6 +34,8 @@ ...@@ -35,6 +34,8 @@
#include "e1000_hw.h" #include "e1000_hw.h"
#include "e1000_i210.h" #include "e1000_i210.h"
static s32 igb_update_flash_i210(struct e1000_hw *hw);
/** /**
* igb_get_hw_semaphore_i210 - Acquire hardware semaphore * igb_get_hw_semaphore_i210 - Acquire hardware semaphore
* @hw: pointer to the HW structure * @hw: pointer to the HW structure
...@@ -111,7 +112,7 @@ static s32 igb_get_hw_semaphore_i210(struct e1000_hw *hw) ...@@ -111,7 +112,7 @@ static s32 igb_get_hw_semaphore_i210(struct e1000_hw *hw)
* Return successful if access grant bit set, else clear the request for * Return successful if access grant bit set, else clear the request for
* EEPROM access and return -E1000_ERR_NVM (-1). * EEPROM access and return -E1000_ERR_NVM (-1).
**/ **/
s32 igb_acquire_nvm_i210(struct e1000_hw *hw) static s32 igb_acquire_nvm_i210(struct e1000_hw *hw)
{ {
return igb_acquire_swfw_sync_i210(hw, E1000_SWFW_EEP_SM); return igb_acquire_swfw_sync_i210(hw, E1000_SWFW_EEP_SM);
} }
...@@ -123,7 +124,7 @@ s32 igb_acquire_nvm_i210(struct e1000_hw *hw) ...@@ -123,7 +124,7 @@ s32 igb_acquire_nvm_i210(struct e1000_hw *hw)
* Stop any current commands to the EEPROM and clear the EEPROM request bit, * Stop any current commands to the EEPROM and clear the EEPROM request bit,
* then release the semaphores acquired. * then release the semaphores acquired.
**/ **/
void igb_release_nvm_i210(struct e1000_hw *hw) static void igb_release_nvm_i210(struct e1000_hw *hw)
{ {
igb_release_swfw_sync_i210(hw, E1000_SWFW_EEP_SM); igb_release_swfw_sync_i210(hw, E1000_SWFW_EEP_SM);
} }
...@@ -206,8 +207,8 @@ void igb_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask) ...@@ -206,8 +207,8 @@ void igb_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask)
* Reads a 16 bit word from the Shadow Ram using the EERD register. * Reads a 16 bit word from the Shadow Ram using the EERD register.
* Uses necessary synchronization semaphores. * Uses necessary synchronization semaphores.
**/ **/
s32 igb_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset, u16 words, static s32 igb_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset, u16 words,
u16 *data) u16 *data)
{ {
s32 status = E1000_SUCCESS; s32 status = E1000_SUCCESS;
u16 i, count; u16 i, count;
...@@ -306,8 +307,8 @@ static s32 igb_write_nvm_srwr(struct e1000_hw *hw, u16 offset, u16 words, ...@@ -306,8 +307,8 @@ static s32 igb_write_nvm_srwr(struct e1000_hw *hw, u16 offset, u16 words,
* If error code is returned, data and Shadow RAM may be inconsistent - buffer * If error code is returned, data and Shadow RAM may be inconsistent - buffer
* partially written. * partially written.
**/ **/
s32 igb_write_nvm_srwr_i210(struct e1000_hw *hw, u16 offset, u16 words, static s32 igb_write_nvm_srwr_i210(struct e1000_hw *hw, u16 offset, u16 words,
u16 *data) u16 *data)
{ {
s32 status = E1000_SUCCESS; s32 status = E1000_SUCCESS;
u16 i, count; u16 i, count;
...@@ -555,7 +556,7 @@ s32 igb_read_invm_version(struct e1000_hw *hw, ...@@ -555,7 +556,7 @@ s32 igb_read_invm_version(struct e1000_hw *hw,
* Calculates the EEPROM checksum by reading/adding each word of the EEPROM * Calculates the EEPROM checksum by reading/adding each word of the EEPROM
* and then verifies that the sum of the EEPROM is equal to 0xBABA. * and then verifies that the sum of the EEPROM is equal to 0xBABA.
**/ **/
s32 igb_validate_nvm_checksum_i210(struct e1000_hw *hw) static s32 igb_validate_nvm_checksum_i210(struct e1000_hw *hw)
{ {
s32 status = E1000_SUCCESS; s32 status = E1000_SUCCESS;
s32 (*read_op_ptr)(struct e1000_hw *, u16, u16, u16 *); s32 (*read_op_ptr)(struct e1000_hw *, u16, u16, u16 *);
...@@ -590,7 +591,7 @@ s32 igb_validate_nvm_checksum_i210(struct e1000_hw *hw) ...@@ -590,7 +591,7 @@ s32 igb_validate_nvm_checksum_i210(struct e1000_hw *hw)
* up to the checksum. Then calculates the EEPROM checksum and writes the * up to the checksum. Then calculates the EEPROM checksum and writes the
* value to the EEPROM. Next commit EEPROM data onto the Flash. * value to the EEPROM. Next commit EEPROM data onto the Flash.
**/ **/
s32 igb_update_nvm_checksum_i210(struct e1000_hw *hw) static s32 igb_update_nvm_checksum_i210(struct e1000_hw *hw)
{ {
s32 ret_val = E1000_SUCCESS; s32 ret_val = E1000_SUCCESS;
u16 checksum = 0; u16 checksum = 0;
...@@ -684,7 +685,7 @@ bool igb_get_flash_presence_i210(struct e1000_hw *hw) ...@@ -684,7 +685,7 @@ bool igb_get_flash_presence_i210(struct e1000_hw *hw)
* @hw: pointer to the HW structure * @hw: pointer to the HW structure
* *
**/ **/
s32 igb_update_flash_i210(struct e1000_hw *hw) static s32 igb_update_flash_i210(struct e1000_hw *hw)
{ {
s32 ret_val = E1000_SUCCESS; s32 ret_val = E1000_SUCCESS;
u32 flup; u32 flup;
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -28,17 +27,8 @@ ...@@ -28,17 +27,8 @@
#ifndef _E1000_I210_H_ #ifndef _E1000_I210_H_
#define _E1000_I210_H_ #define _E1000_I210_H_
s32 igb_update_flash_i210(struct e1000_hw *hw);
s32 igb_update_nvm_checksum_i210(struct e1000_hw *hw);
s32 igb_validate_nvm_checksum_i210(struct e1000_hw *hw);
s32 igb_write_nvm_srwr_i210(struct e1000_hw *hw, u16 offset, u16 words,
u16 *data);
s32 igb_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset, u16 words,
u16 *data);
s32 igb_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask); s32 igb_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
void igb_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask); void igb_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
s32 igb_acquire_nvm_i210(struct e1000_hw *hw);
void igb_release_nvm_i210(struct e1000_hw *hw);
s32 igb_valid_led_default_i210(struct e1000_hw *hw, u16 *data); s32 igb_valid_led_default_i210(struct e1000_hw *hw, u16 *data);
s32 igb_read_invm_version(struct e1000_hw *hw, s32 igb_read_invm_version(struct e1000_hw *hw,
struct e1000_fw_version *invm_ver); struct e1000_fw_version *invm_ver);
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -393,77 +392,6 @@ s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data) ...@@ -393,77 +392,6 @@ s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data)
return 0; return 0;
} }
/**
* e1000_write_sfp_data_byte - Writes SFP module data.
* @hw: pointer to the HW structure
* @offset: byte location offset to write to
* @data: data to write
*
* Writes one byte to SFP module data stored
* in SFP resided EEPROM memory or SFP diagnostic area.
* Function should be called with
* E1000_I2CCMD_SFP_DATA_ADDR(<byte offset>) for SFP module database access
* E1000_I2CCMD_SFP_DIAG_ADDR(<byte offset>) for SFP diagnostics parameters
* access
**/
s32 e1000_write_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 data)
{
u32 i = 0;
u32 i2ccmd = 0;
u32 data_local = 0;
if (offset > E1000_I2CCMD_SFP_DIAG_ADDR(255)) {
hw_dbg("I2CCMD command address exceeds upper limit\n");
return -E1000_ERR_PHY;
}
/* The programming interface is 16 bits wide
* so we need to read the whole word first
* then update appropriate byte lane and write
* the updated word back.
*/
/* Set up Op-code, EEPROM Address,in the I2CCMD
* register. The MAC will take care of interfacing
* with an EEPROM to write the data given.
*/
i2ccmd = ((offset << E1000_I2CCMD_REG_ADDR_SHIFT) |
E1000_I2CCMD_OPCODE_READ);
/* Set a command to read single word */
wr32(E1000_I2CCMD, i2ccmd);
for (i = 0; i < E1000_I2CCMD_PHY_TIMEOUT; i++) {
udelay(50);
/* Poll the ready bit to see if lastly
* launched I2C operation completed
*/
i2ccmd = rd32(E1000_I2CCMD);
if (i2ccmd & E1000_I2CCMD_READY) {
/* Check if this is READ or WRITE phase */
if ((i2ccmd & E1000_I2CCMD_OPCODE_READ) ==
E1000_I2CCMD_OPCODE_READ) {
/* Write the selected byte
* lane and update whole word
*/
data_local = i2ccmd & 0xFF00;
data_local |= data;
i2ccmd = ((offset <<
E1000_I2CCMD_REG_ADDR_SHIFT) |
E1000_I2CCMD_OPCODE_WRITE | data_local);
wr32(E1000_I2CCMD, i2ccmd);
} else {
break;
}
}
}
if (!(i2ccmd & E1000_I2CCMD_READY)) {
hw_dbg("I2CCMD Write did not complete\n");
return -E1000_ERR_PHY;
}
if (i2ccmd & E1000_I2CCMD_ERROR) {
hw_dbg("I2CCMD Error bit set\n");
return -E1000_ERR_PHY;
}
return 0;
}
/** /**
* igb_read_phy_reg_igp - Read igp PHY register * igb_read_phy_reg_igp - Read igp PHY register
* @hw: pointer to the HW structure * @hw: pointer to the HW structure
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -70,7 +69,6 @@ s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data); ...@@ -70,7 +69,6 @@ s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data);
s32 igb_read_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 *data); s32 igb_read_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 *data);
s32 igb_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data); s32 igb_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data);
s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data); s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data);
s32 e1000_write_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 data);
s32 igb_copper_link_setup_82580(struct e1000_hw *hw); s32 igb_copper_link_setup_82580(struct e1000_hw *hw);
s32 igb_get_phy_info_82580(struct e1000_hw *hw); s32 igb_get_phy_info_82580(struct e1000_hw *hw);
s32 igb_phy_force_speed_duplex_82580(struct e1000_hw *hw); s32 igb_phy_force_speed_duplex_82580(struct e1000_hw *hw);
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -525,9 +524,7 @@ void igb_set_fw_version(struct igb_adapter *); ...@@ -525,9 +524,7 @@ void igb_set_fw_version(struct igb_adapter *);
void igb_ptp_init(struct igb_adapter *adapter); void igb_ptp_init(struct igb_adapter *adapter);
void igb_ptp_stop(struct igb_adapter *adapter); void igb_ptp_stop(struct igb_adapter *adapter);
void igb_ptp_reset(struct igb_adapter *adapter); void igb_ptp_reset(struct igb_adapter *adapter);
void igb_ptp_tx_work(struct work_struct *work);
void igb_ptp_rx_hang(struct igb_adapter *adapter); void igb_ptp_rx_hang(struct igb_adapter *adapter);
void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter);
void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb); void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb);
void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, unsigned char *va, void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, unsigned char *va,
struct sk_buff *skb); struct sk_buff *skb);
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
......
/******************************************************************************* /*******************************************************************************
Intel(R) Gigabit Ethernet Linux driver Intel(R) Gigabit Ethernet Linux driver
Copyright(c) 2007-2013 Intel Corporation. Copyright(c) 2007-2014 Intel Corporation.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License, under the terms and conditions of the GNU General Public License,
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
more details. more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., this program; if not, see <http://www.gnu.org/licenses/>.
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in The full GNU General Public License is included in this distribution in
the file called "COPYING". the file called "COPYING".
...@@ -70,7 +69,7 @@ char igb_driver_version[] = DRV_VERSION; ...@@ -70,7 +69,7 @@ char igb_driver_version[] = DRV_VERSION;
static const char igb_driver_string[] = static const char igb_driver_string[] =
"Intel(R) Gigabit Ethernet Network Driver"; "Intel(R) Gigabit Ethernet Network Driver";
static const char igb_copyright[] = static const char igb_copyright[] =
"Copyright (c) 2007-2013 Intel Corporation."; "Copyright (c) 2007-2014 Intel Corporation.";
static const struct e1000_info *igb_info_tbl[] = { static const struct e1000_info *igb_info_tbl[] = {
[board_82575] = &e1000_82575_info, [board_82575] = &e1000_82575_info,
......
...@@ -12,9 +12,8 @@ ...@@ -12,9 +12,8 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along with
* with this program; if not, write to the Free Software Foundation, Inc., * this program; if not, see <http://www.gnu.org/licenses/>.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/device.h> #include <linux/device.h>
...@@ -75,6 +74,8 @@ ...@@ -75,6 +74,8 @@
#define INCVALUE_82576 (16 << IGB_82576_TSYNC_SHIFT) #define INCVALUE_82576 (16 << IGB_82576_TSYNC_SHIFT)
#define IGB_NBITS_82580 40 #define IGB_NBITS_82580 40
static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter);
/* SYSTIM read access for the 82576 */ /* SYSTIM read access for the 82576 */
static cycle_t igb_ptp_read_82576(const struct cyclecounter *cc) static cycle_t igb_ptp_read_82576(const struct cyclecounter *cc)
{ {
...@@ -372,7 +373,7 @@ static int igb_ptp_enable(struct ptp_clock_info *ptp, ...@@ -372,7 +373,7 @@ static int igb_ptp_enable(struct ptp_clock_info *ptp,
* This work function polls the TSYNCTXCTL valid bit to determine when a * This work function polls the TSYNCTXCTL valid bit to determine when a
* timestamp has been taken for the current stored skb. * timestamp has been taken for the current stored skb.
**/ **/
void igb_ptp_tx_work(struct work_struct *work) static void igb_ptp_tx_work(struct work_struct *work)
{ {
struct igb_adapter *adapter = container_of(work, struct igb_adapter, struct igb_adapter *adapter = container_of(work, struct igb_adapter,
ptp_tx_work); ptp_tx_work);
...@@ -466,7 +467,7 @@ void igb_ptp_rx_hang(struct igb_adapter *adapter) ...@@ -466,7 +467,7 @@ void igb_ptp_rx_hang(struct igb_adapter *adapter)
* available, then it must have been for this skb here because we only * available, then it must have been for this skb here because we only
* allow only one such packet into the queue. * allow only one such packet into the queue.
**/ **/
void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter) static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
{ {
struct e1000_hw *hw = &adapter->hw; struct e1000_hw *hw = &adapter->hw;
struct skb_shared_hwtstamps shhwtstamps; struct skb_shared_hwtstamps shhwtstamps;
......
...@@ -2630,9 +2630,12 @@ static irqreturn_t ixgbe_msix_other(int irq, void *data) ...@@ -2630,9 +2630,12 @@ static irqreturn_t ixgbe_msix_other(int irq, void *data)
switch (hw->mac.type) { switch (hw->mac.type) {
case ixgbe_mac_82599EB: case ixgbe_mac_82599EB:
case ixgbe_mac_X540: case ixgbe_mac_X540:
if (eicr & IXGBE_EICR_ECC) if (eicr & IXGBE_EICR_ECC) {
e_info(link, "Received unrecoverable ECC Err, please " e_info(link, "Received ECC Err, initiating reset\n");
"reboot\n"); adapter->flags2 |= IXGBE_FLAG2_RESET_REQUESTED;
ixgbe_service_event_schedule(adapter);
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_ECC);
}
/* Handle Flow Director Full threshold interrupt */ /* Handle Flow Director Full threshold interrupt */
if (eicr & IXGBE_EICR_FLOW_DIR) { if (eicr & IXGBE_EICR_FLOW_DIR) {
int reinit_count = 0; int reinit_count = 0;
...@@ -2846,9 +2849,12 @@ static irqreturn_t ixgbe_intr(int irq, void *data) ...@@ -2846,9 +2849,12 @@ static irqreturn_t ixgbe_intr(int irq, void *data)
ixgbe_check_sfp_event(adapter, eicr); ixgbe_check_sfp_event(adapter, eicr);
/* Fall through */ /* Fall through */
case ixgbe_mac_X540: case ixgbe_mac_X540:
if (eicr & IXGBE_EICR_ECC) if (eicr & IXGBE_EICR_ECC) {
e_info(link, "Received unrecoverable ECC err, please " e_info(link, "Received ECC Err, initiating reset\n");
"reboot\n"); adapter->flags2 |= IXGBE_FLAG2_RESET_REQUESTED;
ixgbe_service_event_schedule(adapter);
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_ECC);
}
ixgbe_check_overtemp_event(adapter, eicr); ixgbe_check_overtemp_event(adapter, eicr);
break; break;
default: default:
...@@ -7792,6 +7798,7 @@ int ixgbe_wol_supported(struct ixgbe_adapter *adapter, u16 device_id, ...@@ -7792,6 +7798,7 @@ int ixgbe_wol_supported(struct ixgbe_adapter *adapter, u16 device_id,
case IXGBE_DEV_ID_82599_SFP: case IXGBE_DEV_ID_82599_SFP:
/* Only these subdevices could supports WOL */ /* Only these subdevices could supports WOL */
switch (subdevice_id) { switch (subdevice_id) {
case IXGBE_SUBDEV_ID_82599_SFP_WOL0:
case IXGBE_SUBDEV_ID_82599_560FLR: case IXGBE_SUBDEV_ID_82599_560FLR:
/* only support first port */ /* only support first port */
if (hw->bus.func != 0) if (hw->bus.func != 0)
......
...@@ -840,7 +840,9 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter) ...@@ -840,7 +840,9 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
switch (adapter->hw.mac.type) { switch (adapter->hw.mac.type) {
case ixgbe_mac_X540: case ixgbe_mac_X540:
snprintf(adapter->ptp_caps.name, 16, "%s", netdev->name); snprintf(adapter->ptp_caps.name,
sizeof(adapter->ptp_caps.name),
"%s", netdev->name);
adapter->ptp_caps.owner = THIS_MODULE; adapter->ptp_caps.owner = THIS_MODULE;
adapter->ptp_caps.max_adj = 250000000; adapter->ptp_caps.max_adj = 250000000;
adapter->ptp_caps.n_alarm = 0; adapter->ptp_caps.n_alarm = 0;
...@@ -854,7 +856,9 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter) ...@@ -854,7 +856,9 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
adapter->ptp_caps.enable = ixgbe_ptp_enable; adapter->ptp_caps.enable = ixgbe_ptp_enable;
break; break;
case ixgbe_mac_82599EB: case ixgbe_mac_82599EB:
snprintf(adapter->ptp_caps.name, 16, "%s", netdev->name); snprintf(adapter->ptp_caps.name,
sizeof(adapter->ptp_caps.name),
"%s", netdev->name);
adapter->ptp_caps.owner = THIS_MODULE; adapter->ptp_caps.owner = THIS_MODULE;
adapter->ptp_caps.max_adj = 250000000; adapter->ptp_caps.max_adj = 250000000;
adapter->ptp_caps.n_alarm = 0; adapter->ptp_caps.n_alarm = 0;
......
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
#define IXGBE_DEV_ID_82599_BACKPLANE_FCOE 0x152a #define IXGBE_DEV_ID_82599_BACKPLANE_FCOE 0x152a
#define IXGBE_DEV_ID_82599_SFP_FCOE 0x1529 #define IXGBE_DEV_ID_82599_SFP_FCOE 0x1529
#define IXGBE_SUBDEV_ID_82599_SFP 0x11A9 #define IXGBE_SUBDEV_ID_82599_SFP 0x11A9
#define IXGBE_SUBDEV_ID_82599_SFP_WOL0 0x1071
#define IXGBE_SUBDEV_ID_82599_RNDC 0x1F72 #define IXGBE_SUBDEV_ID_82599_RNDC 0x1F72
#define IXGBE_SUBDEV_ID_82599_560FLR 0x17D0 #define IXGBE_SUBDEV_ID_82599_560FLR 0x17D0
#define IXGBE_SUBDEV_ID_82599_SP_560FLR 0x211B #define IXGBE_SUBDEV_ID_82599_SP_560FLR 0x211B
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment