From 5c008599d70c211ae5c6fbf55114022fd7a602c3 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 21 Mar 2021 13:48:37 +0000 Subject: sys-kernel/linux-{image,sources}-redcore-lts-legacy : version bump (v5.4.107) --- .../linux-image-redcore-lts-legacy-5.4.105 | 14 - .../linux-image-redcore-lts-legacy-5.4.107 | 14 + .../linux-sources-redcore-lts-legacy-5.4.105 | 13 - .../linux-sources-redcore-lts-legacy-5.4.107 | 13 + metadata/pkg_desc_index | 4 +- sys-kernel/linux-image-redcore-lts-legacy/Manifest | 2 +- .../files/5.4-enable_alx_wol.patch | 474 --------------------- .../linux-image-redcore-lts-legacy-5.4.105.ebuild | 153 ------- .../linux-image-redcore-lts-legacy-5.4.107.ebuild | 152 +++++++ .../linux-sources-redcore-lts-legacy/Manifest | 2 +- .../files/5.4-enable_alx_wol.patch | 474 --------------------- ...linux-sources-redcore-lts-legacy-5.4.105.ebuild | 78 ---- ...linux-sources-redcore-lts-legacy-5.4.107.ebuild | 77 ++++ 13 files changed, 260 insertions(+), 1210 deletions(-) delete mode 100644 metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.105 create mode 100644 metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.107 delete mode 100644 metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.105 create mode 100644 metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.107 delete mode 100644 sys-kernel/linux-image-redcore-lts-legacy/files/5.4-enable_alx_wol.patch delete mode 100644 sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.105.ebuild create mode 100644 sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.107.ebuild delete mode 100644 sys-kernel/linux-sources-redcore-lts-legacy/files/5.4-enable_alx_wol.patch delete mode 100644 sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.105.ebuild create mode 100644 sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.107.ebuild diff --git a/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.105 b/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.105 deleted file mode 100644 index 2d472727..00000000 --- a/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.105 +++ /dev/null @@ -1,14 +0,0 @@ -DEFINED_PHASES=compile install postinst postrm prepare setup -DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:5.4.105 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314 -DESCRIPTION=Redcore Linux Kernel Image (LTS Legacy 5.4) -EAPI=6 -HOMEPAGE=https://redcorelinux.org -IUSE=+cryptsetup +dmraid +dracut +dkms +mdadm -KEYWORDS=~amd64 -LICENSE=GPL-2 -RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:5.4.105 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314 -RESTRICT=binchecks strip mirror -SLOT=5.4.105 -SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.105.tar.xz -_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch e8f1ec13660dc2f44b32775765d85e42 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 2d5b3f4b315094768576b6799e4f926e l10n 8cdd85e169b835d518bc2fd59f780d8e ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib d410501a125f99ffb560b0c523cd3d1e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 24921b57d6561d87cbef4916a296ada4 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf wrapper 4251d4c84c25f59094fd557e0063a974 -_md5_=b8e06ec635b7e35c325335d9baba8d69 diff --git a/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.107 b/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.107 new file mode 100644 index 00000000..9136c57a --- /dev/null +++ b/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-legacy-5.4.107 @@ -0,0 +1,14 @@ +DEFINED_PHASES=compile install postinst postrm prepare setup +DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:5.4.107 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314 +DESCRIPTION=Redcore Linux Kernel Image (LTS Legacy 5.4) +EAPI=6 +HOMEPAGE=https://redcorelinux.org +IUSE=+cryptsetup +dmraid +dracut +dkms +mdadm +KEYWORDS=~amd64 +LICENSE=GPL-2 +RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:5.4.107 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314 +RESTRICT=binchecks strip mirror +SLOT=5.4.107 +SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.107.tar.xz +_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch e8f1ec13660dc2f44b32775765d85e42 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 2d5b3f4b315094768576b6799e4f926e l10n 8cdd85e169b835d518bc2fd59f780d8e ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib d410501a125f99ffb560b0c523cd3d1e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 24921b57d6561d87cbef4916a296ada4 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf wrapper 4251d4c84c25f59094fd557e0063a974 +_md5_=365875a906335f0725980ec7ac09753e diff --git a/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.105 b/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.105 deleted file mode 100644 index aaef5a8d..00000000 --- a/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.105 +++ /dev/null @@ -1,13 +0,0 @@ -DEFINED_PHASES=compile install postrm prepare setup -DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make -DESCRIPTION=Redcore Linux Kernel Sources (LTS Legacy 5.4) -EAPI=6 -HOMEPAGE=https://redcorelinux.org -KEYWORDS=~amd64 -LICENSE=GPL-2 -RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make -RESTRICT=strip mirror -SLOT=5.4.105 -SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.105.tar.xz -_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch e8f1ec13660dc2f44b32775765d85e42 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 2d5b3f4b315094768576b6799e4f926e l10n 8cdd85e169b835d518bc2fd59f780d8e ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib d410501a125f99ffb560b0c523cd3d1e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 24921b57d6561d87cbef4916a296ada4 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf wrapper 4251d4c84c25f59094fd557e0063a974 -_md5_=c2145c5f9810439a4217bfdf46e8fa05 diff --git a/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.107 b/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.107 new file mode 100644 index 00000000..628b4110 --- /dev/null +++ b/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-legacy-5.4.107 @@ -0,0 +1,13 @@ +DEFINED_PHASES=compile install postrm prepare setup +DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make +DESCRIPTION=Redcore Linux Kernel Sources (LTS Legacy 5.4) +EAPI=6 +HOMEPAGE=https://redcorelinux.org +KEYWORDS=~amd64 +LICENSE=GPL-2 +RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make +RESTRICT=strip mirror +SLOT=5.4.107 +SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.107.tar.xz +_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch e8f1ec13660dc2f44b32775765d85e42 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 2d5b3f4b315094768576b6799e4f926e l10n 8cdd85e169b835d518bc2fd59f780d8e ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib d410501a125f99ffb560b0c523cd3d1e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 24921b57d6561d87cbef4916a296ada4 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf wrapper 4251d4c84c25f59094fd557e0063a974 +_md5_=c231d46ee58eb91bce523fa965b78275 diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index c39efacd..58348022 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -65,10 +65,10 @@ sys-kernel/dracutcfg 1337: Redcore Linux Dracut configuration files sys-kernel/linux-headers 5.9-r10: Linux system headers sys-kernel/linux-image-redcore 5.11.6: Redcore Linux Kernel Image sys-kernel/linux-image-redcore-lts 5.10.23: Redcore Linux Kernel Image (LTS) -sys-kernel/linux-image-redcore-lts-legacy 5.4.105: Redcore Linux Kernel Image (LTS Legacy 5.4) +sys-kernel/linux-image-redcore-lts-legacy 5.4.107: Redcore Linux Kernel Image (LTS Legacy 5.4) sys-kernel/linux-sources-redcore 5.11.6: Redcore Linux Kernel Sources sys-kernel/linux-sources-redcore-lts 5.10.23: Redcore Linux Kernel Sources (LTS) -sys-kernel/linux-sources-redcore-lts-legacy 5.4.105: Redcore Linux Kernel Sources (LTS Legacy 5.4) +sys-kernel/linux-sources-redcore-lts-legacy 5.4.107: Redcore Linux Kernel Sources (LTS Legacy 5.4) sys-kernel/nvidia-drivers-dkms 460.56: NVIDIA driver sources for linux sys-kernel/nvidia-drivers-legacy-dkms 390.141-r1: NVIDIA driver sources for linux sys-kernel/rtl8821cu-dkms 5.8.1: Realtek RTL8811CU/RTL8821CU USB Wi-Fi adapter driver for Linux diff --git a/sys-kernel/linux-image-redcore-lts-legacy/Manifest b/sys-kernel/linux-image-redcore-lts-legacy/Manifest index 9877ca4f..6842fd6a 100644 --- a/sys-kernel/linux-image-redcore-lts-legacy/Manifest +++ b/sys-kernel/linux-image-redcore-lts-legacy/Manifest @@ -1 +1 @@ -DIST linux-5.4.105.tar.xz 109086968 BLAKE2B 5a575d3fc8e7f51eeb244194a7e947dd4bf72890d7a4b90aa77f49f1b7c6c9d79bb03d68275608820642af6513402dc26f2179941f311d6357b722983000c457 SHA512 423be7e90bf49a4afa7f6f3dc8a8bfa9a1691b73ccdc081bf5bcfe0612a084b8cb37acdab77a480629d786cf6d66d48cbed84d505bd27d6f4d815934010eafe7 +DIST linux-5.4.107.tar.xz 109090520 BLAKE2B b648ef7f1b921b17cc09be348b5fbd85919bc6d7542dd4e6751817185546a9019d06a336648796ca21bddab8667e4b058da8283779feb1c6d0822a8aeee4b42a SHA512 4e402cbfc9e0f7d357c804984d59577a2af7b4d49255b4e4060d4340e4514087ae40c35726986cd822587339a3025cbf35278e960332c75cafa6813c998557e1 diff --git a/sys-kernel/linux-image-redcore-lts-legacy/files/5.4-enable_alx_wol.patch b/sys-kernel/linux-image-redcore-lts-legacy/files/5.4-enable_alx_wol.patch deleted file mode 100644 index 55505fbd..00000000 --- a/sys-kernel/linux-image-redcore-lts-legacy/files/5.4-enable_alx_wol.patch +++ /dev/null @@ -1,474 +0,0 @@ -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/ethtool.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/ethtool.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/ethtool.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/ethtool.c 2019-12-03 14:24:48.939847862 +0100 -@@ -310,11 +310,47 @@ - } - } - -+static void alx_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) -+{ -+ struct alx_priv *alx = netdev_priv(netdev); -+ struct alx_hw *hw = &alx->hw; -+ -+ wol->supported = WAKE_MAGIC | WAKE_PHY; -+ wol->wolopts = 0; -+ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC) -+ wol->wolopts |= WAKE_MAGIC; -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) -+ wol->wolopts |= WAKE_PHY; -+} -+ -+static int alx_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) -+{ -+ struct alx_priv *alx = netdev_priv(netdev); -+ struct alx_hw *hw = &alx->hw; -+ -+ if (wol->wolopts & ~(WAKE_MAGIC | WAKE_PHY)) -+ return -EOPNOTSUPP; -+ -+ hw->sleep_ctrl = 0; -+ -+ if (wol->wolopts & WAKE_MAGIC) -+ hw->sleep_ctrl |= ALX_SLEEP_WOL_MAGIC; -+ if (wol->wolopts & WAKE_PHY) -+ hw->sleep_ctrl |= ALX_SLEEP_WOL_PHY; -+ -+ device_set_wakeup_enable(&alx->hw.pdev->dev, hw->sleep_ctrl); -+ -+ return 0; -+} -+ - const struct ethtool_ops alx_ethtool_ops = { - .get_pauseparam = alx_get_pauseparam, - .set_pauseparam = alx_set_pauseparam, - .get_msglevel = alx_get_msglevel, - .set_msglevel = alx_set_msglevel, -+ .get_wol = alx_get_wol, -+ .set_wol = alx_set_wol, - .get_link = ethtool_op_get_link, - .get_strings = alx_get_strings, - .get_sset_count = alx_get_sset_count, -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.c 2019-12-03 14:24:48.939847862 +0100 -@@ -332,6 +332,16 @@ - alx_write_mem32(hw, ALX_STAD1, val); - } - -+static void alx_enable_osc(struct alx_hw *hw) -+{ -+ u32 val; -+ -+ /* rising edge */ -+ val = alx_read_mem32(hw, ALX_MISC); -+ alx_write_mem32(hw, ALX_MISC, val & ~ALX_MISC_INTNLOSC_OPEN); -+ alx_write_mem32(hw, ALX_MISC, val | ALX_MISC_INTNLOSC_OPEN); -+} -+ - static void alx_reset_osc(struct alx_hw *hw, u8 rev) - { - u32 val, val2; -@@ -848,6 +858,66 @@ - } - } - -+ -+/* NOTE: -+ * 1. phy link must be established before calling this function -+ * 2. wol option (pattern,magic,link,etc.) is configed before call it. -+ */ -+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex) -+{ -+ u32 master, mac, phy, val; -+ int err = 0; -+ -+ master = alx_read_mem32(hw, ALX_MASTER); -+ master &= ~ALX_MASTER_PCLKSEL_SRDS; -+ mac = hw->rx_ctrl; -+ /* 10/100 half */ -+ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED, ALX_MAC_CTRL_SPEED_10_100); -+ mac &= ~(ALX_MAC_CTRL_FULLD | ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_TX_EN); -+ -+ phy = alx_read_mem32(hw, ALX_PHY_CTRL); -+ phy &= ~(ALX_PHY_CTRL_DSPRST_OUT | ALX_PHY_CTRL_CLS); -+ phy |= ALX_PHY_CTRL_RST_ANALOG | ALX_PHY_CTRL_HIB_PULSE | -+ ALX_PHY_CTRL_HIB_EN; -+ -+ /* without any activity */ -+ if (!(hw->sleep_ctrl & ALX_SLEEP_ACTIVE)) { -+ err = alx_write_phy_reg(hw, ALX_MII_IER, 0); -+ if (err) -+ return err; -+ phy |= ALX_PHY_CTRL_IDDQ | ALX_PHY_CTRL_POWER_DOWN; -+ } else { -+ if (hw->sleep_ctrl & (ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_CIFS)) -+ mac |= ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_BRD_EN; -+ if (hw->sleep_ctrl & ALX_SLEEP_CIFS) -+ mac |= ALX_MAC_CTRL_TX_EN; -+ if (duplex == DUPLEX_FULL) -+ mac |= ALX_MAC_CTRL_FULLD; -+ if (speed == SPEED_1000) -+ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED, -+ ALX_MAC_CTRL_SPEED_1000); -+ phy |= ALX_PHY_CTRL_DSPRST_OUT; -+ err = alx_write_phy_ext(hw, ALX_MIIEXT_ANEG, -+ ALX_MIIEXT_S3DIG10, -+ ALX_MIIEXT_S3DIG10_SL); -+ if (err) -+ return err; -+ } -+ -+ alx_enable_osc(hw); -+ hw->rx_ctrl = mac; -+ alx_write_mem32(hw, ALX_MASTER, master); -+ alx_write_mem32(hw, ALX_MAC_CTRL, mac); -+ alx_write_mem32(hw, ALX_PHY_CTRL, phy); -+ -+ /* set val of PDLL D3PLLOFF */ -+ val = alx_read_mem32(hw, ALX_PDLL_TRNS1); -+ val |= ALX_PDLL_TRNS1_D3PLLOFF_EN; -+ alx_write_mem32(hw, ALX_PDLL_TRNS1, val); -+ -+ return 0; -+} -+ - bool alx_phy_configured(struct alx_hw *hw) - { - u32 cfg, hw_cfg; -@@ -920,6 +990,26 @@ - return alx_read_phy_reg(hw, ALX_MII_ISR, &isr); - } - -+int alx_config_wol(struct alx_hw *hw) -+{ -+ u32 wol = 0; -+ int err = 0; -+ -+ /* turn on magic packet event */ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC) -+ wol |= ALX_WOL0_MAGIC_EN | ALX_WOL0_PME_MAGIC_EN; -+ -+ /* turn on link up event */ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) { -+ wol |= ALX_WOL0_LINK_EN | ALX_WOL0_PME_LINK; -+ /* only link up can wake up */ -+ err = alx_write_phy_reg(hw, ALX_MII_IER, ALX_IER_LINK_UP); -+ } -+ alx_write_mem32(hw, ALX_WOL0, wol); -+ -+ return err; -+} -+ - void alx_disable_rss(struct alx_hw *hw) - { - u32 ctrl = alx_read_mem32(hw, ALX_RXQ0); -@@ -1045,6 +1135,71 @@ - } - - -+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex) -+{ -+ int i, err; -+ u16 lpa; -+ -+ err = alx_read_phy_link(hw); -+ if (err) -+ return err; -+ -+ if (hw->link_speed == SPEED_UNKNOWN) { -+ *speed = SPEED_UNKNOWN; -+ *duplex = DUPLEX_UNKNOWN; -+ return 0; -+ } -+ -+ err = alx_read_phy_reg(hw, MII_LPA, &lpa); -+ if (err) -+ return err; -+ -+ if (!(lpa & LPA_LPACK)) { -+ *speed = hw->link_speed; -+ return 0; -+ } -+ -+ if (lpa & LPA_10FULL) { -+ *speed = SPEED_10; -+ *duplex = DUPLEX_FULL; -+ } else if (lpa & LPA_10HALF) { -+ *speed = SPEED_10; -+ *duplex = DUPLEX_HALF; -+ } else if (lpa & LPA_100FULL) { -+ *speed = SPEED_100; -+ *duplex = DUPLEX_FULL; -+ } else { -+ *speed = SPEED_100; -+ *duplex = DUPLEX_HALF; -+ } -+ -+ if (*speed == hw->link_speed && *duplex == hw->duplex) -+ return 0; -+ err = alx_write_phy_reg(hw, ALX_MII_IER, 0); -+ if (err) -+ return err; -+ err = alx_setup_speed_duplex(hw, alx_speed_to_ethadv(*speed, *duplex) | -+ ADVERTISED_Autoneg, ALX_FC_ANEG | -+ ALX_FC_RX | ALX_FC_TX); -+ if (err) -+ return err; -+ -+ /* wait for linkup */ -+ for (i = 0; i < ALX_MAX_SETUP_LNK_CYCLE; i++) { -+ msleep(100); -+ -+ err = alx_read_phy_link(hw); -+ if (err < 0) -+ return err; -+ if (hw->link_speed != SPEED_UNKNOWN) -+ break; -+ } -+ if (i == ALX_MAX_SETUP_LNK_CYCLE) -+ return -ETIMEDOUT; -+ -+ return 0; -+} -+ - bool alx_get_phy_info(struct alx_hw *hw) - { - u16 devs1, devs2; -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.h linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.h ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.h 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.h 2019-12-03 14:24:48.940847869 +0100 -@@ -487,6 +487,8 @@ - u8 flowctrl; - u32 adv_cfg; - -+ u32 sleep_ctrl; -+ - spinlock_t mdio_lock; - struct mdio_if_info mdio; - u16 phy_id[2]; -@@ -549,12 +551,14 @@ - void alx_enable_aspm(struct alx_hw *hw, bool l0s_en, bool l1_en); - int alx_setup_speed_duplex(struct alx_hw *hw, u32 ethadv, u8 flowctrl); - void alx_post_phy_link(struct alx_hw *hw); -+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex); - int alx_read_phy_reg(struct alx_hw *hw, u16 reg, u16 *phy_data); - int alx_write_phy_reg(struct alx_hw *hw, u16 reg, u16 phy_data); - int alx_read_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 *pdata); - int alx_write_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 data); - int alx_read_phy_link(struct alx_hw *hw); - int alx_clear_phy_intr(struct alx_hw *hw); -+int alx_config_wol(struct alx_hw *hw); - void alx_cfg_mac_flowcontrol(struct alx_hw *hw, u8 fc); - void alx_start_mac(struct alx_hw *hw); - int alx_reset_mac(struct alx_hw *hw); -@@ -563,6 +567,7 @@ - void alx_configure_basic(struct alx_hw *hw); - void alx_mask_msix(struct alx_hw *hw, int index, bool mask); - void alx_disable_rss(struct alx_hw *hw); -+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex); - bool alx_get_phy_info(struct alx_hw *hw); - void alx_update_hw_stats(struct alx_hw *hw); - -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/main.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/main.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/main.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/main.c 2019-12-03 14:24:48.940847869 +0100 -@@ -1069,6 +1069,7 @@ - alx->dev->max_mtu = ALX_MAX_FRAME_LEN(ALX_MAX_FRAME_SIZE); - alx->tx_ringsz = 256; - alx->rx_ringsz = 512; -+ hw->sleep_ctrl = ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_WOL_PHY; - hw->imt = 200; - alx->int_mask = ALX_ISR_MISC; - hw->dma_chnl = hw->max_dma_chnl; -@@ -1343,6 +1344,66 @@ - return 0; - } - -+static int __alx_shutdown(struct pci_dev *pdev, bool *wol_en) -+{ -+ struct alx_priv *alx = pci_get_drvdata(pdev); -+ struct net_device *netdev = alx->dev; -+ struct alx_hw *hw = &alx->hw; -+ int err, speed; -+ u8 duplex; -+ -+ netif_device_detach(netdev); -+ -+ if (netif_running(netdev)) -+ __alx_stop(alx); -+ -+#ifdef CONFIG_PM_SLEEP -+ err = pci_save_state(pdev); -+ if (err) -+ return err; -+#endif -+ -+ err = alx_select_powersaving_speed(hw, &speed, &duplex); -+ if (err) -+ return err; -+ err = alx_clear_phy_intr(hw); -+ if (err) -+ return err; -+ err = alx_pre_suspend(hw, speed, duplex); -+ if (err) -+ return err; -+ err = alx_config_wol(hw); -+ if (err) -+ return err; -+ -+ *wol_en = false; -+ if (hw->sleep_ctrl & ALX_SLEEP_ACTIVE) { -+ netif_info(alx, wol, netdev, -+ "wol: ctrl=%X, speed=%X\n", -+ hw->sleep_ctrl, speed); -+ device_set_wakeup_enable(&pdev->dev, true); -+ *wol_en = true; -+ } -+ -+ pci_disable_device(pdev); -+ -+ return 0; -+} -+ -+static void alx_shutdown(struct pci_dev *pdev) -+{ -+ int err; -+ bool wol_en; -+ -+ err = __alx_shutdown(pdev, &wol_en); -+ if (!err) { -+ pci_wake_from_d3(pdev, wol_en); -+ pci_set_power_state(pdev, PCI_D3hot); -+ } else { -+ dev_err(&pdev->dev, "shutdown fail %d\n", err); -+ } -+} -+ - static void alx_link_check(struct work_struct *work) - { - struct alx_priv *alx; -@@ -1836,6 +1897,7 @@ - goto out_unmap; - } - -+ device_set_wakeup_enable(&pdev->dev, hw->sleep_ctrl); - netdev_info(netdev, - "Qualcomm Atheros AR816x/AR817x Ethernet [%pM]\n", - netdev->dev_addr); -@@ -1878,37 +1940,70 @@ - static int alx_suspend(struct device *dev) - { - struct alx_priv *alx = dev_get_drvdata(dev); -+ struct pci_dev *pdev = alx->hw.pdev; -+ int err; -+ bool wol_en; - -- if (!netif_running(alx->dev)) -- return 0; -- netif_device_detach(alx->dev); -- __alx_stop(alx); -+ err = __alx_shutdown(pdev, &wol_en); -+ if (err) { -+ dev_err(&pdev->dev, "shutdown fail in suspend %d\n", err); -+ return err; -+ } -+ -+ if (wol_en) { -+ pci_prepare_to_sleep(pdev); -+ } else { -+ pci_wake_from_d3(pdev, false); -+ pci_set_power_state(pdev, PCI_D3hot); -+ } - return 0; - } - - static int alx_resume(struct device *dev) - { - struct alx_priv *alx = dev_get_drvdata(dev); -+ struct net_device *netdev = alx->dev; - struct alx_hw *hw = &alx->hw; -+ struct pci_dev *pdev = hw->pdev; - int err; - -+ pci_set_power_state(pdev, PCI_D0); -+ pci_restore_state(pdev); -+ pci_save_state(pdev); -+ -+ pci_enable_wake(pdev, PCI_D3hot, 0); -+ pci_enable_wake(pdev, PCI_D3cold, 0); -+ -+ hw->link_speed = SPEED_UNKNOWN; -+ alx->int_mask = ALX_ISR_MISC; -+ -+ alx_reset_pcie(hw); - alx_reset_phy(hw); - -- if (!netif_running(alx->dev)) -- return 0; -- netif_device_attach(alx->dev); -+ err = alx_reset_mac(hw); -+ if (err) { -+ netif_err(alx, hw, alx->dev, -+ "resume:reset_mac fail %d\n", err); -+ return -EIO; -+ } - -- rtnl_lock(); -- err = __alx_open(alx, true); -- rtnl_unlock(); -+ err = alx_setup_speed_duplex(hw, hw->adv_cfg, hw->flowctrl); -+ if (err) { -+ netif_err(alx, hw, alx->dev, -+ "resume:setup_speed_duplex fail %d\n", err); -+ return -EIO; -+ } -+ -+ if (netif_running(netdev)) { -+ err = __alx_open(alx, true); -+ if (err) -+ return err; -+ } - -- return err; -+ netif_device_attach(netdev); -+ return err; - } - --static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume); --#define ALX_PM_OPS (&alx_pm_ops) --#else --#define ALX_PM_OPS NULL - #endif - - -@@ -1954,6 +2049,8 @@ - } - - pci_set_master(pdev); -+ pci_enable_wake(pdev, PCI_D3hot, 0); -+ pci_enable_wake(pdev, PCI_D3cold, 0); - - alx_reset_pcie(hw); - if (!alx_reset_mac(hw)) -@@ -2003,11 +2100,20 @@ - {} - }; - -+#ifdef CONFIG_PM_SLEEP -+static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume); -+#define ALX_PM_OPS (&alx_pm_ops) -+#else -+#define ALX_PM_OPS NULL -+#endif -+ -+ - static struct pci_driver alx_driver = { - .name = alx_drv_name, - .id_table = alx_pci_tbl, - .probe = alx_probe, - .remove = alx_remove, -+ .shutdown = alx_shutdown, - .err_handler = &alx_err_handlers, - .driver.pm = ALX_PM_OPS, - }; diff --git a/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.105.ebuild b/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.105.ebuild deleted file mode 100644 index 2c9e5f86..00000000 --- a/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.105.ebuild +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils - -EXTRAVERSION="redcore-lts-legacy" -KV_FULL="${PV}-${EXTRAVERSION}" -KV_MAJOR="5.4" - -DESCRIPTION="Redcore Linux Kernel Image (LTS Legacy 5.4)" -HOMEPAGE="https://redcorelinux.org" -SRC_URI="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" - -KEYWORDS="~amd64" -LICENSE="GPL-2" -SLOT="${PVR}" -IUSE="+cryptsetup +dmraid +dracut +dkms +mdadm" - -RESTRICT="binchecks strip mirror" -DEPEND=" - app-arch/lz4 - app-arch/xz-utils - sys-devel/autoconf - sys-devel/bc - sys-devel/make - cryptsetup? ( sys-fs/cryptsetup ) - dmraid? ( sys-fs/dmraid ) - dracut? ( >=sys-kernel/dracut-0.44-r8 ) - dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:${SLOT} ) - mdadm? ( sys-fs/mdadm ) - >=sys-kernel/linux-firmware-20180314" -RDEPEND="${DEPEND}" - -PATCHES=( - "${FILESDIR}"/"${KV_MAJOR}"-enable_alx_wol.patch - "${FILESDIR}"/"${KV_MAJOR}"-drop_ancient-and-wrong-msg.patch - "${FILESDIR}"/"${KV_MAJOR}"-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch - "${FILESDIR}"/"${KV_MAJOR}"-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch - "${FILESDIR}"/"${KV_MAJOR}"-acpi-use-kern_warning_even_when_error.patch - "${FILESDIR}"/"${KV_MAJOR}"-ath10k-be-quiet.patch - "${FILESDIR}"/"${KV_MAJOR}"-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-suspend-resume-workaround.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-pci-more-info.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-hwmon.patch - "${FILESDIR}"/"${KV_MAJOR}"-linux-hardened.patch - "${FILESDIR}"/"${KV_MAJOR}"-uksm-linux-hardened.patch -) - -S="${WORKDIR}"/linux-"${PV}" - -pkg_setup() { - export KBUILD_BUILD_USER="nexus" - export KBUILD_BUILD_HOST="nexus.redcorelinux.org" - - export REAL_ARCH="$ARCH" - unset ARCH ; unset LDFLAGS #will interfere with Makefile if set -} - -src_prepare() { - default - emake mrproper - sed -ri "s|^(EXTRAVERSION =).*|\1 -${EXTRAVERSION}|" Makefile - cp "${FILESDIR}"/"${KV_MAJOR}"-amd64.config .config - rm -rf $(find . -type f|grep -F \.orig) -} - -src_compile() { - emake prepare modules_prepare bzImage modules -} - -src_install() { - dodir boot - insinto boot - newins .config config-"${KV_FULL}" - newins System.map System.map-"${KV_FULL}" - newins arch/x86/boot/bzImage vmlinuz-"${KV_FULL}" - - dodir usr/src/linux-"${KV_FULL}" - insinto usr/src/linux-"${KV_FULL}" - doins Module.symvers - doins System.map - exeinto usr/src/linux-"${KV_FULL}" - doexe vmlinux - - emake INSTALL_MOD_PATH="${D}" modules_install - - rm -f "${D}"lib/modules/"${KV_FULL}"/build - rm -f "${D}"lib/modules/"${KV_FULL}"/source - export local KSYMS - for KSYMS in build source ; do - dosym ../../../usr/src/linux-"${KV_FULL}" lib/modules/"${KV_FULL}"/"${KSYMS}" - done -} - -_grub2_update_grubcfg() { - if [[ -x $(which grub2-mkconfig) ]]; then - elog "Updating GRUB-2 bootloader configuration, please wait" - grub2-mkconfig -o "${ROOT}"boot/grub/grub.cfg - else - elog "It looks like you're not using GRUB-2, you must update bootloader configuration by hand" - fi -} - -_dracut_initrd_create() { - if [[ -x $(which dracut) ]]; then - elog "Generating initrd for "${KV_FULL}", please wait" - addpredict /etc/ld.so.cache~ - dracut -N -f --kver="${KV_FULL}" "${ROOT}"boot/initrd-"${KV_FULL}" - else - elog "It looks like you're not using dracut, you must generate an initrd by hand" - fi -} - -_dracut_initrd_delete() { - rm -rf "${ROOT}"boot/initrd-"${KV_FULL}" -} - -_dkms_modules_delete() { - if [[ -x $(which dkms) ]] ; then - export local DKMSMOD - for DKMSMOD in $(dkms status | cut -d " " -f1,2 | sed -e 's/,//g' | sed -e 's/ /\//g' | sed -e 's/://g' | uniq) ; do - dkms remove "${DKMSMOD}" -k "${KV_FULL}" - done - fi -} - -_kernel_modules_delete() { - rm -rf "${ROOT}"lib/modules/"${KV_FULL}" -} - -pkg_postinst() { - if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then - if use dracut; then - _dracut_initrd_create - fi - _grub2_update_grubcfg - fi -} - -pkg_postrm() { - if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then - if use dracut; then - _dracut_initrd_delete - fi - _grub2_update_grubcfg - fi - if use dkms; then - _dkms_modules_delete - fi - _kernel_modules_delete -} diff --git a/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.107.ebuild b/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.107.ebuild new file mode 100644 index 00000000..b17b5e6c --- /dev/null +++ b/sys-kernel/linux-image-redcore-lts-legacy/linux-image-redcore-lts-legacy-5.4.107.ebuild @@ -0,0 +1,152 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils + +EXTRAVERSION="redcore-lts-legacy" +KV_FULL="${PV}-${EXTRAVERSION}" +KV_MAJOR="5.4" + +DESCRIPTION="Redcore Linux Kernel Image (LTS Legacy 5.4)" +HOMEPAGE="https://redcorelinux.org" +SRC_URI="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" + +KEYWORDS="~amd64" +LICENSE="GPL-2" +SLOT="${PVR}" +IUSE="+cryptsetup +dmraid +dracut +dkms +mdadm" + +RESTRICT="binchecks strip mirror" +DEPEND=" + app-arch/lz4 + app-arch/xz-utils + sys-devel/autoconf + sys-devel/bc + sys-devel/make + cryptsetup? ( sys-fs/cryptsetup ) + dmraid? ( sys-fs/dmraid ) + dracut? ( >=sys-kernel/dracut-0.44-r8 ) + dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts-legacy:${SLOT} ) + mdadm? ( sys-fs/mdadm ) + >=sys-kernel/linux-firmware-20180314" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/"${KV_MAJOR}"-drop_ancient-and-wrong-msg.patch + "${FILESDIR}"/"${KV_MAJOR}"-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch + "${FILESDIR}"/"${KV_MAJOR}"-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch + "${FILESDIR}"/"${KV_MAJOR}"-acpi-use-kern_warning_even_when_error.patch + "${FILESDIR}"/"${KV_MAJOR}"-ath10k-be-quiet.patch + "${FILESDIR}"/"${KV_MAJOR}"-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-suspend-resume-workaround.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-pci-more-info.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-hwmon.patch + "${FILESDIR}"/"${KV_MAJOR}"-linux-hardened.patch + "${FILESDIR}"/"${KV_MAJOR}"-uksm-linux-hardened.patch +) + +S="${WORKDIR}"/linux-"${PV}" + +pkg_setup() { + export KBUILD_BUILD_USER="nexus" + export KBUILD_BUILD_HOST="nexus.redcorelinux.org" + + export REAL_ARCH="$ARCH" + unset ARCH ; unset LDFLAGS #will interfere with Makefile if set +} + +src_prepare() { + default + emake mrproper + sed -ri "s|^(EXTRAVERSION =).*|\1 -${EXTRAVERSION}|" Makefile + cp "${FILESDIR}"/"${KV_MAJOR}"-amd64.config .config + rm -rf $(find . -type f|grep -F \.orig) +} + +src_compile() { + emake prepare modules_prepare bzImage modules +} + +src_install() { + dodir boot + insinto boot + newins .config config-"${KV_FULL}" + newins System.map System.map-"${KV_FULL}" + newins arch/x86/boot/bzImage vmlinuz-"${KV_FULL}" + + dodir usr/src/linux-"${KV_FULL}" + insinto usr/src/linux-"${KV_FULL}" + doins Module.symvers + doins System.map + exeinto usr/src/linux-"${KV_FULL}" + doexe vmlinux + + emake INSTALL_MOD_PATH="${D}" modules_install + + rm -f "${D}"lib/modules/"${KV_FULL}"/build + rm -f "${D}"lib/modules/"${KV_FULL}"/source + export local KSYMS + for KSYMS in build source ; do + dosym ../../../usr/src/linux-"${KV_FULL}" lib/modules/"${KV_FULL}"/"${KSYMS}" + done +} + +_grub2_update_grubcfg() { + if [[ -x $(which grub2-mkconfig) ]]; then + elog "Updating GRUB-2 bootloader configuration, please wait" + grub2-mkconfig -o "${ROOT}"boot/grub/grub.cfg + else + elog "It looks like you're not using GRUB-2, you must update bootloader configuration by hand" + fi +} + +_dracut_initrd_create() { + if [[ -x $(which dracut) ]]; then + elog "Generating initrd for "${KV_FULL}", please wait" + addpredict /etc/ld.so.cache~ + dracut -N -f --kver="${KV_FULL}" "${ROOT}"boot/initrd-"${KV_FULL}" + else + elog "It looks like you're not using dracut, you must generate an initrd by hand" + fi +} + +_dracut_initrd_delete() { + rm -rf "${ROOT}"boot/initrd-"${KV_FULL}" +} + +_dkms_modules_delete() { + if [[ -x $(which dkms) ]] ; then + export local DKMSMOD + for DKMSMOD in $(dkms status | cut -d " " -f1,2 | sed -e 's/,//g' | sed -e 's/ /\//g' | sed -e 's/://g' | uniq) ; do + dkms remove "${DKMSMOD}" -k "${KV_FULL}" + done + fi +} + +_kernel_modules_delete() { + rm -rf "${ROOT}"lib/modules/"${KV_FULL}" +} + +pkg_postinst() { + if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then + if use dracut; then + _dracut_initrd_create + fi + _grub2_update_grubcfg + fi +} + +pkg_postrm() { + if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then + if use dracut; then + _dracut_initrd_delete + fi + _grub2_update_grubcfg + fi + if use dkms; then + _dkms_modules_delete + fi + _kernel_modules_delete +} diff --git a/sys-kernel/linux-sources-redcore-lts-legacy/Manifest b/sys-kernel/linux-sources-redcore-lts-legacy/Manifest index 9877ca4f..6842fd6a 100644 --- a/sys-kernel/linux-sources-redcore-lts-legacy/Manifest +++ b/sys-kernel/linux-sources-redcore-lts-legacy/Manifest @@ -1 +1 @@ -DIST linux-5.4.105.tar.xz 109086968 BLAKE2B 5a575d3fc8e7f51eeb244194a7e947dd4bf72890d7a4b90aa77f49f1b7c6c9d79bb03d68275608820642af6513402dc26f2179941f311d6357b722983000c457 SHA512 423be7e90bf49a4afa7f6f3dc8a8bfa9a1691b73ccdc081bf5bcfe0612a084b8cb37acdab77a480629d786cf6d66d48cbed84d505bd27d6f4d815934010eafe7 +DIST linux-5.4.107.tar.xz 109090520 BLAKE2B b648ef7f1b921b17cc09be348b5fbd85919bc6d7542dd4e6751817185546a9019d06a336648796ca21bddab8667e4b058da8283779feb1c6d0822a8aeee4b42a SHA512 4e402cbfc9e0f7d357c804984d59577a2af7b4d49255b4e4060d4340e4514087ae40c35726986cd822587339a3025cbf35278e960332c75cafa6813c998557e1 diff --git a/sys-kernel/linux-sources-redcore-lts-legacy/files/5.4-enable_alx_wol.patch b/sys-kernel/linux-sources-redcore-lts-legacy/files/5.4-enable_alx_wol.patch deleted file mode 100644 index 55505fbd..00000000 --- a/sys-kernel/linux-sources-redcore-lts-legacy/files/5.4-enable_alx_wol.patch +++ /dev/null @@ -1,474 +0,0 @@ -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/ethtool.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/ethtool.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/ethtool.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/ethtool.c 2019-12-03 14:24:48.939847862 +0100 -@@ -310,11 +310,47 @@ - } - } - -+static void alx_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) -+{ -+ struct alx_priv *alx = netdev_priv(netdev); -+ struct alx_hw *hw = &alx->hw; -+ -+ wol->supported = WAKE_MAGIC | WAKE_PHY; -+ wol->wolopts = 0; -+ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC) -+ wol->wolopts |= WAKE_MAGIC; -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) -+ wol->wolopts |= WAKE_PHY; -+} -+ -+static int alx_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) -+{ -+ struct alx_priv *alx = netdev_priv(netdev); -+ struct alx_hw *hw = &alx->hw; -+ -+ if (wol->wolopts & ~(WAKE_MAGIC | WAKE_PHY)) -+ return -EOPNOTSUPP; -+ -+ hw->sleep_ctrl = 0; -+ -+ if (wol->wolopts & WAKE_MAGIC) -+ hw->sleep_ctrl |= ALX_SLEEP_WOL_MAGIC; -+ if (wol->wolopts & WAKE_PHY) -+ hw->sleep_ctrl |= ALX_SLEEP_WOL_PHY; -+ -+ device_set_wakeup_enable(&alx->hw.pdev->dev, hw->sleep_ctrl); -+ -+ return 0; -+} -+ - const struct ethtool_ops alx_ethtool_ops = { - .get_pauseparam = alx_get_pauseparam, - .set_pauseparam = alx_set_pauseparam, - .get_msglevel = alx_get_msglevel, - .set_msglevel = alx_set_msglevel, -+ .get_wol = alx_get_wol, -+ .set_wol = alx_set_wol, - .get_link = ethtool_op_get_link, - .get_strings = alx_get_strings, - .get_sset_count = alx_get_sset_count, -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.c 2019-12-03 14:24:48.939847862 +0100 -@@ -332,6 +332,16 @@ - alx_write_mem32(hw, ALX_STAD1, val); - } - -+static void alx_enable_osc(struct alx_hw *hw) -+{ -+ u32 val; -+ -+ /* rising edge */ -+ val = alx_read_mem32(hw, ALX_MISC); -+ alx_write_mem32(hw, ALX_MISC, val & ~ALX_MISC_INTNLOSC_OPEN); -+ alx_write_mem32(hw, ALX_MISC, val | ALX_MISC_INTNLOSC_OPEN); -+} -+ - static void alx_reset_osc(struct alx_hw *hw, u8 rev) - { - u32 val, val2; -@@ -848,6 +858,66 @@ - } - } - -+ -+/* NOTE: -+ * 1. phy link must be established before calling this function -+ * 2. wol option (pattern,magic,link,etc.) is configed before call it. -+ */ -+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex) -+{ -+ u32 master, mac, phy, val; -+ int err = 0; -+ -+ master = alx_read_mem32(hw, ALX_MASTER); -+ master &= ~ALX_MASTER_PCLKSEL_SRDS; -+ mac = hw->rx_ctrl; -+ /* 10/100 half */ -+ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED, ALX_MAC_CTRL_SPEED_10_100); -+ mac &= ~(ALX_MAC_CTRL_FULLD | ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_TX_EN); -+ -+ phy = alx_read_mem32(hw, ALX_PHY_CTRL); -+ phy &= ~(ALX_PHY_CTRL_DSPRST_OUT | ALX_PHY_CTRL_CLS); -+ phy |= ALX_PHY_CTRL_RST_ANALOG | ALX_PHY_CTRL_HIB_PULSE | -+ ALX_PHY_CTRL_HIB_EN; -+ -+ /* without any activity */ -+ if (!(hw->sleep_ctrl & ALX_SLEEP_ACTIVE)) { -+ err = alx_write_phy_reg(hw, ALX_MII_IER, 0); -+ if (err) -+ return err; -+ phy |= ALX_PHY_CTRL_IDDQ | ALX_PHY_CTRL_POWER_DOWN; -+ } else { -+ if (hw->sleep_ctrl & (ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_CIFS)) -+ mac |= ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_BRD_EN; -+ if (hw->sleep_ctrl & ALX_SLEEP_CIFS) -+ mac |= ALX_MAC_CTRL_TX_EN; -+ if (duplex == DUPLEX_FULL) -+ mac |= ALX_MAC_CTRL_FULLD; -+ if (speed == SPEED_1000) -+ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED, -+ ALX_MAC_CTRL_SPEED_1000); -+ phy |= ALX_PHY_CTRL_DSPRST_OUT; -+ err = alx_write_phy_ext(hw, ALX_MIIEXT_ANEG, -+ ALX_MIIEXT_S3DIG10, -+ ALX_MIIEXT_S3DIG10_SL); -+ if (err) -+ return err; -+ } -+ -+ alx_enable_osc(hw); -+ hw->rx_ctrl = mac; -+ alx_write_mem32(hw, ALX_MASTER, master); -+ alx_write_mem32(hw, ALX_MAC_CTRL, mac); -+ alx_write_mem32(hw, ALX_PHY_CTRL, phy); -+ -+ /* set val of PDLL D3PLLOFF */ -+ val = alx_read_mem32(hw, ALX_PDLL_TRNS1); -+ val |= ALX_PDLL_TRNS1_D3PLLOFF_EN; -+ alx_write_mem32(hw, ALX_PDLL_TRNS1, val); -+ -+ return 0; -+} -+ - bool alx_phy_configured(struct alx_hw *hw) - { - u32 cfg, hw_cfg; -@@ -920,6 +990,26 @@ - return alx_read_phy_reg(hw, ALX_MII_ISR, &isr); - } - -+int alx_config_wol(struct alx_hw *hw) -+{ -+ u32 wol = 0; -+ int err = 0; -+ -+ /* turn on magic packet event */ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC) -+ wol |= ALX_WOL0_MAGIC_EN | ALX_WOL0_PME_MAGIC_EN; -+ -+ /* turn on link up event */ -+ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) { -+ wol |= ALX_WOL0_LINK_EN | ALX_WOL0_PME_LINK; -+ /* only link up can wake up */ -+ err = alx_write_phy_reg(hw, ALX_MII_IER, ALX_IER_LINK_UP); -+ } -+ alx_write_mem32(hw, ALX_WOL0, wol); -+ -+ return err; -+} -+ - void alx_disable_rss(struct alx_hw *hw) - { - u32 ctrl = alx_read_mem32(hw, ALX_RXQ0); -@@ -1045,6 +1135,71 @@ - } - - -+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex) -+{ -+ int i, err; -+ u16 lpa; -+ -+ err = alx_read_phy_link(hw); -+ if (err) -+ return err; -+ -+ if (hw->link_speed == SPEED_UNKNOWN) { -+ *speed = SPEED_UNKNOWN; -+ *duplex = DUPLEX_UNKNOWN; -+ return 0; -+ } -+ -+ err = alx_read_phy_reg(hw, MII_LPA, &lpa); -+ if (err) -+ return err; -+ -+ if (!(lpa & LPA_LPACK)) { -+ *speed = hw->link_speed; -+ return 0; -+ } -+ -+ if (lpa & LPA_10FULL) { -+ *speed = SPEED_10; -+ *duplex = DUPLEX_FULL; -+ } else if (lpa & LPA_10HALF) { -+ *speed = SPEED_10; -+ *duplex = DUPLEX_HALF; -+ } else if (lpa & LPA_100FULL) { -+ *speed = SPEED_100; -+ *duplex = DUPLEX_FULL; -+ } else { -+ *speed = SPEED_100; -+ *duplex = DUPLEX_HALF; -+ } -+ -+ if (*speed == hw->link_speed && *duplex == hw->duplex) -+ return 0; -+ err = alx_write_phy_reg(hw, ALX_MII_IER, 0); -+ if (err) -+ return err; -+ err = alx_setup_speed_duplex(hw, alx_speed_to_ethadv(*speed, *duplex) | -+ ADVERTISED_Autoneg, ALX_FC_ANEG | -+ ALX_FC_RX | ALX_FC_TX); -+ if (err) -+ return err; -+ -+ /* wait for linkup */ -+ for (i = 0; i < ALX_MAX_SETUP_LNK_CYCLE; i++) { -+ msleep(100); -+ -+ err = alx_read_phy_link(hw); -+ if (err < 0) -+ return err; -+ if (hw->link_speed != SPEED_UNKNOWN) -+ break; -+ } -+ if (i == ALX_MAX_SETUP_LNK_CYCLE) -+ return -ETIMEDOUT; -+ -+ return 0; -+} -+ - bool alx_get_phy_info(struct alx_hw *hw) - { - u16 devs1, devs2; -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.h linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.h ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/hw.h 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/hw.h 2019-12-03 14:24:48.940847869 +0100 -@@ -487,6 +487,8 @@ - u8 flowctrl; - u32 adv_cfg; - -+ u32 sleep_ctrl; -+ - spinlock_t mdio_lock; - struct mdio_if_info mdio; - u16 phy_id[2]; -@@ -549,12 +551,14 @@ - void alx_enable_aspm(struct alx_hw *hw, bool l0s_en, bool l1_en); - int alx_setup_speed_duplex(struct alx_hw *hw, u32 ethadv, u8 flowctrl); - void alx_post_phy_link(struct alx_hw *hw); -+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex); - int alx_read_phy_reg(struct alx_hw *hw, u16 reg, u16 *phy_data); - int alx_write_phy_reg(struct alx_hw *hw, u16 reg, u16 phy_data); - int alx_read_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 *pdata); - int alx_write_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 data); - int alx_read_phy_link(struct alx_hw *hw); - int alx_clear_phy_intr(struct alx_hw *hw); -+int alx_config_wol(struct alx_hw *hw); - void alx_cfg_mac_flowcontrol(struct alx_hw *hw, u8 fc); - void alx_start_mac(struct alx_hw *hw); - int alx_reset_mac(struct alx_hw *hw); -@@ -563,6 +567,7 @@ - void alx_configure_basic(struct alx_hw *hw); - void alx_mask_msix(struct alx_hw *hw, int index, bool mask); - void alx_disable_rss(struct alx_hw *hw); -+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex); - bool alx_get_phy_info(struct alx_hw *hw); - void alx_update_hw_stats(struct alx_hw *hw); - -diff -Naur linux-5.4.1/drivers/net/ethernet/atheros/alx/main.c linux-5.4.1.new/drivers/net/ethernet/atheros/alx/main.c ---- linux-5.4.1/drivers/net/ethernet/atheros/alx/main.c 2019-11-29 10:10:32.000000000 +0100 -+++ linux-5.4.1.new/drivers/net/ethernet/atheros/alx/main.c 2019-12-03 14:24:48.940847869 +0100 -@@ -1069,6 +1069,7 @@ - alx->dev->max_mtu = ALX_MAX_FRAME_LEN(ALX_MAX_FRAME_SIZE); - alx->tx_ringsz = 256; - alx->rx_ringsz = 512; -+ hw->sleep_ctrl = ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_WOL_PHY; - hw->imt = 200; - alx->int_mask = ALX_ISR_MISC; - hw->dma_chnl = hw->max_dma_chnl; -@@ -1343,6 +1344,66 @@ - return 0; - } - -+static int __alx_shutdown(struct pci_dev *pdev, bool *wol_en) -+{ -+ struct alx_priv *alx = pci_get_drvdata(pdev); -+ struct net_device *netdev = alx->dev; -+ struct alx_hw *hw = &alx->hw; -+ int err, speed; -+ u8 duplex; -+ -+ netif_device_detach(netdev); -+ -+ if (netif_running(netdev)) -+ __alx_stop(alx); -+ -+#ifdef CONFIG_PM_SLEEP -+ err = pci_save_state(pdev); -+ if (err) -+ return err; -+#endif -+ -+ err = alx_select_powersaving_speed(hw, &speed, &duplex); -+ if (err) -+ return err; -+ err = alx_clear_phy_intr(hw); -+ if (err) -+ return err; -+ err = alx_pre_suspend(hw, speed, duplex); -+ if (err) -+ return err; -+ err = alx_config_wol(hw); -+ if (err) -+ return err; -+ -+ *wol_en = false; -+ if (hw->sleep_ctrl & ALX_SLEEP_ACTIVE) { -+ netif_info(alx, wol, netdev, -+ "wol: ctrl=%X, speed=%X\n", -+ hw->sleep_ctrl, speed); -+ device_set_wakeup_enable(&pdev->dev, true); -+ *wol_en = true; -+ } -+ -+ pci_disable_device(pdev); -+ -+ return 0; -+} -+ -+static void alx_shutdown(struct pci_dev *pdev) -+{ -+ int err; -+ bool wol_en; -+ -+ err = __alx_shutdown(pdev, &wol_en); -+ if (!err) { -+ pci_wake_from_d3(pdev, wol_en); -+ pci_set_power_state(pdev, PCI_D3hot); -+ } else { -+ dev_err(&pdev->dev, "shutdown fail %d\n", err); -+ } -+} -+ - static void alx_link_check(struct work_struct *work) - { - struct alx_priv *alx; -@@ -1836,6 +1897,7 @@ - goto out_unmap; - } - -+ device_set_wakeup_enable(&pdev->dev, hw->sleep_ctrl); - netdev_info(netdev, - "Qualcomm Atheros AR816x/AR817x Ethernet [%pM]\n", - netdev->dev_addr); -@@ -1878,37 +1940,70 @@ - static int alx_suspend(struct device *dev) - { - struct alx_priv *alx = dev_get_drvdata(dev); -+ struct pci_dev *pdev = alx->hw.pdev; -+ int err; -+ bool wol_en; - -- if (!netif_running(alx->dev)) -- return 0; -- netif_device_detach(alx->dev); -- __alx_stop(alx); -+ err = __alx_shutdown(pdev, &wol_en); -+ if (err) { -+ dev_err(&pdev->dev, "shutdown fail in suspend %d\n", err); -+ return err; -+ } -+ -+ if (wol_en) { -+ pci_prepare_to_sleep(pdev); -+ } else { -+ pci_wake_from_d3(pdev, false); -+ pci_set_power_state(pdev, PCI_D3hot); -+ } - return 0; - } - - static int alx_resume(struct device *dev) - { - struct alx_priv *alx = dev_get_drvdata(dev); -+ struct net_device *netdev = alx->dev; - struct alx_hw *hw = &alx->hw; -+ struct pci_dev *pdev = hw->pdev; - int err; - -+ pci_set_power_state(pdev, PCI_D0); -+ pci_restore_state(pdev); -+ pci_save_state(pdev); -+ -+ pci_enable_wake(pdev, PCI_D3hot, 0); -+ pci_enable_wake(pdev, PCI_D3cold, 0); -+ -+ hw->link_speed = SPEED_UNKNOWN; -+ alx->int_mask = ALX_ISR_MISC; -+ -+ alx_reset_pcie(hw); - alx_reset_phy(hw); - -- if (!netif_running(alx->dev)) -- return 0; -- netif_device_attach(alx->dev); -+ err = alx_reset_mac(hw); -+ if (err) { -+ netif_err(alx, hw, alx->dev, -+ "resume:reset_mac fail %d\n", err); -+ return -EIO; -+ } - -- rtnl_lock(); -- err = __alx_open(alx, true); -- rtnl_unlock(); -+ err = alx_setup_speed_duplex(hw, hw->adv_cfg, hw->flowctrl); -+ if (err) { -+ netif_err(alx, hw, alx->dev, -+ "resume:setup_speed_duplex fail %d\n", err); -+ return -EIO; -+ } -+ -+ if (netif_running(netdev)) { -+ err = __alx_open(alx, true); -+ if (err) -+ return err; -+ } - -- return err; -+ netif_device_attach(netdev); -+ return err; - } - --static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume); --#define ALX_PM_OPS (&alx_pm_ops) --#else --#define ALX_PM_OPS NULL - #endif - - -@@ -1954,6 +2049,8 @@ - } - - pci_set_master(pdev); -+ pci_enable_wake(pdev, PCI_D3hot, 0); -+ pci_enable_wake(pdev, PCI_D3cold, 0); - - alx_reset_pcie(hw); - if (!alx_reset_mac(hw)) -@@ -2003,11 +2100,20 @@ - {} - }; - -+#ifdef CONFIG_PM_SLEEP -+static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume); -+#define ALX_PM_OPS (&alx_pm_ops) -+#else -+#define ALX_PM_OPS NULL -+#endif -+ -+ - static struct pci_driver alx_driver = { - .name = alx_drv_name, - .id_table = alx_pci_tbl, - .probe = alx_probe, - .remove = alx_remove, -+ .shutdown = alx_shutdown, - .err_handler = &alx_err_handlers, - .driver.pm = ALX_PM_OPS, - }; diff --git a/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.105.ebuild b/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.105.ebuild deleted file mode 100644 index 904973ef..00000000 --- a/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.105.ebuild +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils - -EXTRAVERSION="redcore-lts-legacy" -KV_FULL="${PV}-${EXTRAVERSION}" -KV_MAJOR="5.4" - -DESCRIPTION="Redcore Linux Kernel Sources (LTS Legacy 5.4)" -HOMEPAGE="https://redcorelinux.org" -SRC_URI="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" - -KEYWORDS="~amd64" -LICENSE="GPL-2" -SLOT="${PVR}" -IUSE="" - -RESTRICT="strip mirror" -DEPEND=" - app-arch/lz4 - app-arch/xz-utils - sys-devel/autoconf - sys-devel/bc - sys-devel/make" -RDEPEND="${DEPEND}" - -PATCHES=( - "${FILESDIR}"/"${KV_MAJOR}"-enable_alx_wol.patch - "${FILESDIR}"/"${KV_MAJOR}"-drop_ancient-and-wrong-msg.patch - "${FILESDIR}"/"${KV_MAJOR}"-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch - "${FILESDIR}"/"${KV_MAJOR}"-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch - "${FILESDIR}"/"${KV_MAJOR}"-acpi-use-kern_warning_even_when_error.patch - "${FILESDIR}"/"${KV_MAJOR}"-ath10k-be-quiet.patch - "${FILESDIR}"/"${KV_MAJOR}"-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-suspend-resume-workaround.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-pci-more-info.patch - "${FILESDIR}"/"${KV_MAJOR}"-nvme-hwmon.patch - "${FILESDIR}"/"${KV_MAJOR}"-linux-hardened.patch - "${FILESDIR}"/"${KV_MAJOR}"-uksm-linux-hardened.patch -) - -S="${WORKDIR}"/linux-"${PV}" - -pkg_setup() { - export KBUILD_BUILD_USER="nexus" - export KBUILD_BUILD_HOST="nexus.redcorelinux.org" - - export REAL_ARCH="$ARCH" - unset ARCH ; unset LDFLAGS #will interfere with Makefile if set -} - -src_prepare() { - default - emake mrproper - sed -ri "s|^(EXTRAVERSION =).*|\1 -${EXTRAVERSION}|" Makefile - cp "${FILESDIR}"/"${KV_MAJOR}"-amd64.config .config - rm -rf $(find . -type f|grep -F \.orig) -} - -src_compile() { - emake prepare modules_prepare -} - -src_install() { - dodir usr/src/linux-"${KV_FULL}" - cp -ax "${S}"/* "${D}"usr/src/linux-"${KV_FULL}" -} - -_kernel_sources_delete() { - rm -rf "${ROOT}"usr/src/linux-"${KV_FULL}" -} - -pkg_postrm() { - _kernel_sources_delete -} diff --git a/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.107.ebuild b/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.107.ebuild new file mode 100644 index 00000000..512cedd7 --- /dev/null +++ b/sys-kernel/linux-sources-redcore-lts-legacy/linux-sources-redcore-lts-legacy-5.4.107.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils + +EXTRAVERSION="redcore-lts-legacy" +KV_FULL="${PV}-${EXTRAVERSION}" +KV_MAJOR="5.4" + +DESCRIPTION="Redcore Linux Kernel Sources (LTS Legacy 5.4)" +HOMEPAGE="https://redcorelinux.org" +SRC_URI="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" + +KEYWORDS="~amd64" +LICENSE="GPL-2" +SLOT="${PVR}" +IUSE="" + +RESTRICT="strip mirror" +DEPEND=" + app-arch/lz4 + app-arch/xz-utils + sys-devel/autoconf + sys-devel/bc + sys-devel/make" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/"${KV_MAJOR}"-drop_ancient-and-wrong-msg.patch + "${FILESDIR}"/"${KV_MAJOR}"-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch + "${FILESDIR}"/"${KV_MAJOR}"-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch + "${FILESDIR}"/"${KV_MAJOR}"-acpi-use-kern_warning_even_when_error.patch + "${FILESDIR}"/"${KV_MAJOR}"-ath10k-be-quiet.patch + "${FILESDIR}"/"${KV_MAJOR}"-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-suspend-resume-workaround.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-pci-more-info.patch + "${FILESDIR}"/"${KV_MAJOR}"-nvme-hwmon.patch + "${FILESDIR}"/"${KV_MAJOR}"-linux-hardened.patch + "${FILESDIR}"/"${KV_MAJOR}"-uksm-linux-hardened.patch +) + +S="${WORKDIR}"/linux-"${PV}" + +pkg_setup() { + export KBUILD_BUILD_USER="nexus" + export KBUILD_BUILD_HOST="nexus.redcorelinux.org" + + export REAL_ARCH="$ARCH" + unset ARCH ; unset LDFLAGS #will interfere with Makefile if set +} + +src_prepare() { + default + emake mrproper + sed -ri "s|^(EXTRAVERSION =).*|\1 -${EXTRAVERSION}|" Makefile + cp "${FILESDIR}"/"${KV_MAJOR}"-amd64.config .config + rm -rf $(find . -type f|grep -F \.orig) +} + +src_compile() { + emake prepare modules_prepare +} + +src_install() { + dodir usr/src/linux-"${KV_FULL}" + cp -ax "${S}"/* "${D}"usr/src/linux-"${KV_FULL}" +} + +_kernel_sources_delete() { + rm -rf "${ROOT}"usr/src/linux-"${KV_FULL}" +} + +pkg_postrm() { + _kernel_sources_delete +} -- cgit v1.2.3