commit: 0302aa96ba4ac7537636bba05ac75118ca6a57ac Author: Chí-Thanh Christopher Nguyễn <chithanh <AT> gentoo <DOT> org> AuthorDate: Mon Apr 21 22:10:47 2025 +0000 Commit: Chí-Thanh Christopher Nguyễn <chithanh <AT> gentoo <DOT> org> CommitDate: Mon Apr 21 22:10:47 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0302aa96
net-wireless/aic8800: add 1.0.6 Hard depend on MAC80211 and USB in kernel config Bug: https://bugs.gentoo.org/922866 Signed-off-by: Chí-Thanh Christopher Nguyễn <chithanh <AT> gentoo.org> net-wireless/aic8800/Manifest | 1 + net-wireless/aic8800/aic8800-1.0.6.ebuild | 60 ++++++++++++++++++++++ .../aic8800/files/aic8800-1.0.6-linux-6.12.patch | 47 +++++++++++++++++ 3 files changed, 108 insertions(+) diff --git a/net-wireless/aic8800/Manifest b/net-wireless/aic8800/Manifest index 5855369aef24..6b6acfebe0c5 100644 --- a/net-wireless/aic8800/Manifest +++ b/net-wireless/aic8800/Manifest @@ -1,2 +1,3 @@ DIST aic8800-1.0.3.deb 535400 BLAKE2B 0e337bded43f99a00fb3d786742418d7faf0adf3d6e517933d4d4a82e7e723e5f45798991238a02fb1836529a5d72cc56181356939eb150feb4c26f14dcd762e SHA512 0917ac4f5a594adb68c084f38bedacb92f3c0700d13dda497943d199bd883c18fc624ffc579091b40fdc6322dc2e5b81cc21add06b27ae8364ee2f8f9f119a7d DIST aic8800-1.0.5.deb 595050 BLAKE2B 551e9ad09814bcab5464a7bfe09b922e400253403568068b74d839b8d53261251424b571266abed907314d08b27ac5bdbd51abd493bec5d0a511363173635e42 SHA512 4b4917a510caf1104ae7124f883b958d6a936a6e172d1afcc79f58349a943e0feb9a8bb35d326f96c56e0b089d62e3359cf81967e01e1edb1a1ddfc6fe101da0 +DIST aic8800-1.0.6.deb 594776 BLAKE2B dc248a58424ad2d5a3824568da350dc8af37d81046a9dac67281ea88e4d7c8af11f3f514b60ad39bfa419ac8a086f09f9e349945a0ed300e622c16d8ffddc982 SHA512 b5bfb20d5ad128f66c923c5ee278acbcf29b406c17efe5cdd2b1e5838f44559f5e7e36926ef6eaa6c57df0183f5b26cbae42b9e34b62b0471193e2188e675a9c diff --git a/net-wireless/aic8800/aic8800-1.0.6.ebuild b/net-wireless/aic8800/aic8800-1.0.6.ebuild new file mode 100644 index 000000000000..78de93abdb02 --- /dev/null +++ b/net-wireless/aic8800/aic8800-1.0.6.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit linux-mod-r1 udev unpacker + +DESCRIPTION="aic8800 driver for AICSemi AIC8800/8801/8800DC/8800DW/8800FC Wifi/Bluetooth" +HOMEPAGE="https://www.aicsemi.com/ https://linux.brostrend.com/troubleshooting/source-code/" + +SRC_URI="https://linux.brostrend.com/${PN}-dkms.deb -> ${P}.deb" + +LICENSE="GPL-2+ firmware? ( freedist )" +SLOT="0" +KEYWORDS="~amd64" + +IUSE="+firmware udev" + +CONFIG_CHECK="MAC80211 USB ~BT_HCIBTUSB" + +PATCHES="${FILESDIR}/${PN}-1.0.6-linux-6.12.patch" + +BDEPEND+=" + $(unpacker_src_uri_depends)" + +S="${WORKDIR}/usr/src/${P}" + +src_compile() { + MODULES_MAKEARGS+=( + KDIR="${KV_OUT_DIR}" + ) + emake "${MODULES_MAKEARGS[@]}" +} + +src_install() { + linux_moduleinto kernel/drivers/net/wireless/${PN} + linux_domodule aic8800_fdrv/aic8800_fdrv.ko aic_load_fw/aic_load_fw.ko + modules_post_process + if use firmware; then + insinto /lib/firmware + doins -r "${WORKDIR}/lib/firmware/aic8800DC" + fi + if use udev; then + # install udev rules for USB mode switching + udev_newrules "${WORKDIR}/lib/udev/rules.d/aic.rules" 99-aic-modeswitch.rules + fi +} + +pkg_postinst() { + if use udev; then + udev_reload + fi + linux-mod-r1_pkg_postinst +} + +pkg_postrm() { + if use udev; then + udev_reload + fi +} diff --git a/net-wireless/aic8800/files/aic8800-1.0.6-linux-6.12.patch b/net-wireless/aic8800/files/aic8800-1.0.6-linux-6.12.patch new file mode 100644 index 000000000000..e94e2e6bfdd8 --- /dev/null +++ b/net-wireless/aic8800/files/aic8800-1.0.6-linux-6.12.patch @@ -0,0 +1,47 @@ +From 04dc3e356a45ffc42dd0363799af9a487f5e1bf0 Mon Sep 17 00:00:00 2001 +From: Shen Mintao <cx330.s...@autocore.ai> +Date: Thu, 9 Jan 2025 11:06:42 +0800 +Subject: [PATCH] fix some source code for kernel 6.12 + +--- a/aic8800_fdrv/rwnx_main.c ++++ b/aic8800_fdrv/rwnx_main.c +@@ -4545,6 +4547,11 @@ int rwnx_cfg80211_start_radar_detection(struct wiphy *wiphy, + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)) + , u32 cac_time_ms + #endif ++ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)) ++ , int link_id ++ #endif ++ ++ + ) + { + struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy); +--- a/aic8800_fdrv/rwnx_radar.c ++++ b/aic8800_fdrv/rwnx_radar.c +@@ -1399,7 +1399,11 @@ static void rwnx_radar_cac_work(struct work_struct *ws) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) + &ctxt->chan_def, + #endif +- NL80211_RADAR_CAC_FINISHED, GFP_KERNEL); ++ NL80211_RADAR_CAC_FINISHED, GFP_KERNEL ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0) ++ , 0 ++ #endif ++ ); + rwnx_send_apm_stop_cac_req(rwnx_hw, radar->cac_vif); + rwnx_chanctx_unlink(radar->cac_vif); + +@@ -1499,7 +1503,11 @@ void rwnx_radar_cancel_cac(struct rwnx_radar *radar) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) + &ctxt->chan_def, + #endif +- NL80211_RADAR_CAC_ABORTED, GFP_KERNEL); ++ NL80211_RADAR_CAC_ABORTED, GFP_KERNEL ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0) ++ , 0 ++ #endif ++ ); + rwnx_chanctx_unlink(radar->cac_vif); + } +