Loading pkgs/os-specific/linux/yt6801/default.nix +9 −5 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "yt6801"; version = "1.0.29-20240812"; version = "1.0.30-20250430"; src = let Loading @@ -23,13 +23,17 @@ stdenv.mkDerivation (finalAttrs: { fetchzip { stripRoot = false; url = "https://www.motor-comm.com/Public/Uploads/uploadfile/files/${uploadDate}/yt6801-linux-driver-${versionName}.zip"; sha256 = "sha256-oz6CeOUN6QWKXxe3WUZljhGDTFArsknjzBuQ4IchGeU="; sha256 = "sha256-6HeU3bbTaKOCy3X+nMpC9/bBc+0c4Ip5TdG+LGUGTKk="; }; nativeBuildInputs = kernel.moduleBuildDependencies ++ [ kmod ]; patches = lib.optionals (lib.versionAtLeast kernel.version "6.15") [ patches = lib.optionals (lib.versionAtLeast kernel.version "6.15") [ ./kernel_6.15_fix.patch ] ++ lib.optionals (lib.versionAtLeast kernel.version "6.16") [ ./kernel_6_16_fix.patch ]; postPatch = '' Loading pkgs/os-specific/linux/yt6801/kernel_6_16_fix.patch 0 → 100644 +33 −0 Original line number Diff line number Diff line --- a/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000 +++ b/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000 @@ -322,8 +322,10 @@ 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 = container_of(t, struct fxgmac_pdata, 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; #endif @@ -350,13 +352,17 @@ 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_setup(&pdata->expansion.phy_poll_tm, fxgmac_phy_link_poll, 0); +#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); #endif pdata->expansion.phy_poll_tm.expires = jiffies + HZ / 2; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,16,0)) pdata->expansion.phy_poll_tm.function = (void *)(fxgmac_phy_link_poll); +#endif #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) pdata->expansion.phy_poll_tm.data = (unsigned long)pdata; #endif Loading
pkgs/os-specific/linux/yt6801/default.nix +9 −5 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "yt6801"; version = "1.0.29-20240812"; version = "1.0.30-20250430"; src = let Loading @@ -23,13 +23,17 @@ stdenv.mkDerivation (finalAttrs: { fetchzip { stripRoot = false; url = "https://www.motor-comm.com/Public/Uploads/uploadfile/files/${uploadDate}/yt6801-linux-driver-${versionName}.zip"; sha256 = "sha256-oz6CeOUN6QWKXxe3WUZljhGDTFArsknjzBuQ4IchGeU="; sha256 = "sha256-6HeU3bbTaKOCy3X+nMpC9/bBc+0c4Ip5TdG+LGUGTKk="; }; nativeBuildInputs = kernel.moduleBuildDependencies ++ [ kmod ]; patches = lib.optionals (lib.versionAtLeast kernel.version "6.15") [ patches = lib.optionals (lib.versionAtLeast kernel.version "6.15") [ ./kernel_6.15_fix.patch ] ++ lib.optionals (lib.versionAtLeast kernel.version "6.16") [ ./kernel_6_16_fix.patch ]; postPatch = '' Loading
pkgs/os-specific/linux/yt6801/kernel_6_16_fix.patch 0 → 100644 +33 −0 Original line number Diff line number Diff line --- a/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000 +++ b/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000 @@ -322,8 +322,10 @@ 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 = container_of(t, struct fxgmac_pdata, 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; #endif @@ -350,13 +352,17 @@ 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_setup(&pdata->expansion.phy_poll_tm, fxgmac_phy_link_poll, 0); +#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); #endif pdata->expansion.phy_poll_tm.expires = jiffies + HZ / 2; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,16,0)) pdata->expansion.phy_poll_tm.function = (void *)(fxgmac_phy_link_poll); +#endif #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) pdata->expansion.phy_poll_tm.data = (unsigned long)pdata; #endif