summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/igc/igc_main.c
diff options
context:
space:
mode:
authorSasha Neftin <sasha.neftin@intel.com>2018-10-11 10:17:26 +0300
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2018-10-17 13:49:33 -0700
commitc0071c7aa5fe0a6aa4cfc8426af893307ccd276d (patch)
tree4d06a191d99c460db8158f5b328826504c666354 /drivers/net/ethernet/intel/igc/igc_main.c
parent0507ef8a0372b80c30555bbeec7215f2cf874ecd (diff)
downloadlinux-c0071c7aa5fe0a6aa4cfc8426af893307ccd276d.tar.bz2
igc: Add HW initialization code
Add code for hardware initialization and reset Add code for semaphore handling Signed-off-by: Sasha Neftin <sasha.neftin@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_main.c')
-rw-r--r--drivers/net/ethernet/intel/igc/igc_main.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index db7b6820e0f0..f2ad49fcd39b 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -64,6 +64,14 @@ enum latency_range {
static void igc_reset(struct igc_adapter *adapter)
{
+ struct pci_dev *pdev = adapter->pdev;
+ struct igc_hw *hw = &adapter->hw;
+
+ hw->mac.ops.reset_hw(hw);
+
+ if (hw->mac.ops.init_hw(hw))
+ dev_err(&pdev->dev, "Hardware Error\n");
+
if (!netif_running(adapter->netdev))
igc_power_down_link(adapter);
}
@@ -3556,6 +3564,19 @@ static int igc_sw_init(struct igc_adapter *adapter)
}
/**
+ * igc_get_hw_dev - return device
+ * @hw: pointer to hardware structure
+ *
+ * used by hardware layer to print debugging information
+ */
+struct net_device *igc_get_hw_dev(struct igc_hw *hw)
+{
+ struct igc_adapter *adapter = hw->back;
+
+ return adapter->netdev;
+}
+
+/**
* igc_init_module - Driver Registration Routine
*
* igc_init_module is the first routine called when the driver is