diff options
-rw-r--r-- | libre/linux-libre-hardened/net-aquantia-Regression-on-reset-with-1.x-firmware.patch | 68 | ||||
-rw-r--r-- | libre/linux-libre-pck/PKGBUILD | 8 | ||||
-rw-r--r-- | libre/linux-libre-pck/config.x86_64 | 4 |
3 files changed, 6 insertions, 74 deletions
diff --git a/libre/linux-libre-hardened/net-aquantia-Regression-on-reset-with-1.x-firmware.patch b/libre/linux-libre-hardened/net-aquantia-Regression-on-reset-with-1.x-firmware.patch deleted file mode 100644 index 7dda10abf..000000000 --- a/libre/linux-libre-hardened/net-aquantia-Regression-on-reset-with-1.x-firmware.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: Igor Russkikh <igor.russkikh@aquantia.com> -Date: Wed, 11 Apr 2018 15:23:24 +0300 -Subject: net: aquantia: Regression on reset with 1.x firmware - -On ASUS XG-C100C with 1.5.44 firmware a special mode called "dirty wake" -is active. With this mode when motherboard gets powered (but no poweron -happens yet), NIC automatically enables powersave link and watches -for WOL packet. -This normally allows to powerup the PC after AC power failures. - -Not all motherboards or bios settings gives power to PCI slots, -so this mode is not enabled on all the hardware. - -4.16 linux driver introduced full hardware reset sequence -This is required since before that we had no NIC hardware -reset implemented and there were side effects of "not clean start". - -But this full reset is incompatible with "dirty wake" WOL feature -it keeps the PHY link in a special mode forever. As a consequence, -driver sees no link and no traffic. - -To fix this we forcibly change FW state to idle state before doing -the full reset. This makes FW to restore link state. - -Fixes: c8c82eb net: aquantia: Introduce global AQC hardware reset sequence -Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c -index d3b847ec7465..c58b2c227260 100644 ---- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c -+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c -@@ -48,6 +48,8 @@ - #define FORCE_FLASHLESS 0 - - static int hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual); -+static int hw_atl_utils_mpi_set_state(struct aq_hw_s *self, -+ enum hal_atl_utils_fw_state_e state); - - int hw_atl_utils_initfw(struct aq_hw_s *self, const struct aq_fw_ops **fw_ops) - { -@@ -247,6 +249,20 @@ int hw_atl_utils_soft_reset(struct aq_hw_s *self) - - self->rbl_enabled = (boot_exit_code != 0); - -+ /* FW 1.x may bootup in an invalid POWER state (WOL feature). -+ * We should work around this by forcing its state back to DEINIT -+ */ -+ if (!hw_atl_utils_ver_match(HW_ATL_FW_VER_1X, -+ aq_hw_read_reg(self, -+ HW_ATL_MPI_FW_VERSION))) { -+ int err = 0; -+ -+ hw_atl_utils_mpi_set_state(self, MPI_DEINIT); -+ AQ_HW_WAIT_FOR((aq_hw_read_reg(self, HW_ATL_MPI_STATE_ADR) & -+ HW_ATL_MPI_STATE_MSK) == MPI_DEINIT, -+ 10, 1000U); -+ } -+ - if (self->rbl_enabled) - return hw_atl_utils_soft_reset_rbl(self); - else --- -2.17.0 - diff --git a/libre/linux-libre-pck/PKGBUILD b/libre/linux-libre-pck/PKGBUILD index 5416d3f58..cd77112df 100644 --- a/libre/linux-libre-pck/PKGBUILD +++ b/libre/linux-libre-pck/PKGBUILD @@ -11,7 +11,7 @@ pkgbase=linux-libre-pck _pkgbasever=4.16-gnu -_pkgver=4.16.5-gnu +_pkgver=4.16.6-gnu _pckpatchver=pck1 _replacesarchkernel=('linux-zen') @@ -68,9 +68,9 @@ validpgpkeys=( ) sha512sums=('c6805b3649cd71cfef272384958b33da23a00908e795592470bf711dd67886ab7d7610e7d4ae8a2230fa7483466636465ed9744444464a078de37b41c3db23e0' 'SKIP' - '0696f81eccf4c47acd4074f50a6f7dcae38171bbe91d3df14ddaa9692192dfcd9bfa715dfea714460ed3dc59683c7a1fbf9eca0982fffc23537942ad76f0bf72' + '6e23ed3a88bae4be0b07424ad900adce3ca985050f23f5ab9878b54ae3bd8de1868f1dc52d8c66614be7016e2e3ae3efad78a415e4554048fad53fe2106c0b00' 'SKIP' - '9f7840c1bf34b8499ed3872e1aca6abc1df10d4bc7f2c686a11f8cedcd805c383c72b88577a544a33cc27a20daedd06eb08febd55d8d0ff7754745dcfe0f861f' + '95e2fd98d2c20031983949459ae807d1d16d53594551c69e038e2d699fc29379dad7c29df276cd3c7161867bf1bbc9af94ddc43581034fb3b8686902b2c58613' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -79,7 +79,7 @@ sha512sums=('c6805b3649cd71cfef272384958b33da23a00908e795592470bf711dd67886ab7d7 '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' '7c20a20837a849316024ceedd79239d9fd5e40a8f2c34f052f4cacfc15060b761fcf66d2eb79a43f0e9c1fcc11231927ba43a7e5eb5021e58c9eaf136a65f574' - 'cccb219c52870bf217c194c6cda8d842037dbc803d4a55904fa30be8643e9da43260a64d257acbe3f0c08bf963f1c3427437b89ba382e4bf268eeddd2bba5541' + '86506e0d102a1eefafb206f8ddbade767559ccb8d5c46e829bd1ec381580694ea0021de80fd90451f5fdee172fb08e233702d98c6ca1b76cf0d4ab49aa4b14fc' '48158f377cced294c466e8be78dd40b29b6f1f7032580ef81b203387739d3130feebc2295f5493e656b2b685d6ae09b05dad8f48ef5ecae0e973725fb96c26c1' '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44' diff --git a/libre/linux-libre-pck/config.x86_64 b/libre/linux-libre-pck/config.x86_64 index 8fa459076..e429b2146 100644 --- a/libre/linux-libre-pck/config.x86_64 +++ b/libre/linux-libre-pck/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.16.5-gnu-1-pck Kernel Configuration +# Linux/x86 4.16.6-gnu-1-pck Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -599,7 +599,7 @@ CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y # CONFIG_NUMA_EMU is not set -CONFIG_NODES_SHIFT=2 +CONFIG_NODES_SHIFT=5 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y |