From 150b784fc26b480df53edf4ca17988262f1862e1 Mon Sep 17 00:00:00 2001 From: RikkaNekoo Date: Fri, 15 Aug 2025 00:21:24 +0800 Subject: [PATCH] fix 6.15+ kernel thanks to @Eumeryx --- .SRCINFO | 6 +++--- 6.15-fix.patch | 10 ---------- PKGBUILD | 9 +++++---- fix.patch | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 17 deletions(-) delete mode 100644 6.15-fix.patch create mode 100644 fix.patch diff --git a/.SRCINFO b/.SRCINFO index d8dd650..6c1d7a2 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,16 +1,16 @@ pkgbase = yt6801-dkms pkgdesc = Kernel module for Motorcomm YT6801 ethernet controller (DKMS) pkgver = 1.0.30 - pkgrel = 3 + pkgrel = 4 url = https://www.motor-comm.com/product/ethernet-control-chip arch = x86_64 license = GPL-2.0-or-later depends = dkms source = https://www.motor-comm.com/Public/Uploads/uploadfile/files/20250430/yt6801-linux-driver-1.0.30.zip - source = 6.15-fix.patch + source = fix.patch source = drop-flags.patch sha256sums = 3dd7173a935da10fb9dfa537fd2bf4d6d3ae90c1d12e8091054667fb911bd6c4 - sha256sums = 3a3ba74d3a22ac8e1c1cf6c8b28fe4df1c84ad589dd1c5b537fc84a7e1902f93 + sha256sums = ef1855465b9f3c4102ce88dedb4beaaa12bf2a951adbe220ec617a17eb80c861 sha256sums = 814c6a121b392f512ec4c8898dd9f6c50ae3ff9d946bc1d115135fa6f5c6a897 pkgname = yt6801-dkms diff --git a/6.15-fix.patch b/6.15-fix.patch deleted file mode 100644 index 5ebbff7..0000000 --- a/6.15-fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/fuxi-gmac-phy.c -+++ b/src/fuxi-gmac-phy.c -@@ -368,6 +368,6 @@ - - void fxgmac_phy_timer_destroy(struct fxgmac_pdata *pdata) - { -- del_timer_sync(&pdata->expansion.phy_poll_tm); -+ timer_shutdown_sync(&pdata->expansion.phy_poll_tm); - DPRINTK("fxgmac_phy_timer removed\n"); - } diff --git a/PKGBUILD b/PKGBUILD index 25de024..8e4147d 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,24 +1,25 @@ # Maintainer: Shiina Rikka +# Contributor: Eumeryx _pkgbase=yt6801 pkgname=yt6801-dkms pkgver=1.0.30 -pkgrel=3 +pkgrel=4 pkgdesc="Kernel module for Motorcomm YT6801 ethernet controller (DKMS)" arch=('x86_64') url="https://www.motor-comm.com/product/ethernet-control-chip" license=('GPL-2.0-or-later') depends=('dkms') source=('https://www.motor-comm.com/Public/Uploads/uploadfile/files/20250430/yt6801-linux-driver-1.0.30.zip' - '6.15-fix.patch' + 'fix.patch' 'drop-flags.patch') sha256sums=('3dd7173a935da10fb9dfa537fd2bf4d6d3ae90c1d12e8091054667fb911bd6c4' - '3a3ba74d3a22ac8e1c1cf6c8b28fe4df1c84ad589dd1c5b537fc84a7e1902f93' + 'ef1855465b9f3c4102ce88dedb4beaaa12bf2a951adbe220ec617a17eb80c861' '814c6a121b392f512ec4c8898dd9f6c50ae3ff9d946bc1d115135fa6f5c6a897') prepare() { cd ${srcdir} - patch -p1 < 6.15-fix.patch + patch -p1 < fix.patch patch -p1 < drop-flags.patch } diff --git a/fix.patch b/fix.patch new file mode 100644 index 0000000..f930c53 --- /dev/null +++ b/fix.patch @@ -0,0 +1,49 @@ +--- a/src/fuxi-gmac-net.c ++++ b/src/fuxi-gmac-net.c +@@ -772,7 +772,9 @@ + static void fxgmac_tx_hang_timer_handler(unsigned long data) + #endif + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,16,0)) ++ struct fxgmac_channel *channel = timer_container_of(channel, t, expansion.tx_hang_timer); ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) + struct fxgmac_channel *channel = from_timer(channel, t, expansion.tx_hang_timer); + #else + struct fxgmac_channel *channel = (struct fxgmac_channel *)data; +--- a/src/fuxi-gmac-phy.c 2025-04-28 13:51:16.000000000 +0800 ++++ b/src/fuxi-gmac-phy.c 2025-08-14 23:18:43.972276438 +0800 +@@ -322,7 +322,9 @@ + static void fxgmac_phy_link_poll(unsigned long data) + #endif + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,16,0)) ++ struct fxgmac_pdata *pdata = timer_container_of(pdata, t, expansion.phy_poll_tm); ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) + struct fxgmac_pdata *pdata = from_timer(pdata, t, expansion.phy_poll_tm); + #else + struct fxgmac_pdata *pdata = (struct fxgmac_pdata*)data; +@@ -350,7 +352,9 @@ + + int fxgmac_phy_timer_init(struct fxgmac_pdata *pdata) + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,16,0)) ++ timer_init_key(&pdata->expansion.phy_poll_tm, NULL, 0, "fuxi_phy_link_update_timer", NULL); ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) + init_timer_key(&pdata->expansion.phy_poll_tm, NULL, 0, "fuxi_phy_link_update_timer", NULL); + #else + init_timer_key(&pdata->expansion.phy_poll_tm, 0, "fuxi_phy_link_update_timer", NULL); +@@ -368,6 +372,10 @@ + + void fxgmac_phy_timer_destroy(struct fxgmac_pdata *pdata) + { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,15,0)) ++ timer_shutdown_sync(&pdata->expansion.phy_poll_tm); ++#else + del_timer_sync(&pdata->expansion.phy_poll_tm); ++#endif + DPRINTK("fxgmac_phy_timer removed\n"); + } +