mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Add kernel 6.6 x86_64 support (without modemmanager and wifi)
This commit is contained in:
parent
8c8c8d9eaf
commit
c89361bdd7
398 changed files with 79597 additions and 2 deletions
1071
6.6/package/kernel/linux/modules/crypto.mk
Normal file
1071
6.6/package/kernel/linux/modules/crypto.mk
Normal file
File diff suppressed because it is too large
Load diff
721
6.6/package/kernel/linux/modules/fs.mk
Normal file
721
6.6/package/kernel/linux/modules/fs.mk
Normal file
|
@ -0,0 +1,721 @@
|
|||
#
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
FS_MENU:=Filesystems
|
||||
|
||||
define KernelPackage/fs-9p
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Plan 9 Resource Sharing Support
|
||||
DEPENDS:=+kmod-9pnet +LINUX_6_1:kmod-fs-netfs
|
||||
KCONFIG:=\
|
||||
CONFIG_9P_FS \
|
||||
CONFIG_9P_FS_POSIX_ACL=n \
|
||||
CONFIG_9P_FS_SECURITY=n \
|
||||
CONFIG_9P_FSCACHE=n
|
||||
FILES:=$(LINUX_DIR)/fs/9p/9p.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,9p)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-9p/description
|
||||
Kernel module for Plan 9 Resource Sharing Support support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-9p))
|
||||
|
||||
|
||||
define KernelPackage/fs-afs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Andrew FileSystem client
|
||||
DEFAULT:=n
|
||||
DEPENDS:=+kmod-rxrpc +kmod-dnsresolver +kmod-fs-fscache
|
||||
KCONFIG:=\
|
||||
CONFIG_AFS_FS=m \
|
||||
CONFIG_AFS_DEBUG=n \
|
||||
CONFIG_AFS_FSCACHE=y
|
||||
FILES:=$(LINUX_DIR)/fs/afs/kafs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,kafs)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-afs/description
|
||||
Kernel module for Andrew FileSystem client support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-afs))
|
||||
|
||||
define KernelPackage/fs-autofs4
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=AUTOFS4 filesystem support
|
||||
KCONFIG:= \
|
||||
CONFIG_AUTOFS4_FS \
|
||||
CONFIG_AUTOFS_FS
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/autofs/autofs4.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,autofs4)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-autofs4/description
|
||||
Kernel module for AutoFS4 support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-autofs4))
|
||||
|
||||
|
||||
define KernelPackage/fs-btrfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=BTRFS filesystem support
|
||||
DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +kmod-lib-zstd
|
||||
KCONFIG:=\
|
||||
CONFIG_BTRFS_FS \
|
||||
CONFIG_BTRFS_FS_CHECK_INTEGRITY=n
|
||||
FILES:=\
|
||||
$(LINUX_DIR)/fs/btrfs/btrfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,btrfs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-btrfs/description
|
||||
Kernel module for BTRFS support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-btrfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-smbfs-common
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=SMBFS common dependencies support
|
||||
HIDDEN:=1
|
||||
KCONFIG:=\
|
||||
CONFIG_SMBFS_COMMON@lt6.1 \
|
||||
CONFIG_SMBFS@ge6.1
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/smbfs_common/cifs_arc4.ko@lt6.1 \
|
||||
$(LINUX_DIR)/fs/smbfs_common/cifs_md4.ko@lt6.1 \
|
||||
$(LINUX_DIR)/fs/smb/common/cifs_arc4.ko@ge6.1 \
|
||||
$(LINUX_DIR)/fs/smb/common/cifs_md4.ko@ge6.1
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-smbfs-common/description
|
||||
Kernel module dependency for CIFS or SMB_SERVER support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-smbfs-common))
|
||||
|
||||
|
||||
define KernelPackage/fs-cifs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=CIFS support
|
||||
KCONFIG:= \
|
||||
CONFIG_CIFS \
|
||||
CONFIG_CIFS_DFS_UPCALL=n \
|
||||
CONFIG_CIFS_UPCALL=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/cifs/cifs.ko@lt6.1 \
|
||||
$(LINUX_DIR)/fs/smb/client/cifs.ko@ge6.1
|
||||
AUTOLOAD:=$(call AutoLoad,30,cifs)
|
||||
$(call AddDepends/nls)
|
||||
DEPENDS+= \
|
||||
+kmod-fs-smbfs-common \
|
||||
+kmod-crypto-md5 \
|
||||
+kmod-crypto-sha256 \
|
||||
+kmod-crypto-sha512 \
|
||||
+kmod-crypto-cmac \
|
||||
+kmod-crypto-hmac \
|
||||
+kmod-crypto-aead \
|
||||
+kmod-crypto-ccm \
|
||||
+kmod-crypto-ecb \
|
||||
+kmod-crypto-des \
|
||||
+kmod-asn1-decoder \
|
||||
+kmod-oid-registry \
|
||||
+kmod-dnsresolver
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-cifs/description
|
||||
Kernel module for CIFS support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-cifs))
|
||||
|
||||
|
||||
define KernelPackage/fs-configfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Configuration filesystem support
|
||||
KCONFIG:= \
|
||||
CONFIG_CONFIGFS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/configfs/configfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,configfs)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-configfs/description
|
||||
Kernel module for configfs support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-configfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-cramfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Compressed RAM/ROM filesystem support
|
||||
DEPENDS:=+kmod-lib-zlib-inflate
|
||||
KCONFIG:= \
|
||||
CONFIG_CRAMFS
|
||||
FILES:=$(LINUX_DIR)/fs/cramfs/cramfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,cramfs)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-cramfs/description
|
||||
Kernel module for cramfs support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-cramfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-efivarfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=efivar filesystem support
|
||||
KCONFIG:=CONFIG_EFIVAR_FS
|
||||
FILES:=$(LINUX_DIR)/fs/efivarfs/efivarfs.ko
|
||||
DEPENDS:=@(x86_64||x86)
|
||||
AUTOLOAD:=$(call Autoload,90,efivarfs)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-efivarfs/description
|
||||
Kernel module to support efivarfs file system mountpoint.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-efivarfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-exfat
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=exFAT filesystem support
|
||||
KCONFIG:= \
|
||||
CONFIG_EXFAT_FS \
|
||||
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
|
||||
FILES:= $(LINUX_DIR)/fs/exfat/exfat.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,exfat,1)
|
||||
DEPENDS:=+kmod-nls-base
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-exfat/description
|
||||
Kernel module for exFAT filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-exfat))
|
||||
|
||||
|
||||
define KernelPackage/fs-exportfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=exportfs kernel server support
|
||||
KCONFIG:=CONFIG_EXPORTFS
|
||||
FILES=$(LINUX_DIR)/fs/exportfs/exportfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,20,exportfs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-exportfs/description
|
||||
Kernel module for exportfs. Needed for some other modules.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-exportfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-ext4
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=EXT4 filesystem support
|
||||
DEPENDS := \
|
||||
+kmod-lib-crc16 \
|
||||
+kmod-crypto-hash \
|
||||
+kmod-crypto-crc32c
|
||||
KCONFIG:= \
|
||||
CONFIG_EXT4_FS \
|
||||
CONFIG_EXT4_ENCRYPTION=n \
|
||||
CONFIG_JBD2
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/ext4/ext4.ko \
|
||||
$(LINUX_DIR)/fs/jbd2/jbd2.ko \
|
||||
$(LINUX_DIR)/fs/mbcache.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,mbcache jbd2 ext4,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-ext4/description
|
||||
Kernel module for EXT4 filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-ext4))
|
||||
|
||||
|
||||
define KernelPackage/fs-f2fs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=F2FS filesystem support
|
||||
DEPENDS:= +kmod-crypto-hash +kmod-crypto-crc32 +kmod-nls-base
|
||||
KCONFIG:=CONFIG_F2FS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/f2fs/f2fs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,f2fs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-f2fs/description
|
||||
Kernel module for F2FS filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-f2fs))
|
||||
|
||||
|
||||
define KernelPackage/fs-fscache
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=General filesystem local cache manager
|
||||
DEPENDS:=+kmod-fs-netfs
|
||||
KCONFIG:=\
|
||||
CONFIG_FSCACHE \
|
||||
CONFIG_FSCACHE_STATS=y \
|
||||
CONFIG_FSCACHE_HISTOGRAM=n \
|
||||
CONFIG_FSCACHE_DEBUG=n \
|
||||
CONFIG_FSCACHE_OBJECT_LIST=n \
|
||||
CONFIG_CACHEFILES \
|
||||
CONFIG_CACHEFILES_DEBUG=n \
|
||||
CONFIG_CACHEFILES_HISTOGRAM=n \
|
||||
CONFIG_CACHEFILES_ERROR_INJECTION=n@ge5.17 \
|
||||
CONFIG_CACHEFILES_ONDEMAND=n@ge5.19
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/fscache/fscache.ko \
|
||||
$(LINUX_DIR)/fs/cachefiles/cachefiles.ko
|
||||
AUTOLOAD:=$(call AutoLoad,29,fscache cachefiles)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-fscache))
|
||||
|
||||
|
||||
define KernelPackage/fs-hfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=HFS filesystem support
|
||||
DEPENDS:=+kmod-cdrom
|
||||
KCONFIG:=CONFIG_HFS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/hfs/hfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,hfs)
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-hfs/description
|
||||
Kernel module for HFS filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-hfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-hfsplus
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=HFS+ filesystem support
|
||||
DEPENDS:=+kmod-cdrom
|
||||
KCONFIG:=CONFIG_HFSPLUS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/hfsplus/hfsplus.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,hfsplus)
|
||||
$(call AddDepends/nls,utf8)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-hfsplus/description
|
||||
Kernel module for HFS+ filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-hfsplus))
|
||||
|
||||
|
||||
define KernelPackage/fs-isofs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=ISO9660 filesystem support
|
||||
DEPENDS:=+kmod-lib-zlib-inflate +kmod-cdrom
|
||||
KCONFIG:=CONFIG_ISO9660_FS CONFIG_JOLIET=y CONFIG_ZISOFS=n
|
||||
FILES:=$(LINUX_DIR)/fs/isofs/isofs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,isofs)
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-isofs/description
|
||||
Kernel module for ISO9660 filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-isofs))
|
||||
|
||||
|
||||
define KernelPackage/fs-jfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=JFS filesystem support
|
||||
KCONFIG:=CONFIG_JFS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,jfs,1)
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-jfs/description
|
||||
Kernel module for JFS support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-jfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-ksmbd
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=SMB kernel server support
|
||||
DEPENDS:= \
|
||||
+kmod-nls-base \
|
||||
+kmod-nls-utf8 \
|
||||
+kmod-crypto-md4 \
|
||||
+kmod-crypto-md5 \
|
||||
+kmod-crypto-hmac \
|
||||
+kmod-crypto-ecb \
|
||||
+kmod-crypto-des \
|
||||
+kmod-crypto-sha256 \
|
||||
+kmod-crypto-cmac \
|
||||
+kmod-crypto-sha512 \
|
||||
+kmod-crypto-aead \
|
||||
+kmod-crypto-ccm \
|
||||
+kmod-crypto-gcm \
|
||||
+kmod-asn1-decoder \
|
||||
+kmod-oid-registry \
|
||||
+kmod-fs-smbfs-common
|
||||
KCONFIG:= \
|
||||
CONFIG_SMB_SERVER \
|
||||
CONFIG_SMB_SERVER_SMBDIRECT=n \
|
||||
CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=n \
|
||||
CONFIG_SMB_SERVER_KERBEROS5=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/ksmbd/ksmbd.ko@lt6.1 \
|
||||
$(LINUX_DIR)/fs/smb/server/ksmbd.ko@ge6.1
|
||||
AUTOLOAD:=$(call AutoLoad,41,ksmbd)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-ksmbd/description
|
||||
Kernel module for SMB kernel server support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-ksmbd))
|
||||
|
||||
|
||||
define KernelPackage/fs-minix
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Minix filesystem support
|
||||
KCONFIG:=CONFIG_MINIX_FS
|
||||
FILES:=$(LINUX_DIR)/fs/minix/minix.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,minix)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-minix/description
|
||||
Kernel module for Minix filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-minix))
|
||||
|
||||
|
||||
define KernelPackage/fs-msdos
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=MSDOS filesystem support
|
||||
DEPENDS:=+kmod-fs-vfat
|
||||
KCONFIG:=CONFIG_MSDOS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/fat/msdos.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,msdos)
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-msdos/description
|
||||
Kernel module for MSDOS filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-msdos))
|
||||
|
||||
|
||||
define KernelPackage/fs-netfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Network Filesystems support
|
||||
KCONFIG:= CONFIG_NETFS_SUPPORT
|
||||
FILES:=$(LINUX_DIR)/fs/netfs/netfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,28,netfs)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-netfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NFS filesystem client support
|
||||
DEPENDS:=+kmod-fs-nfs-common +kmod-dnsresolver
|
||||
KCONFIG:= \
|
||||
CONFIG_NFS_FS \
|
||||
CONFIG_NFS_USE_LEGACY_DNS=n \
|
||||
CONFIG_NFS_USE_NEW_IDMAPPER=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/nfs/nfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,nfs)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-nfs/description
|
||||
Kernel module for NFS client support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfs-common
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Common NFS filesystem modules
|
||||
DEPENDS:=+kmod-oid-registry
|
||||
KCONFIG:= \
|
||||
CONFIG_LOCKD \
|
||||
CONFIG_SUNRPC \
|
||||
CONFIG_GRACE_PERIOD \
|
||||
CONFIG_NFS_V4=y \
|
||||
CONFIG_NFS_V4_1=y \
|
||||
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" \
|
||||
CONFIG_NFS_V4_1_MIGRATION=n \
|
||||
CONFIG_NFS_V4_2=y \
|
||||
CONFIG_NFS_V4_2_READ_PLUS=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/lockd/lockd.ko \
|
||||
$(LINUX_DIR)/net/sunrpc/sunrpc.ko \
|
||||
$(LINUX_DIR)/fs/nfs_common/grace.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,grace sunrpc lockd)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfs-common))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfs-common-rpcsec
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NFS Secure RPC
|
||||
DEPENDS:= \
|
||||
+kmod-fs-nfs-common \
|
||||
+kmod-crypto-des \
|
||||
+kmod-crypto-cbc \
|
||||
+kmod-crypto-cts \
|
||||
+kmod-crypto-md5 \
|
||||
+kmod-crypto-sha1 \
|
||||
+kmod-crypto-hmac \
|
||||
+kmod-crypto-ecb \
|
||||
+kmod-crypto-arc4
|
||||
KCONFIG:= \
|
||||
CONFIG_SUNRPC_GSS \
|
||||
CONFIG_RPCSEC_GSS_KRB5
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \
|
||||
$(LINUX_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
|
||||
AUTOLOAD:=$(call AutoLoad,31,auth_rpcgss rpcsec_gss_krb5)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-nfs-common-rpcsec/description
|
||||
Kernel modules for NFS Secure RPC
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfs-common-rpcsec))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfs-v3
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NFS3 filesystem client support
|
||||
DEPENDS:=+kmod-fs-nfs
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/nfs/nfsv3.ko
|
||||
AUTOLOAD:=$(call AutoLoad,41,nfsv3)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-nfs-v3/description
|
||||
Kernel module for NFS v3 client support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfs-v3))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfs-v4
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NFS4 filesystem client support
|
||||
DEPENDS:=+kmod-fs-nfs
|
||||
KCONFIG:= \
|
||||
CONFIG_NFS_V4=y
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/nfs/nfsv4.ko
|
||||
AUTOLOAD:=$(call AutoLoad,41,nfsv4)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-nfs-v4/description
|
||||
Kernel module for NFS v4 client support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfs-v4))
|
||||
|
||||
|
||||
define KernelPackage/fs-nfsd
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NFS kernel server support
|
||||
DEPENDS:=+kmod-fs-nfs-common +kmod-fs-exportfs +kmod-fs-nfs-common-rpcsec
|
||||
KCONFIG:= \
|
||||
CONFIG_NFSD \
|
||||
CONFIG_NFSD_V4=y \
|
||||
CONFIG_NFSD_V4_SECURITY_LABEL=n \
|
||||
CONFIG_NFSD_BLOCKLAYOUT=n \
|
||||
CONFIG_NFSD_SCSILAYOUT=n \
|
||||
CONFIG_NFSD_FLEXFILELAYOUT=n \
|
||||
CONFIG_NFSD_FAULT_INJECTION=n \
|
||||
CONFIG_NFSD_V4_2_INTER_SSC=n
|
||||
FILES:=$(LINUX_DIR)/fs/nfsd/nfsd.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,nfsd)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-nfsd/description
|
||||
Kernel module for NFS kernel server support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-nfsd))
|
||||
|
||||
|
||||
define KernelPackage/fs-ntfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NTFS filesystem read-only (old driver) support
|
||||
KCONFIG:=CONFIG_NTFS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/ntfs/ntfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,ntfs)
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-ntfs/description
|
||||
Kernel module for limited NTFS filesystem support. Support for writing
|
||||
is extremely limited and disabled as a result.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-ntfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-ntfs3
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=NTFS filesystem read & write (new driver) support
|
||||
KCONFIG:= CONFIG_NTFS3_FS CONFIG_NTFS3_FS_POSIX_ACL=y
|
||||
FILES:=$(LINUX_DIR)/fs/ntfs3/ntfs3.ko
|
||||
$(call AddDepends/nls)
|
||||
AUTOLOAD:=$(call AutoLoad,80,ntfs3)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-ntfs3/description
|
||||
Kernel module for fully functional NTFS filesystem support. It allows
|
||||
reading as well as writing.
|
||||
|
||||
It supports NTFS versions up to 3.1.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-ntfs3))
|
||||
|
||||
|
||||
define KernelPackage/fs-reiserfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=ReiserFS filesystem support
|
||||
KCONFIG:=CONFIG_REISERFS_FS
|
||||
FILES:=$(LINUX_DIR)/fs/reiserfs/reiserfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,reiserfs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-reiserfs/description
|
||||
Kernel module for ReiserFS support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-reiserfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-squashfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=SquashFS 4.0 filesystem support
|
||||
KCONFIG:=CONFIG_SQUASHFS \
|
||||
CONFIG_SQUASHFS_XZ=y
|
||||
FILES:=$(LINUX_DIR)/fs/squashfs/squashfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,squashfs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-squashfs/description
|
||||
Kernel module for SquashFS 4.0 support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-squashfs))
|
||||
|
||||
|
||||
define KernelPackage/fs-udf
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=UDF filesystem support
|
||||
KCONFIG:=CONFIG_UDF_FS
|
||||
FILES:=$(LINUX_DIR)/fs/udf/udf.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,udf)
|
||||
DEPENDS:=+kmod-lib-crc-itu-t +kmod-cdrom
|
||||
$(call AddDepends/nls)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-udf/description
|
||||
Kernel module for UDF filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-udf))
|
||||
|
||||
|
||||
define KernelPackage/fs-vfat
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=VFAT filesystem support
|
||||
KCONFIG:= \
|
||||
CONFIG_FAT_FS \
|
||||
CONFIG_VFAT_FS
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/fs/fat/fat.ko \
|
||||
$(LINUX_DIR)/fs/fat/vfat.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,fat vfat,1)
|
||||
$(call AddDepends/nls,cp437 iso8859-1 utf8)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-vfat/description
|
||||
Kernel module for VFAT filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-vfat))
|
||||
|
||||
|
||||
define KernelPackage/fs-xfs
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=XFS filesystem support
|
||||
KCONFIG:=CONFIG_XFS_FS
|
||||
DEPENDS:= +kmod-fs-exportfs +kmod-lib-crc32c
|
||||
FILES:=$(LINUX_DIR)/fs/xfs/xfs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,xfs,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/fs-xfs/description
|
||||
Kernel module for XFS support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fs-xfs))
|
||||
|
||||
|
||||
define KernelPackage/fuse
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=FUSE (Filesystem in Userspace) support
|
||||
KCONFIG:= CONFIG_FUSE_FS
|
||||
FILES:=$(LINUX_DIR)/fs/fuse/fuse.ko
|
||||
AUTOLOAD:=$(call AutoLoad,80,fuse)
|
||||
endef
|
||||
|
||||
define KernelPackage/fuse/description
|
||||
Kernel module for userspace filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,fuse))
|
||||
|
||||
|
||||
define KernelPackage/pstore
|
||||
SUBMENU:=$(FS_MENU)
|
||||
TITLE:=Pstore file system
|
||||
DEFAULT:=m if ALL_KMODS
|
||||
KCONFIG:= \
|
||||
CONFIG_PSTORE \
|
||||
CONFIG_PSTORE_COMPRESS=y \
|
||||
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" \
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS=y \
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
|
||||
FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,pstore,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/pstore/description
|
||||
Kernel module for pstore filesystem support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,pstore))
|
1601
6.6/package/kernel/linux/modules/netsupport.mk
Normal file
1601
6.6/package/kernel/linux/modules/netsupport.mk
Normal file
File diff suppressed because it is too large
Load diff
1360
6.6/package/kernel/linux/modules/other.mk
Normal file
1360
6.6/package/kernel/linux/modules/other.mk
Normal file
File diff suppressed because it is too large
Load diff
140
6.6/package/kernel/linux/modules/virt.mk
Normal file
140
6.6/package/kernel/linux/modules/virt.mk
Normal file
|
@ -0,0 +1,140 @@
|
|||
#
|
||||
# Copyright (C) 2016 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
define KernelPackage/irqbypass
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=IRQ offload/bypass manager
|
||||
KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
|
||||
HIDDEN:=1
|
||||
FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
|
||||
AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
|
||||
endef
|
||||
$(eval $(call KernelPackage,irqbypass))
|
||||
|
||||
|
||||
define KernelPackage/kvm-x86
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=Kernel-based Virtual Machine (KVM) support
|
||||
DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
|
||||
KCONFIG:=\
|
||||
CONFIG_KVM \
|
||||
CONFIG_KVM_MMU_AUDIT=n \
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
|
||||
AUTOLOAD:=$(call AutoProbe,kvm.ko)
|
||||
endef
|
||||
|
||||
define KernelPackage/kvm-x86/description
|
||||
Support hosting fully virtualized guest machines using hardware
|
||||
virtualization extensions. You will need a fairly recent
|
||||
processor equipped with virtualization extensions. You will also
|
||||
need to select one or more of the processor modules.
|
||||
|
||||
This module provides access to the hardware capabilities through
|
||||
a character device node named /dev/kvm.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,kvm-x86))
|
||||
|
||||
|
||||
define KernelPackage/kvm-intel
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=KVM for Intel processors support
|
||||
DEPENDS:=+kmod-kvm-x86
|
||||
KCONFIG:=CONFIG_KVM_INTEL
|
||||
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
|
||||
AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
|
||||
endef
|
||||
|
||||
define KernelPackage/kvm-intel/description
|
||||
Provides support for KVM on Intel processors equipped with the VT
|
||||
extensions.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,kvm-intel))
|
||||
|
||||
|
||||
define KernelPackage/kvm-amd
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=KVM for AMD processors support
|
||||
DEPENDS:=+kmod-kvm-x86
|
||||
KCONFIG:=CONFIG_KVM_AMD
|
||||
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
|
||||
AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
|
||||
endef
|
||||
|
||||
define KernelPackage/kvm-amd/description
|
||||
Provides support for KVM on AMD processors equipped with the AMD-V
|
||||
(SVM) extensions.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,kvm-amd))
|
||||
|
||||
|
||||
define KernelPackage/vfio
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=VFIO Non-Privileged userspace driver framework
|
||||
DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
|
||||
KCONFIG:= \
|
||||
CONFIG_VFIO \
|
||||
CONFIG_VFIO_NOIOMMU=n \
|
||||
CONFIG_VFIO_MDEV=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/vfio/vfio.ko \
|
||||
$(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
|
||||
AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1)
|
||||
endef
|
||||
|
||||
define KernelPackage/vfio/description
|
||||
VFIO provides a framework for secure userspace device drivers.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,vfio))
|
||||
|
||||
|
||||
define KernelPackage/vfio-pci
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=Generic VFIO support for any PCI device
|
||||
DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
|
||||
KCONFIG:= \
|
||||
CONFIG_VFIO_PCI \
|
||||
CONFIG_VFIO_PCI_IGD=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
|
||||
$(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
|
||||
AUTOLOAD:=$(call AutoProbe,vfio-pci)
|
||||
endef
|
||||
|
||||
define KernelPackage/vfio-pci/description
|
||||
Support for the generic PCI VFIO bus driver which can connect any PCI
|
||||
device to the VFIO framework.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,vfio-pci))
|
||||
|
||||
|
||||
define KernelPackage/vhost
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=Host kernel accelerator for virtio (base)
|
||||
KCONFIG:=CONFIG_VHOST
|
||||
FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
|
||||
$(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
|
||||
AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,vhost))
|
||||
|
||||
|
||||
define KernelPackage/vhost-net
|
||||
SUBMENU:=Virtualization
|
||||
TITLE:=Host kernel accelerator for virtio-net
|
||||
DEPENDS:=+kmod-tun +kmod-vhost
|
||||
KCONFIG:=CONFIG_VHOST_NET
|
||||
FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
|
||||
AUTOLOAD:=$(call AutoProbe,vhost_net)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,vhost-net))
|
587
6.6/package/kernel/mt76/Makefile
Normal file
587
6.6/package/kernel/mt76/Makefile
Normal file
|
@ -0,0 +1,587 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mt76
|
||||
PKG_RELEASE=5
|
||||
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2023-05-13
|
||||
PKG_SOURCE_VERSION:=969b7b5ebd129068ca56e4b0d831593a2f92382f
|
||||
PKG_MIRROR_HASH:=d28869591d1cb9a967b72f5cd8215c7b2c3388b7b31147b7b18c797018ab8ffb
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
PKG_CONFIG_DEPENDS += \
|
||||
CONFIG_PACKAGE_kmod-mt76-usb \
|
||||
CONFIG_PACKAGE_kmod-mt76x02-common \
|
||||
CONFIG_PACKAGE_kmod-mt76x0-common \
|
||||
CONFIG_PACKAGE_kmod-mt76x0u \
|
||||
CONFIG_PACKAGE_kmod-mt76x2-common \
|
||||
CONFIG_PACKAGE_kmod-mt76x2 \
|
||||
CONFIG_PACKAGE_kmod-mt76x2u \
|
||||
CONFIG_PACKAGE_kmod-mt7603 \
|
||||
CONFIG_PACKAGE_CFG80211_TESTMODE
|
||||
|
||||
STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
CMAKE_SOURCE_DIR:=$(PKG_BUILD_DIR)/tools
|
||||
CMAKE_BINARY_DIR:=$(PKG_BUILD_DIR)/tools
|
||||
|
||||
define KernelPackage/mt76-default
|
||||
SUBMENU:=Wireless Drivers
|
||||
DEPENDS:= \
|
||||
+kmod-mac80211 \
|
||||
+@DRIVER_11AC_SUPPORT \
|
||||
+@KERNEL_PAGE_POOL
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76
|
||||
SUBMENU:=Wireless Drivers
|
||||
TITLE:=MediaTek MT76x2/MT7603 wireless driver (metapackage)
|
||||
DEPENDS:= \
|
||||
+kmod-mt76-core +kmod-mt76x2 +kmod-mt7603
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76-core
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76xx wireless driver
|
||||
HIDDEN:=1
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76-usb
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76xx wireless driver USB support
|
||||
DEPENDS += +kmod-usb-core +kmod-mt76-core
|
||||
HIDDEN:=1
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76-usb.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x02-usb
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code
|
||||
DEPENDS+=+kmod-mt76-usb +kmod-mt76x02-common
|
||||
HIDDEN:=1
|
||||
FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x02-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code
|
||||
DEPENDS+=+kmod-mt76-core
|
||||
HIDDEN:=1
|
||||
FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x0-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x0 wireless driver common code
|
||||
DEPENDS+=+kmod-mt76x02-common
|
||||
HIDDEN:=1
|
||||
FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x0e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x0E wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76x0-common
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76x0/mt76x0e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt76x0e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x0u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x0U wireless driver
|
||||
DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt76x0u)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x2-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x2 wireless driver common code
|
||||
DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common
|
||||
HIDDEN:=1
|
||||
FILES:=$(PKG_BUILD_DIR)/mt76x2/mt76x2-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x2u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x2U wireless driver
|
||||
DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76x2/mt76x2u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt76x2u)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x2
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT76x2 wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76x2-common
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt76x2/mt76x2e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt76x2e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7603
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7603 wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/mt7603/mt7603e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7603e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76-connac
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615/MT79xx wireless driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=+kmod-mt76-core
|
||||
FILES:= $(PKG_BUILD_DIR)/mt76-connac-lib.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76-sdio
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615/MT79xx SDIO driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=+kmod-mt76-core +kmod-mmc
|
||||
FILES:= $(PKG_BUILD_DIR)/mt76-sdio.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7615-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615 wireless driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76-core +kmod-mt76-connac +kmod-hwmon-core
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7615-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615e firmware
|
||||
DEPENDS+=+kmod-mt7615e
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7615e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615e wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt7615-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7615e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7622-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7622 firmware
|
||||
DEPENDS+=+kmod-mt7615e
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-firmware-ap
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663e firmware (optimized for AP)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-firmware-sta
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663e firmware (client mode offload)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-usb-sdio
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663 USB/SDIO shared code
|
||||
DEPENDS+=+kmod-mt7615-common
|
||||
HIDDEN:=1
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/mt7615/mt7663-usb-sdio-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663s
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663s wireless driver
|
||||
DEPENDS+=+kmod-mt76-sdio +kmod-mt7615-common +kmod-mt7663-usb-sdio
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/mt7615/mt7663s.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7663s)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663u wireless driver
|
||||
DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common +kmod-mt7663-usb-sdio
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7663u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7663u)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7915-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7915 firmware
|
||||
DEPENDS+=+kmod-mt7915e
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7915e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7915e wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +kmod-thermal +@DRIVER_11AX_SUPPORT +@KERNEL_RELAY
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7915/mt7915e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7915e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7916-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
DEPENDS+=+kmod-mt7915e
|
||||
TITLE:=MediaTek MT7916 firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7981-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
DEPENDS:=@TARGET_mediatek_filogic
|
||||
TITLE:=MediaTek MT7981 firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7986-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
DEPENDS:=@TARGET_mediatek_filogic
|
||||
TITLE:=MediaTek MT7986 firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7921 firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7922-firmware
|
||||
$(KernelPackage/mt76-default)
|
||||
DEPENDS+=+kmod-mt7921-common
|
||||
TITLE:=MediaTek MT7922 firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7615 wireless driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=+kmod-mt76-connac +kmod-mt7921-firmware +@DRIVER_11AX_SUPPORT
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7921U wireless driver
|
||||
DEPENDS+=+kmod-mt76-usb +kmod-mt7921-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921u)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921s
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7921S wireless driver
|
||||
DEPENDS+=+kmod-mt76-sdio +kmod-mt7921-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921s.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921s)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7921e wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt7921-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921e)
|
||||
endef
|
||||
|
||||
define Package/mt76-test
|
||||
SECTION:=devel
|
||||
CATEGORY:=Development
|
||||
TITLE:=mt76 testmode CLI
|
||||
DEPENDS:=kmod-mt76-core +libnl-tiny
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
|
||||
|
||||
NOSTDINC_FLAGS := \
|
||||
$(KERNEL_NOSTDINC_FLAGS) \
|
||||
-I$(PKG_BUILD_DIR) \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211-backport \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211/uapi \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211 \
|
||||
-include backport/autoconf.h \
|
||||
-include backport/backport.h
|
||||
|
||||
ifdef CONFIG_PACKAGE_MAC80211_MESH
|
||||
NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PACKAGE_CFG80211_TESTMODE
|
||||
NOSTDINC_FLAGS += -DCONFIG_NL80211_TESTMODE
|
||||
PKG_MAKE_FLAGS += CONFIG_NL80211_TESTMODE=y
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76-usb
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x02-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x02-usb
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x0-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x0e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x0E=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x0u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x0U=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x2-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x2
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x2E=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76x2u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76x2U=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7603
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7603E=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76-connac
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76_CONNAC_LIB=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76-sdio
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7615-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7615_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7615e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7615E=m
|
||||
ifdef CONFIG_TARGET_mediatek_mt7622
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7622_WMAC=y
|
||||
NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
|
||||
endif
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663-usb-sdio
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663_USB_SDIO_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663s
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663S=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663U=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7915e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7915E=m
|
||||
ifdef CONFIG_TARGET_mediatek_filogic
|
||||
PKG_MAKE_FLAGS += CONFIG_MT798X_WMAC=y
|
||||
NOSTDINC_FLAGS += -DCONFIG_MT798X_WMAC
|
||||
endif
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7921-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7921_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7921u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7921U=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7921s
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7921S=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7921e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7921E=m
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
$(PKG_MAKE_FLAGS) \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
$(MAKE) -C $(PKG_BUILD_DIR)/tools
|
||||
endef
|
||||
|
||||
define Build/Install
|
||||
:
|
||||
endef
|
||||
|
||||
define Package/kmod-mt76/install
|
||||
true
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x0-common/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7610e.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x2-common/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7662.bin \
|
||||
$(1)/lib/firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x0u/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
ln -sf mt7610e.bin $(1)/lib/firmware/mediatek/mt7610u.bin
|
||||
endef
|
||||
|
||||
define KernelPackage/mt76x2u/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
ln -sf ../mt7662.bin $(1)/lib/firmware/mediatek/mt7662u.bin
|
||||
ln -sf ../mt7662_rom_patch.bin $(1)/lib/firmware/mediatek/mt7662u_rom_patch.bin
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7603/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware
|
||||
cp $(if $(CONFIG_TARGET_ramips_mt76x8), \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7628_e1.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7628_e2.bin \
|
||||
,\
|
||||
$(PKG_BUILD_DIR)/firmware/mt7603_e1.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7603_e2.bin \
|
||||
) \
|
||||
$(1)/lib/firmware
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7615-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7615_n9.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7622-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-firmware-ap/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7663_n9_rebb.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7663pr2h_rebb.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-firmware-sta/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7663_n9_v3.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7663pr2h.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7915-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7915_wa.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7915_wm.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7915_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7916-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7916_wa.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7916_wm.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7916_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7981-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7981_wa.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7981_wm.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7981_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7986-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7986_wa.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7986_wm_mt7975.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7986_wm.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7986_rom_patch_mt7975.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/mt7986_rom_patch.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7921-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/WIFI_MT7961_patch_mcu_1_2_hdr.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7961_1.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7922-firmware/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
|
||||
cp \
|
||||
$(PKG_BUILD_DIR)/firmware/WIFI_MT7922_patch_mcu_1_1_hdr.bin \
|
||||
$(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7922_1.bin \
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define Package/mt76-test/install
|
||||
mkdir -p $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,mt76-core))
|
||||
$(eval $(call KernelPackage,mt76-usb))
|
||||
$(eval $(call KernelPackage,mt76x02-usb))
|
||||
$(eval $(call KernelPackage,mt76x02-common))
|
||||
$(eval $(call KernelPackage,mt76x0-common))
|
||||
$(eval $(call KernelPackage,mt76x0e))
|
||||
$(eval $(call KernelPackage,mt76x0u))
|
||||
$(eval $(call KernelPackage,mt76x2-common))
|
||||
$(eval $(call KernelPackage,mt76x2u))
|
||||
$(eval $(call KernelPackage,mt76x2))
|
||||
$(eval $(call KernelPackage,mt7603))
|
||||
$(eval $(call KernelPackage,mt76-connac))
|
||||
$(eval $(call KernelPackage,mt76-sdio))
|
||||
$(eval $(call KernelPackage,mt7615-common))
|
||||
$(eval $(call KernelPackage,mt7615-firmware))
|
||||
$(eval $(call KernelPackage,mt7622-firmware))
|
||||
$(eval $(call KernelPackage,mt7615e))
|
||||
$(eval $(call KernelPackage,mt7663-firmware-ap))
|
||||
$(eval $(call KernelPackage,mt7663-firmware-sta))
|
||||
$(eval $(call KernelPackage,mt7663-usb-sdio))
|
||||
$(eval $(call KernelPackage,mt7663u))
|
||||
$(eval $(call KernelPackage,mt7663s))
|
||||
$(eval $(call KernelPackage,mt7915-firmware))
|
||||
$(eval $(call KernelPackage,mt7915e))
|
||||
$(eval $(call KernelPackage,mt7916-firmware))
|
||||
$(eval $(call KernelPackage,mt7981-firmware))
|
||||
$(eval $(call KernelPackage,mt7986-firmware))
|
||||
$(eval $(call KernelPackage,mt7921-firmware))
|
||||
$(eval $(call KernelPackage,mt7922-firmware))
|
||||
$(eval $(call KernelPackage,mt7921-common))
|
||||
$(eval $(call KernelPackage,mt7921u))
|
||||
$(eval $(call KernelPackage,mt7921s))
|
||||
$(eval $(call KernelPackage,mt7921e))
|
||||
$(eval $(call KernelPackage,mt76))
|
||||
$(eval $(call BuildPackage,mt76-test))
|
59
6.6/package/kernel/mt76/patches/001-allow-vht-on-2g.patch
Normal file
59
6.6/package/kernel/mt76/patches/001-allow-vht-on-2g.patch
Normal file
|
@ -0,0 +1,59 @@
|
|||
From ed0b9c38becdbf9379787ca0b4db557f03a31dd7 Mon Sep 17 00:00:00 2001
|
||||
From: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
|
||||
Date: Mon, 23 Nov 2020 10:46:37 +0800
|
||||
Subject: [PATCH] mt76: allow VHT rate on 2.4GHz
|
||||
|
||||
Allow chips that support 11ac to use 256QAM on 2.4GHz
|
||||
|
||||
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
---
|
||||
mac80211.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/mac80211.c b/mac80211.c
|
||||
index 766681a4..06aa4228 100644
|
||||
--- a/mac80211.c
|
||||
+++ b/mac80211.c
|
||||
@@ -282,7 +282,7 @@ static void mt76_init_stream_cap(struct mt76_phy *phy,
|
||||
void mt76_set_stream_caps(struct mt76_phy *phy, bool vht)
|
||||
{
|
||||
if (phy->cap.has_2ghz)
|
||||
- mt76_init_stream_cap(phy, &phy->sband_2g.sband, false);
|
||||
+ mt76_init_stream_cap(phy, &phy->sband_2g.sband, vht);
|
||||
if (phy->cap.has_5ghz)
|
||||
mt76_init_stream_cap(phy, &phy->sband_5g.sband, vht);
|
||||
if (phy->cap.has_6ghz)
|
||||
@@ -349,13 +349,13 @@ mt76_init_sband(struct mt76_phy *phy, struct mt76_sband *msband,
|
||||
|
||||
static int
|
||||
mt76_init_sband_2g(struct mt76_phy *phy, struct ieee80211_rate *rates,
|
||||
- int n_rates)
|
||||
+ int n_rates, bool vht)
|
||||
{
|
||||
phy->hw->wiphy->bands[NL80211_BAND_2GHZ] = &phy->sband_2g.sband;
|
||||
|
||||
return mt76_init_sband(phy, &phy->sband_2g, mt76_channels_2ghz,
|
||||
ARRAY_SIZE(mt76_channels_2ghz), rates,
|
||||
- n_rates, true, false);
|
||||
+ n_rates, true, vht);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -508,7 +508,7 @@ int mt76_register_phy(struct mt76_phy *phy, bool vht,
|
||||
return ret;
|
||||
|
||||
if (phy->cap.has_2ghz) {
|
||||
- ret = mt76_init_sband_2g(phy, rates, n_rates);
|
||||
+ ret = mt76_init_sband_2g(phy, rates, n_rates, vht);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -691,7 +691,7 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
|
||||
return ret;
|
||||
|
||||
if (phy->cap.has_2ghz) {
|
||||
- ret = mt76_init_sband_2g(phy, rates, n_rates);
|
||||
+ ret = mt76_init_sband_2g(phy, rates, n_rates, vht);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
33
6.6/package/kernel/r2ec/Makefile
Normal file
33
6.6/package/kernel/r2ec/Makefile
Normal file
|
@ -0,0 +1,33 @@
|
|||
#
|
||||
# Copyright (C) 2008-2012 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=r2ec
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/r2ec
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=STM32 R2EC (Router to Embedded board Communication) Driver
|
||||
FILES:=$(PKG_BUILD_DIR)/r2ec.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,r2ec,1)
|
||||
# DEPENDS:=@TARGET_ipq40xx @LINUX_5_4
|
||||
DEPENDS:=@TARGET_ipq40xx
|
||||
KCONFIG:=
|
||||
endef
|
||||
|
||||
MAKE_OPTS:= $(KERNEL_MAKE_FLAGS) M="$(PKG_BUILD_DIR)"
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,r2ec))
|
1
6.6/package/kernel/r2ec/src/Makefile
Normal file
1
6.6/package/kernel/r2ec/src/Makefile
Normal file
|
@ -0,0 +1 @@
|
|||
obj-m += r2ec.o
|
60
6.6/package/kernel/r2ec/src/io.h
Normal file
60
6.6/package/kernel/r2ec/src/io.h
Normal file
|
@ -0,0 +1,60 @@
|
|||
#ifndef R2EC_IO_H
|
||||
#define R2EC_IO_H
|
||||
|
||||
#define NO_OF_GPIOS 37
|
||||
|
||||
enum proto_version {
|
||||
PROTO_VERSION_1 = 0x01,
|
||||
PROTO_VERSION_2 = 0x02
|
||||
};
|
||||
|
||||
enum cmd_type_id {
|
||||
CMD_GPIO = 0x06,
|
||||
CMD_PROTO = 0xFC,
|
||||
CMD_FW = 0xFD,
|
||||
CMD_BOOT = 0xFE
|
||||
};
|
||||
|
||||
enum proto_id {
|
||||
PROTO_GET_SUPPORTED = 0x03
|
||||
};
|
||||
|
||||
enum boot_id {
|
||||
BOOT_START_APP = 0x03,
|
||||
BOOT_STATE = 0xFD,
|
||||
BOOT_VERSION = 0xFE
|
||||
};
|
||||
|
||||
enum state_id {
|
||||
NO_IMAGE_FOUND = 0x17,
|
||||
BOOT_STARTED = 0x18,
|
||||
WATCHDOG_RESET = 0x1B,
|
||||
APPLICATION_START_FAIL = 0x99,
|
||||
HARD_FAULT_ERROR = 0x9A,
|
||||
APP_STARTED = 0xFC,
|
||||
NO_DATA_AVAILABLE = 0xFF
|
||||
};
|
||||
|
||||
enum ack_id {
|
||||
STATUS_ACK = 0x7D,
|
||||
STATUS_NACK = 0x7E
|
||||
};
|
||||
|
||||
enum gpio_state {
|
||||
GPIO_STATE_HIGH = 0x1E,
|
||||
GPIO_STATE_LOW = 0x9F
|
||||
};
|
||||
|
||||
enum gpio_mode {
|
||||
GPIO_VALUE_SET_LOW = 0x00,
|
||||
GPIO_VALUE_SET_HIGH = 0x01,
|
||||
GPIO_VALUE_GET = 0x02,
|
||||
GPIO_MODE_SET_OUTPUT = 0x04,
|
||||
GPIO_MODE_SET_INPUT = 0x05
|
||||
};
|
||||
|
||||
enum fw_id {
|
||||
FW_VERSION = 0x01
|
||||
};
|
||||
|
||||
#endif // R2EC_IO_H
|
752
6.6/package/kernel/r2ec/src/r2ec.c
Normal file
752
6.6/package/kernel/r2ec/src/r2ec.c
Normal file
|
@ -0,0 +1,752 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/gpio/driver.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include "io.h"
|
||||
|
||||
static const struct i2c_device_id r2ec_id[] = {
|
||||
{ "stm32v1", NO_OF_GPIOS },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, r2ec_id);
|
||||
|
||||
static const struct of_device_id r2ec_of_table[] = {
|
||||
{ .compatible = "tlt,stm32v1" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, r2ec_of_table);
|
||||
|
||||
static uint8_t g_proto;
|
||||
|
||||
struct r2ec {
|
||||
struct gpio_chip chip;
|
||||
struct irq_chip irqchip;
|
||||
struct i2c_client *client;
|
||||
struct mutex i2c_lock;
|
||||
struct mutex irq_lock;
|
||||
int ic_ready;
|
||||
};
|
||||
|
||||
struct r2ec_platform_data {
|
||||
unsigned gpio_base;
|
||||
|
||||
int (*setup)(struct i2c_client *client, int gpio, unsigned ngpio,
|
||||
void *context);
|
||||
|
||||
int (*teardown)(struct i2c_client *client, int gpio, unsigned ngpio,
|
||||
void *context);
|
||||
|
||||
void *context;
|
||||
};
|
||||
|
||||
struct i2c_request {
|
||||
uint8_t version;
|
||||
uint16_t length;
|
||||
uint8_t command;
|
||||
uint8_t data[1];
|
||||
// uint8_t checksum; // invisible
|
||||
} __attribute__((packed));
|
||||
|
||||
struct i2c_response {
|
||||
uint8_t version;
|
||||
uint8_t length;
|
||||
uint8_t command;
|
||||
uint8_t data[7];
|
||||
uint8_t checksum;
|
||||
} __attribute__((packed));
|
||||
|
||||
static uint8_t calc_crc8(const uint8_t *data, size_t len)
|
||||
{
|
||||
uint8_t crc = 0xFF;
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
|
||||
for (j = 0; j < len; j++) {
|
||||
crc ^= data[j];
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
crc = (crc & 0x80) ? (crc ^ 0xD5) << 1 : crc << 1;
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
// generate outcoming mesage checksum and write i2c data
|
||||
static int stm32_write(struct i2c_client *client, uint8_t ver, uint8_t cmd, uint8_t *data, size_t len)
|
||||
{
|
||||
struct i2c_request *req = NULL;
|
||||
const int tmp_len = sizeof(struct i2c_request) + 1;
|
||||
uint8_t tmp[sizeof(struct i2c_request) + 1];
|
||||
int err = 0;
|
||||
|
||||
if (!client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
req = (struct i2c_request *)tmp;
|
||||
req->version = ver;
|
||||
req->length = 2 + len; // 2 + data_len
|
||||
req->command = cmd;
|
||||
|
||||
memcpy(req->data, data, len);
|
||||
|
||||
req->data[len] = calc_crc8(tmp, tmp_len - 1);
|
||||
|
||||
if ((err = i2c_master_send(client, tmp, tmp_len)) < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// attempt to read i2c data
|
||||
static int stm32_read(struct i2c_client *client, uint8_t *data, size_t len)
|
||||
{
|
||||
char buffer[64] = { 0 };
|
||||
uint8_t checksum;
|
||||
int err;
|
||||
unsigned i, cnt = 0;
|
||||
|
||||
if (!client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
retry:
|
||||
if ((err = i2c_master_recv(client, data, len)) < 0) {
|
||||
if (err == -ETIMEDOUT && cnt < 10) {
|
||||
cnt++;
|
||||
msleep(10);
|
||||
goto retry;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
if (len == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ignore checksum on partial i2c response
|
||||
if (len == sizeof(struct i2c_response) - 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 0xFF - no data available
|
||||
if (*(data + 3) == 0xFF) {
|
||||
return -ENODATA;
|
||||
}
|
||||
|
||||
// generate checksum and verify
|
||||
checksum = calc_crc8(data, len - 1);
|
||||
|
||||
if (checksum != *(data + len - 1)) {
|
||||
for (i = 0; i < len; i++) {
|
||||
snprintf(buffer + strlen(buffer), sizeof(buffer),
|
||||
"%02X ", *(data + i));
|
||||
}
|
||||
|
||||
dev_err(&client->dev, "Checksum of incoming message "
|
||||
"does not match!\n"
|
||||
"Received: %s\n", buffer);
|
||||
|
||||
// for some reason checksum might appear as 1st byte in the
|
||||
// data buffer, and actual checksum byte is zero
|
||||
// apply quirk - discard first byte, skip checksum checking
|
||||
if (!*(data + len - 1)) {
|
||||
dev_err(&client->dev,
|
||||
"Applying wrong-checksum quirk...\n");
|
||||
memmove(data, data + 1, len - 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// attempt to retrieve supported protocol version, then retrieve device state
|
||||
// and boot into application state
|
||||
// this is done without interrupt, so there should be delay after writing
|
||||
// request and before reading response for protocol versions up until v2
|
||||
static int stm32_prepare(struct r2ec *gpio, struct i2c_client *client)
|
||||
{
|
||||
struct i2c_response rsp;
|
||||
uint8_t data[1], recv[1];
|
||||
int ret;
|
||||
|
||||
memset(&rsp, 0, sizeof(rsp));
|
||||
|
||||
data[0] = PROTO_GET_SUPPORTED;
|
||||
|
||||
if ((ret = stm32_write(client, 1, CMD_PROTO, data, 1))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: proto version write failed (%d)\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
// due compatibility reasons delay is needed between write/read
|
||||
// operations
|
||||
msleep(10);
|
||||
|
||||
if ((ret = stm32_read(client, (uint8_t *)&rsp, sizeof(rsp)))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: proto version read failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
g_proto = rsp.data[1];
|
||||
|
||||
// fallback to version 1
|
||||
if (g_proto != PROTO_VERSION_1 && g_proto != PROTO_VERSION_2) {
|
||||
printk("STM32 fallback protocol: %u\n", g_proto);
|
||||
g_proto = PROTO_VERSION_1;
|
||||
}
|
||||
|
||||
printk("STM32 supported protocol: %u\n", g_proto);
|
||||
|
||||
data[0] = BOOT_STATE;
|
||||
|
||||
if ((ret = stm32_write(client, g_proto, CMD_BOOT, data, 1))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: boot state write failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if ((ret = stm32_read(client, recv, 1))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: boot state read failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
// device might be not ready aka in bootloader state
|
||||
// we might need to ignore gpio_write status value
|
||||
gpio->ic_ready = 0;
|
||||
|
||||
// handle the following possible states reported either from
|
||||
// bootloader or system:
|
||||
switch (recv[0]) {
|
||||
case NO_IMAGE_FOUND:
|
||||
case APP_STARTED:
|
||||
// device is ready, no need to ignore gpio_write status value
|
||||
// note: on no_image_found, user-space flasher will reflash
|
||||
// firmware and device will be rebooted
|
||||
gpio->ic_ready = 1;
|
||||
return 0;
|
||||
case BOOT_STARTED:
|
||||
case WATCHDOG_RESET:
|
||||
case APPLICATION_START_FAIL:
|
||||
case HARD_FAULT_ERROR:
|
||||
case NO_DATA_AVAILABLE:
|
||||
break;
|
||||
default:
|
||||
dev_err(&client->dev, "Device did not responded with correct "
|
||||
"state! Actual response was 0x%02X. "
|
||||
"Unable to get device state!\n", recv[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
data[0] = BOOT_START_APP;
|
||||
|
||||
if ((ret = stm32_write(client, g_proto, CMD_BOOT, data, 1))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: boot start write failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if ((ret = stm32_read(client, recv, 1))) {
|
||||
dev_err(&client->dev,
|
||||
"stm32_prepare: boot start read failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (recv[0] != STATUS_ACK && recv[0] != NO_DATA_AVAILABLE) {
|
||||
dev_err(&client->dev, "Device did not responded with ACK. "
|
||||
"Actual response was 0x%02X. "
|
||||
"Unable to set device state!\n", recv[0]);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int stm32_gpio_write(struct r2ec *gpio, int pin, int val)
|
||||
{
|
||||
struct i2c_request *req;
|
||||
size_t len = 2;
|
||||
uint8_t tmp[sizeof(struct i2c_request) + 2];
|
||||
//int err;
|
||||
|
||||
if (!gpio->client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
req = (struct i2c_request *)tmp;
|
||||
req->version = PROTO_VERSION_2;
|
||||
req->length = 2 + len; // command + crc + data
|
||||
req->command = CMD_GPIO;
|
||||
req->data[0] = pin;
|
||||
req->data[1] = val;
|
||||
|
||||
i2c_master_send(gpio->client, tmp, sizeof(tmp));
|
||||
// if ((err = i2c_master_send(gpio->client, tmp, sizeof(tmp))) < 0) {
|
||||
// if (err != -ENXIO) {
|
||||
// return err;
|
||||
// }
|
||||
|
||||
// we need to ignore errors while device is not ready
|
||||
// otherwise none of GPIOs/LEDs will be probed by the kernel
|
||||
// if (!gpio->ic_ready) {
|
||||
// err = 0;
|
||||
// }
|
||||
//
|
||||
// return err;
|
||||
// }
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int stm32_gpio_read(struct r2ec *gpio, int pin, int val)
|
||||
{
|
||||
struct i2c_request *req;
|
||||
size_t len = 2;
|
||||
uint8_t tmp[sizeof(struct i2c_request) + 2];
|
||||
uint8_t recv[1];
|
||||
int err;
|
||||
|
||||
if (!gpio->client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
req = (struct i2c_request *)tmp;
|
||||
req->version = PROTO_VERSION_2;
|
||||
req->length = 2 + len; // command + crc + data
|
||||
req->command = CMD_GPIO;
|
||||
req->data[0] = pin;
|
||||
req->data[1] = val;
|
||||
|
||||
if ((err = i2c_master_send(gpio->client, tmp, sizeof(tmp))) < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
if ((err = i2c_master_recv(gpio->client, recv, sizeof(recv))) < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
switch (recv[0]) {
|
||||
case GPIO_STATE_HIGH:
|
||||
return 1;
|
||||
case GPIO_STATE_LOW:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
static int r2ec_get(struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
struct r2ec *gpio = gpiochip_get_data(chip);
|
||||
int value;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
value = stm32_gpio_read(gpio, offset, GPIO_VALUE_GET);
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
static void r2ec_set(struct gpio_chip *chip, unsigned offset, int value)
|
||||
{
|
||||
struct r2ec *gpio = gpiochip_get_data(chip);
|
||||
int val = value ? GPIO_VALUE_SET_HIGH : GPIO_VALUE_SET_LOW;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
stm32_gpio_write(gpio, offset, val);
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
}
|
||||
|
||||
static int r2ec_input(struct gpio_chip *chip, unsigned offset)
|
||||
{
|
||||
struct r2ec *gpio = gpiochip_get_data(chip);
|
||||
int status;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
status = stm32_gpio_write(gpio, offset, GPIO_MODE_SET_INPUT);
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static int r2ec_output(struct gpio_chip *chip, unsigned offset, int value)
|
||||
{
|
||||
struct r2ec *gpio = gpiochip_get_data(chip);
|
||||
int status;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
status = stm32_gpio_write(gpio, offset, GPIO_MODE_SET_OUTPUT);
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
|
||||
r2ec_set(chip, offset, value);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static void noop(struct irq_data *data) { }
|
||||
|
||||
static int noop_wake(struct irq_data *data, unsigned on)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static irqreturn_t r2ec_irq(int irq, void *data)
|
||||
{
|
||||
struct r2ec *gpio = data;
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < gpio->chip.ngpio; i++) {
|
||||
handle_nested_irq(irq_find_mapping(gpio->chip.irq.domain, i));
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void r2ec_irq_bus_lock(struct irq_data *data)
|
||||
{
|
||||
struct r2ec *gpio = irq_data_get_irq_chip_data(data);
|
||||
mutex_lock(&gpio->irq_lock);
|
||||
}
|
||||
|
||||
static void r2ec_irq_bus_sync_unlock(struct irq_data *data)
|
||||
{
|
||||
struct r2ec *gpio = irq_data_get_irq_chip_data(data);
|
||||
mutex_unlock(&gpio->irq_lock);
|
||||
}
|
||||
|
||||
static int chip_label_match(struct gpio_chip *chip, void *data)
|
||||
{
|
||||
return !strcmp(chip->label, data);
|
||||
}
|
||||
|
||||
static int get_stm32_version(struct device *dev, uint8_t type, char *buffer)
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct r2ec *gpio;
|
||||
uint8_t recv[sizeof(struct i2c_response)];
|
||||
uint8_t data[1];
|
||||
int ret;
|
||||
|
||||
struct pt_fw_get_ver {
|
||||
unsigned char command_ex;
|
||||
unsigned char major;
|
||||
unsigned char middle;
|
||||
unsigned char minor;
|
||||
unsigned char rev;
|
||||
} __attribute__((packed)) *res;
|
||||
|
||||
chip = gpiochip_find("stm32v1", chip_label_match);
|
||||
if (!chip) {
|
||||
printk(KERN_ERR "Unable to find R2EC gpio chip!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
gpio = gpiochip_get_data(chip);
|
||||
|
||||
if (!gpio->client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
data[0] = (type == CMD_FW) ? FW_VERSION : BOOT_VERSION;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
|
||||
if ((ret = stm32_write(gpio->client, g_proto, type, data, 1))) {
|
||||
printk("%s: firmware version write failed (%d)\n",
|
||||
__func__, ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
// prevent possible I2C bus lockup when master requests more than 1 byte
|
||||
// and slave only sends a couple of bytes, but master is still waiting
|
||||
// and SCL line is down; there is no recovery except power cycle
|
||||
// first read 1 byte and compare with supported protocol versions
|
||||
// if they match, then full messsage can be read, otherwise drop
|
||||
// everything to not introduce bus lockup
|
||||
if ((ret = stm32_read(gpio->client, data, 1))) {
|
||||
printk("%s: firmware version read failed (%d)\n",
|
||||
__func__, ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (data[0] != PROTO_VERSION_1 && data[0] != PROTO_VERSION_2) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
recv[0] = data[0];
|
||||
|
||||
if ((ret = stm32_read(gpio->client, &recv[1], sizeof(recv) - 1))) {
|
||||
printk("%s: firmware version read failed (%d)\n",
|
||||
__func__, ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
// device is ready now, running in application-mode
|
||||
// this is called by autoflasher script first time
|
||||
if (!gpio->ic_ready) {
|
||||
gpio->ic_ready = 1;
|
||||
}
|
||||
|
||||
res = (struct pt_fw_get_ver *)(&recv[3]);
|
||||
|
||||
sprintf(buffer, "%02d.%02d.%02d rev. %02d\n",
|
||||
res->major, res->middle, res->minor, res->rev);
|
||||
|
||||
done:
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
return strlen(buffer);
|
||||
}
|
||||
|
||||
static ssize_t app_version_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buffer)
|
||||
{
|
||||
return get_stm32_version(dev, CMD_FW, buffer);
|
||||
}
|
||||
|
||||
static ssize_t boot_version_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buffer)
|
||||
{
|
||||
return get_stm32_version(dev, CMD_BOOT, buffer);
|
||||
}
|
||||
|
||||
static ssize_t reset_store(struct device *dev, struct device_attribute *attr,
|
||||
const char *buff, size_t count)
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct r2ec *gpio;
|
||||
uint8_t data[1];
|
||||
|
||||
chip = gpiochip_find("stm32v1", chip_label_match);
|
||||
if (!chip) {
|
||||
printk(KERN_ERR "Unable to find R2EC gpio chip!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
gpio = gpiochip_get_data(chip);
|
||||
|
||||
if (!gpio->client) {
|
||||
printk(KERN_ERR "R2EC I2C client is not ready!\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
data[0] = BOOT_START_APP;
|
||||
|
||||
mutex_lock(&gpio->i2c_lock);
|
||||
if (stm32_write(gpio->client, g_proto, CMD_BOOT, data, 1)) {
|
||||
printk(KERN_ERR "Unable transmit R2EC data!\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
done:
|
||||
mutex_unlock(&gpio->i2c_lock);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct device_attribute g_r2ec_kobj_attr[] = {
|
||||
__ATTR_RO(app_version),
|
||||
__ATTR_RO(boot_version),
|
||||
__ATTR_WO(reset)
|
||||
};
|
||||
|
||||
static struct attribute *g_r2ec_attrs[] = {
|
||||
&g_r2ec_kobj_attr[0].attr,
|
||||
&g_r2ec_kobj_attr[1].attr,
|
||||
&g_r2ec_kobj_attr[2].attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static struct attribute_group g_r2ec_attr_group = { .attrs = g_r2ec_attrs };
|
||||
static struct kobject *g_r2ec_kobj;
|
||||
|
||||
static int r2ec_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||
{
|
||||
struct r2ec_platform_data *pdata = dev_get_platdata(&client->dev);
|
||||
// dev_err(&client->dev,
|
||||
// "r2ec_probe: dev_get_platdata(0x%x, %s): 0x%x\n",
|
||||
// client->addr, client->name, pdata);
|
||||
struct r2ec *gpio;
|
||||
struct gpio_irq_chip *girq;
|
||||
int status, i;
|
||||
|
||||
gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL);
|
||||
if (!gpio) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
if (!(status = stm32_prepare(gpio, client))) {
|
||||
break;
|
||||
}
|
||||
|
||||
dev_err(&client->dev,
|
||||
"Unable to initialize device, retrying...\n");
|
||||
|
||||
// give some time for next interation...
|
||||
msleep(500);
|
||||
}
|
||||
|
||||
if (status) {
|
||||
dev_err(&client->dev, "Unable to initialize device!\n");
|
||||
devm_kfree(&client->dev, gpio);
|
||||
return status;
|
||||
}
|
||||
|
||||
mutex_init(&gpio->irq_lock);
|
||||
mutex_init(&gpio->i2c_lock);
|
||||
|
||||
lockdep_set_subclass(&gpio->i2c_lock,
|
||||
i2c_adapter_depth(client->adapter));
|
||||
|
||||
gpio->chip.base = pdata ? pdata->gpio_base : -1;
|
||||
gpio->chip.can_sleep = true;
|
||||
gpio->chip.parent = &client->dev;
|
||||
gpio->chip.owner = THIS_MODULE;
|
||||
gpio->chip.get = r2ec_get;
|
||||
gpio->chip.set = r2ec_set;
|
||||
gpio->chip.direction_input = r2ec_input;
|
||||
gpio->chip.direction_output = r2ec_output;
|
||||
gpio->chip.ngpio = id->driver_data;
|
||||
gpio->chip.label = client->name;
|
||||
gpio->client = client;
|
||||
|
||||
i2c_set_clientdata(client, gpio);
|
||||
|
||||
if (client->irq) {
|
||||
gpio->irqchip.name = "r2ec";
|
||||
gpio->irqchip.irq_enable = noop,
|
||||
gpio->irqchip.irq_disable = noop,
|
||||
gpio->irqchip.irq_ack = noop,
|
||||
gpio->irqchip.irq_mask = noop,
|
||||
gpio->irqchip.irq_unmask = noop,
|
||||
gpio->irqchip.irq_set_wake = noop_wake,
|
||||
gpio->irqchip.irq_bus_lock = r2ec_irq_bus_lock;
|
||||
gpio->irqchip.irq_bus_sync_unlock = r2ec_irq_bus_sync_unlock;
|
||||
|
||||
girq = &gpio->chip.irq;
|
||||
girq->chip = &gpio->irqchip;
|
||||
/* This will let us handle the parent IRQ in the driver */
|
||||
girq->parent_handler = NULL;
|
||||
girq->num_parents = 0;
|
||||
girq->parents = NULL;
|
||||
girq->default_type = IRQ_TYPE_NONE;
|
||||
girq->handler = handle_bad_irq;
|
||||
girq->threaded = true;
|
||||
|
||||
status = devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);
|
||||
|
||||
if (status) {
|
||||
dev_err(&client->dev, "cannot add irqchip\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
status = devm_request_threaded_irq(&client->dev, client->irq,
|
||||
NULL, r2ec_irq,
|
||||
IRQF_ONESHOT |
|
||||
IRQF_TRIGGER_FALLING |
|
||||
IRQF_SHARED,
|
||||
dev_name(&client->dev),
|
||||
gpio);
|
||||
if (status) {
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
if (pdata && pdata->setup) {
|
||||
status = pdata->setup(client, gpio->chip.base, gpio->chip.ngpio,
|
||||
pdata->context);
|
||||
|
||||
if (status < 0) {
|
||||
dev_warn(&client->dev, "setup --> %d\n", status);
|
||||
}
|
||||
}
|
||||
|
||||
dev_info(&client->dev, "probed\n");
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
devm_kfree(&client->dev, gpio);
|
||||
dev_dbg(&client->dev, "probe error %d for %s\n", status, client->name);
|
||||
return status;
|
||||
}
|
||||
|
||||
static void r2ec_remove(struct i2c_client *client)
|
||||
{
|
||||
struct r2ec_platform_data *pdata = dev_get_platdata(&client->dev);
|
||||
struct r2ec *gpio = i2c_get_clientdata(client);
|
||||
int status = 0;
|
||||
|
||||
if (pdata && pdata->teardown) {
|
||||
status = pdata->teardown(client, gpio->chip.base, gpio->chip.ngpio,
|
||||
pdata->context);
|
||||
|
||||
if (status < 0) {
|
||||
dev_err(&client->dev, "%s --> %d\n", "teardown", status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static struct i2c_driver r2ec_driver = {
|
||||
.driver = {
|
||||
.name = "r2ec",
|
||||
.of_match_table = of_match_ptr(r2ec_of_table),
|
||||
},
|
||||
.probe = r2ec_probe,
|
||||
.remove = r2ec_remove,
|
||||
.id_table = r2ec_id,
|
||||
};
|
||||
|
||||
static int __init r2ec_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = i2c_add_driver(&r2ec_driver);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "Unable to initialize `r2ec` driver!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
g_r2ec_kobj = kobject_create_and_add("r2ec", NULL);
|
||||
if (!g_r2ec_kobj) {
|
||||
i2c_del_driver(&r2ec_driver);
|
||||
printk(KERN_ERR "Unable to create `r2ec` kobject!\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
if (sysfs_create_group(g_r2ec_kobj, &g_r2ec_attr_group)) {
|
||||
kobject_put(g_r2ec_kobj);
|
||||
i2c_del_driver(&r2ec_driver);
|
||||
printk(KERN_ERR "Unable to create `r2ec` sysfs group!\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit r2ec_exit(void)
|
||||
{
|
||||
kobject_put(g_r2ec_kobj);
|
||||
i2c_del_driver(&r2ec_driver);
|
||||
}
|
||||
|
||||
module_init(r2ec_init);
|
||||
module_exit(r2ec_exit);
|
||||
|
||||
MODULE_AUTHOR("Jokubas Maciulaitis <jokubas.maciulaitis@teltonika.lt>");
|
||||
MODULE_DESCRIPTION("STM32F0 (R2EC) I2C GPIO Expander driver");
|
||||
MODULE_LICENSE("GPL v2");
|
55
6.6/package/kernel/rtl8812au-ct/Makefile
Normal file
55
6.6/package/kernel/rtl8812au-ct/Makefile
Normal file
|
@ -0,0 +1,55 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=rtl8812au-ct
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/greearb/rtl8812AU_8821AU_linux.git
|
||||
PKG_MIRROR_HASH:=31e658df3e4d4c18c396259c2e0bef2bfc44a4aa870931f031a31e948be98af4
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2021-11-07
|
||||
PKG_SOURCE_VERSION:=39df55967b7de9f6c9600017b724303f95a8b9e2
|
||||
|
||||
PKG_MAINTAINER:=Ben Greear <greearb@candelatech.com>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
#PKG_EXTMOD_SUBDIRS:=rtl8812au-ct
|
||||
|
||||
STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/rtl8812au-ct
|
||||
SUBMENU:=Wireless Drivers
|
||||
TITLE:=Driver for Realtek 8812 AU devices comfast 912-ac, etc
|
||||
DEPENDS:=+kmod-cfg80211 +kmod-usb-core +@DRIVER_11AC_SUPPORT
|
||||
FILES:=\
|
||||
$(PKG_BUILD_DIR)/rtl8812au.ko
|
||||
AUTOLOAD:=$(call AutoProbe,rtl8812au)
|
||||
PROVIDES:=kmod-rtl8812au
|
||||
endef
|
||||
|
||||
NOSTDINC_FLAGS := \
|
||||
$(KERNEL_NOSTDINC_FLAGS) \
|
||||
-I$(PKG_BUILD_DIR) \
|
||||
-I$(PKG_BUILD_DIR)/include \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211-backport \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211 \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211/uapi \
|
||||
-include backport/backport.h \
|
||||
-Wno-error=address \
|
||||
-Wno-error=stringop-overread
|
||||
|
||||
NOSTDINC_FLAGS+=-DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DBUILD_OPENWRT
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,rtl8812au-ct))
|
|
@ -0,0 +1,15 @@
|
|||
Fix compile problem when rtw_byteorder.h and asm/byteorder.h gets
|
||||
included in addition for example indirectly, do not use realtek own copy
|
||||
of the byteorder headers.
|
||||
|
||||
--- a/include/drv_types.h
|
||||
+++ b/include/drv_types.h
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <drv_conf.h>
|
||||
#include <basic_types.h>
|
||||
#include <osdep_service.h>
|
||||
-#include <rtw_byteorder.h>
|
||||
+#include <asm/byteorder.h>
|
||||
#include <wlan_bssdef.h>
|
||||
#include <wifi.h>
|
||||
#include <ieee80211.h>
|
|
@ -0,0 +1,156 @@
|
|||
mac80211 from kernel 5.3 and later checks the new policy attribute.
|
||||
As this driver does not define any policies and does strange things,
|
||||
just tell mac80211 to ignore the policies.
|
||||
|
||||
--- a/os_dep/linux/rtw_cfgvendor.c
|
||||
+++ b/os_dep/linux/rtw_cfgvendor.c
|
||||
@@ -1173,7 +1173,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = BRCM_VENDOR_SCMD_PRIV_STR
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_priv_string_handler
|
||||
+ .doit = wl_cfgvendor_priv_string_handler,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
#if defined(GSCAN_SUPPORT) && 0
|
||||
{
|
||||
@@ -1182,7 +1183,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_GET_CAPABILITIES
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_gscan_get_capabilities
|
||||
+ .doit = wl_cfgvendor_gscan_get_capabilities,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1190,7 +1192,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_SET_CONFIG
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_set_scan_cfg
|
||||
+ .doit = wl_cfgvendor_set_scan_cfg,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1198,7 +1201,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_set_batch_scan_cfg
|
||||
+ .doit = wl_cfgvendor_set_batch_scan_cfg,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1206,7 +1210,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_ENABLE_GSCAN
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_initiate_gscan
|
||||
+ .doit = wl_cfgvendor_initiate_gscan,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1214,7 +1219,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_enable_full_scan_result
|
||||
+ .doit = wl_cfgvendor_enable_full_scan_result,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1222,7 +1228,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_SET_HOTLIST
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_hotlist_cfg
|
||||
+ .doit = wl_cfgvendor_hotlist_cfg,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1230,7 +1237,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_significant_change_cfg
|
||||
+ .doit = wl_cfgvendor_significant_change_cfg,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1238,7 +1246,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_gscan_get_batch_results
|
||||
+ .doit = wl_cfgvendor_gscan_get_batch_results,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1246,7 +1255,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_gscan_get_channel_list
|
||||
+ .doit = wl_cfgvendor_gscan_get_channel_list,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
#endif /* GSCAN_SUPPORT */
|
||||
#if defined(RTT_SUPPORT) && 0
|
||||
@@ -1256,7 +1266,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = RTT_SUBCMD_SET_CONFIG
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_rtt_set_config
|
||||
+ .doit = wl_cfgvendor_rtt_set_config,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1264,7 +1275,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = RTT_SUBCMD_CANCEL_CONFIG
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_rtt_cancel_config
|
||||
+ .doit = wl_cfgvendor_rtt_cancel_config,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1272,7 +1284,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = RTT_SUBCMD_GETCAPABILITY
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = wl_cfgvendor_rtt_get_capability
|
||||
+ .doit = wl_cfgvendor_rtt_get_capability,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
#endif /* RTT_SUPPORT */
|
||||
{
|
||||
@@ -1281,7 +1294,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = rtw_cfgvendor_get_feature_set
|
||||
+ .doit = rtw_cfgvendor_get_feature_set,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
},
|
||||
{
|
||||
{
|
||||
@@ -1289,7 +1303,8 @@ static const struct wiphy_vendor_command
|
||||
.subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX
|
||||
},
|
||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
|
||||
- .doit = rtw_cfgvendor_get_feature_set_matrix
|
||||
+ .doit = rtw_cfgvendor_get_feature_set_matrix,
|
||||
+ .policy = VENDOR_CMD_RAW_DATA,
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
--- a/os_dep/linux/ioctl_cfg80211.c
|
||||
+++ b/os_dep/linux/ioctl_cfg80211.c
|
||||
@@ -5177,6 +5177,15 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) || defined(BUILD_OPENWRT)
|
||||
+static void cfg80211_rtw_update_mgmt_frame_registrations(struct wiphy *wiphy,
|
||||
+ struct wireless_dev *wdev,
|
||||
+ struct mgmt_frame_regs *upd)
|
||||
+{
|
||||
+
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
|
||||
static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy,
|
||||
struct net_device *ndev,
|
||||
@@ -5990,7 +5999,10 @@ static struct cfg80211_ops rtw_cfg80211_
|
||||
.cancel_remain_on_channel = cfg80211_rtw_cancel_remain_on_channel,
|
||||
#endif
|
||||
|
||||
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) || defined(BUILD_OPENWRT)
|
||||
+ .mgmt_tx = cfg80211_rtw_mgmt_tx,
|
||||
+ .update_mgmt_frame_registrations = cfg80211_rtw_update_mgmt_frame_registrations,
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
.mgmt_tx = cfg80211_rtw_mgmt_tx,
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35))
|
||||
.action = cfg80211_rtw_mgmt_tx,
|
|
@ -0,0 +1,24 @@
|
|||
--- a/include/ieee80211.h
|
||||
+++ b/include/ieee80211.h
|
||||
@@ -1313,18 +1313,18 @@ enum ieee80211_state {
|
||||
(((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \
|
||||
(((Addr[5]) & 0xff) == 0xff))
|
||||
#else
|
||||
-extern __inline int is_multicast_mac_addr(const u8 *addr)
|
||||
+__inline static int is_multicast_mac_addr(const u8 *addr)
|
||||
{
|
||||
return ((addr[0] != 0xff) && (0x01 & addr[0]));
|
||||
}
|
||||
|
||||
-extern __inline int is_broadcast_mac_addr(const u8 *addr)
|
||||
+__inline static int is_broadcast_mac_addr(const u8 *addr)
|
||||
{
|
||||
return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \
|
||||
(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
|
||||
}
|
||||
|
||||
-extern __inline int is_zero_mac_addr(const u8 *addr)
|
||||
+__inline static int is_zero_mac_addr(const u8 *addr)
|
||||
{
|
||||
return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \
|
||||
(addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));
|
14
6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch
Normal file
14
6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch
Normal file
|
@ -0,0 +1,14 @@
|
|||
--- a/include/osdep_service_linux.h
|
||||
+++ b/include/osdep_service_linux.h
|
||||
@@ -163,7 +163,11 @@ typedef void* _thread_hdl_;
|
||||
typedef int thread_return;
|
||||
typedef void* thread_context;
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0))
|
||||
+#define thread_exit() kthread_complete_and_exit(NULL, 0)
|
||||
+#else
|
||||
#define thread_exit() complete_and_exit(NULL, 0)
|
||||
+#endif
|
||||
|
||||
typedef void timer_hdl_return;
|
||||
typedef void* timer_hdl_context;
|
|
@ -0,0 +1,25 @@
|
|||
From e8f10b21abd8ae440632f561f8b65f37b4b55cc8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 30 Jul 2023 11:16:32 +0200
|
||||
Subject: [PATCH 1/5] os_dep/osdep_service: use new get_random_u32
|
||||
|
||||
Drop prandom_u32 as got deprecated for get_random_u32.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
os_dep/osdep_service.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/os_dep/osdep_service.c
|
||||
+++ b/os_dep/osdep_service.c
|
||||
@@ -2335,7 +2335,9 @@ u64 rtw_division64(u64 x, u64 y)
|
||||
inline u32 rtw_random32(void)
|
||||
{
|
||||
#ifdef PLATFORM_LINUX
|
||||
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0))
|
||||
+ return get_random_u32();
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
return prandom_u32();
|
||||
#elif (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18))
|
||||
u32 random_int;
|
|
@ -0,0 +1,72 @@
|
|||
From dc4024894c9deefc56f8dd6b2d2822b277f268a5 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 30 Jul 2023 11:18:48 +0200
|
||||
Subject: [PATCH 2/5] treewide: fix always TRUE condition warning
|
||||
|
||||
Fix always TRUE condition warning an drop redundant check.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
core/rtw_sta_mgt.c | 3 +--
|
||||
hal/OUTSRC/phydm_debug.c | 16 ++++++----------
|
||||
os_dep/linux/ioctl_cfg80211.c | 3 +--
|
||||
3 files changed, 8 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/core/rtw_sta_mgt.c
|
||||
+++ b/core/rtw_sta_mgt.c
|
||||
@@ -207,8 +207,7 @@ void rtw_mfree_stainfo(struct sta_info *
|
||||
{
|
||||
_func_enter_;
|
||||
|
||||
- if(&psta->lock != NULL)
|
||||
- _rtw_spinlock_free(&psta->lock);
|
||||
+ _rtw_spinlock_free(&psta->lock);
|
||||
|
||||
_rtw_free_sta_xmit_priv_lock(&psta->sta_xmitpriv);
|
||||
_rtw_free_sta_recv_priv_lock(&psta->sta_recvpriv);
|
||||
--- a/hal/OUTSRC/phydm_debug.c
|
||||
+++ b/hal/OUTSRC/phydm_debug.c
|
||||
@@ -870,12 +870,10 @@ phydm_cmd_parser(
|
||||
case PHYDM_RA:
|
||||
|
||||
for(i=0; i<5; i++) {
|
||||
- if(input[i+1]) {
|
||||
- PHYDM_SSCANF(input[i+1], DCMD_DECIMAL, &var1[i]);
|
||||
+ PHYDM_SSCANF(input[i+1], DCMD_DECIMAL, &var1[i]);
|
||||
|
||||
- PHYDM_SNPRINTF((output+used, out_len-used, "new SET, RA_var[%d]= (( %d ))\n", i , var1[i]));
|
||||
- input_idx++;
|
||||
- }
|
||||
+ PHYDM_SNPRINTF((output+used, out_len-used, "new SET, RA_var[%d]= (( %d ))\n", i , var1[i]));
|
||||
+ input_idx++;
|
||||
}
|
||||
|
||||
if(input_idx>=1) {
|
||||
@@ -891,12 +889,10 @@ phydm_cmd_parser(
|
||||
case PHYDM_PATHDIV:
|
||||
|
||||
for(i=0; i<5; i++) {
|
||||
- if(input[i+1]) {
|
||||
- PHYDM_SSCANF(input[i+1], DCMD_HEX, &var1[i]);
|
||||
+ PHYDM_SSCANF(input[i+1], DCMD_HEX, &var1[i]);
|
||||
|
||||
- PHYDM_SNPRINTF((output+used, out_len-used, "new SET, PATHDIV_var[%d]= (( %d ))\n", i , var1[i]));
|
||||
- input_idx++;
|
||||
- }
|
||||
+ PHYDM_SNPRINTF((output+used, out_len-used, "new SET, PATHDIV_var[%d]= (( %d ))\n", i , var1[i]));
|
||||
+ input_idx++;
|
||||
}
|
||||
|
||||
if(input_idx>=1) {
|
||||
--- a/os_dep/linux/ioctl_cfg80211.c
|
||||
+++ b/os_dep/linux/ioctl_cfg80211.c
|
||||
@@ -2170,8 +2170,7 @@ static int cfg80211_rtw_scan(struct wiph
|
||||
|
||||
#ifdef CONFIG_P2P
|
||||
if( pwdinfo->driver_interface == DRIVER_CFG80211 ) {
|
||||
- if(ssids->ssid != NULL
|
||||
- && _rtw_memcmp(ssids->ssid, "DIRECT-", 7)
|
||||
+ if(_rtw_memcmp(ssids->ssid, "DIRECT-", 7)
|
||||
&& rtw_get_p2p_ie((u8 *)request->ie, request->ie_len, NULL, NULL)
|
||||
) {
|
||||
if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) {
|
|
@ -0,0 +1,93 @@
|
|||
From 5f3bb5602615894cda88ca1b44fdfafdfb01c8c8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 30 Jul 2023 11:20:39 +0200
|
||||
Subject: [PATCH 3/5] treewide: use correct type for tasklet_init
|
||||
|
||||
Update and use correct type for tasklet_init to fix compilation error
|
||||
for not valid cast.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
hal/hal_hci/hal_usb.c | 2 +-
|
||||
hal/rtl8812a/usb/rtl8812au_xmit.c | 2 +-
|
||||
hal/rtl8812a/usb/usb_ops_linux.c | 2 +-
|
||||
include/rtl8812a_xmit.h | 2 +-
|
||||
include/usb_ops_linux.h | 2 +-
|
||||
os_dep/linux/usb_ops_linux.c | 4 ++--
|
||||
6 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/hal/hal_hci/hal_usb.c
|
||||
+++ b/hal/hal_hci/hal_usb.c
|
||||
@@ -35,7 +35,7 @@ int usb_init_recv_priv(_adapter *padapte
|
||||
|
||||
#ifdef PLATFORM_LINUX
|
||||
tasklet_init(&precvpriv->recv_tasklet,
|
||||
- (void(*)(unsigned long))usb_recv_tasklet,
|
||||
+ usb_recv_tasklet,
|
||||
(unsigned long)padapter);
|
||||
#endif /* PLATFORM_LINUX */
|
||||
|
||||
--- a/hal/rtl8812a/usb/rtl8812au_xmit.c
|
||||
+++ b/hal/rtl8812a/usb/rtl8812au_xmit.c
|
||||
@@ -30,7 +30,7 @@ s32 rtl8812au_init_xmit_priv(_adapter *p
|
||||
|
||||
#ifdef PLATFORM_LINUX
|
||||
tasklet_init(&pxmitpriv->xmit_tasklet,
|
||||
- (void(*)(unsigned long))rtl8812au_xmit_tasklet,
|
||||
+ rtl8812au_xmit_tasklet,
|
||||
(unsigned long)padapter);
|
||||
#endif
|
||||
#ifdef CONFIG_TX_EARLY_MODE
|
||||
--- a/hal/rtl8812a/usb/usb_ops_linux.c
|
||||
+++ b/hal/rtl8812a/usb/usb_ops_linux.c
|
||||
@@ -475,7 +475,7 @@ _exit_recvbuf2recvframe:
|
||||
}
|
||||
|
||||
|
||||
-void rtl8812au_xmit_tasklet(void *priv)
|
||||
+void rtl8812au_xmit_tasklet(unsigned long priv)
|
||||
{
|
||||
int ret = _FALSE;
|
||||
_adapter *padapter = (_adapter*)priv;
|
||||
--- a/include/rtl8812a_xmit.h
|
||||
+++ b/include/rtl8812a_xmit.h
|
||||
@@ -331,7 +331,7 @@ s32 rtl8812au_hal_xmit(PADAPTER padapter
|
||||
s32 rtl8812au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe);
|
||||
s32 rtl8812au_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
|
||||
s32 rtl8812au_xmit_buf_handler(PADAPTER padapter);
|
||||
-void rtl8812au_xmit_tasklet(void *priv);
|
||||
+void rtl8812au_xmit_tasklet(unsigned long priv);
|
||||
s32 rtl8812au_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
|
||||
#endif
|
||||
|
||||
--- a/include/usb_ops_linux.h
|
||||
+++ b/include/usb_ops_linux.h
|
||||
@@ -78,7 +78,7 @@ int usb_write16(struct intf_hdl *pintfhd
|
||||
int usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val);
|
||||
int usb_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata);
|
||||
u32 usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem);
|
||||
-void usb_recv_tasklet(void *priv);
|
||||
+void usb_recv_tasklet(unsigned long priv);
|
||||
|
||||
#endif
|
||||
|
||||
--- a/os_dep/linux/usb_ops_linux.c
|
||||
+++ b/os_dep/linux/usb_ops_linux.c
|
||||
@@ -717,7 +717,7 @@ void usb_init_recvbuf(_adapter *padapter
|
||||
int recvbuf2recvframe(PADAPTER padapter, void *ptr);
|
||||
|
||||
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
|
||||
-void usb_recv_tasklet(void *priv)
|
||||
+void usb_recv_tasklet(unsigned long priv)
|
||||
{
|
||||
struct recv_buf *precvbuf = NULL;
|
||||
_adapter *padapter = (_adapter*)priv;
|
||||
@@ -870,7 +870,7 @@ u32 usb_read_port(struct intf_hdl *pintf
|
||||
}
|
||||
#else // CONFIG_USE_USB_BUFFER_ALLOC_RX
|
||||
|
||||
-void usb_recv_tasklet(void *priv)
|
||||
+void usb_recv_tasklet(unsigned long priv)
|
||||
{
|
||||
_pkt *pskb;
|
||||
_adapter *padapter = (_adapter*)priv;
|
|
@ -0,0 +1,56 @@
|
|||
From 51ab9d6a959de87206731f941b1df39e5c5d63ea Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 30 Jul 2023 11:21:49 +0200
|
||||
Subject: [PATCH 4/5] treewide: drop const from dev_addr
|
||||
|
||||
dev_addr is not const and conflict with memcpy function. Fix compilation
|
||||
warning by casting dev_addr to void*.
|
||||
|
||||
This operation is safe as this is done before netdev register.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
os_dep/linux/os_intfs.c | 6 +++---
|
||||
os_dep/osdep_service.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/os_dep/linux/os_intfs.c
|
||||
+++ b/os_dep/linux/os_intfs.c
|
||||
@@ -1885,7 +1885,7 @@ int _netdev_if2_open(struct net_device *
|
||||
|
||||
_rtw_memcpy(padapter->eeprompriv.mac_addr, mac, ETH_ALEN);
|
||||
rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr);
|
||||
- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
}
|
||||
#endif //CONFIG_PLATFORM_INTEL_BYT
|
||||
|
||||
@@ -2254,7 +2254,7 @@ static int _rtw_drv_register_netdev(_ada
|
||||
/* alloc netdev name */
|
||||
rtw_init_netdev_name(pnetdev, name);
|
||||
|
||||
- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
|
||||
/* Tell the network stack we exist */
|
||||
if (register_netdev(pnetdev) != 0) {
|
||||
@@ -2334,7 +2334,7 @@ int _netdev_open(struct net_device *pnet
|
||||
#ifdef CONFIG_PLATFORM_INTEL_BYT
|
||||
rtw_macaddr_cfg(padapter->eeprompriv.mac_addr);
|
||||
rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr);
|
||||
- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
#endif //CONFIG_PLATFORM_INTEL_BYT
|
||||
|
||||
padapter->bDriverStopped = _FALSE;
|
||||
--- a/os_dep/osdep_service.c
|
||||
+++ b/os_dep/osdep_service.c
|
||||
@@ -2209,7 +2209,7 @@ int rtw_change_ifname(_adapter *padapter
|
||||
|
||||
rtw_init_netdev_name(pnetdev, ifname);
|
||||
|
||||
- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
|
||||
if(!rtnl_is_locked())
|
|
@ -0,0 +1,26 @@
|
|||
From f455198acaa71c2963746a6b17c878c7d1d0e331 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 30 Jul 2023 11:22:58 +0200
|
||||
Subject: [PATCH 5/5] os_dep/linux/proc: move to pde_data function
|
||||
|
||||
PDE_DATA macro was dropped in 5.17 with the new pde_data that does the
|
||||
exact thing. Fix compilation error and use new function.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
os_dep/linux/rtw_proc.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/os_dep/linux/rtw_proc.c
|
||||
+++ b/os_dep/linux/rtw_proc.c
|
||||
@@ -37,6 +37,10 @@ inline struct proc_dir_entry *get_rtw_dr
|
||||
#define file_inode(file) ((file)->f_dentry->d_inode)
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0))
|
||||
+#define PDE_DATA(inode) pde_data(inode)
|
||||
+#endif
|
||||
+
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0))
|
||||
#define PDE_DATA(inode) PDE((inode))->data
|
||||
#define proc_get_parent_data(inode) PDE((inode))->parent->data
|
56
6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch
Normal file
56
6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch
Normal file
|
@ -0,0 +1,56 @@
|
|||
--- a/os_dep/linux/ioctl_cfg80211.c
|
||||
+++ b/os_dep/linux/ioctl_cfg80211.c
|
||||
@@ -798,8 +798,8 @@ check_bss:
|
||||
|
||||
DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter));
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
- roam_info.channel = notify_channel;
|
||||
- roam_info.bssid = cur_network->network.MacAddress;
|
||||
+ roam_info.links[0].channel = notify_channel;
|
||||
+ roam_info.links[0].bssid = cur_network->network.MacAddress;
|
||||
roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2;
|
||||
roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2;
|
||||
roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6;
|
||||
@@ -1389,6 +1389,7 @@ exit:
|
||||
|
||||
static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
+ int link_id,
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr,
|
||||
#else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
u8 key_index, const u8 *mac_addr,
|
||||
@@ -1529,6 +1530,7 @@ addkey_end:
|
||||
|
||||
static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
+ int link_id,
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr,
|
||||
#else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
u8 key_index, const u8 *mac_addr,
|
||||
@@ -1562,6 +1564,7 @@ static int cfg80211_rtw_get_key(struct w
|
||||
|
||||
static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
+ int link_id,
|
||||
u8 key_index, bool pairwise, const u8 *mac_addr)
|
||||
#else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
u8 key_index, const u8 *mac_addr)
|
||||
@@ -1581,7 +1584,7 @@ static int cfg80211_rtw_del_key(struct w
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
|
||||
- struct net_device *ndev, u8 key_index
|
||||
+ struct net_device *ndev, int link_id, u8 key_index
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
, bool unicast, bool multicast
|
||||
#endif
|
||||
@@ -4019,7 +4022,8 @@ static int cfg80211_rtw_change_beacon(st
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
|
||||
+static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+ unsigned int link_id)
|
||||
{
|
||||
DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
||||
return 0;
|
Loading…
Add table
Add a link
Reference in a new issue