mirror of
https://github.com/FUjr/gl-infra-builder.git
synced 2025-12-16 17:15:08 +00:00
ax1800/axt1800: upgrade wlan-ap to v2.6.0
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
This commit is contained in:
parent
c02c57816d
commit
3fbc3ec336
@ -1,13 +1,9 @@
|
||||
repo: https://github.com/Telecominfraproject/wlan-ap.git
|
||||
branch: main
|
||||
branch: v2.6.0
|
||||
git_clone_dir: wlan-ap
|
||||
openwrt_root_dir: wlan-ap/openwrt
|
||||
revision: 8529d7471a7c41b63c35d31537457f90be8fcf69
|
||||
|
||||
patch_folders:
|
||||
- patches-wlan-ap
|
||||
|
||||
files_folders:
|
||||
- files-wlan-ap/
|
||||
|
||||
wlan_ap: true
|
||||
wlan_ap: true
|
||||
|
||||
@ -1,635 +0,0 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=qca-nss-clients
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE_URL:=https://source.codeaurora.org/quic/qsdk/oss/lklm/nss-clients/
|
||||
PKG_MIRROR_HASH:=802bf8b2dac8da0549e108b873afd982d127370c07d6574ece71f902eafe7698
|
||||
PKG_VERSION:=153998d70fdba508a59a28c13a606032cbf32686
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
|
||||
#PKG_BUILD_DEPENDS := PACKAGE_kmod-qca-nss-crypto:kmod-qca-nss-crypto
|
||||
MAKE_OPTS:=
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
# Keep default as ipq806x for branches that does not have subtarget framework
|
||||
subtarget:=$(SUBTARGET)
|
||||
|
||||
# DTLS Manager v2.0 for Hawkeye/Cypress
|
||||
DTLSMGR_DIR:=v2.0
|
||||
# IPsec Manager v2.0 for Hawkeye/Cypress
|
||||
IPSECMGR_DIR:=v2.0
|
||||
|
||||
define KernelPackage/qca-nss-drv-tun6rd
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - tun6rd
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-sit @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/qca-nss-tun6rd.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,qca-nss-tun6rd)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-tun6rd/Description
|
||||
Kernel modules for NSS connection manager - Support for 6rd tunnel
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-dtlsmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - dtlsmgr
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-qca-nss-cfi-cryptoapi @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/dtls/$(DTLSMGR_DIR)/qca-nss-dtlsmgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-dtls/Description
|
||||
Kernel modules for NSS connection manager - Support for DTLS sessions
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-tlsmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - tlsmgr
|
||||
DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx +kmod-qca-nss-drv +kmod-qca-nss-cfi @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/tls/qca-nss-tlsmgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-tls/Description
|
||||
Kernel modules for NSS connection manager - Support for TLS sessions
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-l2tpv2
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - l2tp
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-ppp +kmod-l2tp @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/l2tp/l2tpv2/qca-nss-l2tpv2.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-l2tpv2)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-l2tp/Description
|
||||
Kernel modules for NSS connection manager - Support for l2tp tunnel
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pptp
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - PPTP
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-pptp @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/pptp/qca-nss-pptp.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-pptp)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pptp/Description
|
||||
Kernel modules for NSS connection manager - Support for PPTP tunnel
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pppoe
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - PPPoE
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-pppoe @!LINUX_3_18 \
|
||||
+!(TARGET_ipq_ipq807x_QSDK_256||TARGET_ipq_ipq60xx_QSDK_256):kmod-bonding
|
||||
FILES:=$(PKG_BUILD_DIR)/pppoe/qca-nss-pppoe.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-pppoe)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pppoe/Description
|
||||
Kernel modules for NSS connection manager - Support for PPPoE
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-map-t
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - MAP-T
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-nat46 @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/map/map-t/qca-nss-map-t.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-map-t)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-map-t/Description
|
||||
Kernel modules for NSS connection manager - Support for MAP-T
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-gre
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - GRE
|
||||
DEPENDS:=@TARGET_ipq_ipq806x||TARGET_ipq806x||TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 \
|
||||
+kmod-qca-nss-drv @!LINUX_3_18 +kmod-gre6
|
||||
FILES:=$(PKG_BUILD_DIR)/gre/qca-nss-gre.ko $(PKG_BUILD_DIR)/gre/test/qca-nss-gre-test.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-gre)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-gre/Description
|
||||
Kernel modules for NSS connection manager - Support for GRE
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-tunipip6
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (connection manager) - DS-lite and ipip6 Tunnel
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-iptunnel6 +kmod-ip6-tunnel @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/tunipip6/qca-nss-tunipip6.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,qca-nss-tunipip6)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-tunipip6/Description
|
||||
Kernel modules for NSS connection manager
|
||||
Add support for DS-lite and ipip6 tunnel
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-profile
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
TITLE:=Profiler for QCA NSS driver (IPQ806x)
|
||||
FILES:=$(PKG_BUILD_DIR)/profiler/qca-nss-profile-drv.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-profile/Description
|
||||
This package contains a NSS driver profiler for QCA chipset
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ipsecmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (ipsec manager) - ipsecmgr
|
||||
DEPENDS:=@TARGET_ipq806x||TARGET_ipq_ipq806x||TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx \
|
||||
+kmod-qca-nss-drv +kmod-qca-nss-cfi-cryptoapi +kmod-qca-nss-cfi-ocf @!LINUX_3_18
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2),)
|
||||
DEPENDS:=+kmod-qca-nss-drv-l2tpv2
|
||||
endif
|
||||
FILES:=$(PKG_BUILD_DIR)/ipsecmgr/$(IPSECMGR_DIR)/qca-nss-ipsecmgr.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,qca-nss-ipsecmgr)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ipsecmgr/Description
|
||||
Kernel module for NSS IPsec offload manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ipsecmgr-klips
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS (ipsec klips)
|
||||
DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx \
|
||||
+kmod-qca-nss-drv-ipsecmgr kmod-qca-nss-ecm
|
||||
FILES:=$(PKG_BUILD_DIR)/ipsecmgr/$(IPSECMGR_DIR)/plugins/klips/qca-nss-ipsec-klips.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ipsecmgr-klips/Description
|
||||
NSS Kernel module for IPsec klips offload
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/qca-nss-drv-capwapmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-qca-nss-drv-dtlsmgr @!LINUX_3_18
|
||||
TITLE:=NSS CAPWAP Manager for QCA NSS driver (IPQ806x)
|
||||
FILES:=$(PKG_BUILD_DIR)/capwapmgr/qca-nss-capwapmgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-capwapmgr/Description
|
||||
This package contains a NSS CAPWAP Manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-bridge-mgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS bridge manager
|
||||
DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx \
|
||||
+TARGET_ipq_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq_ipq807x_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq807x_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq_ipq60xx:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq807x_ipq60xx:kmod-qca-nss-drv-vlan-mgr @!LINUX_3_18 \
|
||||
+!(TARGET_ipq_ipq807x_QSDK_256||TARGET_ipq_ipq60xx_QSDK_256):kmod-bonding
|
||||
FILES:=$(PKG_BUILD_DIR)/bridge/qca-nss-bridge-mgr.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-bridge-mgr)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-bridge-mgr/Description
|
||||
Kernel modules for NSS bridge manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-vlan-mgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS vlan manager
|
||||
DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx +kmod-qca-nss-drv @!LINUX_3_18 \
|
||||
+!(TARGET_ipq_ipq807x_QSDK_256||TARGET_ipq_ipq60xx_QSDK_256):kmod-bonding
|
||||
FILES:=$(PKG_BUILD_DIR)/vlan/qca-nss-vlan.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-vlan)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-vlan-mgr/Description
|
||||
Kernel modules for NSS vlan manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-qdisc
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Support
|
||||
TITLE:=Qdisc for configuring shapers in NSS
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/nss_qdisc/qca-nss-qdisc.ko
|
||||
AUTOLOAD:=$(call AutoLoad,58,qca-nss-qdisc)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-qdisc/Description
|
||||
Linux qdisc that aids in configuring shapers in the NSS
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-igs
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Support
|
||||
TITLE:=Action for offloading traffic to an IFB interface to perform ingress shaping.
|
||||
DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 \
|
||||
+kmod-qca-nss-drv +kmod-sched-core +kmod-ifb +kmod-qca-nss-drv-qdisc @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/nss_qdisc/igs/act_nssmirred.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-igs/Description
|
||||
Linux action that helps in offloading traffic to an IFB interface to perform ingress shaping.
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-lag-mgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS LAG manager
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18 \
|
||||
+TARGET_ipq_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq_ipq807x_ipq807x:kmod-qca-nss-drv-vlan-mgr @!LINUX_3_18 \
|
||||
+TARGET_ipq807x:kmod-qca-nss-drv-vlan-mgr \
|
||||
+TARGET_ipq807x_ipq807x:kmod-qca-nss-drv-vlan-mgr @!LINUX_3_18 \
|
||||
+TARGET_ipq_ipq60xx:kmod-qca-nss-drv-vlan-mgr @!LINUX_3_18 \
|
||||
+TARGET_ipq807x_ipq60xx:kmod-qca-nss-drv-vlan-mgr @!LINUX_3_18 \
|
||||
+kmod-bonding
|
||||
FILES:=$(PKG_BUILD_DIR)/lag/qca-nss-lag-mgr.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-lag-mgr)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-lag-mgr/Description
|
||||
Kernel modules for NSS LAG manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-netlink
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=@TARGET_ipq807x||TARGET_ipq_ipq807x||TARGET_ipq807x_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 \
|
||||
+kmod-qca-nss-drv @!LINUX_3_18 \
|
||||
+PACKAGE_kmod-qca-nss-drv-ipsecmgr:kmod-qca-nss-drv-ipsecmgr \
|
||||
+PACKAGE_kmod-qca-nss-drv-dtlsmgr:kmod-qca-nss-drv-dtlsmgr \
|
||||
+PACKAGE_kmod-qca-nss-drv-capwapmgr:kmod-qca-nss-drv-capwapmgr @!LINUX_3_18
|
||||
TITLE:=NSS NETLINK Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/netlink/qca-nss-netlink.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-netlink/Description
|
||||
Kernel module for NSS netlink manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ovpn-mgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for NSS OpenVPN manager
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-qca-nss-cfi +kmod-tun +kmod-ipt-conntrack @!LINUX_3_18 \
|
||||
@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx
|
||||
FILES:=$(PKG_BUILD_DIR)/openvpn/src/qca-nss-ovpn-mgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ovpn-mgr/Description
|
||||
Kernel module for NSS OpenVPN manager
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ovpn-link
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Kernel driver for interfacing NSS OpenVPN manager with ECM
|
||||
DEPENDS:=+kmod-qca-nss-drv-ovpn-mgr +kmod-qca-nss-ecm-premium @!LINUX_3_18 \
|
||||
@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq807x_ipq60xx
|
||||
FILES:=$(PKG_BUILD_DIR)/openvpn/plugins/qca-nss-ovpn-link.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ovpn-link/Description
|
||||
This module registers with ECM and communicates with NSS OpenVPN manager for supporting OpenVPN offload.
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pvxlanmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
TITLE:=NSS PVXLAN Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/pvxlanmgr/qca-nss-pvxlanmgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-pvxlanmgr/Description
|
||||
Kernel module for managing NSS PVxLAN
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-eogremgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-qca-nss-drv-gre @!LINUX_3_18
|
||||
TITLE:=NSS EOGRE Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/eogremgr/qca-nss-eogremgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-eogremgr/Description
|
||||
Kernel module for managing NSS EoGRE
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-clmapmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-qca-nss-drv-eogremgr @!LINUX_3_18
|
||||
TITLE:=NSS clmap Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/clmapmgr/qca-nss-clmapmgr.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-clmapmgr/Description
|
||||
Kernel module for managing NSS clmap
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-vxlanmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv +kmod-vxlan @!LINUX_3_18
|
||||
TITLE:=NSS VxLAN Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/vxlanmgr/qca-nss-vxlanmgr.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-vxlanmgr)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-vxlanmgr/Description
|
||||
Kernel module for managing NSS VxLAN
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-match
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
TITLE:=NSS Match for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/match/qca-nss-match.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-match/Description
|
||||
Kernel module for managing NSS Match
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-mirror
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Support
|
||||
TITLE:=Module for mirroring packets from NSS to host.
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
FILES:=$(PKG_BUILD_DIR)/mirror/qca-nss-mirror.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-mirror/Description
|
||||
Kernel module for managing NSS Mirror
|
||||
endef
|
||||
|
||||
define Build/InstallDev/qca-nss-clients
|
||||
$(INSTALL_DIR) $(1)/usr/include/qca-nss-clients
|
||||
$(CP) $(PKG_BUILD_DIR)/netlink/include/* $(1)/usr/include/qca-nss-clients/
|
||||
$(CP) $(PKG_BUILD_DIR)/exports/* $(1)/usr/include/qca-nss-clients/
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-wifi-meshmgr
|
||||
SECTION:=kernel
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=+kmod-qca-nss-drv @!LINUX_3_18
|
||||
TITLE:=NSS WiFi-Mesh Manager for QCA NSS driver
|
||||
FILES:=$(PKG_BUILD_DIR)/wifi_meshmgr/qca-nss-wifi-meshmgr.ko
|
||||
AUTOLOAD:=$(call AutoLoad,51,qca-nss-wifi-meshmgr)
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-wifi-meshmgr/Description
|
||||
Kernel module for WiFi Mesh manager
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(call Build/InstallDev/qca-nss-clients,$(1))
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ovpn-mgr/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/qca-nss-ovpn.init $(1)/etc/init.d/qca-nss-ovpn
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-ipsecmgr-klips/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/qca-nss-ipsec $(1)/etc/init.d/qca-nss-ipsec
|
||||
endef
|
||||
|
||||
define KernelPackage/qca-nss-drv-igs/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/qca-nss-mirred.init $(1)/etc/init.d/qca-nss-mirred
|
||||
endef
|
||||
|
||||
EXTRA_CFLAGS+= \
|
||||
-I$(STAGING_DIR)/usr/include/qca-nss-drv \
|
||||
-I$(STAGING_DIR)/usr/include/qca-nss-crypto \
|
||||
-I$(STAGING_DIR)/usr/include/qca-nss-cfi \
|
||||
-I$(STAGING_DIR)/usr/include/qca-nss-gmac \
|
||||
-I$(STAGING_DIR)/usr/include/qca-ssdk \
|
||||
-I$(STAGING_DIR)/usr/include/qca-ssdk/fal \
|
||||
-I$(STAGING_DIR)/usr/include/nat46
|
||||
|
||||
# Build individual packages if selected
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-profile),)
|
||||
MAKE_OPTS+=profile=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-capwapmgr),)
|
||||
MAKE_OPTS+=capwapmgr=y
|
||||
EXTRA_CFLAGS += -DNSS_CAPWAPMGR_ONE_NETDEV
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd),)
|
||||
MAKE_OPTS+=tun6rd=m
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-dtlsmgr),)
|
||||
MAKE_OPTS+=dtlsmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-tlsmgr),)
|
||||
MAKE_OPTS+=tlsmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2),)
|
||||
MAKE_OPTS+=l2tpv2=y
|
||||
EXTRA_CFLAGS += -DNSS_L2TPV2_ENABLED
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-pptp),)
|
||||
MAKE_OPTS+=pptp=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-map-t),)
|
||||
MAKE_OPTS+=map-t=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6),)
|
||||
MAKE_OPTS+=tunipip6=m
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc),)
|
||||
MAKE_OPTS+=qdisc=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-igs),)
|
||||
MAKE_OPTS+=igs=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-ipsecmgr),)
|
||||
EXTRA_CFLAGS+= -I$(PKG_BUILD_DIR)/exports
|
||||
MAKE_OPTS+=ipsecmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-ipsecmgr-klips),)
|
||||
EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/qca-nss-ecm
|
||||
MAKE_OPTS+=ipsecmgr-klips=m
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr),)
|
||||
MAKE_OPTS+=bridge-mgr=y
|
||||
#enable OVS bridge if ovsmgr is enabled
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-ovsmgr),)
|
||||
MAKE_OPTS+= NSS_BRIDGE_MGR_OVS_ENABLE=y
|
||||
EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/qca-ovsmgr
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr),)
|
||||
MAKE_OPTS+=vlan-mgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-lag-mgr),)
|
||||
MAKE_OPTS+=lag-mgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-gre),)
|
||||
EXTRA_CFLAGS+= -I$(PKG_BUILD_DIR)/exports
|
||||
MAKE_OPTS+=gre=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe),)
|
||||
MAKE_OPTS+=pppoe=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-netlink),)
|
||||
MAKE_OPTS+=netlink=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-ovpn-mgr),)
|
||||
MAKE_OPTS+=ovpn-mgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-ovpn-link),)
|
||||
MAKE_OPTS+=ovpn-link=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-pvxlanmgr),)
|
||||
MAKE_OPTS+=pvxlanmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-eogremgr),)
|
||||
MAKE_OPTS+=eogremgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-clmapmgr),)
|
||||
MAKE_OPTS+=clmapmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-vxlanmgr),)
|
||||
MAKE_OPTS+=vxlanmgr=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-match),)
|
||||
MAKE_OPTS+=match=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-mirror),)
|
||||
MAKE_OPTS+=mirror=y
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-wifi-meshmgr),)
|
||||
MAKE_OPTS+=wifi-meshmgr=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" $(strip $(MAKE_OPTS)) \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
SoC="$(subtarget)" \
|
||||
DTLSMGR_DIR="$(DTLSMGR_DIR)" \
|
||||
IPSECMGR_DIR="$(IPSECMGR_DIR)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,qca-nss-drv-profile))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-capwapmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-tun6rd))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-dtlsmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-l2tpv2))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-pptp))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-pppoe))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-map-t))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-tunipip6))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-qdisc))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-igs))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-netlink))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-ipsecmgr))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-ipsecmgr-klips))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-bridge-mgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-vlan-mgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-lag-mgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-gre))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-ovpn-mgr))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-ovpn-link))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-pvxlanmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-eogremgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-clmapmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-vxlanmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-match))
|
||||
#$(eval $(call KernelPackage,qca-nss-drv-tlsmgr))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-mirror))
|
||||
$(eval $(call KernelPackage,qca-nss-drv-wifi-meshmgr))
|
||||
Binary file not shown.
Binary file not shown.
@ -1,13 +0,0 @@
|
||||
Index: netifd-2021-10-20-c61a1d43/scripts/netifd-wireless.sh
|
||||
===================================================================
|
||||
--- netifd-2021-10-20-c61a1d43.orig/scripts/netifd-wireless.sh
|
||||
+++ netifd-2021-10-20-c61a1d43/scripts/netifd-wireless.sh
|
||||
@@ -69,7 +69,7 @@ _wdev_prepare_channel() {
|
||||
esac
|
||||
|
||||
case "$band" in
|
||||
- 2g) hwmode=g;;
|
||||
+ 2g) [ -z "$hwmode" ] && hwmode=g;;
|
||||
5g|6g|60g) hwmode=a;;
|
||||
*)
|
||||
case "$hwmode" in
|
||||
@ -1,13 +0,0 @@
|
||||
Index: dnsmasq-2.85/src/rfc2131.c
|
||||
===================================================================
|
||||
--- dnsmasq-2.85.orig/src/rfc2131.c
|
||||
+++ dnsmasq-2.85/src/rfc2131.c
|
||||
@@ -724,7 +724,7 @@ size_t dhcp_reply(struct dhcp_context *c
|
||||
borken_opt = 1;
|
||||
else
|
||||
daemon->dhcp_buff[len] = 0;
|
||||
- if (legal_hostname(daemon->dhcp_buff))
|
||||
+ // if (legal_hostname(daemon->dhcp_buff))
|
||||
client_hostname = daemon->dhcp_buff;
|
||||
}
|
||||
|
||||
@ -1,339 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -x /usr/sbin/pppd ] || exit 0
|
||||
|
||||
[ -n "$INCLUDE_ONLY" ] || {
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/network.sh
|
||||
. ../netifd-proto.sh
|
||||
init_proto "$@"
|
||||
}
|
||||
|
||||
ppp_select_ipaddr()
|
||||
{
|
||||
local subnets=$1
|
||||
local res
|
||||
local res_mask
|
||||
|
||||
for subnet in $subnets; do
|
||||
local addr="${subnet%%/*}"
|
||||
local mask="${subnet#*/}"
|
||||
|
||||
if [ -n "$res_mask" -a "$mask" != 32 ]; then
|
||||
[ "$mask" -gt "$res_mask" ] || [ "$res_mask" = 32 ] && {
|
||||
res="$addr"
|
||||
res_mask="$mask"
|
||||
}
|
||||
elif [ -z "$res_mask" ]; then
|
||||
res="$addr"
|
||||
res_mask="$mask"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "$res"
|
||||
}
|
||||
|
||||
ppp_exitcode_tostring()
|
||||
{
|
||||
local errorcode=$1
|
||||
[ -n "$errorcode" ] || errorcode=5
|
||||
|
||||
case "$errorcode" in
|
||||
0) echo "OK" ;;
|
||||
1) echo "FATAL_ERROR" ;;
|
||||
2) echo "OPTION_ERROR" ;;
|
||||
3) echo "NOT_ROOT" ;;
|
||||
4) echo "NO_KERNEL_SUPPORT" ;;
|
||||
5) echo "USER_REQUEST" ;;
|
||||
6) echo "LOCK_FAILED" ;;
|
||||
7) echo "OPEN_FAILED" ;;
|
||||
8) echo "CONNECT_FAILED" ;;
|
||||
9) echo "PTYCMD_FAILED" ;;
|
||||
10) echo "NEGOTIATION_FAILED" ;;
|
||||
11) echo "PEER_AUTH_FAILED" ;;
|
||||
12) echo "IDLE_TIMEOUT" ;;
|
||||
13) echo "CONNECT_TIME" ;;
|
||||
14) echo "CALLBACK" ;;
|
||||
15) echo "PEER_DEAD" ;;
|
||||
16) echo "HANGUP" ;;
|
||||
17) echo "LOOPBACK" ;;
|
||||
18) echo "INIT_FAILED" ;;
|
||||
19) echo "AUTH_TOPEER_FAILED" ;;
|
||||
20) echo "TRAFFIC_LIMIT" ;;
|
||||
21) echo "CNID_AUTH_FAILED";;
|
||||
*) echo "UNKNOWN_ERROR" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
ppp_generic_init_config() {
|
||||
proto_config_add_string username
|
||||
proto_config_add_string password
|
||||
proto_config_add_string keepalive
|
||||
proto_config_add_boolean keepalive_adaptive
|
||||
proto_config_add_int demand
|
||||
proto_config_add_string pppd_options
|
||||
proto_config_add_string 'connect:file'
|
||||
proto_config_add_string 'disconnect:file'
|
||||
[ -e /proc/sys/net/ipv6 ] && proto_config_add_string ipv6
|
||||
proto_config_add_boolean authfail
|
||||
proto_config_add_int mtu
|
||||
proto_config_add_string pppname
|
||||
proto_config_add_string unnumbered
|
||||
proto_config_add_boolean persist
|
||||
proto_config_add_int maxfail
|
||||
proto_config_add_int holdoff
|
||||
}
|
||||
|
||||
ppp_generic_setup() {
|
||||
local config="$1"; shift
|
||||
local localip
|
||||
|
||||
json_get_vars ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns
|
||||
|
||||
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
|
||||
|
||||
if [ "$ipv6" = 0 ]; then
|
||||
ipv6=""
|
||||
elif [ -z "$ipv6" -o "$ipv6" = auto ]; then
|
||||
ipv6=1
|
||||
autoipv6=1
|
||||
fi
|
||||
|
||||
if [ "${demand:-0}" -gt 0 ]; then
|
||||
demand="precompiled-active-filter /etc/ppp/filter demand idle $demand"
|
||||
else
|
||||
demand=""
|
||||
fi
|
||||
if [ -n "$persist" ]; then
|
||||
[ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist"
|
||||
fi
|
||||
if [ -z "$maxfail" ]; then
|
||||
[ "$persist" = "persist" ] && maxfail=0 || maxfail=1
|
||||
fi
|
||||
[ -n "$mtu" ] || json_get_var mtu mtu
|
||||
[ -n "$pppname" ] || pppname="${proto:-ppp}-$config"
|
||||
[ -n "$unnumbered" ] && {
|
||||
local subnets
|
||||
( proto_add_host_dependency "$config" "" "$unnumbered" )
|
||||
network_get_subnets subnets "$unnumbered"
|
||||
localip=$(ppp_select_ipaddr "$subnets")
|
||||
[ -n "$localip" ] || {
|
||||
proto_block_restart "$config"
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
[ -n "$keepalive" ] || keepalive="5 1"
|
||||
|
||||
local lcp_failure="${keepalive%%[, ]*}"
|
||||
local lcp_interval="${keepalive##*[, ]}"
|
||||
local lcp_adaptive="lcp-echo-adaptive"
|
||||
[ "${lcp_failure:-0}" -lt 1 ] && lcp_failure=""
|
||||
[ "$lcp_interval" != "$keepalive" ] || lcp_interval=5
|
||||
[ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive=""
|
||||
[ -n "$connect" ] || json_get_var connect connect
|
||||
[ -n "$disconnect" ] || json_get_var disconnect disconnect
|
||||
|
||||
proto_run_command "$config" /usr/sbin/pppd \
|
||||
nodetach ipparam "$config" \
|
||||
ifname "$pppname" \
|
||||
${localip:+$localip:} \
|
||||
${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \
|
||||
${ipv6:++ipv6} \
|
||||
${ipv6:-noipv6} \
|
||||
${autoipv6:+set AUTOIPV6=1} \
|
||||
${ip6table:+set IP6TABLE=$ip6table} \
|
||||
${peerdns:+set PEERDNS=$peerdns} \
|
||||
nodefaultroute \
|
||||
usepeerdns \
|
||||
$demand $persist maxfail $maxfail \
|
||||
${holdoff:+holdoff "$holdoff"} \
|
||||
${username:+user "$username" password "$password"} \
|
||||
${connect:+connect "$connect"} \
|
||||
${disconnect:+disconnect "$disconnect"} \
|
||||
ip-up-script /lib/netifd/ppp-up \
|
||||
${ipv6:+ipv6-up-script /lib/netifd/ppp6-up} \
|
||||
ip-down-script /lib/netifd/ppp-down \
|
||||
${ipv6:+ipv6-down-script /lib/netifd/ppp-down} \
|
||||
${mtu:+mtu $mtu mru $mtu} \
|
||||
"$@" $pppd_options
|
||||
}
|
||||
|
||||
ppp_generic_teardown() {
|
||||
local interface="$1"
|
||||
local errorstring=$(ppp_exitcode_tostring $ERROR)
|
||||
|
||||
case "$ERROR" in
|
||||
0)
|
||||
;;
|
||||
2)
|
||||
proto_notify_error "$interface" "$errorstring"
|
||||
proto_block_restart "$interface"
|
||||
;;
|
||||
11|19)
|
||||
json_get_var authfail authfail
|
||||
proto_notify_error "$interface" "$errorstring"
|
||||
if [ "${authfail:-0}" -gt 0 ]; then
|
||||
proto_block_restart "$interface"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
proto_notify_error "$interface" "$errorstring"
|
||||
;;
|
||||
esac
|
||||
|
||||
proto_kill_command "$interface"
|
||||
}
|
||||
|
||||
# PPP on serial device
|
||||
|
||||
proto_ppp_init_config() {
|
||||
proto_config_add_string "device"
|
||||
ppp_generic_init_config
|
||||
no_device=1
|
||||
available=1
|
||||
lasterror=1
|
||||
}
|
||||
|
||||
proto_ppp_setup() {
|
||||
local config="$1"
|
||||
|
||||
json_get_var device device
|
||||
ppp_generic_setup "$config" "$device"
|
||||
}
|
||||
|
||||
proto_ppp_teardown() {
|
||||
ppp_generic_teardown "$@"
|
||||
}
|
||||
|
||||
proto_pppoe_init_config() {
|
||||
ppp_generic_init_config
|
||||
proto_config_add_string "ac"
|
||||
proto_config_add_string "service"
|
||||
proto_config_add_string "host_uniq"
|
||||
proto_config_add_int "padi_attempts"
|
||||
proto_config_add_int "padi_timeout"
|
||||
|
||||
lasterror=1
|
||||
}
|
||||
|
||||
proto_pppoe_setup() {
|
||||
local config="$1"
|
||||
local iface="$2"
|
||||
|
||||
for module in slhc ppp_generic pppox pppoe; do
|
||||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
json_get_var mtu mtu
|
||||
mtu="${mtu:-1492}"
|
||||
|
||||
json_get_var ac ac
|
||||
json_get_var service service
|
||||
json_get_var host_uniq host_uniq
|
||||
json_get_var padi_attempts padi_attempts
|
||||
json_get_var padi_timeout padi_timeout
|
||||
|
||||
ppp_generic_setup "$config" \
|
||||
plugin rp-pppoe.so \
|
||||
${ac:+rp_pppoe_ac "$ac"} \
|
||||
${service:+rp_pppoe_service "$service"} \
|
||||
${host_uniq:+host-uniq "$host_uniq"} \
|
||||
${padi_attempts:+pppoe-padi-attempts $padi_attempts} \
|
||||
${padi_timeout:+pppoe-padi-timeout $padi_timeout} \
|
||||
"nic-$iface"
|
||||
}
|
||||
|
||||
proto_pppoe_teardown() {
|
||||
ppp_generic_teardown "$@"
|
||||
}
|
||||
|
||||
proto_pppoa_init_config() {
|
||||
ppp_generic_init_config
|
||||
proto_config_add_int "atmdev"
|
||||
proto_config_add_int "vci"
|
||||
proto_config_add_int "vpi"
|
||||
proto_config_add_string "encaps"
|
||||
no_device=1
|
||||
available=1
|
||||
lasterror=1
|
||||
}
|
||||
|
||||
proto_pppoa_setup() {
|
||||
local config="$1"
|
||||
local iface="$2"
|
||||
|
||||
for module in slhc ppp_generic pppox pppoatm; do
|
||||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
json_get_vars atmdev vci vpi encaps
|
||||
|
||||
case "$encaps" in
|
||||
1|vc) encaps="vc-encaps" ;;
|
||||
*) encaps="llc-encaps" ;;
|
||||
esac
|
||||
|
||||
ppp_generic_setup "$config" \
|
||||
plugin pppoatm.so \
|
||||
${atmdev:+$atmdev.}${vpi:-8}.${vci:-35} \
|
||||
${encaps}
|
||||
}
|
||||
|
||||
proto_pppoa_teardown() {
|
||||
ppp_generic_teardown "$@"
|
||||
}
|
||||
|
||||
proto_pptp_init_config() {
|
||||
ppp_generic_init_config
|
||||
proto_config_add_string "server"
|
||||
proto_config_add_string "interface"
|
||||
available=1
|
||||
no_device=1
|
||||
lasterror=1
|
||||
}
|
||||
|
||||
proto_pptp_setup() {
|
||||
local config="$1"
|
||||
local iface="$2"
|
||||
|
||||
local ip serv_addr server interface
|
||||
json_get_vars interface server
|
||||
[ -n "$server" ] && {
|
||||
for ip in $(resolveip -t 5 "$server"); do
|
||||
( proto_add_host_dependency "$config" "$ip" $interface )
|
||||
serv_addr=1
|
||||
done
|
||||
}
|
||||
[ -n "$serv_addr" ] || {
|
||||
echo "Could not resolve server address"
|
||||
sleep 5
|
||||
proto_setup_failed "$config"
|
||||
exit 1
|
||||
}
|
||||
|
||||
local load
|
||||
for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do
|
||||
grep -q "^$module " /proc/modules && continue
|
||||
/sbin/insmod $module 2>&- >&-
|
||||
load=1
|
||||
done
|
||||
[ "$load" = "1" ] && sleep 1
|
||||
|
||||
ppp_generic_setup "$config" \
|
||||
plugin pptp.so \
|
||||
pptp_server $server \
|
||||
file /etc/ppp/options.pptp
|
||||
}
|
||||
|
||||
proto_pptp_teardown() {
|
||||
ppp_generic_teardown "$@"
|
||||
}
|
||||
|
||||
[ -n "$INCLUDE_ONLY" ] || {
|
||||
add_protocol ppp
|
||||
[ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe
|
||||
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
|
||||
[ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp
|
||||
}
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
Index: libiwinfo-2021-06-09-c0414642/iwinfo_lib.c
|
||||
===================================================================
|
||||
--- libiwinfo-2021-06-09-c0414642.orig/iwinfo_lib.c
|
||||
+++ libiwinfo-2021-06-09-c0414642/iwinfo_lib.c
|
||||
@@ -37,6 +37,8 @@ const char *IWINFO_KMGMT_NAMES[] = {
|
||||
"NONE",
|
||||
"802.1X",
|
||||
"PSK",
|
||||
+ "SAE",
|
||||
+ "OWE",
|
||||
};
|
||||
|
||||
const char *IWINFO_AUTH_NAMES[] = {
|
||||
@ -1,60 +0,0 @@
|
||||
--- a/libopkg/opkg_cmd.c
|
||||
+++ b/libopkg/opkg_cmd.c
|
||||
@@ -41,6 +41,29 @@
|
||||
#include "opkg_configure.h"
|
||||
#include "xsystem.h"
|
||||
|
||||
+int exec_command(const char *command)
|
||||
+{
|
||||
+ opkg_msg(NOTICE, "Updating database.\n");
|
||||
+ remove("/var/lock/opkg.lock");
|
||||
+
|
||||
+ FILE *fp;
|
||||
+
|
||||
+ fp = popen(command, "r");
|
||||
+ if (fp == NULL) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+ pclose(fp);
|
||||
+
|
||||
+ fp = fopen("/var/lock/opkg.lock", "w+");
|
||||
+ if (fp != NULL) {
|
||||
+ fclose(fp);
|
||||
+ }
|
||||
+
|
||||
+ opkg_msg(NOTICE, "Database update completed.\n");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void print_pkg(pkg_t * pkg)
|
||||
{
|
||||
char *version = pkg_version_str_alloc(pkg);
|
||||
@@ -200,7 +224,7 @@ static int opkg_update_cmd(int argc, cha
|
||||
rmdir(tmp);
|
||||
free(tmp);
|
||||
free(lists_dir);
|
||||
-
|
||||
+ exec_command("update_plugins_db update");
|
||||
return failures;
|
||||
}
|
||||
|
||||
@@ -486,7 +510,8 @@ static int opkg_install_cmd(int argc, ch
|
||||
err = -1;
|
||||
|
||||
write_status_files_if_changed();
|
||||
-
|
||||
+ if (err == 0)
|
||||
+ exec_command("update_plugins_db install");
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -914,6 +939,8 @@ static int opkg_remove_cmd(int argc, cha
|
||||
opkg_msg(NOTICE, "No packages removed.\n");
|
||||
|
||||
write_status_files_if_changed();
|
||||
+ if (err == 0)
|
||||
+ exec_command("update_plugins_db remove");
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
--- a/libopkg/opkg_install.c
|
||||
+++ b/libopkg/opkg_install.c
|
||||
@@ -1151,7 +1151,7 @@ static int resolve_conffiles(pkg_t * pkg
|
||||
char *new_conffile;
|
||||
sprintf_alloc(&new_conffile, "%s-opkg",
|
||||
root_filename);
|
||||
- opkg_msg(ERROR,
|
||||
+ opkg_msg(NOTICE,
|
||||
"Existing conffile %s "
|
||||
"is different from the conffile in the new package."
|
||||
" The new conffile will be placed at %s.\n",
|
||||
--- a/opkg-2021-06-13-1bf042dd/libopkg/pkg.c
|
||||
+++ b/libopkg/pkg.c
|
||||
@@ -1409,7 +1409,7 @@ int pkg_run_script(pkg_t * pkg, const ch
|
||||
return 0;
|
||||
}
|
||||
|
||||
- sprintf_alloc(&cmd, "%s %s", path, args);
|
||||
+ sprintf_alloc(&cmd, "%s %s 2>&1", path, args);
|
||||
free(path);
|
||||
{
|
||||
const char *argv[] = { "/bin/sh", "-c", cmd, NULL };
|
||||
@ -1,18 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts"
|
||||
#include "qcom-ipq6018.dtsi"
|
||||
@ -1,18 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts"
|
||||
#include "qcom-ipq6018.dtsi"
|
||||
@ -1,84 +0,0 @@
|
||||
/dts-v1/;
|
||||
/*
|
||||
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "qcom-ipq6018-gl-ax1800.dtsi"
|
||||
|
||||
/ {
|
||||
model = "GL Technologies, Inc. AX1800";
|
||||
compatible = "glinet,ax1800", "qcom,ipq6018-cp03", "qcom,ipq6018";
|
||||
|
||||
aliases {
|
||||
ethernet3 = "/soc/dp4";
|
||||
ethernet4 = "/soc/dp5";
|
||||
};
|
||||
};
|
||||
|
||||
&gl_hw {
|
||||
model = "ax1800";
|
||||
lan = "eth1 eth2 eth3 eth4";
|
||||
usb-port = "1-1";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
phy3: ethernet-phy@3 {
|
||||
reg = <3>;
|
||||
};
|
||||
phy4: ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&ess0 {
|
||||
switch_lan_bmp = <0x3c>; /* lan port bitmap */
|
||||
|
||||
qcom,port_phyinfo {
|
||||
port@3 {
|
||||
port_id = <4>;
|
||||
phy_address = <3>;
|
||||
};
|
||||
port@4 {
|
||||
port_id = <5>;
|
||||
phy_address = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
dp4 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <4>;
|
||||
reg = <0x3a001600 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <3>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
dp5 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <5>;
|
||||
reg = <0x3a001800 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <4>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
};
|
||||
@ -1,395 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "qcom-ipq6018.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x2>;
|
||||
interrupt-parent = <&intc>;
|
||||
qcom,msm-id = <0x1A5 0x0>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = "/soc/dp1";
|
||||
ethernet1 = "/soc/dp2";
|
||||
ethernet2 = "/soc/dp3";
|
||||
|
||||
//led-boot = &led_run;
|
||||
//led-failsafe = &led_run;
|
||||
//led-running = &led_run;
|
||||
//led-upgrade = &led_run;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
|
||||
bootargs-append = " swiotlb=1 coherent_pool=2M";
|
||||
};
|
||||
|
||||
gl_hw: gl_hw {
|
||||
compatible = "gl-hw-info";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
model = "axt1800";
|
||||
wan = "eth0";
|
||||
reset-button = "gpio-50";
|
||||
usb-port = "1-1";
|
||||
flash_size = <128>;
|
||||
temperature = "/sys/devices/virtual/thermal/thermal_zone0/temp";
|
||||
factory_data {
|
||||
device_mac = "0:ART", "0x0";
|
||||
device_ddns = "0:ART", "0x20";
|
||||
device_sn_bak = "0:ART", "0x30";
|
||||
device_sn = "0:ART", "0x40";
|
||||
country_code = "0:ART", "0x98";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
uart_pins: uart_pins {
|
||||
mux {
|
||||
pins = "gpio44", "gpio45";
|
||||
function = "blsp2_uart";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
qpic_pins: qpic_pins {
|
||||
data_0 {
|
||||
pins = "gpio15";
|
||||
function = "qpic_pad0";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_1 {
|
||||
pins = "gpio12";
|
||||
function = "qpic_pad1";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_2 {
|
||||
pins = "gpio13";
|
||||
function = "qpic_pad2";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_3 {
|
||||
pins = "gpio14";
|
||||
function = "qpic_pad3";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_4 {
|
||||
pins = "gpio5";
|
||||
function = "qpic_pad4";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_5 {
|
||||
pins = "gpio6";
|
||||
function = "qpic_pad5";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_6 {
|
||||
pins = "gpio7";
|
||||
function = "qpic_pad6";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
data_7 {
|
||||
pins = "gpio8";
|
||||
function = "qpic_pad7";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
qpic_pad {
|
||||
pins = "gpio1", "gpio3", "gpio4",
|
||||
"gpio10", "gpio11", "gpio17";
|
||||
function = "qpic_pad";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
button_pins: button_pins {
|
||||
switch_button {
|
||||
pins = "gpio9";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
reset_button {
|
||||
pins = "gpio18";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
mdio_pins: mdio_pinmux {
|
||||
mux_0 {
|
||||
pins = "gpio64";
|
||||
function = "mdc";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
mux_1 {
|
||||
pins = "gpio65";
|
||||
function = "mdio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
mux_2 {
|
||||
pins = "gpio74";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
leds_pins: leds_pins {
|
||||
white {
|
||||
pins = "gpio35";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
blue {
|
||||
pins = "gpio37";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
usb_pins: usb_pins {
|
||||
usb_pwr {
|
||||
pins = "gpio0";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
mdio0: mdio@90000 {
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
phy-reset-gpio = <&tlmm 74 GPIO_ACTIVE_HIGH>;
|
||||
status = "ok";
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
reg = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
ess0: ess-switch@3a000000 {
|
||||
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
|
||||
switch_lan_bmp = <0x0c>; /* lan port bitmap */
|
||||
switch_wan_bmp = <0x02>; /* wan port bitmap */
|
||||
switch_inner_bmp = <0xc0>; /*inner port bitmap*/
|
||||
switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
|
||||
switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
|
||||
switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
|
||||
qcom,port_phyinfo {
|
||||
port@0 {
|
||||
port_id = <1>;
|
||||
phy_address = <0>;
|
||||
};
|
||||
port@1 {
|
||||
port_id = <2>;
|
||||
phy_address = <1>;
|
||||
};
|
||||
port@2 {
|
||||
port_id = <3>;
|
||||
phy_address = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dp1 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <1>;
|
||||
reg = <0x3a001000 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <0>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
dp2 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <2>;
|
||||
reg = <0x3a001200 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <1>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
dp3 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <3>;
|
||||
reg = <0x3a001400 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <2>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-0 = <&leds_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
led_run: white {
|
||||
label = "white_led";
|
||||
gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
blue {
|
||||
label = "blue_led";
|
||||
gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-0 = <&button_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
switch {
|
||||
label = "switch";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>;
|
||||
linux,input-type = <1>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
|
||||
linux,input-type = <1>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-export {
|
||||
compatible = "gpio-export";
|
||||
pinctrl-0 = <&usb_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
usb_power {
|
||||
gpio-export,name = "usb_power";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_uart3 {
|
||||
pinctrl-0 = <&uart_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&nand {
|
||||
pinctrl-0 = <&qpic_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&ssphy_0 {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&qusb_phy_0 {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&usb3 {
|
||||
pinctrl-0 = <&usb_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&nss_crypto {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&q6_region {
|
||||
reg = <0x0 0x4ab00000 0x0 0x05500000>;
|
||||
};
|
||||
|
||||
&CPU0 {
|
||||
operating-points = <
|
||||
/* kHz uV (fixed) */
|
||||
864000 1100000
|
||||
1056000 1100000
|
||||
1200000 1100000
|
||||
>;
|
||||
clock-latency = <200000>;
|
||||
};
|
||||
|
||||
&CPU1 {
|
||||
operating-points = <
|
||||
/* kHz uV (fixed) */
|
||||
864000 1100000
|
||||
1056000 1100000
|
||||
1200000 1100000
|
||||
>;
|
||||
clock-latency = <200000>;
|
||||
};
|
||||
|
||||
&CPU2 {
|
||||
operating-points = <
|
||||
/* kHz uV (fixed) */
|
||||
864000 1100000
|
||||
1056000 1100000
|
||||
1200000 1100000
|
||||
>;
|
||||
clock-latency = <200000>;
|
||||
};
|
||||
|
||||
&CPU3 {
|
||||
operating-points = <
|
||||
/* kHz uV (fixed) */
|
||||
864000 1100000
|
||||
1056000 1100000
|
||||
1200000 1100000
|
||||
>;
|
||||
clock-latency = <200000>;
|
||||
};
|
||||
@ -1,122 +0,0 @@
|
||||
/dts-v1/;
|
||||
/*
|
||||
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "qcom-ipq6018-gl-ax1800.dtsi"
|
||||
|
||||
/ {
|
||||
model = "GL Technologies, Inc. AXT1800";
|
||||
compatible = "glinet,axt1800", "qcom,ipq6018-cp03", "qcom,ipq6018";
|
||||
|
||||
aliases {
|
||||
sdhc0 = &sdhc_2;
|
||||
};
|
||||
|
||||
gl_fan {
|
||||
compatible = "gl-fan";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
fan_speed_gpio = <31>;
|
||||
};
|
||||
};
|
||||
|
||||
&gl_hw {
|
||||
model = "axt1800";
|
||||
lan = "eth1 eth2";
|
||||
usb-port = "1-1";
|
||||
fan = "pwmchip0";
|
||||
switch-button = "gpio-16";
|
||||
dfs;
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
sd_pins: sd_pins {
|
||||
mux_0 {
|
||||
pins = "gpio62";
|
||||
function = "sd_card";
|
||||
bias-pull-up;
|
||||
};
|
||||
mux_1 {
|
||||
pins = "gpio66";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
pwm_pins: pwm_pinmux {
|
||||
mux {
|
||||
pins = "gpio30";
|
||||
function = "pwm13";
|
||||
drive-strength = <8>;
|
||||
};
|
||||
};
|
||||
|
||||
fan_pins: fan_pins {
|
||||
pwr {
|
||||
pins = "gpio29";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
output-high;
|
||||
};
|
||||
speed {
|
||||
pins = "gpio31";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
pwm:pwm {
|
||||
#pwm-cells = <2>;
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
pinctrl-names = "default";
|
||||
used-pwm-indices = <0>, <1>, <0>, <0>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
fan0: pwm-fan {
|
||||
compatible = "pwm-fan";
|
||||
pinctrl-0 = <&fan_pins>;
|
||||
pinctrl-names = "default";
|
||||
cooling-min-state = <0>;
|
||||
cooling-max-state = <255>;
|
||||
#cooling-cells = <2>;
|
||||
pwms = <&pwm 1 40000 0>;
|
||||
cooling-levels = <0 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
|
||||
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 37 38 39
|
||||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
||||
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
||||
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
||||
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
||||
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
||||
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
||||
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
||||
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
||||
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
||||
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
|
||||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhc_2 {
|
||||
pinctrl-0 = <&sd_pins>;
|
||||
pinctrl-names = "default";
|
||||
cd-gpios = <&tlmm 62 1>;
|
||||
sd-ldo-gpios = <&tlmm 66 1>;
|
||||
status = "ok";
|
||||
};
|
||||
@ -1,13 +0,0 @@
|
||||
Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/net/ipv4/Kconfig
|
||||
===================================================================
|
||||
--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/net/ipv4/Kconfig
|
||||
+++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/net/ipv4/Kconfig
|
||||
@@ -308,7 +308,7 @@ config NET_IPVTI
|
||||
on top.
|
||||
|
||||
config NET_UDP_TUNNEL
|
||||
- tristate
|
||||
+ tristate "udp tunnel"
|
||||
select NET_IP_TUNNEL
|
||||
default n
|
||||
|
||||
@ -1,193 +0,0 @@
|
||||
--- a/drivers/net/usb/ipheth.c
|
||||
+++ b/drivers/net/usb/ipheth.c
|
||||
@@ -70,7 +70,7 @@
|
||||
#define IPHETH_USBINTF_SUBCLASS 253
|
||||
#define IPHETH_USBINTF_PROTO 1
|
||||
|
||||
-#define IPHETH_BUF_SIZE 1516
|
||||
+#define IPHETH_BUF_SIZE 1514
|
||||
#define IPHETH_IP_ALIGN 2 /* padding at front of URB */
|
||||
#define IPHETH_TX_TIMEOUT (5 * HZ)
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
#define IPHETH_CARRIER_CHECK_TIMEOUT round_jiffies_relative(1 * HZ)
|
||||
#define IPHETH_CARRIER_ON 0x04
|
||||
|
||||
-static struct usb_device_id ipheth_table[] = {
|
||||
+static const struct usb_device_id ipheth_table[] = {
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(
|
||||
USB_VENDOR_APPLE, USB_PRODUCT_IPHONE,
|
||||
IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
|
||||
@@ -140,7 +140,6 @@ struct ipheth_device {
|
||||
struct usb_device *udev;
|
||||
struct usb_interface *intf;
|
||||
struct net_device *net;
|
||||
- struct sk_buff *tx_skb;
|
||||
struct urb *tx_urb;
|
||||
struct urb *rx_urb;
|
||||
unsigned char *tx_buf;
|
||||
@@ -149,6 +148,8 @@ struct ipheth_device {
|
||||
u8 bulk_in;
|
||||
u8 bulk_out;
|
||||
struct delayed_work carrier_work;
|
||||
+ bool confirmed_pairing;
|
||||
+ int tx_in_use;
|
||||
};
|
||||
|
||||
static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags);
|
||||
@@ -229,6 +230,7 @@ static void ipheth_rcvbulk_callback(stru
|
||||
case -ENOENT:
|
||||
case -ECONNRESET:
|
||||
case -ESHUTDOWN:
|
||||
+ case -EPROTO:
|
||||
return;
|
||||
case 0:
|
||||
break;
|
||||
@@ -253,13 +255,13 @@ static void ipheth_rcvbulk_callback(stru
|
||||
return;
|
||||
}
|
||||
|
||||
- memcpy(skb_put(skb, len), buf, len);
|
||||
+ skb_put_data(skb, buf, len);
|
||||
skb->dev = dev->net;
|
||||
skb->protocol = eth_type_trans(skb, dev->net);
|
||||
|
||||
dev->net->stats.rx_packets++;
|
||||
dev->net->stats.rx_bytes += len;
|
||||
-
|
||||
+ dev->confirmed_pairing = true;
|
||||
netif_rx(skb);
|
||||
ipheth_rx_submit(dev, GFP_ATOMIC);
|
||||
}
|
||||
@@ -280,15 +282,26 @@ static void ipheth_sndbulk_callback(stru
|
||||
dev_err(&dev->intf->dev, "%s: urb status: %d\n",
|
||||
__func__, status);
|
||||
|
||||
- dev_kfree_skb_irq(dev->tx_skb);
|
||||
- netif_wake_queue(dev->net);
|
||||
+ dev->tx_in_use = false;
|
||||
+
|
||||
+ if (status == 0)
|
||||
+ netif_wake_queue(dev->net);
|
||||
+ else
|
||||
+ // on URB error, trigger immediate poll
|
||||
+ schedule_delayed_work(&dev->carrier_work, 0);
|
||||
}
|
||||
|
||||
static int ipheth_carrier_set(struct ipheth_device *dev)
|
||||
{
|
||||
- struct usb_device *udev = dev->udev;
|
||||
+ struct usb_device *udev;
|
||||
int retval;
|
||||
|
||||
+ if (!dev)
|
||||
+ return 0;
|
||||
+ if (!dev->confirmed_pairing)
|
||||
+ return 0;
|
||||
+
|
||||
+ udev = dev->udev;
|
||||
retval = usb_control_msg(udev,
|
||||
usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
|
||||
IPHETH_CMD_CARRIER_CHECK, /* request */
|
||||
@@ -303,11 +316,14 @@ static int ipheth_carrier_set(struct iph
|
||||
return retval;
|
||||
}
|
||||
|
||||
- if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON)
|
||||
+ if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON) {
|
||||
netif_carrier_on(dev->net);
|
||||
- else
|
||||
+ if (dev->tx_urb->status != -EINPROGRESS && dev->tx_in_use == false)
|
||||
+ netif_wake_queue(dev->net);
|
||||
+ } else {
|
||||
netif_carrier_off(dev->net);
|
||||
-
|
||||
+ netif_stop_queue(dev->net);
|
||||
+ }
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -376,6 +392,8 @@ static int ipheth_open(struct net_device
|
||||
struct usb_device *udev = dev->udev;
|
||||
int retval = 0;
|
||||
|
||||
+ dev->tx_in_use = false;
|
||||
+
|
||||
usb_set_interface(udev, IPHETH_INTFNUM, IPHETH_ALT_INTFNUM);
|
||||
|
||||
retval = ipheth_carrier_set(dev);
|
||||
@@ -387,7 +405,6 @@ static int ipheth_open(struct net_device
|
||||
return retval;
|
||||
|
||||
schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
|
||||
- netif_start_queue(net);
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -410,10 +427,18 @@ static int ipheth_tx(struct sk_buff *skb
|
||||
if (skb->len > IPHETH_BUF_SIZE) {
|
||||
WARN(1, "%s: skb too large: %d bytes\n", __func__, skb->len);
|
||||
dev->net->stats.tx_dropped++;
|
||||
- dev_kfree_skb_irq(skb);
|
||||
+ dev_kfree_skb_any(skb);
|
||||
+ return NETDEV_TX_OK;
|
||||
+ }
|
||||
+
|
||||
+ if (dev->tx_in_use) {
|
||||
+ dev->net->stats.tx_dropped++;
|
||||
+ dev_kfree_skb_any(skb);
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
+ dev->tx_in_use = true;
|
||||
+
|
||||
memcpy(dev->tx_buf, skb->data, skb->len);
|
||||
if (skb->len < IPHETH_BUF_SIZE)
|
||||
memset(dev->tx_buf + skb->len, 0, IPHETH_BUF_SIZE - skb->len);
|
||||
@@ -425,18 +450,22 @@ static int ipheth_tx(struct sk_buff *skb
|
||||
dev);
|
||||
dev->tx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
|
||||
+ netif_stop_queue(net);
|
||||
retval = usb_submit_urb(dev->tx_urb, GFP_ATOMIC);
|
||||
if (retval) {
|
||||
dev_err(&dev->intf->dev, "%s: usb_submit_urb: %d\n",
|
||||
__func__, retval);
|
||||
dev->net->stats.tx_errors++;
|
||||
- dev_kfree_skb_irq(skb);
|
||||
+ dev_kfree_skb_any(skb);
|
||||
+ netif_wake_queue(net);
|
||||
+ if (atomic_read(&dev->tx_urb->use_count) != 0) {
|
||||
+ atomic_dec(&dev->tx_urb->use_count);
|
||||
+ }
|
||||
+ dev->tx_in_use = false;
|
||||
} else {
|
||||
- dev->tx_skb = skb;
|
||||
-
|
||||
dev->net->stats.tx_packets++;
|
||||
dev->net->stats.tx_bytes += skb->len;
|
||||
- netif_stop_queue(net);
|
||||
+ dev_consume_skb_any(skb);
|
||||
}
|
||||
|
||||
return NETDEV_TX_OK;
|
||||
@@ -491,7 +520,7 @@ static int ipheth_probe(struct usb_inter
|
||||
dev->udev = udev;
|
||||
dev->net = netdev;
|
||||
dev->intf = intf;
|
||||
-
|
||||
+ dev->confirmed_pairing = false;
|
||||
/* Set up endpoints */
|
||||
hintf = usb_altnum_to_altsetting(intf, IPHETH_ALT_INTFNUM);
|
||||
if (hintf == NULL) {
|
||||
@@ -542,7 +571,9 @@ static int ipheth_probe(struct usb_inter
|
||||
retval = -EIO;
|
||||
goto err_register_netdev;
|
||||
}
|
||||
-
|
||||
+ // carrier down and transmit queues stopped until packet from device
|
||||
+ netif_carrier_off(netdev);
|
||||
+ netif_tx_stop_all_queues(netdev);
|
||||
dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
|
||||
return 0;
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
--- a/drivers/mtd/mtdoops.c
|
||||
+++ b/drivers/mtd/mtdoops.c
|
||||
@@ -220,8 +220,26 @@ static void mtdoops_write(struct mtdoops
|
||||
hdr[1] = MTDOOPS_KERNMSG_MAGIC;
|
||||
|
||||
if (panic) {
|
||||
- ret = mtd_panic_write(mtd, cxt->nextpage * record_size,
|
||||
- record_size, &retlen, cxt->oops_buf);
|
||||
+ int count = record_size / 0x800;
|
||||
+ int i = 0;
|
||||
+ const u_char * p = cxt->oops_buf;
|
||||
+ while(count--) {
|
||||
+ ret = mtd_write(mtd, cxt->nextpage * record_size + i * 0x800,
|
||||
+ record_size - i * 0x800, &retlen, p);
|
||||
+ if (ret == 0) {
|
||||
+ break;
|
||||
+ }
|
||||
+ else {
|
||||
+ if ((p + 0x800) != NULL) {
|
||||
+ p = p + 0x800;
|
||||
+ i++;
|
||||
+ }
|
||||
+ else {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (ret == -EOPNOTSUPP) {
|
||||
printk(KERN_ERR "mtdoops: Cannot write from panic without panic_write\n");
|
||||
return;
|
||||
@@ -230,9 +248,11 @@ static void mtdoops_write(struct mtdoops
|
||||
ret = mtd_write(mtd, cxt->nextpage * record_size,
|
||||
record_size, &retlen, cxt->oops_buf);
|
||||
|
||||
+#if 0
|
||||
if (retlen != record_size || ret < 0)
|
||||
printk(KERN_ERR "mtdoops: write failure at %ld (%td of %ld written), error %d\n",
|
||||
cxt->nextpage * record_size, retlen, record_size, ret);
|
||||
+#endif
|
||||
mark_page_used(cxt, cxt->nextpage);
|
||||
memset(cxt->oops_buf, 0xff, record_size);
|
||||
|
||||
@@ -241,10 +261,12 @@ static void mtdoops_write(struct mtdoops
|
||||
|
||||
static void mtdoops_workfunc_write(struct work_struct *work)
|
||||
{
|
||||
+#if 0
|
||||
struct mtdoops_context *cxt =
|
||||
container_of(work, struct mtdoops_context, work_write);
|
||||
|
||||
mtdoops_write(cxt, 0);
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void find_next_position(struct mtdoops_context *cxt)
|
||||
@ -1,319 +0,0 @@
|
||||
--- linux-4.4.60.orig/drivers/net/usb/qmi_wwan.c
|
||||
+++ linux-4.4.60/drivers/net/usb/qmi_wwan.c
|
||||
@@ -58,6 +58,24 @@ static const u8 default_modem_addr[ETH_ALEN] = {0x02, 0x50, 0xf3};
|
||||
|
||||
static const u8 buggy_fw_addr[ETH_ALEN] = {0x00, 0xa0, 0xc6, 0x00, 0x00, 0x00};
|
||||
|
||||
+#if 1 //Added by Quectel
|
||||
+#include <linux/etherdevice.h>
|
||||
+struct sk_buff *qmi_wwan_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
|
||||
+{
|
||||
+ if (dev->udev->descriptor.idVendor != cpu_to_le16(0x2C7C))
|
||||
+ return skb;
|
||||
+ // Skip Ethernet header from message
|
||||
+ if (skb_pull(skb, ETH_HLEN)) {
|
||||
+ return skb;
|
||||
+ } else {
|
||||
+ dev_err(&dev->intf->dev, "Packet Dropped ");
|
||||
+ }
|
||||
+ // Filter the packet out, release it
|
||||
+ dev_kfree_skb_any(skb);
|
||||
+ return NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* Make up an ethernet header if the packet doesn't have one.
|
||||
*
|
||||
* A firmware bug common among several devices cause them to send raw
|
||||
@@ -294,6 +312,21 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
dev->net->dev_addr[0] &= 0xbf; /* clear "IP" bit */
|
||||
}
|
||||
dev->net->netdev_ops = &qmi_wwan_netdev_ops;
|
||||
+ //dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
|
||||
+#if 1 //Added by Quectel
|
||||
+ if (dev->udev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
|
||||
+ dev_info(&intf->dev, "QuectelEC25&EC21&EG91&EG95&EG06&EP06&EM06&BG96&AG35 work on RawIP mode\n");
|
||||
+ dev->net->flags |= IFF_NOARP;
|
||||
+ usb_control_msg(
|
||||
+ interface_to_usbdev(intf),
|
||||
+ usb_sndctrlpipe(interface_to_usbdev(intf), 0),
|
||||
+ 0x22, //USB_CDC_REQ_SET_CONTROL_LINE_STATE
|
||||
+ 0x21, //USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE
|
||||
+ 1, //active CDC DTR
|
||||
+ intf->cur_altsetting->desc.bInterfaceNumber,
|
||||
+ NULL, 0, 100);
|
||||
+ }
|
||||
+#endif
|
||||
err:
|
||||
return status;
|
||||
}
|
||||
@@ -378,7 +411,11 @@ static const struct driver_info qmi_wwan_info = {
|
||||
.bind = qmi_wwan_bind,
|
||||
.unbind = qmi_wwan_unbind,
|
||||
.manage_power = qmi_wwan_manage_power,
|
||||
- .rx_fixup = qmi_wwan_rx_fixup,
|
||||
+ //.rx_fixup = qmi_wwan_rx_fixup,
|
||||
+ #if 1 //Added by Quectel
|
||||
+ .tx_fixup = qmi_wwan_tx_fixup,
|
||||
+ .rx_fixup = qmi_wwan_rx_fixup,
|
||||
+ #endif
|
||||
};
|
||||
|
||||
#define HUAWEI_VENDOR_ID 0x12D1
|
||||
@@ -397,6 +434,18 @@ static const struct driver_info qmi_wwan_info = {
|
||||
QMI_FIXED_INTF(vend, prod, 0)
|
||||
|
||||
static const struct usb_device_id products[] = {
|
||||
+#if 1 //Added by Quectel
|
||||
+ { QMI_FIXED_INTF(0x05C6, 0x9003, 4) }, /* Quectel UC20 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0125, 4) }, /* Quectel EC25 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0121, 4) }, /* Quectel EC21 */
|
||||
+ { QMI_FIXED_INTF(0x05C6, 0x9215, 4) }, /* Quectel EC20 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0191, 4) }, /* Quectel EG91 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0195, 4) }, /* Quectel EG95 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0306, 4) }, /* Quectel EG06/EP06/EM06 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0296, 4) }, /* Quectel BG96 */
|
||||
+ { QMI_FIXED_INTF(0x2C7C, 0x0435, 4) }, /* Quectel AG35 */
|
||||
+#endif
|
||||
+
|
||||
/* 1. CDC ECM like devices match on the control interface */
|
||||
{ /* Huawei E392, E398 and possibly others sharing both device id and more... */
|
||||
USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, USB_CLASS_VENDOR_SPEC, 1, 9),
|
||||
@@ -753,6 +802,8 @@ static const struct usb_device_id products[] = {
|
||||
{QMI_FIXED_INTF(0x413c, 0x81a9, 8)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
|
||||
{QMI_FIXED_INTF(0x413c, 0x81b1, 8)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card */
|
||||
{QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
|
||||
+ {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
|
||||
+ {QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */
|
||||
{QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
|
||||
|
||||
/* 4. Gobi 1000 devices */
|
||||
@@ -783,7 +834,7 @@ static const struct usb_device_id products[] = {
|
||||
{QMI_GOBI_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */
|
||||
{QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */
|
||||
{QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
||||
- {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
+// {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
{QMI_FIXED_INTF(0x05c6, 0x9215, 4)}, /* Quectel EC20 Mini PCIe */
|
||||
{QMI_GOBI_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
|
||||
{QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */
|
||||
--- linux-4.4.60.orig/drivers/usb/serial/option.c
|
||||
+++ linux-4.4.60/drivers/usb/serial/option.c
|
||||
@@ -241,6 +241,7 @@ static void option_instat_callback(struct urb *urb);
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
#define QUECTEL_PRODUCT_EC21 0x0121
|
||||
#define QUECTEL_PRODUCT_EC25 0x0125
|
||||
+#define QUECTEL_PRODUCT_EP06 0x0306
|
||||
|
||||
#define CMOTECH_VENDOR_ID 0x16d8
|
||||
#define CMOTECH_PRODUCT_6001 0x6001
|
||||
@@ -541,6 +542,23 @@ static void option_instat_callback(struct urb *urb);
|
||||
#define WETELECOM_PRODUCT_6802 0x6802
|
||||
#define WETELECOM_PRODUCT_WMD300 0x6803
|
||||
|
||||
+#define LONGSUNG_PRODUCT_U9300C 0x9b3c
|
||||
+
|
||||
+/* FORGE PRODUCT */
|
||||
+#define FORGE_VENDOR_ID 0x05c6
|
||||
+
|
||||
+#define FORGE_PRODUCT_SLM750 0xf601
|
||||
+
|
||||
+/* NODECOM PRODUCT */
|
||||
+#define NODECOM_VENDOR_ID 0x1508
|
||||
+
|
||||
+#define NODECOM_PRODUCT_NL660 0x1001
|
||||
+
|
||||
+/* NEOWAY PRODUCT */
|
||||
+#define NEOWAY_VENDOR_ID 0x2949
|
||||
+
|
||||
+#define NEOWAY_PRODUCT_N720 0x8243
|
||||
+
|
||||
struct option_blacklist_info {
|
||||
/* bitmask of interface numbers blacklisted for send_setup */
|
||||
const unsigned long sendsetup;
|
||||
@@ -670,6 +688,27 @@ static const struct option_blacklist_info cinterion_rmnet2_blacklist = {
|
||||
};
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
+#if 1 //Added by Quectel
|
||||
+ { USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
|
||||
+ { USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
|
||||
+ { USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x0435) }, /* Quectel AG35 */
|
||||
+ { USB_DEVICE(0x2C7C, 0x6026) }, /* Quectel AG35 */
|
||||
+#endif
|
||||
+ { USB_DEVICE(0x19d2, 0x0536) },/* MZ386 */
|
||||
+ { USB_DEVICE(0x19d2, 0x0117) },
|
||||
+ { USB_DEVICE(0x19d2, 0x0199) },
|
||||
+ { USB_DEVICE(0x19d2, 0x1476) },
|
||||
+ { USB_DEVICE(LONGCHEER_VENDOR_ID, LONGSUNG_PRODUCT_U9300C) },
|
||||
+ { USB_DEVICE(FORGE_VENDOR_ID, FORGE_PRODUCT_SLM750) },
|
||||
+ { USB_DEVICE(NODECOM_VENDOR_ID, NODECOM_PRODUCT_NL660) },
|
||||
+ { USB_DEVICE(NEOWAY_VENDOR_ID, NEOWAY_PRODUCT_N720) },
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
|
||||
@@ -1178,6 +1217,8 @@ static const struct usb_device_id option_ids[] = {
|
||||
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
|
||||
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
+ { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06),
|
||||
+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
|
||||
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
|
||||
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
|
||||
@@ -2057,6 +2098,9 @@ static struct usb_serial_driver option_1port_device = {
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = usb_wwan_suspend,
|
||||
.resume = usb_wwan_resume,
|
||||
+#if 1 //Added by Quectel
|
||||
+ .reset_resume = usb_wwan_resume,
|
||||
+#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -2072,6 +2116,8 @@ static int option_probe(struct usb_serial *serial,
|
||||
struct usb_interface_descriptor *iface_desc =
|
||||
&serial->interface->cur_altsetting->desc;
|
||||
struct usb_device_descriptor *dev_desc = &serial->dev->descriptor;
|
||||
+
|
||||
+ //unsigned long device_flags = id->driver_info;
|
||||
const struct option_blacklist_info *blacklist;
|
||||
|
||||
/* Never bind to the CD-Rom emulation interface */
|
||||
@@ -2092,13 +2138,91 @@ static int option_probe(struct usb_serial *serial,
|
||||
* a separate module.
|
||||
*/
|
||||
if (dev_desc->idVendor == cpu_to_le16(SAMSUNG_VENDOR_ID) &&
|
||||
- dev_desc->idProduct == cpu_to_le16(SAMSUNG_PRODUCT_GT_B3730) &&
|
||||
- iface_desc->bInterfaceClass != USB_CLASS_CDC_DATA)
|
||||
+ dev_desc->idProduct == cpu_to_le16(SAMSUNG_PRODUCT_GT_B3730) &&
|
||||
+ iface_desc->bInterfaceClass != USB_CLASS_CDC_DATA)
|
||||
return -ENODEV;
|
||||
|
||||
/* Store the blacklist info so we can use it during attach. */
|
||||
- usb_set_serial_data(serial, (void *)blacklist);
|
||||
-
|
||||
+ //usb_set_serial_data(serial, (void *)blacklist);
|
||||
+#if 1 //Added by Quectel
|
||||
+ //Quectel UC20's interface 4 can be used as USB network device
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && \
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003) \
|
||||
+ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
+ return -ENODEV;
|
||||
+ //Quectel EC20's interface 4 can be used as USB network device
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && \
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215) \
|
||||
+ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
+ return -ENODEV;
|
||||
+ //Quectel EC25&EC21&EG91&EG95&EG06&EP06&EM06&BG96/AG35's interface 4 can be used as USB network device
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) && \
|
||||
+ serial->dev->descriptor.idProduct != cpu_to_le16(0x6026) \
|
||||
+ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
+ return -ENODEV;
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) && \
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x6026) \
|
||||
+ && serial->interface->cur_altsetting->desc.bInterfaceNumber<= 1)
|
||||
+ return -ENODEV;
|
||||
+#endif
|
||||
+#if 0 //Added by Quectel
|
||||
+ //For USB Auto Suspend
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9090)) {
|
||||
+ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
+ usb_enable_autosuspend(serial->dev);
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)) {
|
||||
+ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
+ usb_enable_autosuspend(serial->dev);
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215)) {
|
||||
+ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
+ usb_set_serial_data(serial, (void *)device_flags);
|
||||
+ usb_enable_autosuspend(serial->dev);
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) &&
|
||||
+ serial->dev->descriptor.idProduct != cpu_to_le16(0x0306)) {
|
||||
+ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
+ usb_enable_autosuspend(serial->dev);
|
||||
+ }
|
||||
+#endif
|
||||
+#if 0 //Added by Quectel
|
||||
+ //For USB Remote Wakeup
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9090)) {
|
||||
+ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)) {
|
||||
+ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215)) {
|
||||
+ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
+ }
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
|
||||
+ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
+ }
|
||||
+#endif
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x1476) &&
|
||||
+ serial->interface->cur_altsetting->desc. bInterfaceNumber == 3)
|
||||
+ return -ENODEV;
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x1476) &&
|
||||
+ serial->interface->cur_altsetting->desc. bInterfaceNumber == 4)
|
||||
+ return -ENODEV;
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x1509) &&
|
||||
+ serial->interface->cur_altsetting->desc. bInterfaceNumber == 4)
|
||||
+ return -ENODEV;
|
||||
+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
+ serial->dev->descriptor.idProduct == cpu_to_le16(0x1509) &&
|
||||
+ serial->interface->cur_altsetting->desc. bInterfaceNumber == 5)
|
||||
+ return -ENODEV;
|
||||
return 0;
|
||||
}
|
||||
|
||||
--- linux-4.4.60.orig/drivers/usb/serial/qcserial.c
|
||||
+++ linux-4.4.60/drivers/usb/serial/qcserial.c
|
||||
@@ -92,7 +92,7 @@ static const struct usb_device_id id_table[] = {
|
||||
{USB_DEVICE(0x03f0, 0x241d)}, /* HP Gobi 2000 QDL device (VP412) */
|
||||
{USB_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
||||
{USB_DEVICE(0x05c6, 0x9214)}, /* Acer Gobi 2000 QDL device (VP413) */
|
||||
- {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
+// {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
{USB_DEVICE(0x05c6, 0x9264)}, /* Asus Gobi 2000 QDL device (VR305) */
|
||||
{USB_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
|
||||
{USB_DEVICE(0x05c6, 0x9234)}, /* Top Global Gobi 2000 QDL device (VR306) */
|
||||
--- linux-4.4.60.orig/drivers/usb/serial/usb_wwan.c
|
||||
+++ linux-4.4.60/drivers/usb/serial/usb_wwan.c
|
||||
@@ -504,7 +504,19 @@ static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
|
||||
usb_fill_bulk_urb(urb, serial->dev,
|
||||
usb_sndbulkpipe(serial->dev, endpoint) | dir,
|
||||
buf, len, callback, ctx);
|
||||
-
|
||||
+#if 1 //Added by Quectel for zero packet
|
||||
+ if (dir == USB_DIR_OUT) {
|
||||
+ struct usb_device_descriptor *desc = &serial->dev->descriptor;
|
||||
+ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9090))
|
||||
+ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
+ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9003))
|
||||
+ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
+ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9215))
|
||||
+ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
+ if (desc->idVendor == cpu_to_le16(0x2C7C))
|
||||
+ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
+ }
|
||||
+#endif
|
||||
return urb;
|
||||
}
|
||||
|
||||
@ -1,136 +0,0 @@
|
||||
--- a/drivers/gpio/gpiolib-of.c
|
||||
+++ b/drivers/gpio/gpiolib-of.c
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <linux/pinctrl/pinctrl.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/platform_device.h>
|
||||
|
||||
#include "gpiolib.h"
|
||||
|
||||
@@ -450,3 +452,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
gpiochip_remove_pin_ranges(chip);
|
||||
of_node_put(chip->of_node);
|
||||
}
|
||||
+
|
||||
+static struct of_device_id gpio_export_ids[] = {
|
||||
+ { .compatible = "gpio-export" },
|
||||
+ { /* sentinel */ }
|
||||
+};
|
||||
+
|
||||
+static int of_gpio_export_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device_node *np = pdev->dev.of_node;
|
||||
+ struct device_node *cnp;
|
||||
+ u32 val;
|
||||
+ int nb = 0;
|
||||
+
|
||||
+ for_each_child_of_node(np, cnp) {
|
||||
+ const char *name = NULL;
|
||||
+ int gpio;
|
||||
+ bool dmc;
|
||||
+ int max_gpio = 1;
|
||||
+ int i;
|
||||
+
|
||||
+ of_property_read_string(cnp, "gpio-export,name", &name);
|
||||
+
|
||||
+ if (!name)
|
||||
+ max_gpio = of_gpio_count(cnp);
|
||||
+
|
||||
+ for (i = 0; i < max_gpio; i++) {
|
||||
+ unsigned flags = 0;
|
||||
+ enum of_gpio_flags of_flags;
|
||||
+
|
||||
+ gpio = of_get_gpio_flags(cnp, i, &of_flags);
|
||||
+ if (!gpio_is_valid(gpio))
|
||||
+ return gpio;
|
||||
+
|
||||
+ if (of_flags == OF_GPIO_ACTIVE_LOW)
|
||||
+ flags |= GPIOF_ACTIVE_LOW;
|
||||
+
|
||||
+ if (!of_property_read_u32(cnp, "gpio-export,output", &val))
|
||||
+ flags |= val ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
|
||||
+ else
|
||||
+ flags |= GPIOF_IN;
|
||||
+
|
||||
+ if (devm_gpio_request_one(&pdev->dev, gpio, flags, name ? name : of_node_full_name(np)))
|
||||
+ continue;
|
||||
+
|
||||
+ dmc = of_property_read_bool(cnp, "gpio-export,direction_may_change");
|
||||
+ gpio_export_with_name(gpio, dmc, name);
|
||||
+ nb++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ dev_info(&pdev->dev, "%d gpio(s) exported\n", nb);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver gpio_export_driver = {
|
||||
+ .driver = {
|
||||
+ .name = "gpio-export",
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .of_match_table = of_match_ptr(gpio_export_ids),
|
||||
+ },
|
||||
+ .probe = of_gpio_export_probe,
|
||||
+};
|
||||
+
|
||||
+module_platform_driver(gpio_export_driver);
|
||||
--- a/drivers/gpio/gpiolib-sysfs.c
|
||||
+++ b/drivers/gpio/gpiolib-sysfs.c
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/sysfs.h>
|
||||
+#include <linux/gpio.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/gpio/driver.h>
|
||||
#include <linux/interrupt.h>
|
||||
@@ -544,7 +545,7 @@ static struct class gpio_class = {
|
||||
*
|
||||
* Returns zero on success, else an error.
|
||||
*/
|
||||
-int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
|
||||
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name)
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct gpiod_data *data;
|
||||
@@ -604,6 +605,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
offset = gpio_chip_hwgpio(desc);
|
||||
if (chip->names && chip->names[offset])
|
||||
ioname = chip->names[offset];
|
||||
+ if (name)
|
||||
+ ioname = name;
|
||||
|
||||
dev = device_create_with_groups(&gpio_class, chip->dev,
|
||||
MKDEV(0, 0), data, gpio_groups,
|
||||
@@ -625,6 +628,12 @@ err_unlock:
|
||||
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||
return status;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(__gpiod_export);
|
||||
+
|
||||
+int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
|
||||
+{
|
||||
+ return __gpiod_export(desc, direction_may_change, NULL);
|
||||
+}
|
||||
EXPORT_SYMBOL_GPL(gpiod_export);
|
||||
|
||||
static int match_export(struct device *dev, const void *desc)
|
||||
--- a/include/asm-generic/gpio.h
|
||||
+++ b/include/asm-generic/gpio.h
|
||||
@@ -122,6 +122,12 @@ static inline int gpio_export(unsigned g
|
||||
return gpiod_export(gpio_to_desc(gpio), direction_may_change);
|
||||
}
|
||||
|
||||
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name);
|
||||
+static inline int gpio_export_with_name(unsigned gpio, bool direction_may_change, const char *name)
|
||||
+{
|
||||
+ return __gpiod_export(gpio_to_desc(gpio), direction_may_change, name);
|
||||
+}
|
||||
+
|
||||
static inline int gpio_export_link(struct device *dev, const char *name,
|
||||
unsigned gpio)
|
||||
{
|
||||
@ -1,49 +0,0 @@
|
||||
Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
|
||||
===================================================================
|
||||
--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/cdc_ether.c
|
||||
+++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
|
||||
@@ -54,11 +54,19 @@ static int is_wireless_rndis(struct usb_
|
||||
desc->bInterfaceProtocol == 3);
|
||||
}
|
||||
|
||||
+static int is_novatel_rndis(struct usb_interface_descriptor *desc)
|
||||
+{
|
||||
+ return (desc->bInterfaceClass == USB_CLASS_MISC &&
|
||||
+ desc->bInterfaceSubClass == 4 &&
|
||||
+ desc->bInterfaceProtocol == 1);
|
||||
+}
|
||||
+
|
||||
#else
|
||||
|
||||
#define is_rndis(desc) 0
|
||||
#define is_activesync(desc) 0
|
||||
#define is_wireless_rndis(desc) 0
|
||||
+#define is_novatel_rndis(desc) 0
|
||||
|
||||
#endif
|
||||
|
||||
@@ -150,7 +158,8 @@ int usbnet_generic_cdc_bind(struct usbne
|
||||
*/
|
||||
rndis = (is_rndis(&intf->cur_altsetting->desc) ||
|
||||
is_activesync(&intf->cur_altsetting->desc) ||
|
||||
- is_wireless_rndis(&intf->cur_altsetting->desc));
|
||||
+ is_wireless_rndis(&intf->cur_altsetting->desc) ||
|
||||
+ is_novatel_rndis(&intf->cur_altsetting->desc));
|
||||
|
||||
memset(info, 0, sizeof(*info));
|
||||
info->control = intf;
|
||||
Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
|
||||
===================================================================
|
||||
--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/rndis_host.c
|
||||
+++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
|
||||
@@ -627,6 +627,10 @@ static const struct usb_device_id produc
|
||||
/* RNDIS for tethering */
|
||||
USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
|
||||
.driver_info = (unsigned long) &rndis_info,
|
||||
+}, {
|
||||
+ /* Novatel Verizon USB730L */
|
||||
+ USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
|
||||
+ .driver_info = (unsigned long) &rndis_info,
|
||||
},
|
||||
{ }, // END
|
||||
};
|
||||
1264
patches-wlan-ap/0001-ath11k-wifi-update-GL-AXT1800-BDF.patch
Normal file
1264
patches-wlan-ap/0001-ath11k-wifi-update-GL-AXT1800-BDF.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,51 +0,0 @@
|
||||
From 11163887a70eb3a5e5a4ece4bbec1a63d1ea4107 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Thu, 20 Jan 2022 17:56:32 +0800
|
||||
Subject: [PATCH] bdf: add bdf for gl-axt1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
feeds/wifi-ax/ath11k-wifi/Makefile | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
index b2e0f0e3..55f46672 100644
|
||||
--- a/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
+++ b/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
@@ -35,7 +35,8 @@ ALLWIFIBOARDS:= \
|
||||
wallys-dr6018 \
|
||||
wallys-dr6018-v4 \
|
||||
tplink-ex227 \
|
||||
- tplink-ex447
|
||||
+ tplink-ex447 \
|
||||
+ gl-axt1800
|
||||
|
||||
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD))
|
||||
|
||||
@@ -72,6 +73,11 @@ $(call Package/ath11k-wifi-default)
|
||||
TITLE:=cig-wf196 6G bdf
|
||||
endef
|
||||
|
||||
+define Package/ath11k-wifi-gl-axt1800
|
||||
+$(call Package/ath11k-wifi-default)
|
||||
+ TITLE:=gl-axt1800 bdf
|
||||
+endef
|
||||
+
|
||||
define ath11k-wifi-install-one-to
|
||||
$(INSTALL_DIR) $(2)/lib/firmware/$(3)/
|
||||
$(INSTALL_DATA) $(1) $(2)/lib/firmware/$(3)/board.bin
|
||||
@@ -140,6 +146,11 @@ define Package/ath11k-wifi-cig-wf196_6g/install
|
||||
$(INSTALL_DATA) ./board-cig-wf196_6g.bin.QCN9074 $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board.bin
|
||||
endef
|
||||
|
||||
+define Package/ath11k-wifi-gl-axt1800/install
|
||||
+ $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/
|
||||
+ $(INSTALL_DATA) ./board-gl-axt1800.bin.IPQ6018 $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
|
||||
+endef
|
||||
+
|
||||
$(eval $(call generate-ath11k-wifi-package,cig-wf188,Cigtech WF188))
|
||||
$(eval $(call generate-ath11k-wifi-package,cig-wf188n,Cigtech WF188n))
|
||||
$(eval $(call generate-ath11k-wifi-package,cig-wf194c,Cigtech WF194c))
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 3d91d9afabf88bd4cd830938282599de65f4db02 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 11:36:35 +0800
|
||||
Subject: [PATCH] ipq807x: use append-gl-metadata for gl-ax(t)1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
feeds/ipq807x/ipq807x/image/ipq60xx.mk | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/image/ipq60xx.mk b/feeds/ipq807x/ipq807x/image/ipq60xx.mk
|
||||
index 23057a99..efbd6f38 100644
|
||||
--- a/feeds/ipq807x/ipq807x/image/ipq60xx.mk
|
||||
+++ b/feeds/ipq807x/ipq807x/image/ipq60xx.mk
|
||||
@@ -68,6 +68,7 @@ define Device/glinet_ax1800
|
||||
SUPPORTED_DEVICES := glinet,ax1800
|
||||
DEVICE_DTS_CONFIG := config@cp03-c1
|
||||
DEVICE_PACKAGES := ath11k-wifi-gl-ax1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
|
||||
+ IMAGE/sysupgrade.tar := sysupgrade-tar | append-gl-metadata
|
||||
endef
|
||||
TARGET_DEVICES += glinet_ax1800
|
||||
|
||||
@@ -77,6 +78,7 @@ define Device/glinet_axt1800
|
||||
SUPPORTED_DEVICES := glinet,axt1800
|
||||
DEVICE_DTS_CONFIG := config@cp03-c1
|
||||
DEVICE_PACKAGES := ath11k-wifi-gl-axt1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
|
||||
+ IMAGE/sysupgrade.tar := sysupgrade-tar | append-gl-metadata
|
||||
endef
|
||||
TARGET_DEVICES += glinet_axt1800
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,48 +0,0 @@
|
||||
From d31f3fe4cc7f78fcef3b441143290b03991d25d6 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Thu, 12 May 2022 16:10:25 +0800
|
||||
Subject: [PATCH] wifiax: fix gen macaddr
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../mac80211/files/lib/netifd/wireless/mac80211.sh | 9 ++++-----
|
||||
feeds/wifi-ax/mac80211/files/lib/wifi/mac80211.sh | 1 -
|
||||
2 files changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
index 97c56703..e6b17f6e 100644
|
||||
--- a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
+++ b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
@@ -540,13 +540,12 @@ mac80211_generate_mac() {
|
||||
|
||||
local oIFS="$IFS"; IFS=":"; set -- $ref; IFS="$oIFS"
|
||||
[ "$multiple_bssid" -eq 1 ] && {
|
||||
- printf "02:%s:%s:%s:%s:%02x" $b1 $2 $3 $4 $5 $macidx
|
||||
- return
|
||||
- }
|
||||
- macidx=$(($id + 1))
|
||||
+ printf "02:%s:%s:%s:%s:%02x" $b1 $2 $3 $4 $5 $macidx
|
||||
+ return
|
||||
+ }
|
||||
|
||||
local use_global=0
|
||||
- [ "$id" -gt 0 -a "$macidx" -le "$num_global_macaddr" ] && use_global=1
|
||||
+ [ "$id" -gt 0 -a "$id" -lt "$num_global_macaddr" ] && use_global=1
|
||||
|
||||
[ "$((0x$mask1))" -gt 0 -a "$use_global" -lt 1 ] && {
|
||||
b1="0x$1"
|
||||
diff --git a/feeds/wifi-ax/mac80211/files/lib/wifi/mac80211.sh b/feeds/wifi-ax/mac80211/files/lib/wifi/mac80211.sh
|
||||
index 9b1f05a3..115e5b79 100644
|
||||
--- a/feeds/wifi-ax/mac80211/files/lib/wifi/mac80211.sh
|
||||
+++ b/feeds/wifi-ax/mac80211/files/lib/wifi/mac80211.sh
|
||||
@@ -178,7 +178,6 @@ detect_mac80211() {
|
||||
set wireless.radio${devidx}.channel=${channel}
|
||||
set wireless.radio${devidx}.band=${mode_band}
|
||||
set wireless.radio${devidx}.htmode=$htmode
|
||||
- set wireless.radio${devidx}.num_global_macaddr=8
|
||||
${scanning}
|
||||
set wireless.radio${devidx}.disabled=1
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
From f0cb3a04d08608cf17f26e9557292df740daa95e Mon Sep 17 00:00:00 2001
|
||||
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
|
||||
Date: Sat, 12 Feb 2022 14:41:56 +0800
|
||||
Subject: [PATCH] target: change name nand-factory.img
|
||||
From e041d883da5fdfc2bbea2056867dd94b20cfe928 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 11:58:12 +0800
|
||||
Subject: [PATCH] ipq807x: change name nand-factory.img
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
target/linux/ipq807x/image/Makefile | 4 ++--
|
||||
feeds/ipq807x/ipq807x/image/Makefile | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/target/linux/ipq807x/image/Makefile b/target/linux/ipq807x/image/Makefile
|
||||
index 3a219e6..49c6cc5 100644
|
||||
--- a/target/linux/ipq807x/image/Makefile
|
||||
+++ b/target/linux/ipq807x/image/Makefile
|
||||
diff --git a/feeds/ipq807x/ipq807x/image/Makefile b/feeds/ipq807x/ipq807x/image/Makefile
|
||||
index 3a219e6d..49c6cc5a 100644
|
||||
--- a/feeds/ipq807x/ipq807x/image/Makefile
|
||||
+++ b/feeds/ipq807x/ipq807x/image/Makefile
|
||||
@@ -13,9 +13,9 @@ define Device/Default
|
||||
ROOTFSNAME_IN_UBI := ubi_rootfs
|
||||
BLOCKSIZE := 128k
|
||||
@ -24,5 +25,5 @@ index 3a219e6..49c6cc5 100644
|
||||
KERNEL = kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
||||
KERNEL_INITRAMFS = kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
||||
--
|
||||
2.7.4
|
||||
2.25.1
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
From 673c18865111faf0be0a7b22aded49a21508e075 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Fri, 13 May 2022 16:20:32 +0800
|
||||
Subject: [PATCH] mac80211: automatically restart wifi if bringup failed
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../mac80211/files/lib/netifd/wireless/mac80211.sh | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
index e6b17f6e..5db55170 100644
|
||||
--- a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
+++ b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
@@ -1161,10 +1161,14 @@ drv_mac80211_setup() {
|
||||
if [ "$no_reload" != "0" ]; then
|
||||
add_ap=1
|
||||
ubus wait_for hostapd
|
||||
- local hostapd_res="$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}")"
|
||||
+ local hostapd_res
|
||||
+
|
||||
+ [ -f /tmp/wifi_fail_test ] || hostapd_res="$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}")"
|
||||
ret="$?"
|
||||
+ rm -f /tmp/wifi_fail_test
|
||||
[ "$ret" != 0 -o -z "$hostapd_res" ] && {
|
||||
- wireless_setup_failed HOSTAPD_START_FAILED
|
||||
+ logger failed to start wifi trying again
|
||||
+ #wireless_setup_failed HOSTAPD_START_FAILED
|
||||
return
|
||||
}
|
||||
wireless_add_process "$(jsonfilter -s "$hostapd_res" -l 1 -e @.pid)" "/usr/sbin/hostapd" 1 1
|
||||
--
|
||||
2.25.1
|
||||
|
||||
34
patches-wlan-ap/0004-ipq807x-fix-bridge-isolate.patch
Normal file
34
patches-wlan-ap/0004-ipq807x-fix-bridge-isolate.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 51c6862c8764ba91d42578a3056a9753414a0ac2 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 12:05:33 +0800
|
||||
Subject: [PATCH] ipq807x: fix bridge isolate
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../etc/uci-defaults/14_fix_bridge_isolate | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/base-files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/base-files/etc/uci-defaults/14_fix_bridge_isolate b/feeds/ipq807x/ipq807x/base-files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
new file mode 100644
|
||||
index 00000000..46c8e678
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/base-files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
@@ -0,0 +1,14 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+. /lib/functions.sh
|
||||
+board=$(board_name)
|
||||
+
|
||||
+case "$board" in
|
||||
+ glinet,axt1800|\
|
||||
+ glinet,ax1800)
|
||||
+ uci set network.@device[0].multicast_to_unicast='0'
|
||||
+ uci commit network
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,63 +0,0 @@
|
||||
From 14b75a6c0720558f4fe08b6b45542ffbd0728ff3 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Fri, 13 May 2022 16:35:04 +0800
|
||||
Subject: [PATCH] wifi: fix channel select when using ACS
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../800-fix-ap-sta-channel-setup-failed.patch | 29 +++++++++++++++++++
|
||||
.../files/lib/netifd/wireless/mac80211.sh | 2 +-
|
||||
2 files changed, 30 insertions(+), 1 deletion(-)
|
||||
create mode 100644 feeds/wifi-ax/hostapd/patches/800-fix-ap-sta-channel-setup-failed.patch
|
||||
|
||||
diff --git a/feeds/wifi-ax/hostapd/patches/800-fix-ap-sta-channel-setup-failed.patch b/feeds/wifi-ax/hostapd/patches/800-fix-ap-sta-channel-setup-failed.patch
|
||||
new file mode 100644
|
||||
index 00000000..de7a6115
|
||||
--- /dev/null
|
||||
+++ b/feeds/wifi-ax/hostapd/patches/800-fix-ap-sta-channel-setup-failed.patch
|
||||
@@ -0,0 +1,29 @@
|
||||
+diff --git a/src/common/hw_features_common.c b/src/common/hw_features_common.c
|
||||
+index ad2aebf..355b4a8 100644
|
||||
+--- a/src/common/hw_features_common.c
|
||||
++++ b/src/common/hw_features_common.c
|
||||
+@@ -615,9 +615,21 @@ int hostapd_set_freq_params(struct hostapd_freq_params *data,
|
||||
+ center_segment0 == channel - 6)
|
||||
+ data->center_freq1 = 5000 + center_segment0 * 5;
|
||||
+ else {
|
||||
+- wpa_printf(MSG_ERROR,
|
||||
+- "Wrong coupling between HT and VHT/HE channel setting");
|
||||
+- return -1;
|
||||
++ if (channel <= 48)
|
||||
++ center_segment0 = 42;
|
||||
++ else if (channel <= 64)
|
||||
++ center_segment0 = 58;
|
||||
++ else if (channel <= 112)
|
||||
++ center_segment0 = 106;
|
||||
++ else if (channel <= 128)
|
||||
++ center_segment0 = 122;
|
||||
++ else if (channel <= 144)
|
||||
++ center_segment0 = 138;
|
||||
++ else if (channel <= 161)
|
||||
++ center_segment0 = 155;
|
||||
++ else if (channel <= 177)
|
||||
++ center_segment0 = 171;
|
||||
++ data->center_freq1 = 5000 + center_segment0 * 5;
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
diff --git a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
index 5db55170..5be94573 100644
|
||||
--- a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
+++ b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||||
@@ -132,7 +132,7 @@ mac80211_hostapd_setup_base() {
|
||||
|
||||
json_select config
|
||||
|
||||
- [ "$auto_channel" -gt 0 ] && channel=acs_survey
|
||||
+ [ "$auto_channel" -gt 0 ] && channel=0
|
||||
|
||||
[ "$auto_channel" -gt 0 ] && json_get_vars acs_exclude_dfs
|
||||
[ -n "$acs_exclude_dfs" ] && [ "$acs_exclude_dfs" -gt 0 ] &&
|
||||
--
|
||||
2.25.1
|
||||
|
||||
220
patches-wlan-ap/0005-ipq807x-fit-dts-for-gl-ax-t-1800.patch
Normal file
220
patches-wlan-ap/0005-ipq807x-fit-dts-for-gl-ax-t-1800.patch
Normal file
@ -0,0 +1,220 @@
|
||||
From efd3b13e3360712b38caa7be8675e4d287cdf8a7 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 15:03:35 +0800
|
||||
Subject: [PATCH] ipq807x: fit dts for gl-ax(t)1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts | 6 ++
|
||||
.../boot/dts/qcom/qcom-ipq6018-gl-ax1800.dtsi | 55 +++++++++++++++----
|
||||
.../boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts | 42 +++++++++++---
|
||||
3 files changed, 84 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts
|
||||
index 77682246..9f98ef6d 100644
|
||||
--- a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts
|
||||
+++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts
|
||||
@@ -27,6 +27,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&gl_hw {
|
||||
+ model = "ax1800";
|
||||
+ lan = "eth1 eth2 eth3 eth4";
|
||||
+ usb-port = "1-1";
|
||||
+};
|
||||
+
|
||||
&mdio0 {
|
||||
phy3: ethernet-phy@3 {
|
||||
reg = <3>;
|
||||
diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dtsi b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dtsi
|
||||
index 25f8717a..3fea6475 100644
|
||||
--- a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dtsi
|
||||
+++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dtsi
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -28,16 +28,35 @@
|
||||
ethernet1 = "/soc/dp2";
|
||||
ethernet2 = "/soc/dp3";
|
||||
|
||||
- led-boot = &led_run;
|
||||
- led-failsafe = &led_run;
|
||||
- led-running = &led_run;
|
||||
- led-upgrade = &led_run;
|
||||
+ //led-boot = &led_run;
|
||||
+ //led-failsafe = &led_run;
|
||||
+ //led-running = &led_run;
|
||||
+ //led-upgrade = &led_run;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
|
||||
bootargs-append = " swiotlb=1 coherent_pool=2M";
|
||||
};
|
||||
+
|
||||
+ gl_hw: gl_hw {
|
||||
+ compatible = "gl-hw-info";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ model = "axt1800";
|
||||
+ wan = "eth0";
|
||||
+ reset-button = "gpio-50";
|
||||
+ usb-port = "1-1";
|
||||
+ flash_size = <128>;
|
||||
+ temperature = "/sys/devices/virtual/thermal/thermal_zone0/temp";
|
||||
+ factory_data {
|
||||
+ device_mac = "0:ART", "0x0";
|
||||
+ device_ddns = "0:ART", "0x20";
|
||||
+ device_sn_bak = "0:ART", "0x30";
|
||||
+ device_sn = "0:ART", "0x40";
|
||||
+ country_code = "0:ART", "0x98";
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
@@ -101,7 +120,7 @@
|
||||
};
|
||||
qpic_pad {
|
||||
pins = "gpio1", "gpio3", "gpio4",
|
||||
- "gpio10", "gpio11", "gpio17";
|
||||
+ "gpio10", "gpio11", "gpio17";
|
||||
function = "qpic_pad";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
@@ -250,14 +269,14 @@
|
||||
pinctrl-0 = <&leds_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- led_run: led@35 {
|
||||
- label = "white:sys";
|
||||
+ led_run: white {
|
||||
+ label = "white_led";
|
||||
gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
|
||||
- default-state = "on";
|
||||
+ default-state = "off";
|
||||
};
|
||||
|
||||
- led@37 {
|
||||
- label = "blue:wan";
|
||||
+ blue {
|
||||
+ label = "blue_led";
|
||||
gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
@@ -271,7 +290,7 @@
|
||||
switch {
|
||||
label = "switch";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
- gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
|
||||
+ gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>;
|
||||
linux,input-type = <1>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
@@ -283,6 +302,18 @@
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
+
|
||||
+ gpio-export {
|
||||
+ compatible = "gpio-export";
|
||||
+ pinctrl-0 = <&usb_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+
|
||||
+ usb_power {
|
||||
+ gpio-export,name = "usb_power";
|
||||
+ gpio-export,output = <1>;
|
||||
+ gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&blsp1_uart3 {
|
||||
diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts
|
||||
index 0e5de3f1..4da836cf 100644
|
||||
--- a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts
|
||||
+++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts
|
||||
@@ -24,16 +24,32 @@
|
||||
aliases {
|
||||
sdhc0 = &sdhc_2;
|
||||
};
|
||||
+
|
||||
+ gl_fan {
|
||||
+ compatible = "gl-fan";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ fan_speed_gpio = <31>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gl_hw {
|
||||
+ model = "axt1800";
|
||||
+ lan = "eth1 eth2";
|
||||
+ usb-port = "1-1";
|
||||
+ fan = "pwmchip0";
|
||||
+ switch-button = "gpio-16";
|
||||
+ dfs;
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
sd_pins: sd_pins {
|
||||
- sd {
|
||||
+ mux_0 {
|
||||
pins = "gpio62";
|
||||
function = "sd_card";
|
||||
bias-pull-up;
|
||||
};
|
||||
- ldo {
|
||||
+ mux_1 {
|
||||
pins = "gpio66";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
@@ -41,7 +57,7 @@
|
||||
};
|
||||
|
||||
pwm_pins: pwm_pinmux {
|
||||
- pwm {
|
||||
+ mux {
|
||||
pins = "gpio30";
|
||||
function = "pwm13";
|
||||
drive-strength = <8>;
|
||||
@@ -73,15 +89,27 @@
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
- pwm-fan {
|
||||
+ fan0: pwm-fan {
|
||||
compatible = "pwm-fan";
|
||||
pinctrl-0 = <&fan_pins>;
|
||||
pinctrl-names = "default";
|
||||
cooling-min-state = <0>;
|
||||
- cooling-max-state = <3>;
|
||||
+ cooling-max-state = <255>;
|
||||
#cooling-cells = <2>;
|
||||
- pwms = <&pwm 1 255>;
|
||||
- cooling-levels = <0 150 200 255>;
|
||||
+ pwms = <&pwm 1 40000 0>;
|
||||
+ cooling-levels = <0 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
|
||||
+ 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 37 38 39
|
||||
+ 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
||||
+ 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
||||
+ 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
||||
+ 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
||||
+ 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
||||
+ 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
||||
+ 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
||||
+ 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
||||
+ 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
||||
+ 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
|
||||
+ 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>;
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,49 +0,0 @@
|
||||
From 82d31e0c854771dbef5b28d9b225bc81599b7d75 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 28 May 2022 17:33:42 +0800
|
||||
Subject: [PATCH] wifi-ax: update bdf for gl-axt1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
feeds/wifi-ax/ath11k-wifi/Makefile | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
index 55f46672..830e34e7 100644
|
||||
--- a/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
+++ b/feeds/wifi-ax/ath11k-wifi/Makefile
|
||||
@@ -36,6 +36,7 @@ ALLWIFIBOARDS:= \
|
||||
wallys-dr6018-v4 \
|
||||
tplink-ex227 \
|
||||
tplink-ex447 \
|
||||
+ gl-ax1800 \
|
||||
gl-axt1800
|
||||
|
||||
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD))
|
||||
@@ -73,6 +74,11 @@ $(call Package/ath11k-wifi-default)
|
||||
TITLE:=cig-wf196 6G bdf
|
||||
endef
|
||||
|
||||
+define Package/ath11k-wifi-gl-ax1800
|
||||
+$(call Package/ath11k-wifi-default)
|
||||
+ TITLE:=gl-ax1800 bdf
|
||||
+endef
|
||||
+
|
||||
define Package/ath11k-wifi-gl-axt1800
|
||||
$(call Package/ath11k-wifi-default)
|
||||
TITLE:=gl-axt1800 bdf
|
||||
@@ -146,6 +152,11 @@ define Package/ath11k-wifi-cig-wf196_6g/install
|
||||
$(INSTALL_DATA) ./board-cig-wf196_6g.bin.QCN9074 $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board.bin
|
||||
endef
|
||||
|
||||
+define Package/ath11k-wifi-gl-ax1800/install
|
||||
+ $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/
|
||||
+ $(INSTALL_DATA) ./board-gl-ax1800.bin.IPQ6018 $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
|
||||
+endef
|
||||
+
|
||||
define Package/ath11k-wifi-gl-axt1800/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/
|
||||
$(INSTALL_DATA) ./board-gl-axt1800.bin.IPQ6018 $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
|
||||
--
|
||||
2.25.1
|
||||
|
||||
156
patches-wlan-ap/0006-add-support-gpio-export-driver.patch
Normal file
156
patches-wlan-ap/0006-add-support-gpio-export-driver.patch
Normal file
@ -0,0 +1,156 @@
|
||||
From 2a0b184f32784da195cb0f04353b1ea25f091e30 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 15:06:24 +0800
|
||||
Subject: [PATCH] ipq807x: add support gpio-export driver
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../204-add-support-gpio-export-driver.patch | 136 ++++++++++++++++++
|
||||
1 file changed, 136 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/204-add-support-gpio-export-driver.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/204-add-support-gpio-export-driver.patch b/feeds/ipq807x/ipq807x/patches/204-add-support-gpio-export-driver.patch
|
||||
new file mode 100644
|
||||
index 00000000..0be35e24
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/204-add-support-gpio-export-driver.patch
|
||||
@@ -0,0 +1,136 @@
|
||||
+--- a/drivers/gpio/gpiolib-of.c
|
||||
++++ b/drivers/gpio/gpiolib-of.c
|
||||
+@@ -23,6 +23,8 @@
|
||||
+ #include <linux/pinctrl/pinctrl.h>
|
||||
+ #include <linux/slab.h>
|
||||
+ #include <linux/gpio/machine.h>
|
||||
++#include <linux/init.h>
|
||||
++#include <linux/platform_device.h>
|
||||
+
|
||||
+ #include "gpiolib.h"
|
||||
+
|
||||
+@@ -450,3 +452,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
+ gpiochip_remove_pin_ranges(chip);
|
||||
+ of_node_put(chip->of_node);
|
||||
+ }
|
||||
++
|
||||
++static struct of_device_id gpio_export_ids[] = {
|
||||
++ { .compatible = "gpio-export" },
|
||||
++ { /* sentinel */ }
|
||||
++};
|
||||
++
|
||||
++static int of_gpio_export_probe(struct platform_device *pdev)
|
||||
++{
|
||||
++ struct device_node *np = pdev->dev.of_node;
|
||||
++ struct device_node *cnp;
|
||||
++ u32 val;
|
||||
++ int nb = 0;
|
||||
++
|
||||
++ for_each_child_of_node(np, cnp) {
|
||||
++ const char *name = NULL;
|
||||
++ int gpio;
|
||||
++ bool dmc;
|
||||
++ int max_gpio = 1;
|
||||
++ int i;
|
||||
++
|
||||
++ of_property_read_string(cnp, "gpio-export,name", &name);
|
||||
++
|
||||
++ if (!name)
|
||||
++ max_gpio = of_gpio_count(cnp);
|
||||
++
|
||||
++ for (i = 0; i < max_gpio; i++) {
|
||||
++ unsigned flags = 0;
|
||||
++ enum of_gpio_flags of_flags;
|
||||
++
|
||||
++ gpio = of_get_gpio_flags(cnp, i, &of_flags);
|
||||
++ if (!gpio_is_valid(gpio))
|
||||
++ return gpio;
|
||||
++
|
||||
++ if (of_flags == OF_GPIO_ACTIVE_LOW)
|
||||
++ flags |= GPIOF_ACTIVE_LOW;
|
||||
++
|
||||
++ if (!of_property_read_u32(cnp, "gpio-export,output", &val))
|
||||
++ flags |= val ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
|
||||
++ else
|
||||
++ flags |= GPIOF_IN;
|
||||
++
|
||||
++ if (devm_gpio_request_one(&pdev->dev, gpio, flags, name ? name : of_node_full_name(np)))
|
||||
++ continue;
|
||||
++
|
||||
++ dmc = of_property_read_bool(cnp, "gpio-export,direction_may_change");
|
||||
++ gpio_export_with_name(gpio, dmc, name);
|
||||
++ nb++;
|
||||
++ }
|
||||
++ }
|
||||
++
|
||||
++ dev_info(&pdev->dev, "%d gpio(s) exported\n", nb);
|
||||
++
|
||||
++ return 0;
|
||||
++}
|
||||
++
|
||||
++static struct platform_driver gpio_export_driver = {
|
||||
++ .driver = {
|
||||
++ .name = "gpio-export",
|
||||
++ .owner = THIS_MODULE,
|
||||
++ .of_match_table = of_match_ptr(gpio_export_ids),
|
||||
++ },
|
||||
++ .probe = of_gpio_export_probe,
|
||||
++};
|
||||
++
|
||||
++module_platform_driver(gpio_export_driver);
|
||||
+--- a/drivers/gpio/gpiolib-sysfs.c
|
||||
++++ b/drivers/gpio/gpiolib-sysfs.c
|
||||
+@@ -2,6 +2,7 @@
|
||||
+ #include <linux/mutex.h>
|
||||
+ #include <linux/device.h>
|
||||
+ #include <linux/sysfs.h>
|
||||
++#include <linux/gpio.h>
|
||||
+ #include <linux/gpio/consumer.h>
|
||||
+ #include <linux/gpio/driver.h>
|
||||
+ #include <linux/interrupt.h>
|
||||
+@@ -544,7 +545,7 @@ static struct class gpio_class = {
|
||||
+ *
|
||||
+ * Returns zero on success, else an error.
|
||||
+ */
|
||||
+-int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
|
||||
++int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name)
|
||||
+ {
|
||||
+ struct gpio_chip *chip;
|
||||
+ struct gpiod_data *data;
|
||||
+@@ -604,6 +605,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
+ offset = gpio_chip_hwgpio(desc);
|
||||
+ if (chip->names && chip->names[offset])
|
||||
+ ioname = chip->names[offset];
|
||||
++ if (name)
|
||||
++ ioname = name;
|
||||
+
|
||||
+ dev = device_create_with_groups(&gpio_class, chip->dev,
|
||||
+ MKDEV(0, 0), data, gpio_groups,
|
||||
+@@ -625,6 +628,12 @@ err_unlock:
|
||||
+ gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||
+ return status;
|
||||
+ }
|
||||
++EXPORT_SYMBOL_GPL(__gpiod_export);
|
||||
++
|
||||
++int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
|
||||
++{
|
||||
++ return __gpiod_export(desc, direction_may_change, NULL);
|
||||
++}
|
||||
+ EXPORT_SYMBOL_GPL(gpiod_export);
|
||||
+
|
||||
+ static int match_export(struct device *dev, const void *desc)
|
||||
+--- a/include/asm-generic/gpio.h
|
||||
++++ b/include/asm-generic/gpio.h
|
||||
+@@ -122,6 +122,12 @@ static inline int gpio_export(unsigned g
|
||||
+ return gpiod_export(gpio_to_desc(gpio), direction_may_change);
|
||||
+ }
|
||||
+
|
||||
++int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name);
|
||||
++static inline int gpio_export_with_name(unsigned gpio, bool direction_may_change, const char *name)
|
||||
++{
|
||||
++ return __gpiod_export(gpio_to_desc(gpio), direction_may_change, name);
|
||||
++}
|
||||
++
|
||||
+ static inline int gpio_export_link(struct device *dev, const char *name,
|
||||
+ unsigned gpio)
|
||||
+ {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
24
patches-wlan-ap/0007-fix-missing-kernel-symbol.patch
Normal file
24
patches-wlan-ap/0007-fix-missing-kernel-symbol.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From ef9b7f1af3c56025407739347cb8419af37010b6 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 15:51:01 +0800
|
||||
Subject: [PATCH] ipq807x: fix missing kernel symbol
|
||||
|
||||
CONFIG_IP6_NF_TARGET_MASQUERADE
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
feeds/ipq807x/ipq807x/config-4.4 | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/config-4.4 b/feeds/ipq807x/ipq807x/config-4.4
|
||||
index af9953ae..2f8d74a7 100644
|
||||
--- a/feeds/ipq807x/ipq807x/config-4.4
|
||||
+++ b/feeds/ipq807x/ipq807x/config-4.4
|
||||
@@ -827,3 +827,4 @@ CONFIG_DIAG_CHAR=y
|
||||
# CONFIG_CRYPTO_DEV_QCEDEV is not set
|
||||
# CONFIG_CRYPTO_DEV_QCRYPTO is not set
|
||||
# CONFIG_MHI_BUS_TEST is not set
|
||||
+# CONFIG_IP6_NF_TARGET_MASQUERADE is not set
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,195 @@
|
||||
From 378fcdef77712134fb5aecea651a1b4bbf524e01 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 17:39:47 +0800
|
||||
Subject: [PATCH] ipq807x: wireguard: support hotplug for gl
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/150-support-hotplug-for-gl.patch | 64 +++++++++++++++
|
||||
feeds/ipq807x/wireguard/src/src/hotplug.c | 82 +++++++++++++++++++
|
||||
feeds/ipq807x/wireguard/src/src/hotplug.h | 13 +++
|
||||
3 files changed, 159 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/wireguard/patches/150-support-hotplug-for-gl.patch
|
||||
create mode 100644 feeds/ipq807x/wireguard/src/src/hotplug.c
|
||||
create mode 100644 feeds/ipq807x/wireguard/src/src/hotplug.h
|
||||
|
||||
diff --git a/feeds/ipq807x/wireguard/patches/150-support-hotplug-for-gl.patch b/feeds/ipq807x/wireguard/patches/150-support-hotplug-for-gl.patch
|
||||
new file mode 100644
|
||||
index 00000000..f9bb1f0d
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/wireguard/patches/150-support-hotplug-for-gl.patch
|
||||
@@ -0,0 +1,64 @@
|
||||
+Index: wireguard-linux-compat-1.0.20211208/src/Kbuild
|
||||
+===================================================================
|
||||
+--- wireguard-linux-compat-1.0.20211208.orig/src/Kbuild
|
||||
++++ wireguard-linux-compat-1.0.20211208/src/Kbuild
|
||||
+@@ -7,7 +7,7 @@ ccflags-y += -Wframe-larger-than=2048
|
||||
+ ccflags-$(CONFIG_WIREGUARD_DEBUG) += -DDEBUG -g
|
||||
+ ccflags-$(if $(WIREGUARD_VERSION),y,) += -D'WIREGUARD_VERSION="$(WIREGUARD_VERSION)"'
|
||||
+
|
||||
+-wireguard-y := main.o noise.o device.o peer.o timers.o queueing.o send.o receive.o socket.o peerlookup.o allowedips.o ratelimiter.o cookie.o netlink.o
|
||||
++wireguard-y := main.o noise.o device.o peer.o timers.o queueing.o send.o receive.o socket.o peerlookup.o allowedips.o ratelimiter.o cookie.o netlink.o hotplug.o
|
||||
+
|
||||
+ include $(src)/crypto/Kbuild.include
|
||||
+ include $(src)/compat/Kbuild.include
|
||||
+Index: wireguard-linux-compat-1.0.20211208/src/noise.c
|
||||
+===================================================================
|
||||
+--- wireguard-linux-compat-1.0.20211208.orig/src/noise.c
|
||||
++++ wireguard-linux-compat-1.0.20211208/src/noise.c
|
||||
+@@ -9,6 +9,7 @@
|
||||
+ #include "messages.h"
|
||||
+ #include "queueing.h"
|
||||
+ #include "peerlookup.h"
|
||||
++#include "hotplug.h"
|
||||
+
|
||||
+ #include <linux/rcupdate.h>
|
||||
+ #include <linux/slab.h>
|
||||
+@@ -819,6 +820,8 @@ bool wg_noise_handshake_begin_session(st
|
||||
+ ret = wg_index_hashtable_replace(
|
||||
+ handshake->entry.peer->device->index_hashtable,
|
||||
+ &handshake->entry, &new_keypair->entry);
|
||||
++
|
||||
++ wireguard_hotplug(handshake->entry.peer->device->dev->name, KEYPAIR_CREATED_EVENT);
|
||||
+ } else {
|
||||
+ kfree_sensitive(new_keypair);
|
||||
+ }
|
||||
+Index: wireguard-linux-compat-1.0.20211208/src/timers.c
|
||||
+===================================================================
|
||||
+--- wireguard-linux-compat-1.0.20211208.orig/src/timers.c
|
||||
++++ wireguard-linux-compat-1.0.20211208/src/timers.c
|
||||
+@@ -8,6 +8,7 @@
|
||||
+ #include "peer.h"
|
||||
+ #include "queueing.h"
|
||||
+ #include "socket.h"
|
||||
++#include "hotplug.h"
|
||||
+
|
||||
+ /*
|
||||
+ * - Timer for retransmitting the handshake if we don't hear back after
|
||||
+@@ -60,6 +61,8 @@ static void wg_expired_retransmit_handsh
|
||||
+ if (!timer_pending(&peer->timer_zero_key_material))
|
||||
+ mod_peer_timer(peer, &peer->timer_zero_key_material,
|
||||
+ jiffies + REJECT_AFTER_TIME * 3 * HZ);
|
||||
++
|
||||
++ wireguard_hotplug(peer->device->dev->name, REKEY_GIVEUP_EVENT);
|
||||
+ } else {
|
||||
+ ++peer->timer_handshake_attempts;
|
||||
+ pr_debug("%s: Handshake for peer %llu (%pISpfsc) did not complete after %d seconds, retrying (try %d)\n",
|
||||
+@@ -73,6 +76,8 @@ static void wg_expired_retransmit_handsh
|
||||
+ wg_socket_clear_peer_endpoint_src(peer);
|
||||
+
|
||||
+ wg_packet_send_queued_handshake_initiation(peer, true);
|
||||
++
|
||||
++ wireguard_hotplug(peer->device->dev->name, REKEY_TIMEOUT_EVENT);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
diff --git a/feeds/ipq807x/wireguard/src/src/hotplug.c b/feeds/ipq807x/wireguard/src/src/hotplug.c
|
||||
new file mode 100644
|
||||
index 00000000..62cfe092
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/wireguard/src/src/hotplug.c
|
||||
@@ -0,0 +1,82 @@
|
||||
+#include <linux/workqueue.h>
|
||||
+#include <linux/netlink.h>
|
||||
+#include <linux/kobject.h>
|
||||
+#include <linux/skbuff.h>
|
||||
+#include <linux/if.h>
|
||||
+
|
||||
+#define SUBSYSTEM_NAME "wireguard"
|
||||
+
|
||||
+#define EVENT_BUF_SIZE 2048
|
||||
+
|
||||
+struct wg_event {
|
||||
+ struct work_struct work;
|
||||
+ char ifname[IFNAMSIZ];
|
||||
+ const char *action;
|
||||
+};
|
||||
+
|
||||
+
|
||||
+/* -------------------------------------------------------------------------*/
|
||||
+static int bh_event_add_var(struct sk_buff *skb, int argv,
|
||||
+ const char *format, ...)
|
||||
+{
|
||||
+ static char buf[128];
|
||||
+ char *s;
|
||||
+ va_list args;
|
||||
+ int len;
|
||||
+
|
||||
+ if (argv)
|
||||
+ return 0;
|
||||
+
|
||||
+ va_start(args, format);
|
||||
+ len = vsnprintf(buf, sizeof(buf), format, args);
|
||||
+ va_end(args);
|
||||
+
|
||||
+ if (len >= sizeof(buf)) {
|
||||
+ //WARN(1, "buffer size too small\n");
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
+ s = skb_put(skb, len + 1);
|
||||
+ strcpy(s, buf);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void hotplug_work(struct work_struct *work)
|
||||
+{
|
||||
+ struct wg_event *event = container_of(work, struct wg_event, work);
|
||||
+ struct sk_buff *skb;
|
||||
+
|
||||
+ skb = alloc_skb(EVENT_BUF_SIZE, GFP_KERNEL);
|
||||
+ if (!skb)
|
||||
+ goto out_free_event;
|
||||
+
|
||||
+ bh_event_add_var(skb, 0, "SUBSYSTEM=%s", SUBSYSTEM_NAME);
|
||||
+ bh_event_add_var(skb, 0, "ACTION=%s", event->action);
|
||||
+ bh_event_add_var(skb, 0, "ifname=%s", event->ifname);
|
||||
+
|
||||
+ NETLINK_CB(skb).dst_group = 1;
|
||||
+ broadcast_uevent(skb, 0, 1, GFP_KERNEL);
|
||||
+
|
||||
+out_free_event:
|
||||
+ kfree(event);
|
||||
+}
|
||||
+
|
||||
+void wireguard_hotplug(const char *ifname, const char *action)
|
||||
+{
|
||||
+ struct wg_event *event;
|
||||
+
|
||||
+ if (!strcmp(ifname, "wgserver"))
|
||||
+ return;
|
||||
+
|
||||
+ event = kzalloc(sizeof(struct wg_event), GFP_ATOMIC);
|
||||
+ if (!event)
|
||||
+ return;
|
||||
+
|
||||
+ memcpy(event->ifname, ifname, IFNAMSIZ);
|
||||
+
|
||||
+ event->action = action;
|
||||
+
|
||||
+ INIT_WORK(&event->work, hotplug_work);
|
||||
+ schedule_work(&event->work);
|
||||
+}
|
||||
diff --git a/feeds/ipq807x/wireguard/src/src/hotplug.h b/feeds/ipq807x/wireguard/src/src/hotplug.h
|
||||
new file mode 100644
|
||||
index 00000000..7fb54d9d
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/wireguard/src/src/hotplug.h
|
||||
@@ -0,0 +1,13 @@
|
||||
+#ifndef __HOTPLUG_H__
|
||||
+#define __HOTPLUG_H__
|
||||
+
|
||||
+#define REKEY_GIVEUP_EVENT "REKEY-GIVEUP"
|
||||
+#define REKEY_TIMEOUT_EVENT "REKEY-TIMEOUT"
|
||||
+#define KEYPAIR_CREATED_EVENT "KEYPAIR-CREATED"
|
||||
+
|
||||
+extern void wireguard_hotplug(const char *ifname, const char *action);
|
||||
+extern void wg_hotplug_init(void);
|
||||
+extern void wg_hotplug_free(void);
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 474233728e7d9b863424bc62a263fbf0e24895d0 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 11:49:05 +0800
|
||||
Subject: [PATCH] ipq807x: show symbol udp-tunnel for wireguard
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/113-show-symbol-udp-tunnel.patch | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/113-show-symbol-udp-tunnel.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/113-show-symbol-udp-tunnel.patch b/feeds/ipq807x/ipq807x/patches/113-show-symbol-udp-tunnel.patch
|
||||
new file mode 100644
|
||||
index 00000000..b8e93e7d
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/113-show-symbol-udp-tunnel.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/net/ipv4/Kconfig
|
||||
+===================================================================
|
||||
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/net/ipv4/Kconfig
|
||||
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/net/ipv4/Kconfig
|
||||
+@@ -308,7 +308,7 @@ config NET_IPVTI
|
||||
+ on top.
|
||||
+
|
||||
+ config NET_UDP_TUNNEL
|
||||
+- tristate
|
||||
++ tristate "udp tunnel"
|
||||
+ select NET_IP_TUNNEL
|
||||
+ default n
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
70
patches-wlan-ap/0011-ipq807x-fix-usb-net-ipheth.patch
Normal file
70
patches-wlan-ap/0011-ipq807x-fix-usb-net-ipheth.patch
Normal file
@ -0,0 +1,70 @@
|
||||
From 2fded821c4f46fa7b95adbf02c88aa2ff42c702f Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 11:50:29 +0800
|
||||
Subject: [PATCH] ipq807x: fix usb net ipheth
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/300-fix-usb-net-ipheth.patch | 50 +++++++++++++++++++
|
||||
1 file changed, 50 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/300-fix-usb-net-ipheth.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/300-fix-usb-net-ipheth.patch b/feeds/ipq807x/ipq807x/patches/300-fix-usb-net-ipheth.patch
|
||||
new file mode 100644
|
||||
index 00000000..abd47fbf
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/300-fix-usb-net-ipheth.patch
|
||||
@@ -0,0 +1,50 @@
|
||||
+From 6bc083e643a37ef114d4cdb75555a32d5275ec56 Mon Sep 17 00:00:00 2001
|
||||
+From: "GL.iNet-Hongjian.Zhang" <hongjian.zhang@gl-inet.com>
|
||||
+Date: Tue, 31 May 2022 09:44:38 +0800
|
||||
+Subject: [PATCH] fix: usb net ipheth
|
||||
+
|
||||
+---
|
||||
+ .../790-usb-net-ipheth-hotplug.patch | 31 +++++++++++++++++++
|
||||
+ 1 file changed, 31 insertions(+)
|
||||
+ create mode 100644 target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
+
|
||||
+diff --git a/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch b/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
+new file mode 100644
|
||||
+index 0000000000..0187546f45
|
||||
+--- /dev/null
|
||||
++++ b/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
+@@ -0,0 +1,31 @@
|
||||
++Index: b/drivers/net/usb/ipheth.c
|
||||
++===================================================================
|
||||
++--- a/drivers/net/usb/ipheth.c 2021-08-18 14:57:05.000000000 +0800
|
||||
+++++ b/drivers/net/usb/ipheth.c 2022-05-30 19:32:40.843791147 +0800
|
||||
++@@ -52,6 +52,7 @@
|
||||
++ #include <linux/ethtool.h>
|
||||
++ #include <linux/usb.h>
|
||||
++ #include <linux/workqueue.h>
|
||||
+++#include <linux/proc_fs.h>
|
||||
++
|
||||
++ #define USB_VENDOR_APPLE 0x05ac
|
||||
++
|
||||
++@@ -504,6 +505,10 @@ static int ipheth_probe(struct usb_inter
|
||||
++ netif_carrier_off(netdev);
|
||||
++ netif_tx_stop_all_queues(netdev);
|
||||
++ dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
|
||||
+++ static const struct file_operations proc_fops = {
|
||||
+++ .owner = THIS_MODULE,
|
||||
+++ };
|
||||
+++ proc_create("iphoneconn",0644,NULL,&proc_fops);
|
||||
++ return 0;
|
||||
++
|
||||
++ err_register_netdev:
|
||||
++@@ -531,6 +536,7 @@ static void ipheth_disconnect(struct usb
|
||||
++ }
|
||||
++ usb_set_intfdata(intf, NULL);
|
||||
++ dev_info(&intf->dev, "Apple iPhone USB Ethernet now disconnected\n");
|
||||
+++ remove_proc_entry("iphoneconn",NULL);
|
||||
++ }
|
||||
++
|
||||
++ static struct usb_driver ipheth_driver = {
|
||||
+--
|
||||
+2.17.1
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
213
patches-wlan-ap/0012-ipq807x-fix-tethering-ipheth.patch
Normal file
213
patches-wlan-ap/0012-ipq807x-fix-tethering-ipheth.patch
Normal file
@ -0,0 +1,213 @@
|
||||
From 12426b29d67c759c44e7a4ec0adea7dc0c98c486 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 12:20:54 +0800
|
||||
Subject: [PATCH] ipq807x: fix tethering ipheth
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/201-fix-tethering-ipheth.patch | 193 ++++++++++++++++++
|
||||
1 file changed, 193 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/201-fix-tethering-ipheth.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/201-fix-tethering-ipheth.patch b/feeds/ipq807x/ipq807x/patches/201-fix-tethering-ipheth.patch
|
||||
new file mode 100644
|
||||
index 00000000..2b43b132
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/201-fix-tethering-ipheth.patch
|
||||
@@ -0,0 +1,193 @@
|
||||
+--- a/drivers/net/usb/ipheth.c
|
||||
++++ b/drivers/net/usb/ipheth.c
|
||||
+@@ -70,7 +70,7 @@
|
||||
+ #define IPHETH_USBINTF_SUBCLASS 253
|
||||
+ #define IPHETH_USBINTF_PROTO 1
|
||||
+
|
||||
+-#define IPHETH_BUF_SIZE 1516
|
||||
++#define IPHETH_BUF_SIZE 1514
|
||||
+ #define IPHETH_IP_ALIGN 2 /* padding at front of URB */
|
||||
+ #define IPHETH_TX_TIMEOUT (5 * HZ)
|
||||
+
|
||||
+@@ -87,7 +87,7 @@
|
||||
+ #define IPHETH_CARRIER_CHECK_TIMEOUT round_jiffies_relative(1 * HZ)
|
||||
+ #define IPHETH_CARRIER_ON 0x04
|
||||
+
|
||||
+-static struct usb_device_id ipheth_table[] = {
|
||||
++static const struct usb_device_id ipheth_table[] = {
|
||||
+ { USB_DEVICE_AND_INTERFACE_INFO(
|
||||
+ USB_VENDOR_APPLE, USB_PRODUCT_IPHONE,
|
||||
+ IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
|
||||
+@@ -140,7 +140,6 @@ struct ipheth_device {
|
||||
+ struct usb_device *udev;
|
||||
+ struct usb_interface *intf;
|
||||
+ struct net_device *net;
|
||||
+- struct sk_buff *tx_skb;
|
||||
+ struct urb *tx_urb;
|
||||
+ struct urb *rx_urb;
|
||||
+ unsigned char *tx_buf;
|
||||
+@@ -149,6 +148,8 @@ struct ipheth_device {
|
||||
+ u8 bulk_in;
|
||||
+ u8 bulk_out;
|
||||
+ struct delayed_work carrier_work;
|
||||
++ bool confirmed_pairing;
|
||||
++ int tx_in_use;
|
||||
+ };
|
||||
+
|
||||
+ static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags);
|
||||
+@@ -229,6 +230,7 @@ static void ipheth_rcvbulk_callback(stru
|
||||
+ case -ENOENT:
|
||||
+ case -ECONNRESET:
|
||||
+ case -ESHUTDOWN:
|
||||
++ case -EPROTO:
|
||||
+ return;
|
||||
+ case 0:
|
||||
+ break;
|
||||
+@@ -253,13 +255,13 @@ static void ipheth_rcvbulk_callback(stru
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+- memcpy(skb_put(skb, len), buf, len);
|
||||
++ skb_put_data(skb, buf, len);
|
||||
+ skb->dev = dev->net;
|
||||
+ skb->protocol = eth_type_trans(skb, dev->net);
|
||||
+
|
||||
+ dev->net->stats.rx_packets++;
|
||||
+ dev->net->stats.rx_bytes += len;
|
||||
+-
|
||||
++ dev->confirmed_pairing = true;
|
||||
+ netif_rx(skb);
|
||||
+ ipheth_rx_submit(dev, GFP_ATOMIC);
|
||||
+ }
|
||||
+@@ -280,15 +282,26 @@ static void ipheth_sndbulk_callback(stru
|
||||
+ dev_err(&dev->intf->dev, "%s: urb status: %d\n",
|
||||
+ __func__, status);
|
||||
+
|
||||
+- dev_kfree_skb_irq(dev->tx_skb);
|
||||
+- netif_wake_queue(dev->net);
|
||||
++ dev->tx_in_use = false;
|
||||
++
|
||||
++ if (status == 0)
|
||||
++ netif_wake_queue(dev->net);
|
||||
++ else
|
||||
++ // on URB error, trigger immediate poll
|
||||
++ schedule_delayed_work(&dev->carrier_work, 0);
|
||||
+ }
|
||||
+
|
||||
+ static int ipheth_carrier_set(struct ipheth_device *dev)
|
||||
+ {
|
||||
+- struct usb_device *udev = dev->udev;
|
||||
++ struct usb_device *udev;
|
||||
+ int retval;
|
||||
+
|
||||
++ if (!dev)
|
||||
++ return 0;
|
||||
++ if (!dev->confirmed_pairing)
|
||||
++ return 0;
|
||||
++
|
||||
++ udev = dev->udev;
|
||||
+ retval = usb_control_msg(udev,
|
||||
+ usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
|
||||
+ IPHETH_CMD_CARRIER_CHECK, /* request */
|
||||
+@@ -303,11 +316,14 @@ static int ipheth_carrier_set(struct iph
|
||||
+ return retval;
|
||||
+ }
|
||||
+
|
||||
+- if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON)
|
||||
++ if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON) {
|
||||
+ netif_carrier_on(dev->net);
|
||||
+- else
|
||||
++ if (dev->tx_urb->status != -EINPROGRESS && dev->tx_in_use == false)
|
||||
++ netif_wake_queue(dev->net);
|
||||
++ } else {
|
||||
+ netif_carrier_off(dev->net);
|
||||
+-
|
||||
++ netif_stop_queue(dev->net);
|
||||
++ }
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+@@ -376,6 +392,8 @@ static int ipheth_open(struct net_device
|
||||
+ struct usb_device *udev = dev->udev;
|
||||
+ int retval = 0;
|
||||
+
|
||||
++ dev->tx_in_use = false;
|
||||
++
|
||||
+ usb_set_interface(udev, IPHETH_INTFNUM, IPHETH_ALT_INTFNUM);
|
||||
+
|
||||
+ retval = ipheth_carrier_set(dev);
|
||||
+@@ -387,7 +405,6 @@ static int ipheth_open(struct net_device
|
||||
+ return retval;
|
||||
+
|
||||
+ schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
|
||||
+- netif_start_queue(net);
|
||||
+ return retval;
|
||||
+ }
|
||||
+
|
||||
+@@ -410,10 +427,18 @@ static int ipheth_tx(struct sk_buff *skb
|
||||
+ if (skb->len > IPHETH_BUF_SIZE) {
|
||||
+ WARN(1, "%s: skb too large: %d bytes\n", __func__, skb->len);
|
||||
+ dev->net->stats.tx_dropped++;
|
||||
+- dev_kfree_skb_irq(skb);
|
||||
++ dev_kfree_skb_any(skb);
|
||||
++ return NETDEV_TX_OK;
|
||||
++ }
|
||||
++
|
||||
++ if (dev->tx_in_use) {
|
||||
++ dev->net->stats.tx_dropped++;
|
||||
++ dev_kfree_skb_any(skb);
|
||||
+ return NETDEV_TX_OK;
|
||||
+ }
|
||||
+
|
||||
++ dev->tx_in_use = true;
|
||||
++
|
||||
+ memcpy(dev->tx_buf, skb->data, skb->len);
|
||||
+ if (skb->len < IPHETH_BUF_SIZE)
|
||||
+ memset(dev->tx_buf + skb->len, 0, IPHETH_BUF_SIZE - skb->len);
|
||||
+@@ -425,18 +450,22 @@ static int ipheth_tx(struct sk_buff *skb
|
||||
+ dev);
|
||||
+ dev->tx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
+
|
||||
++ netif_stop_queue(net);
|
||||
+ retval = usb_submit_urb(dev->tx_urb, GFP_ATOMIC);
|
||||
+ if (retval) {
|
||||
+ dev_err(&dev->intf->dev, "%s: usb_submit_urb: %d\n",
|
||||
+ __func__, retval);
|
||||
+ dev->net->stats.tx_errors++;
|
||||
+- dev_kfree_skb_irq(skb);
|
||||
++ dev_kfree_skb_any(skb);
|
||||
++ netif_wake_queue(net);
|
||||
++ if (atomic_read(&dev->tx_urb->use_count) != 0) {
|
||||
++ atomic_dec(&dev->tx_urb->use_count);
|
||||
++ }
|
||||
++ dev->tx_in_use = false;
|
||||
+ } else {
|
||||
+- dev->tx_skb = skb;
|
||||
+-
|
||||
+ dev->net->stats.tx_packets++;
|
||||
+ dev->net->stats.tx_bytes += skb->len;
|
||||
+- netif_stop_queue(net);
|
||||
++ dev_consume_skb_any(skb);
|
||||
+ }
|
||||
+
|
||||
+ return NETDEV_TX_OK;
|
||||
+@@ -491,7 +520,7 @@ static int ipheth_probe(struct usb_inter
|
||||
+ dev->udev = udev;
|
||||
+ dev->net = netdev;
|
||||
+ dev->intf = intf;
|
||||
+-
|
||||
++ dev->confirmed_pairing = false;
|
||||
+ /* Set up endpoints */
|
||||
+ hintf = usb_altnum_to_altsetting(intf, IPHETH_ALT_INTFNUM);
|
||||
+ if (hintf == NULL) {
|
||||
+@@ -542,7 +571,9 @@ static int ipheth_probe(struct usb_inter
|
||||
+ retval = -EIO;
|
||||
+ goto err_register_netdev;
|
||||
+ }
|
||||
+-
|
||||
++ // carrier down and transmit queues stopped until packet from device
|
||||
++ netif_carrier_off(netdev);
|
||||
++ netif_tx_stop_all_queues(netdev);
|
||||
+ dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
|
||||
+ return 0;
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
76
patches-wlan-ap/0013-ipq807x-hack-mtdoops-for-gl.patch
Normal file
76
patches-wlan-ap/0013-ipq807x-hack-mtdoops-for-gl.patch
Normal file
@ -0,0 +1,76 @@
|
||||
From ab07a139bad8941fe6687c46f67b1080e0753a1a Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 12:21:37 +0800
|
||||
Subject: [PATCH] ipq807x: hack mtdoops for gl
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/202-fix-qcom-mtdoops.patch | 56 +++++++++++++++++++
|
||||
1 file changed, 56 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/202-fix-qcom-mtdoops.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/202-fix-qcom-mtdoops.patch b/feeds/ipq807x/ipq807x/patches/202-fix-qcom-mtdoops.patch
|
||||
new file mode 100644
|
||||
index 00000000..9ed2175a
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/202-fix-qcom-mtdoops.patch
|
||||
@@ -0,0 +1,56 @@
|
||||
+--- a/drivers/mtd/mtdoops.c
|
||||
++++ b/drivers/mtd/mtdoops.c
|
||||
+@@ -220,8 +220,26 @@ static void mtdoops_write(struct mtdoops
|
||||
+ hdr[1] = MTDOOPS_KERNMSG_MAGIC;
|
||||
+
|
||||
+ if (panic) {
|
||||
+- ret = mtd_panic_write(mtd, cxt->nextpage * record_size,
|
||||
+- record_size, &retlen, cxt->oops_buf);
|
||||
++ int count = record_size / 0x800;
|
||||
++ int i = 0;
|
||||
++ const u_char * p = cxt->oops_buf;
|
||||
++ while(count--) {
|
||||
++ ret = mtd_write(mtd, cxt->nextpage * record_size + i * 0x800,
|
||||
++ record_size - i * 0x800, &retlen, p);
|
||||
++ if (ret == 0) {
|
||||
++ break;
|
||||
++ }
|
||||
++ else {
|
||||
++ if ((p + 0x800) != NULL) {
|
||||
++ p = p + 0x800;
|
||||
++ i++;
|
||||
++ }
|
||||
++ else {
|
||||
++ break;
|
||||
++ }
|
||||
++ }
|
||||
++ }
|
||||
++
|
||||
+ if (ret == -EOPNOTSUPP) {
|
||||
+ printk(KERN_ERR "mtdoops: Cannot write from panic without panic_write\n");
|
||||
+ return;
|
||||
+@@ -230,9 +248,11 @@ static void mtdoops_write(struct mtdoops
|
||||
+ ret = mtd_write(mtd, cxt->nextpage * record_size,
|
||||
+ record_size, &retlen, cxt->oops_buf);
|
||||
+
|
||||
++#if 0
|
||||
+ if (retlen != record_size || ret < 0)
|
||||
+ printk(KERN_ERR "mtdoops: write failure at %ld (%td of %ld written), error %d\n",
|
||||
+ cxt->nextpage * record_size, retlen, record_size, ret);
|
||||
++#endif
|
||||
+ mark_page_used(cxt, cxt->nextpage);
|
||||
+ memset(cxt->oops_buf, 0xff, record_size);
|
||||
+
|
||||
+@@ -241,10 +261,12 @@ static void mtdoops_write(struct mtdoops
|
||||
+
|
||||
+ static void mtdoops_workfunc_write(struct work_struct *work)
|
||||
+ {
|
||||
++#if 0
|
||||
+ struct mtdoops_context *cxt =
|
||||
+ container_of(work, struct mtdoops_context, work_write);
|
||||
+
|
||||
+ mtdoops_write(cxt, 0);
|
||||
++#endif
|
||||
+ }
|
||||
+
|
||||
+ static void find_next_position(struct mtdoops_context *cxt)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
339
patches-wlan-ap/0014-ipq807x-fix-usb-modem-driver-for-gl.patch
Normal file
339
patches-wlan-ap/0014-ipq807x-fix-usb-modem-driver-for-gl.patch
Normal file
@ -0,0 +1,339 @@
|
||||
From 6faf6bac518f866657ccf6583531804006181c0c Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 12:22:33 +0800
|
||||
Subject: [PATCH] ipq807x: fix usb modem driver for gl
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../patches/203-fix-usb-modem-driver.patch | 319 ++++++++++++++++++
|
||||
1 file changed, 319 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/203-fix-usb-modem-driver.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/203-fix-usb-modem-driver.patch b/feeds/ipq807x/ipq807x/patches/203-fix-usb-modem-driver.patch
|
||||
new file mode 100644
|
||||
index 00000000..b3f109d2
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/203-fix-usb-modem-driver.patch
|
||||
@@ -0,0 +1,319 @@
|
||||
+--- linux-4.4.60.orig/drivers/net/usb/qmi_wwan.c
|
||||
++++ linux-4.4.60/drivers/net/usb/qmi_wwan.c
|
||||
+@@ -58,6 +58,24 @@ static const u8 default_modem_addr[ETH_ALEN] = {0x02, 0x50, 0xf3};
|
||||
+
|
||||
+ static const u8 buggy_fw_addr[ETH_ALEN] = {0x00, 0xa0, 0xc6, 0x00, 0x00, 0x00};
|
||||
+
|
||||
++#if 1 //Added by Quectel
|
||||
++#include <linux/etherdevice.h>
|
||||
++struct sk_buff *qmi_wwan_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
|
||||
++{
|
||||
++ if (dev->udev->descriptor.idVendor != cpu_to_le16(0x2C7C))
|
||||
++ return skb;
|
||||
++ // Skip Ethernet header from message
|
||||
++ if (skb_pull(skb, ETH_HLEN)) {
|
||||
++ return skb;
|
||||
++ } else {
|
||||
++ dev_err(&dev->intf->dev, "Packet Dropped ");
|
||||
++ }
|
||||
++ // Filter the packet out, release it
|
||||
++ dev_kfree_skb_any(skb);
|
||||
++ return NULL;
|
||||
++}
|
||||
++#endif
|
||||
++
|
||||
+ /* Make up an ethernet header if the packet doesn't have one.
|
||||
+ *
|
||||
+ * A firmware bug common among several devices cause them to send raw
|
||||
+@@ -294,6 +312,21 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
+ dev->net->dev_addr[0] &= 0xbf; /* clear "IP" bit */
|
||||
+ }
|
||||
+ dev->net->netdev_ops = &qmi_wwan_netdev_ops;
|
||||
++ //dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
|
||||
++#if 1 //Added by Quectel
|
||||
++ if (dev->udev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
|
||||
++ dev_info(&intf->dev, "QuectelEC25&EC21&EG91&EG95&EG06&EP06&EM06&BG96&AG35 work on RawIP mode\n");
|
||||
++ dev->net->flags |= IFF_NOARP;
|
||||
++ usb_control_msg(
|
||||
++ interface_to_usbdev(intf),
|
||||
++ usb_sndctrlpipe(interface_to_usbdev(intf), 0),
|
||||
++ 0x22, //USB_CDC_REQ_SET_CONTROL_LINE_STATE
|
||||
++ 0x21, //USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE
|
||||
++ 1, //active CDC DTR
|
||||
++ intf->cur_altsetting->desc.bInterfaceNumber,
|
||||
++ NULL, 0, 100);
|
||||
++ }
|
||||
++#endif
|
||||
+ err:
|
||||
+ return status;
|
||||
+ }
|
||||
+@@ -378,7 +411,11 @@ static const struct driver_info qmi_wwan_info = {
|
||||
+ .bind = qmi_wwan_bind,
|
||||
+ .unbind = qmi_wwan_unbind,
|
||||
+ .manage_power = qmi_wwan_manage_power,
|
||||
+- .rx_fixup = qmi_wwan_rx_fixup,
|
||||
++ //.rx_fixup = qmi_wwan_rx_fixup,
|
||||
++ #if 1 //Added by Quectel
|
||||
++ .tx_fixup = qmi_wwan_tx_fixup,
|
||||
++ .rx_fixup = qmi_wwan_rx_fixup,
|
||||
++ #endif
|
||||
+ };
|
||||
+
|
||||
+ #define HUAWEI_VENDOR_ID 0x12D1
|
||||
+@@ -397,6 +434,18 @@ static const struct driver_info qmi_wwan_info = {
|
||||
+ QMI_FIXED_INTF(vend, prod, 0)
|
||||
+
|
||||
+ static const struct usb_device_id products[] = {
|
||||
++#if 1 //Added by Quectel
|
||||
++ { QMI_FIXED_INTF(0x05C6, 0x9003, 4) }, /* Quectel UC20 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0125, 4) }, /* Quectel EC25 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0121, 4) }, /* Quectel EC21 */
|
||||
++ { QMI_FIXED_INTF(0x05C6, 0x9215, 4) }, /* Quectel EC20 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0191, 4) }, /* Quectel EG91 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0195, 4) }, /* Quectel EG95 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0306, 4) }, /* Quectel EG06/EP06/EM06 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0296, 4) }, /* Quectel BG96 */
|
||||
++ { QMI_FIXED_INTF(0x2C7C, 0x0435, 4) }, /* Quectel AG35 */
|
||||
++#endif
|
||||
++
|
||||
+ /* 1. CDC ECM like devices match on the control interface */
|
||||
+ { /* Huawei E392, E398 and possibly others sharing both device id and more... */
|
||||
+ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, USB_CLASS_VENDOR_SPEC, 1, 9),
|
||||
+@@ -753,6 +802,8 @@ static const struct usb_device_id products[] = {
|
||||
+ {QMI_FIXED_INTF(0x413c, 0x81a9, 8)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
|
||||
+ {QMI_FIXED_INTF(0x413c, 0x81b1, 8)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card */
|
||||
+ {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
|
||||
++ {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
|
||||
++ {QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */
|
||||
+ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
|
||||
+
|
||||
+ /* 4. Gobi 1000 devices */
|
||||
+@@ -783,7 +834,7 @@ static const struct usb_device_id products[] = {
|
||||
+ {QMI_GOBI_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */
|
||||
+ {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */
|
||||
+ {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
||||
+- {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
++// {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
+ {QMI_FIXED_INTF(0x05c6, 0x9215, 4)}, /* Quectel EC20 Mini PCIe */
|
||||
+ {QMI_GOBI_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
|
||||
+ {QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */
|
||||
+--- linux-4.4.60.orig/drivers/usb/serial/option.c
|
||||
++++ linux-4.4.60/drivers/usb/serial/option.c
|
||||
+@@ -241,6 +241,7 @@ static void option_instat_callback(struct urb *urb);
|
||||
+ /* These Quectel products use Quectel's vendor ID */
|
||||
+ #define QUECTEL_PRODUCT_EC21 0x0121
|
||||
+ #define QUECTEL_PRODUCT_EC25 0x0125
|
||||
++#define QUECTEL_PRODUCT_EP06 0x0306
|
||||
+
|
||||
+ #define CMOTECH_VENDOR_ID 0x16d8
|
||||
+ #define CMOTECH_PRODUCT_6001 0x6001
|
||||
+@@ -541,6 +542,23 @@ static void option_instat_callback(struct urb *urb);
|
||||
+ #define WETELECOM_PRODUCT_6802 0x6802
|
||||
+ #define WETELECOM_PRODUCT_WMD300 0x6803
|
||||
+
|
||||
++#define LONGSUNG_PRODUCT_U9300C 0x9b3c
|
||||
++
|
||||
++/* FORGE PRODUCT */
|
||||
++#define FORGE_VENDOR_ID 0x05c6
|
||||
++
|
||||
++#define FORGE_PRODUCT_SLM750 0xf601
|
||||
++
|
||||
++/* NODECOM PRODUCT */
|
||||
++#define NODECOM_VENDOR_ID 0x1508
|
||||
++
|
||||
++#define NODECOM_PRODUCT_NL660 0x1001
|
||||
++
|
||||
++/* NEOWAY PRODUCT */
|
||||
++#define NEOWAY_VENDOR_ID 0x2949
|
||||
++
|
||||
++#define NEOWAY_PRODUCT_N720 0x8243
|
||||
++
|
||||
+ struct option_blacklist_info {
|
||||
+ /* bitmask of interface numbers blacklisted for send_setup */
|
||||
+ const unsigned long sendsetup;
|
||||
+@@ -670,6 +688,27 @@ static const struct option_blacklist_info cinterion_rmnet2_blacklist = {
|
||||
+ };
|
||||
+
|
||||
+ static const struct usb_device_id option_ids[] = {
|
||||
++#if 1 //Added by Quectel
|
||||
++ { USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
|
||||
++ { USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
|
||||
++ { USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x0435) }, /* Quectel AG35 */
|
||||
++ { USB_DEVICE(0x2C7C, 0x6026) }, /* Quectel AG35 */
|
||||
++#endif
|
||||
++ { USB_DEVICE(0x19d2, 0x0536) },/* MZ386 */
|
||||
++ { USB_DEVICE(0x19d2, 0x0117) },
|
||||
++ { USB_DEVICE(0x19d2, 0x0199) },
|
||||
++ { USB_DEVICE(0x19d2, 0x1476) },
|
||||
++ { USB_DEVICE(LONGCHEER_VENDOR_ID, LONGSUNG_PRODUCT_U9300C) },
|
||||
++ { USB_DEVICE(FORGE_VENDOR_ID, FORGE_PRODUCT_SLM750) },
|
||||
++ { USB_DEVICE(NODECOM_VENDOR_ID, NODECOM_PRODUCT_NL660) },
|
||||
++ { USB_DEVICE(NEOWAY_VENDOR_ID, NEOWAY_PRODUCT_N720) },
|
||||
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
|
||||
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
|
||||
+@@ -1178,6 +1217,8 @@ static const struct usb_device_id option_ids[] = {
|
||||
+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
+ { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
|
||||
+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
++ { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06),
|
||||
++ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
|
||||
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
|
||||
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
|
||||
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
|
||||
+@@ -2057,6 +2098,9 @@ static struct usb_serial_driver option_1port_device = {
|
||||
+ #ifdef CONFIG_PM
|
||||
+ .suspend = usb_wwan_suspend,
|
||||
+ .resume = usb_wwan_resume,
|
||||
++#if 1 //Added by Quectel
|
||||
++ .reset_resume = usb_wwan_resume,
|
||||
++#endif
|
||||
+ #endif
|
||||
+ };
|
||||
+
|
||||
+@@ -2072,6 +2116,8 @@ static int option_probe(struct usb_serial *serial,
|
||||
+ struct usb_interface_descriptor *iface_desc =
|
||||
+ &serial->interface->cur_altsetting->desc;
|
||||
+ struct usb_device_descriptor *dev_desc = &serial->dev->descriptor;
|
||||
++
|
||||
++ //unsigned long device_flags = id->driver_info;
|
||||
+ const struct option_blacklist_info *blacklist;
|
||||
+
|
||||
+ /* Never bind to the CD-Rom emulation interface */
|
||||
+@@ -2092,13 +2138,91 @@ static int option_probe(struct usb_serial *serial,
|
||||
+ * a separate module.
|
||||
+ */
|
||||
+ if (dev_desc->idVendor == cpu_to_le16(SAMSUNG_VENDOR_ID) &&
|
||||
+- dev_desc->idProduct == cpu_to_le16(SAMSUNG_PRODUCT_GT_B3730) &&
|
||||
+- iface_desc->bInterfaceClass != USB_CLASS_CDC_DATA)
|
||||
++ dev_desc->idProduct == cpu_to_le16(SAMSUNG_PRODUCT_GT_B3730) &&
|
||||
++ iface_desc->bInterfaceClass != USB_CLASS_CDC_DATA)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ /* Store the blacklist info so we can use it during attach. */
|
||||
+- usb_set_serial_data(serial, (void *)blacklist);
|
||||
+-
|
||||
++ //usb_set_serial_data(serial, (void *)blacklist);
|
||||
++#if 1 //Added by Quectel
|
||||
++ //Quectel UC20's interface 4 can be used as USB network device
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && \
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003) \
|
||||
++ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
++ return -ENODEV;
|
||||
++ //Quectel EC20's interface 4 can be used as USB network device
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && \
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215) \
|
||||
++ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
++ return -ENODEV;
|
||||
++ //Quectel EC25&EC21&EG91&EG95&EG06&EP06&EM06&BG96/AG35's interface 4 can be used as USB network device
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) && \
|
||||
++ serial->dev->descriptor.idProduct != cpu_to_le16(0x6026) \
|
||||
++ && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
|
||||
++ return -ENODEV;
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) && \
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x6026) \
|
||||
++ && serial->interface->cur_altsetting->desc.bInterfaceNumber<= 1)
|
||||
++ return -ENODEV;
|
||||
++#endif
|
||||
++#if 0 //Added by Quectel
|
||||
++ //For USB Auto Suspend
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9090)) {
|
||||
++ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
++ usb_enable_autosuspend(serial->dev);
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)) {
|
||||
++ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
++ usb_enable_autosuspend(serial->dev);
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215)) {
|
||||
++ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
++ usb_set_serial_data(serial, (void *)device_flags);
|
||||
++ usb_enable_autosuspend(serial->dev);
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C) &&
|
||||
++ serial->dev->descriptor.idProduct != cpu_to_le16(0x0306)) {
|
||||
++ pm_runtime_set_autosuspend_delay(&serial->dev->dev, 3000);
|
||||
++ usb_enable_autosuspend(serial->dev);
|
||||
++ }
|
||||
++#endif
|
||||
++#if 0 //Added by Quectel
|
||||
++ //For USB Remote Wakeup
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9090)) {
|
||||
++ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)) {
|
||||
++ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x9215)) {
|
||||
++ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
++ }
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
|
||||
++ device_init_wakeup(&serial->dev->dev, 1); //usb remote wakeup
|
||||
++ }
|
||||
++#endif
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x1476) &&
|
||||
++ serial->interface->cur_altsetting->desc. bInterfaceNumber == 3)
|
||||
++ return -ENODEV;
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x1476) &&
|
||||
++ serial->interface->cur_altsetting->desc. bInterfaceNumber == 4)
|
||||
++ return -ENODEV;
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x1509) &&
|
||||
++ serial->interface->cur_altsetting->desc. bInterfaceNumber == 4)
|
||||
++ return -ENODEV;
|
||||
++ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x19d2) &&
|
||||
++ serial->dev->descriptor.idProduct == cpu_to_le16(0x1509) &&
|
||||
++ serial->interface->cur_altsetting->desc. bInterfaceNumber == 5)
|
||||
++ return -ENODEV;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+--- linux-4.4.60.orig/drivers/usb/serial/qcserial.c
|
||||
++++ linux-4.4.60/drivers/usb/serial/qcserial.c
|
||||
+@@ -92,7 +92,7 @@ static const struct usb_device_id id_table[] = {
|
||||
+ {USB_DEVICE(0x03f0, 0x241d)}, /* HP Gobi 2000 QDL device (VP412) */
|
||||
+ {USB_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
||||
+ {USB_DEVICE(0x05c6, 0x9214)}, /* Acer Gobi 2000 QDL device (VP413) */
|
||||
+- {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
++// {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
||||
+ {USB_DEVICE(0x05c6, 0x9264)}, /* Asus Gobi 2000 QDL device (VR305) */
|
||||
+ {USB_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
|
||||
+ {USB_DEVICE(0x05c6, 0x9234)}, /* Top Global Gobi 2000 QDL device (VR306) */
|
||||
+--- linux-4.4.60.orig/drivers/usb/serial/usb_wwan.c
|
||||
++++ linux-4.4.60/drivers/usb/serial/usb_wwan.c
|
||||
+@@ -504,7 +504,19 @@ static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
|
||||
+ usb_fill_bulk_urb(urb, serial->dev,
|
||||
+ usb_sndbulkpipe(serial->dev, endpoint) | dir,
|
||||
+ buf, len, callback, ctx);
|
||||
+-
|
||||
++#if 1 //Added by Quectel for zero packet
|
||||
++ if (dir == USB_DIR_OUT) {
|
||||
++ struct usb_device_descriptor *desc = &serial->dev->descriptor;
|
||||
++ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9090))
|
||||
++ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
++ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9003))
|
||||
++ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
++ if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9215))
|
||||
++ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
++ if (desc->idVendor == cpu_to_le16(0x2C7C))
|
||||
++ urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
++ }
|
||||
++#endif
|
||||
+ return urb;
|
||||
+ }
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
69
patches-wlan-ap/0015-ipq807x-add-support-novatel-rndis.patch
Normal file
69
patches-wlan-ap/0015-ipq807x-add-support-novatel-rndis.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From 312017d0884366a9862abcc1e1df06acc8e7cf69 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Tue, 12 Jul 2022 12:23:17 +0800
|
||||
Subject: [PATCH] ipq807x: add support novatel rndis
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../205-add-support-novatel-rndis.patch | 49 +++++++++++++++++++
|
||||
1 file changed, 49 insertions(+)
|
||||
create mode 100644 feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
|
||||
|
||||
diff --git a/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch b/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
|
||||
new file mode 100644
|
||||
index 00000000..23145826
|
||||
--- /dev/null
|
||||
+++ b/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
|
||||
@@ -0,0 +1,49 @@
|
||||
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
|
||||
+===================================================================
|
||||
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/cdc_ether.c
|
||||
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
|
||||
+@@ -54,11 +54,19 @@ static int is_wireless_rndis(struct usb_
|
||||
+ desc->bInterfaceProtocol == 3);
|
||||
+ }
|
||||
+
|
||||
++static int is_novatel_rndis(struct usb_interface_descriptor *desc)
|
||||
++{
|
||||
++ return (desc->bInterfaceClass == USB_CLASS_MISC &&
|
||||
++ desc->bInterfaceSubClass == 4 &&
|
||||
++ desc->bInterfaceProtocol == 1);
|
||||
++}
|
||||
++
|
||||
+ #else
|
||||
+
|
||||
+ #define is_rndis(desc) 0
|
||||
+ #define is_activesync(desc) 0
|
||||
+ #define is_wireless_rndis(desc) 0
|
||||
++#define is_novatel_rndis(desc) 0
|
||||
+
|
||||
+ #endif
|
||||
+
|
||||
+@@ -150,7 +158,8 @@ int usbnet_generic_cdc_bind(struct usbne
|
||||
+ */
|
||||
+ rndis = (is_rndis(&intf->cur_altsetting->desc) ||
|
||||
+ is_activesync(&intf->cur_altsetting->desc) ||
|
||||
+- is_wireless_rndis(&intf->cur_altsetting->desc));
|
||||
++ is_wireless_rndis(&intf->cur_altsetting->desc) ||
|
||||
++ is_novatel_rndis(&intf->cur_altsetting->desc));
|
||||
+
|
||||
+ memset(info, 0, sizeof(*info));
|
||||
+ info->control = intf;
|
||||
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
|
||||
+===================================================================
|
||||
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/rndis_host.c
|
||||
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
|
||||
+@@ -627,6 +627,10 @@ static const struct usb_device_id produc
|
||||
+ /* RNDIS for tethering */
|
||||
+ USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
|
||||
+ .driver_info = (unsigned long) &rndis_info,
|
||||
++}, {
|
||||
++ /* Novatel Verizon USB730L */
|
||||
++ USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
|
||||
++ .driver_info = (unsigned long) &rndis_info,
|
||||
+ },
|
||||
+ { }, // END
|
||||
+ };
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
From 3f74fb618703eca0ec38eb406275f07ac7d1786d Mon Sep 17 00:00:00 2001
|
||||
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
|
||||
Date: Sat, 12 Feb 2022 14:10:41 +0800
|
||||
Subject: [PATCH] target: use gl metadata
|
||||
From 257d12954c631deced9b3157cdca03ca3b95bc31 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 11:33:24 +0800
|
||||
Subject: [PATCH] image: support append-gl-metadata
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
include/image-commands.mk | 30 ++++++++++++++++++++++++++++++
|
||||
target/linux/ipq807x/image/ipq60xx.mk | 2 +-
|
||||
2 files changed, 31 insertions(+), 1 deletion(-)
|
||||
include/image-commands.mk | 30 ++++++++++++++++++++++++++++++
|
||||
1 file changed, 30 insertions(+)
|
||||
|
||||
diff --git a/include/image-commands.mk b/include/image-commands.mk
|
||||
index aa574d2..b29b868 100644
|
||||
index 541ec4f575..aaf550c749 100644
|
||||
--- a/include/image-commands.mk
|
||||
+++ b/include/image-commands.mk
|
||||
@@ -64,6 +64,36 @@ define Build/append-metadata
|
||||
@ -49,19 +49,6 @@ index aa574d2..b29b868 100644
|
||||
define Build/append-rootfs
|
||||
dd if=$(IMAGE_ROOTFS) >> $@
|
||||
endef
|
||||
diff --git a/target/linux/ipq807x/image/ipq60xx.mk b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
index d95e393..5367b95 100644
|
||||
--- a/target/linux/ipq807x/image/ipq60xx.mk
|
||||
+++ b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
@@ -6,7 +6,7 @@ define Device/cig_wf188
|
||||
DEVICE_DTS_CONFIG := config@cp03-c1
|
||||
SUPPORTED_DEVICES := cig,wf188
|
||||
IMAGES := sysupgrade.tar
|
||||
- IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
+ IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-gl-metadata
|
||||
DEVICE_PACKAGES := ath11k-wifi-cig-wf188 uboot-env
|
||||
endef
|
||||
TARGET_DEVICES += cig_wf188
|
||||
--
|
||||
2.7.4
|
||||
2.25.1
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
From c689638ced025d1356661bff142fddd054494584 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Fri, 21 Jan 2022 18:16:03 +0800
|
||||
Subject: [PATCH 4/4] kernel: fix missing symbol
|
||||
|
||||
CONFIG_IP6_NF_TARGET_MASQUERADE
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
target/linux/generic/config-4.4 | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/target/linux/generic/config-4.4 b/target/linux/generic/config-4.4
|
||||
index 4e7602f236..a7d2bd9bcb 100644
|
||||
--- a/target/linux/generic/config-4.4
|
||||
+++ b/target/linux/generic/config-4.4
|
||||
@@ -1643,6 +1643,7 @@ CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IP6_NF_NAT is not set
|
||||
# CONFIG_IP6_NF_RAW is not set
|
||||
# CONFIG_IP6_NF_TARGET_HL is not set
|
||||
+# CONFIG_IP6_NF_TARGET_MASQUERADE is not set
|
||||
# CONFIG_IP6_NF_TARGET_REJECT is not set
|
||||
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
|
||||
# CONFIG_IPACK_BUS is not set
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
From 5c109232c238a74b872716f82987320087e74bef Mon Sep 17 00:00:00 2001
|
||||
From b3e9fa747eb4cf7bd832b9096483a3d2243ae8c0 Mon Sep 17 00:00:00 2001
|
||||
From: gl-luochongjun <luochongjun@gl-inet.com>
|
||||
Date: Tue, 5 Jul 2022 18:01:34 +0800
|
||||
Subject: [PATCH] support append glinet private packages
|
||||
@ -23,7 +23,7 @@ index 0000000000..7501d73cfc
|
||||
+ $(foreach pkg,$(shell ls $(GL_PKGDIR)/$(p)_*.ipk),$(pkg)$(call GetABISuffix,$(pkg))))
|
||||
+endif
|
||||
diff --git a/package/Makefile b/package/Makefile
|
||||
index ec503dc527..2e714b3e89 100644
|
||||
index 18a19fff13..bbbca1ddbf 100644
|
||||
--- a/package/Makefile
|
||||
+++ b/package/Makefile
|
||||
@@ -9,6 +9,7 @@ curdir:=package
|
||||
@ -34,7 +34,7 @@ index ec503dc527..2e714b3e89 100644
|
||||
|
||||
-include $(TMP_DIR)/.packagedeps
|
||||
package-y += kernel/linux
|
||||
@@ -67,7 +68,8 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DE
|
||||
@@ -68,7 +69,8 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DE
|
||||
rm -rf $(TARGET_DIR) $(TARGET_DIR_ORIG)
|
||||
mkdir -p $(TARGET_DIR)/tmp
|
||||
$(call opkg,$(TARGET_DIR)) install \
|
||||
@ -1,4 +1,4 @@
|
||||
From d612c9590e95795ee9429380847f24da57b44d45 Mon Sep 17 00:00:00 2001
|
||||
From 17c966a382c534c5d087c561fb34534c1a018eea Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 22 Jan 2022 10:41:25 +0800
|
||||
Subject: [PATCH] base-files: set default password to empty
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
From f10d460e9092633f860812d8a2cacec45036b1d4 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 22 Jan 2022 14:20:48 +0800
|
||||
Subject: [PATCH] kernel: fix DEPENDS for kmod-usb-dwc3-qcom
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/kernel/linux/modules/usb.mk | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
|
||||
index 5530a18379..7183833e96 100644
|
||||
--- a/package/kernel/linux/modules/usb.mk
|
||||
+++ b/package/kernel/linux/modules/usb.mk
|
||||
@@ -479,9 +479,10 @@ $(eval $(call KernelPackage,usb-dwc3-of-simple))
|
||||
|
||||
define KernelPackage/usb-dwc3-qcom
|
||||
TITLE:=DWC3 Qualcomm USB driver
|
||||
- DEPENDS:=@(!LINUX_4_14) @(TARGET_ipq40xx||TARGET_ipq806x) +kmod-usb-dwc3
|
||||
+ DEPENDS:=@(!LINUX_4_14) @(TARGET_ipq40xx||TARGET_ipq806x||TARGET_ipq807x) +kmod-usb-dwc3
|
||||
KCONFIG:= CONFIG_USB_DWC3_QCOM
|
||||
- FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
|
||||
+ FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko \
|
||||
+ $(LINUX_DIR)/drivers/usb/dwc3/dbm.ko
|
||||
AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
|
||||
$(call AddDepends/usb)
|
||||
endef
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,66 +0,0 @@
|
||||
From 8dd91ef504bfab49c4105d4937d5a54524fac0a4 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 22 Jan 2022 10:01:13 +0800
|
||||
Subject: [PATCH] exfat: replaced by gl-feed
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/kernel/exfat/Makefile | 46 -----------------------------------
|
||||
1 file changed, 46 deletions(-)
|
||||
delete mode 100644 package/kernel/exfat/Makefile
|
||||
|
||||
diff --git a/package/kernel/exfat/Makefile b/package/kernel/exfat/Makefile
|
||||
deleted file mode 100644
|
||||
index 4337b0f1aa..0000000000
|
||||
--- a/package/kernel/exfat/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,46 +0,0 @@
|
||||
-#
|
||||
-# 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:=exfat
|
||||
-PKG_VERSION:=5.12.3
|
||||
-PKG_RELEASE:=$(AUTORELEASE)
|
||||
-
|
||||
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
-PKG_SOURCE_URL:=https://codeload.github.com/namjaejeon/linux-exfat-oot/tar.gz/$(PKG_VERSION)?
|
||||
-PKG_HASH:=43889c73af76c466bbc904aff80354a62ecaa24c7b20e354ff735f5949907982
|
||||
-PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-exfat-oot-$(PKG_VERSION)
|
||||
-
|
||||
-PKG_MAINTAINER:=
|
||||
-PKG_LICENSE:=GPL-2.0-only
|
||||
-
|
||||
-include $(INCLUDE_DIR)/package.mk
|
||||
-
|
||||
-define KernelPackage/fs-exfat
|
||||
- SECTION:=kernel
|
||||
- CATEGORY:=Kernel modules
|
||||
- SUBMENU:=Filesystems
|
||||
- TITLE:=exFAT kernel module
|
||||
- URL:=https://github.com/namjaejeon/linux-exfat-oot
|
||||
- FILES:=$(PKG_BUILD_DIR)/exfat.ko
|
||||
- AUTOLOAD:=$(call AutoProbe,exfat)
|
||||
- DEPENDS:= +kmod-nls-base
|
||||
-endef
|
||||
-
|
||||
-define KernelPackage/exfat/description
|
||||
- This package provides the kernel module for exfat.
|
||||
-endef
|
||||
-
|
||||
-define Build/Compile
|
||||
- $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \
|
||||
- EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
- $(PKG_EXTRA_KCONFIG) \
|
||||
- CONFIG_EXFAT_FS=m \
|
||||
- modules
|
||||
-endef
|
||||
-
|
||||
-$(eval $(call KernelPackage,fs-exfat))
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
From 0656fe636aa1bbafb60e6651e28675b4f7954299 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 22 Jan 2022 15:18:43 +0800
|
||||
Subject: [PATCH] kmod-wireguard: replaced by gl-feeds
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/kernel/linux/modules/netsupport.mk | 27 ---
|
||||
|
||||
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
|
||||
index 4343e850e9..3a4fcc0376 100644
|
||||
--- a/package/kernel/linux/modules/netsupport.mk
|
||||
+++ b/package/kernel/linux/modules/netsupport.mk
|
||||
@@ -1258,30 +1258,3 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,netlink-diag))
|
||||
|
||||
-
|
||||
-define KernelPackage/wireguard
|
||||
- SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||
- TITLE:=WireGuard secure network tunnel
|
||||
- DEPENDS:= \
|
||||
- +kmod-crypto-lib-blake2s \
|
||||
- +kmod-crypto-lib-chacha20poly1305 \
|
||||
- +kmod-crypto-lib-curve25519 \
|
||||
- +kmod-udptunnel4 \
|
||||
- +IPV6:kmod-udptunnel6
|
||||
- KCONFIG:= \
|
||||
- CONFIG_WIREGUARD \
|
||||
- CONFIG_WIREGUARD_DEBUG=n
|
||||
- FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
|
||||
- AUTOLOAD:=$(call AutoProbe,wireguard)
|
||||
-endef
|
||||
-
|
||||
-define KernelPackage/wireguard/description
|
||||
- WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
|
||||
- state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
|
||||
- more useful than IPSec, while avoiding the massive headache. It intends to
|
||||
- be considerably more performant than OpenVPN. WireGuard is designed as a
|
||||
- general purpose VPN for running on embedded interfaces and super computers
|
||||
- alike, fit for many different circumstances. It uses UDP.
|
||||
-endef
|
||||
-
|
||||
-$(eval $(call KernelPackage,wireguard))
|
||||
2.25.1
|
||||
|
||||
@ -1,69 +0,0 @@
|
||||
From 7bb057919ba43b58afecf7fb426d1ae2708ea7f8 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Sat, 22 Jan 2022 15:54:15 +0800
|
||||
Subject: [PATCH] kernel: add kmod-ipv6 and kmod-crypto-core
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/kernel/linux/modules/crypto.mk | 14 ++++++++++++++
|
||||
package/kernel/linux/modules/netsupport.mk | 19 +++++++++++++++++++
|
||||
2 files changed, 33 insertions(+)
|
||||
|
||||
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
|
||||
index a68459d989..8872b37636 100644
|
||||
--- a/package/kernel/linux/modules/crypto.mk
|
||||
+++ b/package/kernel/linux/modules/crypto.mk
|
||||
@@ -17,6 +17,20 @@ crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
|
||||
crypto_file=$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
|
||||
crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
|
||||
|
||||
+define KernelPackage/crypto-core
|
||||
+ SUBMENU:=$(CRYPTO_MENU)
|
||||
+ TITLE:=Core CryptoAPI modules
|
||||
+ KCONFIG:= \
|
||||
+ CONFIG_CRYPTO=y \
|
||||
+ CONFIG_CRYPTO_HW=y \
|
||||
+ CONFIG_CRYPTO_BLKCIPHER \
|
||||
+ CONFIG_CRYPTO_ALGAPI \
|
||||
+ $(foreach mod,$(CRYPTO_MODULES),$(call crypto_confvar,$(mod)))
|
||||
+ FILES:=$(foreach mod,$(CRYPTO_MODULES),$(call crypto_file,$(mod)))
|
||||
+endef
|
||||
+
|
||||
+$(eval $(call KernelPackage,crypto-core))
|
||||
+
|
||||
define AddDepends/crypto
|
||||
SUBMENU:=$(CRYPTO_MENU)
|
||||
DEPENDS+= $(1)
|
||||
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
|
||||
index 3a4fcc0376..045dbc3aef 100644
|
||||
--- a/package/kernel/linux/modules/netsupport.mk
|
||||
+++ b/package/kernel/linux/modules/netsupport.mk
|
||||
@@ -422,6 +422,25 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,iptunnel6))
|
||||
|
||||
+define KernelPackage/ipv6
|
||||
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||
+ TITLE:=IPv6 support
|
||||
+ DEPENDS:=@IPV6
|
||||
+ DEFAULT:=y
|
||||
+ KCONFIG:= \
|
||||
+ CONFIG_IPV6=y \
|
||||
+ CONFIG_IPV6_PRIVACY=y \
|
||||
+ CONFIG_IPV6_MULTIPLE_TABLES=y \
|
||||
+ CONFIG_IPV6_MROUTE=y \
|
||||
+ CONFIG_IPV6_PIMSM_V2=n \
|
||||
+ CONFIG_IPV6_SUBTREES=y
|
||||
+endef
|
||||
+
|
||||
+define KernelPackage/ipv6/description
|
||||
+ Kernel modules for IPv6 support
|
||||
+endef
|
||||
+
|
||||
+$(eval $(call KernelPackage,ipv6))
|
||||
|
||||
define KernelPackage/sit
|
||||
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
From 2cc8787c704a278a6e454dca91c572e7249b757e Mon Sep 17 00:00:00 2001
|
||||
From: gl-luochongjun <luochongjun@gl-inet.com>
|
||||
Date: Thu, 17 Feb 2022 19:25:49 +0800
|
||||
Subject: [PATCH] scripts gen_config add version info
|
||||
From a0d43228ceb71f05f688c16b44fa01c99b07ba52 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 12:12:32 +0800
|
||||
Subject: [PATCH] scripts: gen_config add version info
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
scripts/gen_config.py | 24 ++++++++++++++++++++++++
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
diff --git a/scripts/gen_config.py b/scripts/gen_config.py
|
||||
index 071e00bb4d..b45e0399df 100755
|
||||
index 01c3f4050d..0cdbeab998 100755
|
||||
--- a/scripts/gen_config.py
|
||||
+++ b/scripts/gen_config.py
|
||||
@@ -4,6 +4,8 @@ from os import getenv
|
||||
@ -20,9 +21,9 @@ index 071e00bb4d..b45e0399df 100755
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
@@ -61,6 +63,27 @@ def process_host_dependency(dependecy: dict, profile: dict):
|
||||
else:
|
||||
die("Can't continue without dependency and no `fallback_diffconfig` set")
|
||||
@@ -191,6 +193,27 @@ CONFIG_TARGET_{profile["target"]}_{profile["subtarget"]}_DEVICE_{profile["profil
|
||||
Path(".config").write_text(config_output)
|
||||
print("Configuration written to .config")
|
||||
|
||||
+def load_metadata():
|
||||
+ try:
|
||||
@ -46,16 +47,16 @@ index 071e00bb4d..b45e0399df 100755
|
||||
+ call("echo %s > %s" % (compile_time, "files/etc/version.date"), shell=True)
|
||||
+ load_metadata()
|
||||
|
||||
def load_yaml(fname: str, profile: dict, include=True):
|
||||
profile_file = (profile_folder / fname).with_suffix(".yml")
|
||||
@@ -221,6 +244,7 @@ if __name__ == "__main__":
|
||||
if __name__ == "__main__":
|
||||
if "list" in sys.argv:
|
||||
@@ -225,6 +248,7 @@ if __name__ == "__main__":
|
||||
clean_tree()
|
||||
setup_feeds(profile)
|
||||
generate_config(profile)
|
||||
+ generate_files(profile)
|
||||
if profile["image"]:
|
||||
Path("tmp/image-file").write_text(profile["image"])
|
||||
run(["rm", "-rf", "tmp/"])
|
||||
print("Running make defconfig")
|
||||
if run(["make", "defconfig"]).returncode:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From 1a11604d2efb7c6ff6ea7ccefdc60785e3611e97 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 15:59:30 +0800
|
||||
Subject: [PATCH] kernel: fix build br_netfilter fail
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/kernel/linux/modules/netfilter.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk
|
||||
index 1be05e182a..8ad91784f3 100644
|
||||
--- a/package/kernel/linux/modules/netfilter.mk
|
||||
+++ b/package/kernel/linux/modules/netfilter.mk
|
||||
@@ -859,7 +859,7 @@ define KernelPackage/br-netfilter
|
||||
TITLE:=Bridge netfilter support modules
|
||||
DEPENDS:=+kmod-ipt-core
|
||||
FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
|
||||
- KCONFIG:=CONFIG_BRIDGE_NETFILTER
|
||||
+ KCONFIG:=CONFIG_BRIDGE_NETFILTER=y
|
||||
AUTOLOAD:=$(call AutoProbe,br_netfilter)
|
||||
endef
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
From 21c7031fd0e7165ca1957b63fd828b886e35dd0d Mon Sep 17 00:00:00 2001
|
||||
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
|
||||
Date: Tue, 25 Jan 2022 12:13:35 +0800
|
||||
Subject: [PATCH] target: del bridge config
|
||||
|
||||
---
|
||||
target/linux/ipq807x/base-files/etc/board.d/02_network | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
index 42d33ad..6c240da 100755
|
||||
--- a/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
@@ -84,7 +84,7 @@ qcom_setup_macs()
|
||||
|
||||
board_config_update
|
||||
board=$(board_name)
|
||||
-ucidef_set_bridge_device bridge
|
||||
+#ucidef_set_bridge_device bridge
|
||||
qcom_setup_interfaces $board
|
||||
qcom_setup_macs $board
|
||||
board_config_flush
|
||||
--
|
||||
2.7.4
|
||||
|
||||
25
patches-wlan-ap/openwrt/0010-package-ppp-fix-ipv6.patch
Normal file
25
patches-wlan-ap/openwrt/0010-package-ppp-fix-ipv6.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From e3193bb2501f93a10926acec4630f587889a0f9a Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 16:02:58 +0800
|
||||
Subject: [PATCH] package/ppp: fix ipv6
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
package/network/services/ppp/files/ppp.sh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/package/network/services/ppp/files/ppp.sh b/package/network/services/ppp/files/ppp.sh
|
||||
index b553effd88..78a712b41a 100755
|
||||
--- a/package/network/services/ppp/files/ppp.sh
|
||||
+++ b/package/network/services/ppp/files/ppp.sh
|
||||
@@ -140,6 +140,7 @@ ppp_generic_setup() {
|
||||
${localip:+$localip:} \
|
||||
${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \
|
||||
${ipv6:++ipv6} \
|
||||
+ ${ipv6:-noipv6} \
|
||||
${autoipv6:+set AUTOIPV6=1} \
|
||||
${ip6table:+set IP6TABLE=$ip6table} \
|
||||
${peerdns:+set PEERDNS=$peerdns} \
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 433edf8526efc5a8072330d6a22d9289fc9f3931 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 16:04:04 +0800
|
||||
Subject: [PATCH] package/dnsmasq: remove limit hostname
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../dnsmasq/patches/300-remove-limit-hostname.patch | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
create mode 100644 package/network/services/dnsmasq/patches/300-remove-limit-hostname.patch
|
||||
|
||||
diff --git a/package/network/services/dnsmasq/patches/300-remove-limit-hostname.patch b/package/network/services/dnsmasq/patches/300-remove-limit-hostname.patch
|
||||
new file mode 100644
|
||||
index 0000000000..3e9d7c53ea
|
||||
--- /dev/null
|
||||
+++ b/package/network/services/dnsmasq/patches/300-remove-limit-hostname.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+Index: dnsmasq-2.85/src/rfc2131.c
|
||||
+===================================================================
|
||||
+--- dnsmasq-2.85.orig/src/rfc2131.c
|
||||
++++ dnsmasq-2.85/src/rfc2131.c
|
||||
+@@ -724,7 +724,7 @@ size_t dhcp_reply(struct dhcp_context *c
|
||||
+ borken_opt = 1;
|
||||
+ else
|
||||
+ daemon->dhcp_buff[len] = 0;
|
||||
+- if (legal_hostname(daemon->dhcp_buff))
|
||||
++ // if (legal_hostname(daemon->dhcp_buff))
|
||||
+ client_hostname = daemon->dhcp_buff;
|
||||
+ }
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 07ed17e88fec1b00fb05275a33ce44aa7d86cec3 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 16:05:34 +0800
|
||||
Subject: [PATCH] package/iwinfo: fix kmgmt names
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../utils/iwinfo/patches/0002-fix-kmgmt-names.patch | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
create mode 100644 package/network/utils/iwinfo/patches/0002-fix-kmgmt-names.patch
|
||||
|
||||
diff --git a/package/network/utils/iwinfo/patches/0002-fix-kmgmt-names.patch b/package/network/utils/iwinfo/patches/0002-fix-kmgmt-names.patch
|
||||
new file mode 100644
|
||||
index 0000000000..c8ef0c5a5d
|
||||
--- /dev/null
|
||||
+++ b/package/network/utils/iwinfo/patches/0002-fix-kmgmt-names.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+Index: libiwinfo-2021-06-09-c0414642/iwinfo_lib.c
|
||||
+===================================================================
|
||||
+--- libiwinfo-2021-06-09-c0414642.orig/iwinfo_lib.c
|
||||
++++ libiwinfo-2021-06-09-c0414642/iwinfo_lib.c
|
||||
+@@ -37,6 +37,8 @@ const char *IWINFO_KMGMT_NAMES[] = {
|
||||
+ "NONE",
|
||||
+ "802.1X",
|
||||
+ "PSK",
|
||||
++ "SAE",
|
||||
++ "OWE",
|
||||
+ };
|
||||
+
|
||||
+ const char *IWINFO_AUTH_NAMES[] = {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,110 @@
|
||||
From cdad5fbc028b1a2c9ad5477692c46418fe1d6da6 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 16:06:46 +0800
|
||||
Subject: [PATCH] opkg: use db and use standard output for conffile
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../system/opkg/patches/001-support-db.patch | 60 +++++++++++++++++++
|
||||
.../002-conffile-use-standard-output.patch | 22 +++++++
|
||||
2 files changed, 82 insertions(+)
|
||||
create mode 100644 package/system/opkg/patches/001-support-db.patch
|
||||
create mode 100644 package/system/opkg/patches/002-conffile-use-standard-output.patch
|
||||
|
||||
diff --git a/package/system/opkg/patches/001-support-db.patch b/package/system/opkg/patches/001-support-db.patch
|
||||
new file mode 100644
|
||||
index 0000000000..b37225f411
|
||||
--- /dev/null
|
||||
+++ b/package/system/opkg/patches/001-support-db.patch
|
||||
@@ -0,0 +1,60 @@
|
||||
+--- a/libopkg/opkg_cmd.c
|
||||
++++ b/libopkg/opkg_cmd.c
|
||||
+@@ -41,6 +41,29 @@
|
||||
+ #include "opkg_configure.h"
|
||||
+ #include "xsystem.h"
|
||||
+
|
||||
++int exec_command(const char *command)
|
||||
++{
|
||||
++ opkg_msg(NOTICE, "Updating database.\n");
|
||||
++ remove("/var/lock/opkg.lock");
|
||||
++
|
||||
++ FILE *fp;
|
||||
++
|
||||
++ fp = popen(command, "r");
|
||||
++ if (fp == NULL) {
|
||||
++ return -1;
|
||||
++ }
|
||||
++ pclose(fp);
|
||||
++
|
||||
++ fp = fopen("/var/lock/opkg.lock", "w+");
|
||||
++ if (fp != NULL) {
|
||||
++ fclose(fp);
|
||||
++ }
|
||||
++
|
||||
++ opkg_msg(NOTICE, "Database update completed.\n");
|
||||
++
|
||||
++ return 0;
|
||||
++}
|
||||
++
|
||||
+ static void print_pkg(pkg_t * pkg)
|
||||
+ {
|
||||
+ char *version = pkg_version_str_alloc(pkg);
|
||||
+@@ -200,7 +224,7 @@ static int opkg_update_cmd(int argc, cha
|
||||
+ rmdir(tmp);
|
||||
+ free(tmp);
|
||||
+ free(lists_dir);
|
||||
+-
|
||||
++ exec_command("update_plugins_db update");
|
||||
+ return failures;
|
||||
+ }
|
||||
+
|
||||
+@@ -486,7 +510,8 @@ static int opkg_install_cmd(int argc, ch
|
||||
+ err = -1;
|
||||
+
|
||||
+ write_status_files_if_changed();
|
||||
+-
|
||||
++ if (err == 0)
|
||||
++ exec_command("update_plugins_db install");
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
+@@ -914,6 +939,8 @@ static int opkg_remove_cmd(int argc, cha
|
||||
+ opkg_msg(NOTICE, "No packages removed.\n");
|
||||
+
|
||||
+ write_status_files_if_changed();
|
||||
++ if (err == 0)
|
||||
++ exec_command("update_plugins_db remove");
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
diff --git a/package/system/opkg/patches/002-conffile-use-standard-output.patch b/package/system/opkg/patches/002-conffile-use-standard-output.patch
|
||||
new file mode 100644
|
||||
index 0000000000..f587af4965
|
||||
--- /dev/null
|
||||
+++ b/package/system/opkg/patches/002-conffile-use-standard-output.patch
|
||||
@@ -0,0 +1,22 @@
|
||||
+--- a/libopkg/opkg_install.c
|
||||
++++ b/libopkg/opkg_install.c
|
||||
+@@ -1151,7 +1151,7 @@ static int resolve_conffiles(pkg_t * pkg
|
||||
+ char *new_conffile;
|
||||
+ sprintf_alloc(&new_conffile, "%s-opkg",
|
||||
+ root_filename);
|
||||
+- opkg_msg(ERROR,
|
||||
++ opkg_msg(NOTICE,
|
||||
+ "Existing conffile %s "
|
||||
+ "is different from the conffile in the new package."
|
||||
+ " The new conffile will be placed at %s.\n",
|
||||
+--- a/opkg-2021-06-13-1bf042dd/libopkg/pkg.c
|
||||
++++ b/libopkg/pkg.c
|
||||
+@@ -1409,7 +1409,7 @@ int pkg_run_script(pkg_t * pkg, const ch
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+- sprintf_alloc(&cmd, "%s %s", path, args);
|
||||
++ sprintf_alloc(&cmd, "%s %s 2>&1", path, args);
|
||||
+ free(path);
|
||||
+ {
|
||||
+ const char *argv[] = { "/bin/sh", "-c", cmd, NULL };
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 7ec29795671f5629962106214e342fec4cb2ac5c Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 11 Jul 2022 17:00:52 +0800
|
||||
Subject: [PATCH] package/exfat: fix build fail
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../kernel/exfat/patches/001-fix-build-fail.patch | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
create mode 100644 package/kernel/exfat/patches/001-fix-build-fail.patch
|
||||
|
||||
diff --git a/package/kernel/exfat/patches/001-fix-build-fail.patch b/package/kernel/exfat/patches/001-fix-build-fail.patch
|
||||
new file mode 100644
|
||||
index 0000000000..9f72ff1bf0
|
||||
--- /dev/null
|
||||
+++ b/package/kernel/exfat/patches/001-fix-build-fail.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+Index: linux-exfat-oot-5.12.3/file.c
|
||||
+===================================================================
|
||||
+--- linux-exfat-oot-5.12.3.orig/file.c
|
||||
++++ linux-exfat-oot-5.12.3/file.c
|
||||
+@@ -243,7 +243,7 @@ void exfat_truncate(struct inode *inode,
|
||||
+ {
|
||||
+ struct super_block *sb = inode->i_sb;
|
||||
+ struct exfat_sb_info *sbi = EXFAT_SB(sb);
|
||||
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
|
||||
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+ unsigned int blocksize = i_blocksize(inode);
|
||||
+ #else
|
||||
+ unsigned int blocksize = 1 << inode->i_blkbits;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
From eae5b6ea255f5819e0423de012622b13ef2a1639 Mon Sep 17 00:00:00 2001
|
||||
From 00f5e19dc6cf4a1a05b6da5b13824ea74103ec3a Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Fri, 21 Jan 2022 18:14:44 +0800
|
||||
Subject: [PATCH 3/4] kernel: fix build fail for bridge
|
||||
Date: Mon, 11 Jul 2022 17:29:26 +0800
|
||||
Subject: [PATCH] kernel: fix dependency of kmod-nf-nat6
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
include/netfilter.mk | 1 +
|
||||
package/kernel/linux/modules/netfilter.mk | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
include/netfilter.mk | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/netfilter.mk b/include/netfilter.mk
|
||||
index cee40ee008..9a3cdbbba8 100644
|
||||
@ -21,19 +20,6 @@ index cee40ee008..9a3cdbbba8 100644
|
||||
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_MASQUERADE_IPV4, $(P_V4)nf_nat_masquerade_ipv4, lt 4.18),))
|
||||
|
||||
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_NAT, $(P_XT)xt_nat),))
|
||||
diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk
|
||||
index 1be05e182a..8ad91784f3 100644
|
||||
--- a/package/kernel/linux/modules/netfilter.mk
|
||||
+++ b/package/kernel/linux/modules/netfilter.mk
|
||||
@@ -859,7 +859,7 @@ define KernelPackage/br-netfilter
|
||||
TITLE:=Bridge netfilter support modules
|
||||
DEPENDS:=+kmod-ipt-core
|
||||
FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
|
||||
- KCONFIG:=CONFIG_BRIDGE_NETFILTER
|
||||
+ KCONFIG:=CONFIG_BRIDGE_NETFILTER=y
|
||||
AUTOLOAD:=$(call AutoProbe,br_netfilter)
|
||||
endef
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
From 16e53377e20c9d0c7110d872e7dd30c8b24854d9 Mon Sep 17 00:00:00 2001
|
||||
From: gl-luochongjun <luochongjun@gl-inet.com>
|
||||
Date: Mon, 14 Feb 2022 17:40:17 +0800
|
||||
Subject: [PATCH] fix bridge isolate
|
||||
|
||||
---
|
||||
.../files/etc/uci-defaults/14_fix_bridge_isolate | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
create mode 100644 package/base-files/files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
|
||||
diff --git a/package/base-files/files/etc/uci-defaults/14_fix_bridge_isolate b/package/base-files/files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
new file mode 100644
|
||||
index 0000000000..46c8e678a0
|
||||
--- /dev/null
|
||||
+++ b/package/base-files/files/etc/uci-defaults/14_fix_bridge_isolate
|
||||
@@ -0,0 +1,14 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+. /lib/functions.sh
|
||||
+board=$(board_name)
|
||||
+
|
||||
+case "$board" in
|
||||
+ glinet,axt1800|\
|
||||
+ glinet,ax1800)
|
||||
+ uci set network.@device[0].multicast_to_unicast='0'
|
||||
+ uci commit network
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
From 8d82d53bcb6621fa2a42d25a018d573ca5ff5311 Mon Sep 17 00:00:00 2001
|
||||
From 98d63f7d8526ea4d1e5249a49c46d0e759037e65 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 24 Jan 2022 10:23:47 +0800
|
||||
Date: Mon, 11 Jul 2022 17:49:15 +0800
|
||||
Subject: [PATCH] kmod-mmc: fix ko path
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
@ -9,10 +9,10 @@ Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
|
||||
index 784adcb744..bfcf0014f7 100644
|
||||
index 8e3642ab9a..c297a1d004 100644
|
||||
--- a/package/kernel/linux/modules/other.mk
|
||||
+++ b/package/kernel/linux/modules/other.mk
|
||||
@@ -381,7 +381,7 @@ define KernelPackage/mmc
|
||||
@@ -380,7 +380,7 @@ define KernelPackage/mmc
|
||||
CONFIG_SDIO_UART=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
|
||||
@ -1,50 +0,0 @@
|
||||
From 6bc083e643a37ef114d4cdb75555a32d5275ec56 Mon Sep 17 00:00:00 2001
|
||||
From: "GL.iNet-Hongjian.Zhang" <hongjian.zhang@gl-inet.com>
|
||||
Date: Tue, 31 May 2022 09:44:38 +0800
|
||||
Subject: [PATCH] fix: usb net ipheth
|
||||
|
||||
---
|
||||
.../790-usb-net-ipheth-hotplug.patch | 31 +++++++++++++++++++
|
||||
1 file changed, 31 insertions(+)
|
||||
create mode 100644 target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
|
||||
diff --git a/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch b/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
new file mode 100644
|
||||
index 0000000000..0187546f45
|
||||
--- /dev/null
|
||||
+++ b/target/linux/generic/backport-5.4/790-usb-net-ipheth-hotplug.patch
|
||||
@@ -0,0 +1,31 @@
|
||||
+Index: b/drivers/net/usb/ipheth.c
|
||||
+===================================================================
|
||||
+--- a/drivers/net/usb/ipheth.c 2021-08-18 14:57:05.000000000 +0800
|
||||
++++ b/drivers/net/usb/ipheth.c 2022-05-30 19:32:40.843791147 +0800
|
||||
+@@ -52,6 +52,7 @@
|
||||
+ #include <linux/ethtool.h>
|
||||
+ #include <linux/usb.h>
|
||||
+ #include <linux/workqueue.h>
|
||||
++#include <linux/proc_fs.h>
|
||||
+
|
||||
+ #define USB_VENDOR_APPLE 0x05ac
|
||||
+
|
||||
+@@ -504,6 +505,10 @@ static int ipheth_probe(struct usb_inter
|
||||
+ netif_carrier_off(netdev);
|
||||
+ netif_tx_stop_all_queues(netdev);
|
||||
+ dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
|
||||
++ static const struct file_operations proc_fops = {
|
||||
++ .owner = THIS_MODULE,
|
||||
++ };
|
||||
++ proc_create("iphoneconn",0644,NULL,&proc_fops);
|
||||
+ return 0;
|
||||
+
|
||||
+ err_register_netdev:
|
||||
+@@ -531,6 +536,7 @@ static void ipheth_disconnect(struct usb
|
||||
+ }
|
||||
+ usb_set_intfdata(intf, NULL);
|
||||
+ dev_info(&intf->dev, "Apple iPhone USB Ethernet now disconnected\n");
|
||||
++ remove_proc_entry("iphoneconn",NULL);
|
||||
+ }
|
||||
+
|
||||
+ static struct usb_driver ipheth_driver = {
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@ -1,110 +0,0 @@
|
||||
From f05fbc295d299e2e32cb568f55438b7d92c0dcf5 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Thu, 20 Jan 2022 17:53:37 +0800
|
||||
Subject: [PATCH] target: support gl-axt1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
.../ipq807x/base-files/etc/board.d/02_network | 3 ++-
|
||||
.../etc/hotplug.d/firmware/10-ath11k-caldata | 17 ++++++++++++++++-
|
||||
.../ipq807x/base-files/lib/upgrade/platform.sh | 2 ++
|
||||
target/linux/ipq807x/image/ipq60xx.mk | 10 ++++++++++
|
||||
4 files changed, 30 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
index 7afc7de2e9..5ef107a2cb 100755
|
||||
--- a/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
@@ -36,7 +36,8 @@ qcom_setup_interfaces()
|
||||
ucidef_set_interface_lan "eth0"
|
||||
ucidef_set_interface_wan "eth1"
|
||||
;;
|
||||
- edgecore,eap101)
|
||||
+ edgecore,eap101|\
|
||||
+ glinet,axt1800)
|
||||
ucidef_set_interface_lan "eth1 eth2"
|
||||
ucidef_set_interface_wan "eth0"
|
||||
;;
|
||||
diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
index c8b4341aa1..7c1b216291 100755
|
||||
--- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
@@ -28,6 +28,17 @@ ath11k_generate_macs_wf194() {
|
||||
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
|
||||
}
|
||||
|
||||
+ath11k_generate_macs_gl_axt1800() {
|
||||
+ mac=$(cat /proc/gl-hw-info/device_mac)
|
||||
+ [ -z "$mac" ] && ath11k_generate_macs || {
|
||||
+ touch /lib/firmware/ath11k-macs
|
||||
+ mac1=$(macaddr_add $mac 2)
|
||||
+ mac2=$(macaddr_add $mac 3)
|
||||
+ echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
|
||||
+ echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
caldata_die() {
|
||||
echo "caldata: " "$*"
|
||||
exit 1
|
||||
@@ -74,7 +85,8 @@ case "$FIRMWARE" in
|
||||
wallys,dr6018|\
|
||||
wallys,dr6018-v4|\
|
||||
qcom,ipq6018-cp01|\
|
||||
- xiaomi,ax1800)
|
||||
+ xiaomi,ax1800|\
|
||||
+ glinet,axt1800)
|
||||
caldata_extract "0:ART" 0x1000 0x20000
|
||||
;;
|
||||
esac
|
||||
@@ -106,6 +118,9 @@ ath11k-macs)
|
||||
cig,wf194c)
|
||||
ath11k_generate_macs_wf194
|
||||
;;
|
||||
+ glinet,axt1800)
|
||||
+ ath11k_generate_macs_gl_axt1800
|
||||
+ ;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
index 1cd40b29f5..b0191a6bfe 100755
|
||||
--- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
@@ -24,6 +24,7 @@ platform_check_image() {
|
||||
cig,wf188n|\
|
||||
cig,wf194c|\
|
||||
cig,wf194c4|\
|
||||
+ glinet,axt1800|\
|
||||
wallys,dr6018|\
|
||||
wallys,dr6018-v4|\
|
||||
edgecore,eap101|\
|
||||
@@ -56,6 +57,7 @@ platform_do_upgrade() {
|
||||
cig,wf188n|\
|
||||
cig,wf194c|\
|
||||
cig,wf194c4|\
|
||||
+ glinet,axt1800|\
|
||||
hfcl,ion4xi|\
|
||||
hfcl,ion4xe|\
|
||||
qcom,ipq6018-cp01|\
|
||||
diff --git a/target/linux/ipq807x/image/ipq60xx.mk b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
index ed13cf02f0..96bc5f5ec1 100644
|
||||
--- a/target/linux/ipq807x/image/ipq60xx.mk
|
||||
+++ b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
@@ -81,3 +81,13 @@ define Device/xiaomi_ax1800
|
||||
DEVICE_PACKAGES := ath11k-wifi-xiaomi-ax1800
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_ax1800
|
||||
+
|
||||
+define Device/glinet_axt1800
|
||||
+ DEVICE_TITLE := GL-iNet AXT1800
|
||||
+ DEVICE_DTS := qcom-ipq6018-gl-axt1800
|
||||
+ SUPPORTED_DEVICES := glinet,axt1800
|
||||
+ DEVICE_DTS_CONFIG := config@cp03-c1
|
||||
+ DEVICE_PACKAGES := ath11k-wifi-gl-axt1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3 kmod-qca-nss-drv-pppoe
|
||||
+endef
|
||||
+TARGET_DEVICES += glinet_axt1800
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -1,89 +0,0 @@
|
||||
From 160c8c1f0b919d0e2f82ed36f119d10744b6df19 Mon Sep 17 00:00:00 2001
|
||||
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
Date: Mon, 24 Jan 2022 15:58:37 +0800
|
||||
Subject: [PATCH] target: support gl-ax1800
|
||||
|
||||
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
|
||||
---
|
||||
target/linux/ipq807x/base-files/etc/board.d/02_network | 3 ++-
|
||||
.../base-files/etc/hotplug.d/firmware/10-ath11k-caldata | 4 +++-
|
||||
target/linux/ipq807x/base-files/lib/upgrade/platform.sh | 2 ++
|
||||
target/linux/ipq807x/image/ipq60xx.mk | 9 +++++++++
|
||||
4 files changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
index f23392f0ab..42d33ad9c9 100755
|
||||
--- a/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
|
||||
@@ -51,7 +51,8 @@ qcom_setup_interfaces()
|
||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3"
|
||||
ucidef_set_interface_wan "eth4"
|
||||
;;
|
||||
- wallys,dr6018-v4)
|
||||
+ wallys,dr6018-v4|\
|
||||
+ glinet,ax1800)
|
||||
ucidef_set_interface_lan "eth1 eth2 eth3 eth4"
|
||||
ucidef_set_interface_wan "eth0"
|
||||
;;
|
||||
diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
index e3633b2b58..077f9be7c2 100755
|
||||
--- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
|
||||
@@ -84,7 +84,8 @@ case "$FIRMWARE" in
|
||||
wallys,dr6018-v4|\
|
||||
qcom,ipq6018-cp01|\
|
||||
xiaomi,ax1800|\
|
||||
- glinet,axt1800)
|
||||
+ glinet,axt1800|\
|
||||
+ glinet,ax1800)
|
||||
caldata_extract "0:ART" 0x1000 0x20000
|
||||
;;
|
||||
esac
|
||||
@@ -116,6 +117,7 @@ ath11k-macs)
|
||||
cig,wf194c)
|
||||
ath11k_generate_macs_wf194
|
||||
;;
|
||||
+ glinet,ax1800|\
|
||||
glinet,axt1800)
|
||||
ath11k_generate_macs_gl_axt1800
|
||||
;;
|
||||
diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
index b0191a6bfe..a136630b05 100755
|
||||
--- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
|
||||
@@ -25,6 +25,7 @@ platform_check_image() {
|
||||
cig,wf194c|\
|
||||
cig,wf194c4|\
|
||||
glinet,axt1800|\
|
||||
+ glinet,ax1800|\
|
||||
wallys,dr6018|\
|
||||
wallys,dr6018-v4|\
|
||||
edgecore,eap101|\
|
||||
@@ -58,6 +59,7 @@ platform_do_upgrade() {
|
||||
cig,wf194c|\
|
||||
cig,wf194c4|\
|
||||
glinet,axt1800|\
|
||||
+ glinet,ax1800|\
|
||||
hfcl,ion4xi|\
|
||||
hfcl,ion4xe|\
|
||||
qcom,ipq6018-cp01|\
|
||||
diff --git a/target/linux/ipq807x/image/ipq60xx.mk b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
index 7f3ccf23d3..ec4f45623b 100644
|
||||
--- a/target/linux/ipq807x/image/ipq60xx.mk
|
||||
+++ b/target/linux/ipq807x/image/ipq60xx.mk
|
||||
@@ -91,3 +91,12 @@ define Device/glinet_axt1800
|
||||
endef
|
||||
TARGET_DEVICES += glinet_axt1800
|
||||
|
||||
+define Device/glinet_ax1800
|
||||
+ DEVICE_TITLE := GL-iNet AX1800
|
||||
+ DEVICE_DTS := qcom-ipq6018-gl-ax1800
|
||||
+ SUPPORTED_DEVICES := glinet,ax1800
|
||||
+ DEVICE_DTS_CONFIG := config@cp03-c1
|
||||
+ DEVICE_PACKAGES := ath11k-wifi-gl-ax1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3 kmod-qca-nss-drv-pppoe
|
||||
+endef
|
||||
+TARGET_DEVICES += glinet_ax1800
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -9,9 +9,6 @@ feeds:
|
||||
- name: gl_feeds_common
|
||||
uri: https://github.com/gl-inet/gl-feeds.git
|
||||
revision: f4362cf288d723bae1d854976ef940730dc74bdf
|
||||
- name: gl_feeds_wlan
|
||||
uri: https://github.com/gl-inet/gl-feeds.git
|
||||
revision: 4b1fdd875c5eb75b21508077909d5987440dddd1
|
||||
- name: luci
|
||||
uri: https://github.com/openwrt/luci.git
|
||||
revision: 1c3b32dc1bec15e3076a447762b1c4f94eb75fb7
|
||||
@ -19,3 +16,4 @@ feeds:
|
||||
packages:
|
||||
- wireless-regdb
|
||||
- wget-ssl
|
||||
- kmod-wireguard-backport
|
||||
|
||||
4
setup.py
4
setup.py
@ -70,11 +70,7 @@ def qsdk_reset_tree():
|
||||
def wlan_ap_reset_tree():
|
||||
os.chdir(git_clone_dir)
|
||||
run(["rm", "-rf", "openwrt"])
|
||||
run(["git", "checkout", config["branch"]], check=True)
|
||||
run(["git", "reset", "--hard", config.get("revision", config["branch"])], check=True)
|
||||
if not config.get("next"):
|
||||
run(["rm", "backports/0021-build-create-APK-files-parrallel-to-IPK.patch"], check=True)
|
||||
run(["rm", "backports/0025-apk-backport-package.patch"], check=True)
|
||||
run(["./setup.py", "--setup"])
|
||||
|
||||
def reset_tree():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user