[x86] e1000e: Add support for Sunrise Point (i219) (Closes: #784546)
svn path=/dists/sid/linux/; revision=22682
This commit is contained in:
parent
212f2298f1
commit
ceb687e608
|
@ -145,6 +145,7 @@ linux (4.0.4-1) UNRELEASED; urgency=medium
|
|||
- Add support for ACPI identification to xhci-platform
|
||||
* md/raid0: fix restore to sector variable in raid0_make_request
|
||||
(Closes: #786372) (regression in 4.0.2)
|
||||
* [x86] e1000e: Add support for Sunrise Point (i219) (Closes: #784546)
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Mon, 18 May 2015 00:00:06 +0100
|
||||
|
||||
|
|
1363
debian/patches/features/all/e1000e/0001-e1000e-initial-support-for-i219.patch
vendored
Normal file
1363
debian/patches/features/all/e1000e/0001-e1000e-initial-support-for-i219.patch
vendored
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,48 @@
|
|||
From: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Date: Sat, 28 Feb 2015 10:09:34 +0000
|
||||
Subject: e1000e: fix obscure comments
|
||||
Origin: https://git.kernel.org/linus/9d17ce493a3ef1b140a4c831ba72fb435576c75a
|
||||
Bug-Debian: https://bugs.debian.org/784546
|
||||
|
||||
The interface to the device flash was modified in i219 and later HW.
|
||||
This patch better describes the change and the impact on the driver.
|
||||
|
||||
CC: John W Linville <linville@tuxdriver.com>
|
||||
Reported-by: John W Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
|
||||
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
---
|
||||
drivers/net/ethernet/intel/e1000e/ich8lan.c | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
@@ -603,12 +603,15 @@ static s32 e1000_init_nvm_params_ich8lan
|
||||
u16 i;
|
||||
u32 nvm_size;
|
||||
|
||||
- /* Can't read flash registers if the register set isn't mapped. */
|
||||
nvm->type = e1000_nvm_flash_sw;
|
||||
- /* in SPT, gfpreg doesn't exist. NVM size is taken from the
|
||||
- * STRAP register
|
||||
- */
|
||||
+
|
||||
if (hw->mac.type == e1000_pch_spt) {
|
||||
+ /* in SPT, gfpreg doesn't exist. NVM size is taken from the
|
||||
+ * STRAP register. This is because in SPT the GbE Flash region
|
||||
+ * is no longer accessed through the flash registers. Instead,
|
||||
+ * the mechanism has changed, and the Flash region access
|
||||
+ * registers are now implemented in GbE memory space.
|
||||
+ */
|
||||
nvm->flash_base_addr = 0;
|
||||
nvm_size = (((er32(STRAP) >> 1) & 0x1F) + 1)
|
||||
* NVM_SIZE_MULTIPLIER;
|
||||
@@ -618,6 +621,7 @@ static s32 e1000_init_nvm_params_ich8lan
|
||||
/* Set the base address for flash register access */
|
||||
hw->flash_address = hw->hw_addr + E1000_FLASH_BASE_ADDR;
|
||||
} else {
|
||||
+ /* Can't read flash registers if register set isn't mapped. */
|
||||
if (!hw->flash_address) {
|
||||
e_dbg("ERROR: Flash registers not mapped\n");
|
||||
return -E1000_ERR_CONFIG;
|
50
debian/patches/features/all/e1000e/0003-e1000e-remove-calls-to-ioremap-unmap-for-nvm-addr.patch
vendored
Normal file
50
debian/patches/features/all/e1000e/0003-e1000e-remove-calls-to-ioremap-unmap-for-nvm-addr.patch
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
From: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Date: Sat, 28 Feb 2015 10:10:06 +0000
|
||||
Subject: e1000e: remove calls to ioremap/unmap for NVM addr
|
||||
Origin: https://git.kernel.org/linus/1103a631a83408733849b47fa2170cda984df2a3
|
||||
Bug-Debian: https://bugs.debian.org/784546
|
||||
|
||||
Starting I219, the NVM will not be mapped to its own BAR, but to an
|
||||
address region in another bar. The mapping/unmapping is relevant
|
||||
to older HW only.
|
||||
|
||||
CC: John W Linville <linville@tuxdriver.com>
|
||||
Reported-by: John W Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
|
||||
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
---
|
||||
drivers/net/ethernet/intel/e1000e/netdev.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
@@ -6833,7 +6833,8 @@ static int e1000_probe(struct pci_dev *p
|
||||
goto err_ioremap;
|
||||
|
||||
if ((adapter->flags & FLAG_HAS_FLASH) &&
|
||||
- (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
|
||||
+ (pci_resource_flags(pdev, 1) & IORESOURCE_MEM) &&
|
||||
+ (hw->mac.type < e1000_pch_spt)) {
|
||||
flash_start = pci_resource_start(pdev, 1);
|
||||
flash_len = pci_resource_len(pdev, 1);
|
||||
adapter->hw.flash_address = ioremap(flash_start, flash_len);
|
||||
@@ -7069,7 +7070,7 @@ err_hw_init:
|
||||
kfree(adapter->tx_ring);
|
||||
kfree(adapter->rx_ring);
|
||||
err_sw_init:
|
||||
- if (adapter->hw.flash_address)
|
||||
+ if ((adapter->hw.flash_address) && (hw->mac.type < e1000_pch_spt))
|
||||
iounmap(adapter->hw.flash_address);
|
||||
e1000e_reset_interrupt_capability(adapter);
|
||||
err_flashmap:
|
||||
@@ -7142,7 +7143,8 @@ static void e1000_remove(struct pci_dev
|
||||
kfree(adapter->rx_ring);
|
||||
|
||||
iounmap(adapter->hw.hw_addr);
|
||||
- if (adapter->hw.flash_address)
|
||||
+ if ((adapter->hw.flash_address) &&
|
||||
+ (adapter->hw.mac.type < e1000_pch_spt))
|
||||
iounmap(adapter->hw.flash_address);
|
||||
pci_release_selected_regions(pdev,
|
||||
pci_select_bars(pdev, IORESOURCE_MEM));
|
|
@ -0,0 +1,30 @@
|
|||
From: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Date: Fri, 20 Mar 2015 17:41:53 -0700
|
||||
Subject: e1000e: NVM write protect access removed from SPT HW
|
||||
Origin: https://git.kernel.org/linus/152c0a976c71386c67c89969acc427dc5cf802b8
|
||||
Bug-Debian: https://bugs.debian.org/784546
|
||||
|
||||
The call to e1000e_write_protect_nvm_ich8lan() is no longer supported by HW.
|
||||
Access to these registers causes a system freeze in A step hardware and is
|
||||
ignored in B step hardware. This function must not be called in hardware
|
||||
newer than LPT.
|
||||
|
||||
Signed-off-by: Yanir Lubetkin <yanirx.lubetkin@intel.com>
|
||||
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
|
||||
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
---
|
||||
drivers/net/ethernet/intel/e1000e/netdev.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
@@ -6874,7 +6874,8 @@ static int e1000_probe(struct pci_dev *p
|
||||
goto err_hw_init;
|
||||
|
||||
if ((adapter->flags & FLAG_IS_ICH) &&
|
||||
- (adapter->flags & FLAG_READ_ONLY_NVM))
|
||||
+ (adapter->flags & FLAG_READ_ONLY_NVM) &&
|
||||
+ (hw->mac.type < e1000_pch_spt))
|
||||
e1000e_write_protect_nvm_ich8lan(&adapter->hw);
|
||||
|
||||
hw->mac.ops.get_bus_info(&adapter->hw);
|
|
@ -71,3 +71,9 @@ bugfix/all/rtc-hctosys-use-function-name-in-the-error-log.patch
|
|||
features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch
|
||||
features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch
|
||||
bugfix/all/md-raid0-fix-restore-to-sector-variable-in-raid0_make_request.patch
|
||||
|
||||
# Add Sunrise Point support to e1000e
|
||||
features/all/e1000e/0001-e1000e-initial-support-for-i219.patch
|
||||
features/all/e1000e/0002-e1000e-fix-obscure-comments.patch
|
||||
features/all/e1000e/0003-e1000e-remove-calls-to-ioremap-unmap-for-nvm-addr.patch
|
||||
features/all/e1000e/0004-e1000e-nvm-write-protect-access-removed-from-spt-hw.patch
|
||||
|
|
Loading…
Reference in New Issue