fix 6.15+ kernel

thanks to @Eumeryx
This commit is contained in:
RikkaNekoo
2025-08-15 00:21:24 +08:00
parent 0812e407dc
commit 150b784fc2
4 changed files with 57 additions and 17 deletions
+3 -3
View File
@@ -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
-10
View File
@@ -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");
}
+5 -4
View File
@@ -1,24 +1,25 @@
# Maintainer: Shiina Rikka <rikka@rikka.im>
# Contributor: Eumeryx <eumeryx@foxmail.com>
_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
}
+49
View File
@@ -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");
}