Merge Official Source

This commit is contained in:
CN_SZTL 2019-12-15 10:55:57 +08:00
commit 0f39011c13
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
179 changed files with 1486 additions and 1264 deletions

View File

@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .205
LINUX_VERSION-4.14 = .156
LINUX_VERSION-4.19 = .86
LINUX_VERSION-4.9 = .206
LINUX_VERSION-4.14 = .158
LINUX_VERSION-4.19 = .88
LINUX_KERNEL_HASH-4.9.205 = 98b9e8644706acc0cf51022372bb263b59a1d2bbe3ccd7ce6bd9bc7378c78b05
LINUX_KERNEL_HASH-4.14.156 = f8889feb0cbd7df36ff35bd4c72c1e2010567621bfcb218fcfa501bc5c7787c0
LINUX_KERNEL_HASH-4.19.86 = bf2cbba319d43d1bd9e876ac0b55ab83118d1a1e61cce3c929d5371f7567bff6
LINUX_KERNEL_HASH-4.9.206 = 1df27899a9bc4dd874f3830ab9e7b638f0026dffd67a2e230444e5d2805ccad6
LINUX_KERNEL_HASH-4.14.158 = 0d49ec72e273f6fc7462ad56849b2285f13fd5f4185e8f932a0074fc2eca1bb3
LINUX_KERNEL_HASH-4.19.88 = c1923b6bd166e6dd07be860c15f59e8273aaa8692bc2a1fce1d31b826b9b3fbe
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -28,67 +28,67 @@ endef
define U-Boot/A10-OLinuXino-Lime
BUILD_SUBTARGET:=cortexa8
NAME:=A10 OLinuXino LIME
BUILD_DEVICES:=sun4i-a10-olinuxino-lime
BUILD_DEVICES:=olimex_a10-olinuxino-lime
endef
define U-Boot/A13-OLinuXino
BUILD_SUBTARGET:=cortexa8
NAME:=A13 OlinuXino
BUILD_DEVICES:=sun5i-a13-olinuxino
BUILD_DEVICES:=olimex_a13-olinuxino
endef
define U-Boot/A20-OLinuXino-Lime
BUILD_SUBTARGET:=cortexa7
NAME:=A20 OLinuXino LIME
BUILD_DEVICES:=sun7i-a20-olinuxino-lime
BUILD_DEVICES:=olimex_a20-olinuxino-lime
endef
define U-Boot/A20-OLinuXino-Lime2
BUILD_SUBTARGET:=cortexa7
NAME:=A20 OLinuXino LIME2
BUILD_DEVICES:=sun7i-a20-olinuxino-lime2
BUILD_DEVICES:=olimex_a20-olinuxino-lime2
endef
define U-Boot/A20-OLinuXino-Lime2-eMMC
BUILD_SUBTARGET:=cortexa7
NAME:=A20 OLinuXino LIME2 eMMC
BUILD_DEVICES:=sun7i-a20-olinuxino-lime2-emmc
BUILD_DEVICES:=olimex_a20-olinuxino-lime2-emmc
endef
define U-Boot/A20-OLinuXino_MICRO
BUILD_SUBTARGET:=cortexa7
NAME:=A20 OLinuXino MICRO
BUILD_DEVICES:=sun7i-a20-olinuxino-micro
BUILD_DEVICES:=olimex_a20-olinuxino-micro
endef
define U-Boot/Bananapi
BUILD_SUBTARGET:=cortexa7
NAME:=Bananapi
BUILD_DEVICES:=sun7i-a20-bananapi
BUILD_DEVICES:=lemaker_bananapi
endef
define U-Boot/Bananapro
BUILD_SUBTARGET:=cortexa7
NAME:=Bananapro
BUILD_DEVICES:=sun7i-a20-bananapro
BUILD_DEVICES:=lemaker_bananapro
endef
define U-Boot/Cubieboard
BUILD_SUBTARGET:=cortexa8
NAME:=Cubieboard
BUILD_DEVICES:=sun4i-a10-cubieboard
BUILD_DEVICES:=cubietech_a10-cubieboard
endef
define U-Boot/Cubieboard2
BUILD_SUBTARGET:=cortexa7
NAME:=Cubieboard2
BUILD_DEVICES:=sun7i-a20-cubieboard2
BUILD_DEVICES:=cubietech_cubieboard2
endef
define U-Boot/Cubietruck
BUILD_SUBTARGET:=cortexa7
NAME:=Cubietruck
BUILD_DEVICES:=sun7i-a20-cubietruck
BUILD_DEVICES:=cubietech_cubietruck
endef
define U-Boot/Hummingbird_A31
@ -99,91 +99,97 @@ endef
define U-Boot/Marsboard_A10
BUILD_SUBTARGET:=cortexa8
NAME:=Marsboard
BUILD_DEVICES:=sun4i-a10-marsboard
BUILD_DEVICES:=marsboard_a10-marsboard
endef
define U-Boot/Mele_M9
BUILD_SUBTARGET:=cortexa7
NAME:=Mele M9 (A31)
BUILD_DEVICES:=sun6i-a31-m9
BUILD_DEVICES:=mele_m9
endef
define U-Boot/OLIMEX_A13_SOM
BUILD_SUBTARGET:=cortexa8
NAME:=Olimex A13 SOM
BUILD_DEVICES:=sun5i-a13-olimex-som
BUILD_DEVICES:=olimex_a13-olimex-som
endef
define U-Boot/Linksprite_pcDuino
BUILD_SUBTARGET:=cortexa8
NAME:=Linksprite pcDuino
BUILD_DEVICES:=sun4i-a10-pcduino
BUILD_DEVICES:=linksprite_a10-pcduino
endef
define U-Boot/Linksprite_pcDuino3
BUILD_SUBTARGET:=cortexa7
NAME:=Linksprite pcDuino3
BUILD_DEVICES:=sun7i-a20-pcduino3
BUILD_DEVICES:=linksprite_pcduino3
endef
define U-Boot/Lamobo_R1
BUILD_SUBTARGET:=cortexa7
NAME:=Lamobo R1
BUILD_DEVICES:=sun7i-a20-lamobo-r1
BUILD_DEVICES:=lamobo_lamobo-r1
endef
define U-Boot/nanopi_m1_plus
BUILD_SUBTARGET:=cortexa7
NAME:=NanoPi M1 Plus (H3)
BUILD_DEVICES:=sun8i-h3-nanopi-m1-plus
BUILD_DEVICES:=friendlyarm_nanopi-m1-plus
endef
define U-Boot/nanopi_neo_air
BUILD_SUBTARGET:=cortexa7
NAME:=U-Boot for NanoPi NEO Air (H3)
BUILD_DEVICES:=friendlyarm_nanopi-neo-air
endef
define U-Boot/nanopi_neo
BUILD_SUBTARGET:=cortexa7
NAME:=U-Boot for NanoPi NEO (H3)
BUILD_DEVICES:=sun8i-h3-nanopi-neo
BUILD_DEVICES:=friendlyarm_nanopi-neo
endef
define U-Boot/orangepi_r1
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi R1 (H2+)
BUILD_DEVICES:=sun8i-h2-plus-orangepi-r1
BUILD_DEVICES:=xunlong_orangepi-r1
endef
define U-Boot/orangepi_zero
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi Zero (H2+)
BUILD_DEVICES:=sun8i-h2-plus-orangepi-zero
BUILD_DEVICES:=xunlong_orangepi-zero
endef
define U-Boot/orangepi_one
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi One (H3)
BUILD_DEVICES:=sun8i-h3-orangepi-one
BUILD_DEVICES:=xunlong_orangepi-one
endef
define U-Boot/orangepi_pc
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi PC (H3)
BUILD_DEVICES:=sun8i-h3-orangepi-pc
BUILD_DEVICES:=xunlong_orangepi-pc
endef
define U-Boot/orangepi_pc_plus
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi PC Plus (H3)
BUILD_DEVICES:=sun8i-h3-orangepi-pc-plus
BUILD_DEVICES:=xunlong_orangepi-pc-plus
endef
define U-Boot/orangepi_plus
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi Plus (H3)
BUILD_DEVICES:=sun8i-h3-orangepi-plus
BUILD_DEVICES:=xunlong_orangepi-plus
endef
define U-Boot/orangepi_2
BUILD_SUBTARGET:=cortexa7
NAME:=Orange Pi 2 (H3)
BUILD_DEVICES:=sun8i-h3-orangepi-2
BUILD_DEVICES:=xunlong_orangepi-2
endef
define U-Boot/pangolin
@ -195,7 +201,7 @@ endef
define U-Boot/nanopi_neo_plus2
BUILD_SUBTARGET:=cortexa53
NAME:=NanoPi NEO Plus2 (H5)
BUILD_DEVICES:=sun50i-h5-nanopi-neo-plus2
BUILD_DEVICES:=friendlyarm_nanopi-neo-plus2
DEPENDS:=+PACKAGE_u-boot-nanopi_neo_plus2:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -203,7 +209,7 @@ endef
define U-Boot/nanopi_neo2
BUILD_SUBTARGET:=cortexa53
NAME:=NanoPi NEO2 (H5)
BUILD_DEVICES:=sun50i-h5-nanopi-neo2
BUILD_DEVICES:=friendlyarm_nanopi-neo2
DEPENDS:=+PACKAGE_u-boot-nanopi_neo2:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -211,7 +217,7 @@ endef
define U-Boot/pine64_plus
BUILD_SUBTARGET:=cortexa53
NAME:=Pine64 Plus A64
BUILD_DEVICES:=sun50i-a64-pine64-plus
BUILD_DEVICES:=pine64_pine64-plus
DEPENDS:=+PACKAGE_u-boot-pine64_plus:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -219,13 +225,13 @@ endef
define U-Boot/Sinovoip_BPI_M2_Plus
BUILD_SUBTARGET:=cortexa7
NAME:=Bananapi M2 Plus
BUILD_DEVICES:=sun8i-h3-bananapi-m2-plus
BUILD_DEVICES:=sinovoip_bananapi-m2-plus
endef
define U-Boot/sopine_baseboard
BUILD_SUBTARGET:=cortexa53
NAME:=Sopine Baseboard
BUILD_DEVICES:=sun50i-a64-sopine-baseboard
BUILD_DEVICES:=pine64_sopine-baseboard
DEPENDS:=+PACKAGE_u-boot-sopine_baseboard:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -234,7 +240,7 @@ endef
define U-Boot/orangepi_zero_plus
BUILD_SUBTARGET:=cortexa53
NAME:=Xunlong Orange Pi Zero Plus
BUILD_DEVICES:=sun50i-h5-orangepi-zero-plus
BUILD_DEVICES:=xunlong_orangepi-zero-plus
DEPENDS:=+PACKAGE_u-boot-orangepi_zero_plus:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -242,7 +248,7 @@ endef
define U-Boot/orangepi_pc2
BUILD_SUBTARGET:=cortexa53
NAME:=Xunlong Orange Pi PC2
BUILD_DEVICES:=sun50i-h5-orangepi-pc2
BUILD_DEVICES:=xunlong_orangepi-pc2
DEPENDS:=+PACKAGE_u-boot-orangepi_pc2:arm-trusted-firmware-sunxi
UENV:=a64
endef
@ -250,7 +256,7 @@ endef
define U-Boot/Sinovoip_BPI_M2_Ultra
BUILD_SUBTARGET:=cortexa7
NAME:=Bananapi M2 Ultra
BUILD_DEVICES:=sun8i-r40-bananapi-m2-ultra
BUILD_DEVICES:=lemaker_bananapi-m2-ultra
endef
UBOOT_TARGETS := \
@ -274,6 +280,7 @@ UBOOT_TARGETS := \
Lamobo_R1 \
nanopi_m1_plus \
nanopi_neo \
nanopi_neo_air \
nanopi_neo_plus2 \
nanopi_neo2 \
orangepi_zero \

View File

@ -64,92 +64,92 @@ define Download/ct-firmware-htt
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
endef
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.012
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.013
define Download/ath10k-firmware-qca988x-ct
$(call Download/ct-firmware,QCA988X,)
HASH:=3b2c584f7070c3e286ce27a370cc181d70b45f9cdaa462fb4f44c6c20d2ee8c1
HASH:=19db86003509dedb8ace339c183813ca637d65af24d00666411d1590efe33e13
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct))
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.012
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.013
define Download/ath10k-firmware-qca988x-ct-htt
$(call Download/ct-firmware-htt,QCA988X,)
HASH:=a7042b2c90de82b21e87f243411b6fb12142bb4fb28266ea92cdf3101557b6de
HASH:=454e67dab545e720369a07be2fee16de008c76db4ab3119e7760bf9f7504c066
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.012
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.013
define Download/ath10k-firmware-qca9887-ct
$(call Download/ct-firmware,QCA9887,ath10k-9887)
HASH:=c3f891b2cd4e225e1c635a328af3dce94481b096432020e445f71144dda749d5
HASH:=b3c738328427e124701a5735d65cde0f60e4172ae5bc23b00e5b16df7995dbd4
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct))
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.012
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.013
define Download/ath10k-firmware-qca9887-ct-htt
$(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
HASH:=f5e9825279d590a2362f44aef4ced345376cccd65d9b826c131d4dbcef4e689c
HASH:=4432ccee23133bbaa4a5552e50a1e7e889b257362603e05530e751b67c29b7b5
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.012
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.013
define Download/ath10k-firmware-qca99x0-ct
$(call Download/ct-firmware,QCA99X0,ath10k-10-4b)
HASH:=4b90fa91dcab68350fe695b3c918cb9a4fb09c2b419519b8b84b71da4cfde5e8
HASH:=6fa74a3fc87cba97dbc4a7213b760f8d997cd9c5f11900d47d387b23764cf20a
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.012
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.013
define Download/ath10k-firmware-qca99x0-ct-htt
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
HASH:=6dd40233fe99d99c69781d6514cf9ba7862b3f66c647f7921ca8be6100799986
HASH:=68e92820c51270eba4f68b24654c4a9408902b2600762b70204f4cb5419bb714
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.012
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.013
define Download/ath10k-firmware-qca9984-ct
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b)
HASH:=2551f5c0bfa6c1b1222bd9452e14f60b8e29c8c0fe85de8af95393f31d544ea3
HASH:=08aeb883bd2d9258e8f1907cca8a0d2eda1c559a66e228dadffd6798f6877c7d
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct))
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.012
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.013
define Download/ath10k-firmware-qca9984-ct-htt
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
HASH:=90f947257e1f42496b22cbdd29be99fbc8ea8700045b4ed2380acc980b4c247b
HASH:=38ed59a2b3c66c10926706a21ae2d3aeaf83e589f19345a8f48d6520522e4fde
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.012
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.013
define Download/ath10k-firmware-qca4019-ct
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b)
HASH:=cd85fc9df8b3652f7b12c2ab745b2a9691dca5ca38f8d65a02003e938ad8b570
HASH:=feca75fe89af9a3e998047f85ff3428676f4d574b770d51773bb419d0dd98e5a
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct))
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.012
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.013
define Download/ath10k-firmware-qca4019-ct-htt
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
HASH:=67a923cda6ec3936ef23ec6c30c80dfc9bfd2cee73a142d2e308e8f035b8ed3a
HASH:=6a4977689343f43edd934823512f031fd1a026e872004343b9952077f9607cb0
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.012
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.013
define Download/ath10k-firmware-qca9888-ct
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b)
HASH:=4bdb71b50c68f1a07c88d21f84a6c054fe1b8cb5bacd089a6b9f0a56448535d3
HASH:=d6a59c17bfbec1abc8498762d9f00b2449cab352feb8bef8b621771168376dbf
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct))
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.012
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.013
define Download/ath10k-firmware-qca9888-ct-htt
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
HASH:=e1f0242a91af58ec5628bb4f7c015f6c8dba55f92e2813f8f0b97c86ec496d2d
HASH:=fe242c0d56494975d7a1aeb6969d90cc21cb133fba99040d4da7a25fdb90d92c
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))

View File

@ -19,6 +19,8 @@ NEWAPLIST=
OLDAPLIST=
NEWSPLIST=
OLDSPLIST=
NEWUMLIST=
OLDUMLIST=
drv_mac80211_init_device_config() {
hostapd_common_add_device_config
@ -666,6 +668,8 @@ mac80211_setup_adhoc() {
local enable=$1
json_get_vars bssid ssid key mcast_rate
NEWUMLIST="${NEWUMLIST}$ifname "
[ "$enable" = 0 ] && {
ip link set dev "$ifname" down
return 0
@ -712,6 +716,8 @@ mac80211_setup_mesh() {
local enable=$1
json_get_vars ssid mesh_id mcast_rate
NEWUMLIST="${NEWUMLIST}$ifname "
[ "$enable" = 0 ] && {
ip link set dev "$ifname" down
return 0
@ -800,7 +806,7 @@ mac80211_vap_cleanup() {
local vaps="$2"
for wdev in $vaps; do
ubus call ${service}.${phy} config_remove "{\"iface\":\"$wdev\"}"
[ "$service" != "none" ] && ubus call ${service}.${phy} config_remove "{\"iface\":\"$wdev\"}"
ip link set dev "$wdev" down 2>/dev/null
iw dev "$wdev" del
done
@ -813,6 +819,7 @@ mac80211_interface_cleanup() {
mac80211_vap_cleanup hostapd "${primary_ap}"
mac80211_vap_cleanup wpa_supplicant "$(uci -q -P /var/state get wireless._${phy}.splist)"
mac80211_vap_cleanup none "$(uci -q -P /var/state get wireless._${phy}.umlist)"
}
mac80211_set_noscan() {
@ -845,6 +852,28 @@ drv_mac80211_setup() {
wireless_set_data phy="$phy"
}
OLDAPLIST=$(uci -q -P /var/state get wireless._${phy}.aplist)
OLDSPLIST=$(uci -q -P /var/state get wireless._${phy}.splist)
OLDUMLIST=$(uci -q -P /var/state get wireless._${phy}.umlist)
local wdev
local cwdev
local found
for wdev in $(list_phy_interfaces "$phy"); do
found=0
for cwdev in $OLDAPLIST $OLDSPLIST $OLDUMLIST; do
if [ "$wdev" = "$cwdev" ]; then
found=1
break
fi
done
if [ "$found" = "0" ]; then
ip link set dev "$wdev" down
iw dev "$wdev" del
fi
done
# convert channel to frequency
[ "$auto_channel" -gt 0 ] || freq="$(get_freq "$phy" "$channel")"
@ -896,8 +925,7 @@ drv_mac80211_setup() {
for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif
NEWAPLIST=
for_each_interface "ap" mac80211_prepare_vif
OLDAPLIST=$(uci -q -P /var/state get wireless._${phy}.aplist)
NEW_MD5=$(md5sum ${hostapd_conf_file})
NEW_MD5=$(test -e "${hostapd_conf_file}" && md5sum ${hostapd_conf_file})
OLD_MD5=$(uci -q -P /var/state get wireless._${phy}.md5)
if [ "${NEWAPLIST}" != "${OLDAPLIST}" ]; then
mac80211_vap_cleanup hostapd "${OLDAPLIST}"
@ -912,7 +940,10 @@ drv_mac80211_setup() {
}
else
add_ap=1
ubus wait_for hostapd.$phy
ubus call hostapd.${phy} config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}"
local hostapd_pid=$(ubus call service list '{"name": "hostapd"}' | jsonfilter -l 1 -e "@['hostapd'].instances['hostapd-${phy}'].pid")
wireless_add_process "$hostapd_pid" "/usr/sbin/hostapd" 1
fi
ret="$?"
[ "$ret" != 0 ] && {
@ -927,10 +958,12 @@ drv_mac80211_setup() {
for_each_interface "ap" mac80211_setup_vif
NEWSPLIST=
OLDSPLIST=$(uci -q -P /var/state get wireless._${phy}.splist)
NEWUMLIST=
for_each_interface "sta adhoc mesh monitor" mac80211_setup_vif
uci -q -P /var/state set wireless._${phy}.splist="${NEWSPLIST}"
uci -q -P /var/state set wireless._${phy}.umlist="${NEWUMLIST}"
local foundvap
local dropvap=""
@ -945,6 +978,15 @@ drv_mac80211_setup() {
wireless_set_up
}
list_phy_interfaces() {
local phy="$1"
if [ -d "/sys/class/ieee80211/${phy}/device/net" ]; then
ls "/sys/class/ieee80211/${phy}/device/net" 2>/dev/null;
else
ls "/sys/class/ieee80211/${phy}/device" 2>/dev/null | grep net: | sed -e 's,net:,,g'
fi
}
drv_mac80211_teardown() {
wireless_process_kill_all

View File

@ -394,3 +394,8 @@ CONFIG_TLS=internal
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
#CONFIG_CTRL_IFACE_MIB=y

View File

@ -394,3 +394,8 @@ CONFIG_TAXONOMY=y
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
CONFIG_CTRL_IFACE_MIB=y

View File

@ -394,3 +394,8 @@ CONFIG_TLS=internal
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
#CONFIG_CTRL_IFACE_MIB=y

View File

@ -1,14 +1,46 @@
#!/bin/sh
[ ${ACTION} = "remove" -a -n "${DEVICENAME}" ] && {
kill $(cat /var/run/hostapd-${DEVICENAME}.pid)
rm -rf /var/run/hostapd-${DEVICENAME}.pid /var/run/hostapd-${DEVICENAME}/
kill $(cat /var/run/wpa_supplicant-${DEVICENAME}.pid)
rm -rf /var/run/wpa_supplicant-${DEVICENAME}.pid /var/run/wpa_supplicant-${DEVICENAME}/
initscript="$0"
. /lib/functions.sh
. /lib/functions/procd.sh
cd /sys/class/ieee80211
procd_lock() {
return 0
}
[ ${ACTION} = "add" -a -n "${DEVICENAME}" ] && {
/usr/sbin/hostapd -s -n ${DEVICENAME} -P /var/run/hostapd-${DEVICENAME}.pid -g /var/run/hostapd-${DEVICENAME}/global -B &
mkdir -p /var/run/wpa_supplicant-${DEVICENAME}
/usr/sbin/wpa_supplicant -s -n ${DEVICENAME} -P /var/run/wpa_supplicant-${DEVICENAME}.pid -g /var/run/wpa_supplicant-${DEVICENAME}/global -B &
service_triggers() {
return 0
}
service_data() {
return 0
}
procd_open_service hostapd
for phy in phy*; do
[ -d "$phy" ] || continue
mkdir -p /var/run/wpa_supplicant-$phy /var/run/hostapd-$phy
if [ -x "/usr/sbin/hostapd" ]; then
procd_open_instance hostapd-$phy
procd_set_param command /usr/sbin/hostapd -s -n $phy -g /var/run/hostapd-${phy}/global
procd_set_param CREATE_TIME="$(date -r $phy)" # force restart on recreated phy
procd_set_param respawn
procd_close_instance
fi
if [ -x "/usr/sbin/wpa_supplicant" ]; then
procd_open_instance supplicant-$phy
procd_set_param command /usr/sbin/wpa_supplicant -s -n $phy -g /var/run/wpa_supplicant-${phy}/global
procd_set_param CREATE_TIME="$(date -r $phy)" # force restart on recreated phy
procd_set_param respawn
procd_close_instance
fi
done
procd_close_service set

View File

@ -958,6 +958,7 @@ wpa_supplicant_run() {
_wpa_supplicant_common "$ifname"
ubus wait_for wpa_supplicant.$phy
ubus call wpa_supplicant.$phy config_add "{ \
\"driver\": \"${_w_driver:-wext}\", \"ctrl\": \"$_rpath\", \
\"iface\": \"$ifname\", \"config\": \"$_config\" \
@ -969,6 +970,9 @@ wpa_supplicant_run() {
[ "$ret" != 0 ] && wireless_setup_vif_failed WPA_SUPPLICANT_FAILED
local supplicant_pid=$(ubus call service list '{"name": "hostapd"}' | jsonfilter -l 1 -e "@['hostapd'].instances['supplicant-${phy}'].pid")
wireless_add_process "$supplicant_pid" "/usr/sbin/wpa_supplicant" 1
return $ret
}

View File

@ -618,3 +618,8 @@ CONFIG_GETRANDOM=y
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
#CONFIG_CTRL_IFACE_MIB=y

View File

@ -618,3 +618,8 @@ CONFIG_IBSS_RSN=y
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
CONFIG_CTRL_IFACE_MIB=y

View File

@ -618,3 +618,8 @@ CONFIG_GETRANDOM=y
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
#CONFIG_CTRL_IFACE_MIB=y

View File

@ -618,3 +618,8 @@ CONFIG_IBSS_RSN=y
# Services can connect to the bus and provide methods
# that can be called by other services or clients.
CONFIG_UBUS=y
# OpenWrt patch 380-disable-ctrl-iface-mib.patch
# leads to the MIB only being compiled in if
# CONFIG_CTRL_IFACE_MIB is enabled.
#CONFIG_CTRL_IFACE_MIB=y

View File

@ -87,7 +87,7 @@
hapd->iconf = conf;
hapd->conf = bss;
hapd->iface = hapd_iface;
+ if (bss->config_id)
+ if (bss && bss->config_id)
+ hapd->config_id = strdup(bss->config_id);
+ else
+ hapd->config_id = NULL;

View File

@ -223,7 +223,7 @@
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
@@ -820,10 +821,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {

View File

@ -315,8 +315,6 @@ CONFIG_LEDS_TRIGGER_CPU=y
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=4
CONFIG_LIBFDT=y
CONFIG_LOCALVERSION_AUTO=y
CONFIG_LOG_BUF_SHIFT=16
@ -556,10 +554,6 @@ CONFIG_VIDEOMODE_HELPERS=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_WATCHDOG_CORE=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ZBOOT_ROM_BSS=0x0

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -47,7 +47,7 @@
usb {
label = "buffalo:green:usb";
gpios = <&ath9k0 3 GPIO_ACTIVE_LOW>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>;
linux,default-trigger = "usbport";
};
@ -180,7 +180,7 @@
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
usb_ohci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
@ -191,7 +191,7 @@
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
usb_ehci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};

View File

@ -34,7 +34,7 @@
usb {
label = "d-link:blue:usb";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>;
linux,default-trigger = "usbport";
};
@ -123,7 +123,7 @@
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
usb_ohci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
@ -134,7 +134,7 @@
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
usb_ehci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -32,7 +31,7 @@
usb_led {
label = "netgear:green:usb";
resets = <&rst 12>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>;
linux,default-trigger = "usbport";
};
};
@ -134,7 +133,7 @@
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
usb_ohci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
@ -145,7 +144,7 @@
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
usb_ehci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -86,7 +85,7 @@
#address-cells = <1>;
#size-cells = <0>;
usb_ochi_port: port@1 {
usb_ohci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
@ -97,7 +96,7 @@
#address-cells = <1>;
#size-cells = <0>;
usb_echi_port: port@1 {
usb_ehci_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9344_tplink_cpe.dtsi"

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9344_tplink_cpe.dtsi"

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9344_tplink_tl-wdr4300.dtsi"
/ {
model = "TP-Link TL-WDR4300 v1 (IL)";
compatible = "tplink,tl-wdr4300-v1-il", "qca,ar9344";
};

View File

@ -1,4 +1,3 @@
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "qca9533_tplink_cpexxx.dtsi"

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "qca9533_tplink_tl-wr841.dtsi"

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -10,8 +10,6 @@
* antennas and number of spatial streams.
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,7 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "tp9343_tplink_tl-wr94x.dtsi"

View File

@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

View File

@ -212,7 +212,8 @@ ath79_setup_interfaces()
tplink,archer-c7-v4|\
tplink,archer-c7-v5|\
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1)
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
;;

View File

@ -72,6 +72,7 @@ case "$FIRMWARE" in
tplink,tl-wdr3500-v1|\
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il|\
tplink,tl-wdr4900-v2|\
winchannel,wb2000)
caldata_extract "art" 0x5000 0x440

View File

@ -399,6 +399,17 @@ define Device/tplink_tl-wdr4300-v1
endef
TARGET_DEVICES += tplink_tl-wdr4300-v1
define Device/tplink_tl-wdr4300-v1-il
$(Device/tplink-8mlzma)
ATH_SOC := ar9344
DEVICE_MODEL := TL-WDR4300
DEVICE_VARIANT := v1 (IL)
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x43008001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr4300-v1-il
define Device/tplink_tl-wdr4900-v2
$(Device/tplink-8mlzma)
ATH_SOC := qca9558

View File

@ -36,8 +36,6 @@ endef
define Device/ubnt
DEVICE_VENDOR := Ubiquiti
DEVICE_PACKAGES := kmod-usb2
UBNT_BOARD := XM
UBNT_VERSION := 6.0.0
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | mkubntimage-split
@ -45,53 +43,58 @@ endef
define Device/ubnt-bz
$(Device/ubnt)
IMAGE_SIZE := 7448k
UBNT_TYPE := BZ
UBNT_CHIP := ar7240
ATH_SOC := ar7241
IMAGE_SIZE := 7448k
UBNT_BOARD := XM
UBNT_CHIP := ar7240
UBNT_TYPE := BZ
UBNT_VERSION := 6.0.0
endef
define Device/ubnt-wa
$(Device/ubnt)
IMAGE_SIZE := 15744k
UBNT_TYPE := WA
UBNT_CHIP := ar934x
UBNT_BOARD := WA
UBNT_VERSION := 8.5.0
ATH_SOC := ar9342
IMAGE_SIZE := 15744k
UBNT_BOARD := WA
UBNT_CHIP := ar934x
UBNT_TYPE := WA
UBNT_VERSION := 8.5.0
endef
define Device/ubnt-xm
$(Device/ubnt)
ATH_SOC := ar7241
DEVICE_VARIANT := XM
DEVICE_PACKAGES += kmod-usb-ohci
IMAGE_SIZE := 7448k
UBNT_TYPE := XM
UBNT_BOARD := XM
UBNT_CHIP := ar7240
ATH_SOC := ar7241
UBNT_TYPE := XM
UBNT_VERSION := 6.0.0
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma
endef
define Device/ubnt-xw
$(Device/ubnt)
ATH_SOC := ar9342
DEVICE_VARIANT := XW
IMAGE_SIZE := 7552k
UBNT_TYPE := XW
UBNT_CHIP := ar934x
UBNT_BOARD := XM
UBNT_VERSION := 6.0.4
UBNT_CHIP := ar934x
UBNT_REVISION := 42.$(UBNT_REVISION)
ATH_SOC := ar9342
UBNT_TYPE := XW
UBNT_VERSION := 6.0.4
endef
define Device/ubnt_acb-isp
$(Device/ubnt)
ATH_SOC := qca9533
IMAGE_SIZE := 15744k
DEVICE_MODEL := airCube ISP
IMAGE_SIZE := 15744k
UBNT_BOARD := ACB-ISP
UBNT_TYPE := ACB
UBNT_CHIP := qca9533
UBNT_TYPE := ACB
UBNT_VERSION := 6.0.0
IMAGES := sysupgrade.bin
endef
TARGET_DEVICES += ubnt_acb-isp

View File

@ -214,7 +214,7 @@
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
@@ -820,10 +821,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {

View File

@ -214,7 +214,7 @@
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
@@ -836,10 +837,10 @@ static void tcp_v6_send_response(const s
@@ -837,10 +838,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {

View File

@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7980,8 +7980,6 @@ int alloc_contig_range(unsigned long sta
@@ -7977,8 +7977,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {

View File

@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes <notro@tronnes.org>
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -352,7 +352,7 @@ static const struct gpio_chip bcm2835_gp
@@ -350,7 +350,7 @@ static const struct gpio_chip bcm2835_gp
.get_direction = bcm2835_gpio_get_direction,
.get = bcm2835_gpio_get,
.set = bcm2835_gpio_set,

View File

@ -125,7 +125,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
@@ -2919,6 +2926,7 @@ static int mmc_blk_probe(struct mmc_card
@@ -2913,6 +2920,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
@ -133,7 +133,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/*
* Check that the card supports the command class(es) we need.
@@ -2926,7 +2934,16 @@ static int mmc_blk_probe(struct mmc_card
@@ -2920,7 +2928,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
@ -151,7 +151,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
@@ -2941,9 +2958,14 @@ static int mmc_blk_probe(struct mmc_card
@@ -2935,9 +2952,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));

View File

@ -57,7 +57,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
cfg->pwr_save = enabled;
if (!check_vif_up(ifp->vif)) {
@@ -6776,12 +6778,18 @@ static s32 brcmf_translate_country_code(
@@ -6786,12 +6788,18 @@ static s32 brcmf_translate_country_code(
struct brcmfmac_pd_cc *country_codes;
struct brcmfmac_pd_cc_entry *cc;
s32 found_index;
@ -78,7 +78,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
}
if ((alpha2[0] == ccreq->country_abbrev[0]) &&
@@ -6805,10 +6813,14 @@ static s32 brcmf_translate_country_code(
@@ -6815,10 +6823,14 @@ static s32 brcmf_translate_country_code(
brcmf_dbg(TRACE, "No country code match found\n");
return -EINVAL;
}
@ -109,7 +109,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -608,6 +608,7 @@ BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
@@ -614,6 +614,7 @@ BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
BRCMF_FW_DEF(4330, "brcmfmac4330-sdio");
BRCMF_FW_DEF(4334, "brcmfmac4334-sdio");
BRCMF_FW_DEF(43340, "brcmfmac43340-sdio");
@ -117,7 +117,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BRCMF_FW_DEF(4335, "brcmfmac4335-sdio");
BRCMF_FW_DEF(43362, "brcmfmac43362-sdio");
BRCMF_FW_DEF(4339, "brcmfmac4339-sdio");
@@ -628,7 +629,7 @@ static const struct brcmf_firmware_mappi
@@ -634,7 +635,7 @@ static const struct brcmf_firmware_mappi
BRCMF_FW_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330),
BRCMF_FW_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334),
BRCMF_FW_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340),

View File

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -6844,6 +6844,8 @@ static void brcmf_cfg80211_reg_notifier(
@@ -6854,6 +6854,8 @@ static void brcmf_cfg80211_reg_notifier(
/* ignore non-ISO3166 country codes */
for (i = 0; i < 2; i++)
if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {

View File

@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -6844,8 +6844,6 @@ static void brcmf_cfg80211_reg_notifier(
@@ -6854,8 +6854,6 @@ static void brcmf_cfg80211_reg_notifier(
/* ignore non-ISO3166 country codes */
for (i = 0; i < 2; i++)
if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {

View File

@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2149,7 +2149,7 @@ static void bcmgenet_init_tx_ring(struct
@@ -2147,7 +2147,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);

View File

@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -285,6 +285,8 @@ int bcmgenet_mii_probe(struct net_device
@@ -318,6 +318,8 @@ int bcmgenet_mii_probe(struct net_device
/* Communicate the integrated PHY revision */
if (priv->internal_phy)
phy_flags = priv->gphy_rev;

View File

@ -28,7 +28,7 @@ compatibility for the device-tree configuration has been retained.
#define FSEL_REG(p) (GPFSEL0 + (((p) / 10) * 4))
#define FSEL_SHIFT(p) (((p) % 10) * 3)
#define GPIO_REG_OFFSET(p) ((p) / 32)
@@ -917,21 +923,45 @@ static void bcm2835_pull_config_set(stru
@@ -915,21 +921,45 @@ static void bcm2835_pull_config_set(stru
unsigned int pin, unsigned int arg)
{
u32 off, bit;

View File

@ -170,7 +170,8 @@ configure_by_model() {
;;
"Asus RT-N16"* | \
"Linksys E3000 V1")
"Linksys E3000 V1" | \
"Netgear WNR3500L")
ucidef_add_switch "switch0" \
"0:wan" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "8@eth0"
;;

View File

@ -1,20 +0,0 @@
From 95be54e285767c5209bb51df923373f78b8c4099 Mon Sep 17 00:00:00 2001
From: Linus Walleij <linus.walleij@linaro.org>
Date: Mon, 16 Jul 2018 23:36:30 +0200
Subject: [PATCH 04/18] boot sq201 from sda1
---
arch/arm/boot/dts/gemini-sq201.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/arm/boot/dts/gemini-sq201.dts
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -20,7 +20,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8";
+ bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootwait";
stdout-path = &uart0;
};

View File

@ -121,7 +121,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
@@ -184,9 +177,7 @@
@@ -157,9 +150,7 @@
mux {
function = "gpio0";
groups = "gpio0fgrp",
@ -132,7 +132,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
};
};
/*
@@ -199,6 +190,18 @@
@@ -172,6 +163,18 @@
groups = "gpio1dgrp";
};
};

View File

@ -19,50 +19,8 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
};
chosen {
- bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootwait";
- bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
+ bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
stdout-path = &uart0;
};
@@ -131,37 +131,10 @@
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
- partition@0 {
- label = "RedBoot";
- reg = <0x00000000 0x00120000>;
- read-only;
- };
- partition@120000 {
- label = "Kernel";
- reg = <0x00120000 0x00200000>;
- };
- partition@320000 {
- label = "Ramdisk";
- reg = <0x00320000 0x00600000>;
- };
- partition@920000 {
- label = "Application";
- reg = <0x00920000 0x00600000>;
- };
- partition@f20000 {
- label = "VCTL";
- reg = <0x00f20000 0x00020000>;
- read-only;
- };
- partition@f40000 {
- label = "CurConf";
- reg = <0x00f40000 0x000a0000>;
- read-only;
- };
- partition@fe0000 {
- label = "FIS directory";
- reg = <0x00fe0000 0x00020000>;
- read-only;
+ partitions {
+ compatible = "redboot-fis";
+ /* Eraseblock at 0xfe0000 */
+ fis-index-block = <0x1fc>;
};
};

View File

@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1965,7 +1965,8 @@ static const struct usb_device_id option
@@ -1968,7 +1968,8 @@ static const struct usb_device_id option
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },

View File

@ -55,7 +55,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
#include "mtdcore.h"
@@ -894,6 +895,92 @@ static int mtd_part_do_parse(struct mtd_
@@ -919,6 +920,92 @@ static int mtd_part_do_parse(struct mtd_
}
/**
@ -148,7 +148,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
* parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device)
* @types: names of partition parsers to try or %NULL
@@ -925,19 +1012,30 @@ int parse_mtd_partitions(struct mtd_info
@@ -950,19 +1037,30 @@ int parse_mtd_partitions(struct mtd_info
types = default_mtd_part_types;
for ( ; *types; types++) {

View File

@ -22,7 +22,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -940,7 +940,7 @@ static int mtd_part_of_parse(struct mtd_
@@ -965,7 +965,7 @@ static int mtd_part_of_parse(struct mtd_
struct device_node *np;
struct property *prop;
const char *compat;
@ -31,7 +31,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
int ret, err = 0;
np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
@@ -960,7 +960,7 @@ static int mtd_part_of_parse(struct mtd_
@@ -985,7 +985,7 @@ static int mtd_part_of_parse(struct mtd_
of_node_put(np);
/*

View File

@ -98,7 +98,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
}
static struct mtd_part *allocate_partition(struct mtd_info *parent,
@@ -981,30 +968,27 @@ static int mtd_part_of_parse(struct mtd_
@@ -1006,30 +993,27 @@ static int mtd_part_of_parse(struct mtd_
}
/**
@ -136,7 +136,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
struct mtd_part_parser *parser;
int ret, err = 0;
@@ -1018,7 +1002,7 @@ int parse_mtd_partitions(struct mtd_info
@@ -1043,7 +1027,7 @@ int parse_mtd_partitions(struct mtd_info
* handled in a separated function.
*/
if (!strcmp(*types, "ofpart")) {
@ -145,7 +145,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
} else {
pr_debug("%s: parsing partitions %s\n", master->name,
*types);
@@ -1029,13 +1013,17 @@ int parse_mtd_partitions(struct mtd_info
@@ -1054,13 +1038,17 @@ int parse_mtd_partitions(struct mtd_info
parser ? parser->name : NULL);
if (!parser)
continue;

View File

@ -55,9 +55,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno,
uint64_t cur_offset)
@@ -783,8 +767,8 @@ int add_mtd_partitions(struct mtd_info *
@@ -803,8 +787,8 @@ int add_mtd_partitions(struct mtd_info *
}
add_mtd_device(&slave->mtd);
mtd_add_partition_attrs(slave);
- if (parts[i].types)
- mtd_parse_part(slave, parts[i].types);
@ -66,7 +66,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
cur_offset = slave->offset + slave->mtd.size;
}
@@ -860,6 +844,12 @@ static const char * const default_mtd_pa
@@ -885,6 +869,12 @@ static const char * const default_mtd_pa
NULL
};
@ -79,7 +79,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
static int mtd_part_do_parse(struct mtd_part_parser *parser,
struct mtd_info *master,
struct mtd_partitions *pparts,
@@ -930,7 +920,9 @@ static int mtd_part_of_parse(struct mtd_
@@ -955,7 +945,9 @@ static int mtd_part_of_parse(struct mtd_
const char *fixed = "fixed-partitions";
int ret, err = 0;
@ -90,7 +90,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
of_property_for_each_string(np, "compatible", prop, compat) {
parser = mtd_part_get_compatible_parser(compat);
if (!parser)
@@ -993,7 +985,8 @@ int parse_mtd_partitions(struct mtd_info
@@ -1018,7 +1010,8 @@ int parse_mtd_partitions(struct mtd_info
int ret, err = 0;
if (!types)

View File

@ -1,46 +0,0 @@
From d62e98ed1efcaa94caa004f622944afdce5f1c3c Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Sun, 9 Dec 2018 18:12:13 +0100
Subject: [PATCH] ubifs: Fix default compression selection in ubifs
When ubifs is build without the LZO compressor and no compressor is
given the creation of the default file system will fail. before
selection the LZO compressor check if it is present and if not fall back
to the zlib or none.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
---
fs/ubifs/sb.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -63,6 +63,17 @@
/* Default time granularity in nanoseconds */
#define DEFAULT_TIME_GRAN 1000000000
+static int get_default_compressor(struct ubifs_info *c)
+{
+ if (ubifs_compr_present(c, UBIFS_COMPR_LZO))
+ return UBIFS_COMPR_LZO;
+
+ if (ubifs_compr_present(c, UBIFS_COMPR_ZLIB))
+ return UBIFS_COMPR_ZLIB;
+
+ return UBIFS_COMPR_NONE;
+}
+
/**
* create_default_filesystem - format empty UBI volume.
* @c: UBIFS file-system description object
@@ -186,7 +197,7 @@ static int create_default_filesystem(str
if (c->mount_opts.override_compr)
sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
else
- sup->default_compr = cpu_to_le16(UBIFS_COMPR_LZO);
+ sup->default_compr = cpu_to_le16(get_default_compressor(c));
generate_random_uuid(sup->uuid);

View File

@ -18,7 +18,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -807,6 +807,27 @@ static const char * const default_mtd_pa
@@ -832,6 +832,27 @@ static const char * const default_mtd_pa
NULL
};
@ -46,7 +46,7 @@ Acked-by: Brian Norris <computersforpeace@gmail.com>
/**
* parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device)
@@ -847,16 +868,10 @@ int parse_mtd_partitions(struct mtd_info
@@ -872,16 +893,10 @@ int parse_mtd_partitions(struct mtd_info
parser ? parser->name : NULL);
if (!parser)
continue;

View File

@ -54,7 +54,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
static struct mtd_part *allocate_partition(struct mtd_info *master,
const struct mtd_partition *part, int partno,
uint64_t cur_offset)
@@ -675,6 +649,48 @@ int mtd_add_partition(struct mtd_info *m
@@ -686,6 +660,48 @@ err_remove_part:
}
EXPORT_SYMBOL_GPL(mtd_add_partition);
@ -103,7 +103,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
int mtd_del_partition(struct mtd_info *master, int partno)
{
struct mtd_part *slave, *next;
@@ -686,12 +702,7 @@ int mtd_del_partition(struct mtd_info *m
@@ -697,12 +713,7 @@ int mtd_del_partition(struct mtd_info *m
(slave->mtd.index == partno)) {
sysfs_remove_files(&slave->mtd.dev.kobj,
mtd_partition_attrs);

View File

@ -25,7 +25,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -660,6 +660,8 @@ static int __mtd_del_partition(struct mt
@@ -671,6 +671,8 @@ static int __mtd_del_partition(struct mt
{
int err;
@ -34,7 +34,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
err = del_mtd_device(&priv->mtd);
if (err)
return err;
@@ -700,8 +702,6 @@ int mtd_del_partition(struct mtd_info *m
@@ -711,8 +713,6 @@ int mtd_del_partition(struct mtd_info *m
list_for_each_entry_safe(slave, next, &mtd_partitions, list)
if ((slave->master == master) &&
(slave->mtd.index == partno)) {

View File

@ -578,7 +578,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
if (IS_ERR(new))
return PTR_ERR(new);
@@ -683,7 +689,7 @@ int del_mtd_partitions(struct mtd_info *
@@ -694,7 +700,7 @@ int del_mtd_partitions(struct mtd_info *
mutex_lock(&mtd_partitions_mutex);
list_for_each_entry_safe(slave, next, &mtd_partitions, list)
@ -587,7 +587,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
ret = __mtd_del_partition(slave);
if (ret < 0)
err = ret;
@@ -700,7 +706,7 @@ int mtd_del_partition(struct mtd_info *m
@@ -711,7 +717,7 @@ int mtd_del_partition(struct mtd_info *m
mutex_lock(&mtd_partitions_mutex);
list_for_each_entry_safe(slave, next, &mtd_partitions, list)
@ -596,7 +596,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
(slave->mtd.index == partno)) {
ret = __mtd_del_partition(slave);
break;
@@ -933,6 +939,6 @@ uint64_t mtd_get_device_size(const struc
@@ -958,6 +964,6 @@ uint64_t mtd_get_device_size(const struc
if (!mtd_is_partition(mtd))
return mtd->size;

View File

@ -31,7 +31,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
&parent->dev :
parent->dev.parent;
slave->mtd.dev.of_node = part->of_node;
@@ -664,8 +664,17 @@ EXPORT_SYMBOL_GPL(mtd_add_partition);
@@ -675,8 +675,17 @@ EXPORT_SYMBOL_GPL(mtd_add_partition);
*/
static int __mtd_del_partition(struct mtd_part *priv)
{
@ -49,7 +49,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
sysfs_remove_files(&priv->mtd.dev.kobj, mtd_partition_attrs);
err = del_mtd_device(&priv->mtd);
@@ -680,16 +689,16 @@ static int __mtd_del_partition(struct mt
@@ -691,16 +700,16 @@ static int __mtd_del_partition(struct mt
/*
* This function unregisters and destroy all slave MTD objects which are
@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
ret = __mtd_del_partition(slave);
if (ret < 0)
err = ret;
@@ -699,14 +708,14 @@ int del_mtd_partitions(struct mtd_info *
@@ -710,14 +719,14 @@ int del_mtd_partitions(struct mtd_info *
return err;
}
@ -86,7 +86,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
(slave->mtd.index == partno)) {
ret = __mtd_del_partition(slave);
break;
@@ -939,6 +948,6 @@ uint64_t mtd_get_device_size(const struc
@@ -964,6 +973,6 @@ uint64_t mtd_get_device_size(const struc
if (!mtd_is_partition(mtd))
return mtd->size;

View File

@ -76,9 +76,9 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno,
uint64_t cur_offset)
@@ -758,6 +787,8 @@ int add_mtd_partitions(struct mtd_info *
@@ -778,6 +807,8 @@ int add_mtd_partitions(struct mtd_info *
}
add_mtd_device(&slave->mtd);
mtd_add_partition_attrs(slave);
+ if (parts[i].types)
+ mtd_parse_part(slave, parts[i].types);

View File

@ -55,7 +55,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
#include "mtdcore.h"
@@ -886,6 +887,92 @@ static int mtd_part_do_parse(struct mtd_
@@ -911,6 +912,92 @@ static int mtd_part_do_parse(struct mtd_
}
/**
@ -148,7 +148,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
* parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device)
* @types: names of partition parsers to try or %NULL
@@ -917,19 +1004,30 @@ int parse_mtd_partitions(struct mtd_info
@@ -942,19 +1029,30 @@ int parse_mtd_partitions(struct mtd_info
types = default_mtd_part_types;
for ( ; *types; types++) {

View File

@ -22,7 +22,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -932,7 +932,7 @@ static int mtd_part_of_parse(struct mtd_
@@ -957,7 +957,7 @@ static int mtd_part_of_parse(struct mtd_
struct device_node *np;
struct property *prop;
const char *compat;
@ -31,7 +31,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
int ret, err = 0;
np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
@@ -952,7 +952,7 @@ static int mtd_part_of_parse(struct mtd_
@@ -977,7 +977,7 @@ static int mtd_part_of_parse(struct mtd_
of_node_put(np);
/*

View File

@ -98,7 +98,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
}
static struct mtd_part *allocate_partition(struct mtd_info *parent,
@@ -973,30 +960,27 @@ static int mtd_part_of_parse(struct mtd_
@@ -998,30 +985,27 @@ static int mtd_part_of_parse(struct mtd_
}
/**
@ -136,7 +136,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
struct mtd_part_parser *parser;
int ret, err = 0;
@@ -1010,7 +994,7 @@ int parse_mtd_partitions(struct mtd_info
@@ -1035,7 +1019,7 @@ int parse_mtd_partitions(struct mtd_info
* handled in a separated function.
*/
if (!strcmp(*types, "ofpart")) {
@ -145,7 +145,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
} else {
pr_debug("%s: parsing partitions %s\n", master->name,
*types);
@@ -1021,13 +1005,17 @@ int parse_mtd_partitions(struct mtd_info
@@ -1046,13 +1030,17 @@ int parse_mtd_partitions(struct mtd_info
parser ? parser->name : NULL);
if (!parser)
continue;

View File

@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -1079,7 +1079,7 @@ static int c_can_poll(struct napi_struct
@@ -1105,7 +1105,7 @@ static int c_can_poll(struct napi_struct
end:
if (work_done < quota) {
@ -313,7 +313,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
--- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
@@ -1532,7 +1532,7 @@ static int atl1e_clean(struct napi_struc
@@ -1534,7 +1534,7 @@ static int atl1e_clean(struct napi_struc
/* If no Tx and not enough Rx work done, exit the polling mode */
if (work_done < budget) {
quit_polling:

View File

@ -55,9 +55,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno,
uint64_t cur_offset)
@@ -775,8 +759,8 @@ int add_mtd_partitions(struct mtd_info *
@@ -795,8 +779,8 @@ int add_mtd_partitions(struct mtd_info *
}
add_mtd_device(&slave->mtd);
mtd_add_partition_attrs(slave);
- if (parts[i].types)
- mtd_parse_part(slave, parts[i].types);
@ -66,7 +66,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
cur_offset = slave->offset + slave->mtd.size;
}
@@ -852,6 +836,12 @@ static const char * const default_mtd_pa
@@ -877,6 +861,12 @@ static const char * const default_mtd_pa
NULL
};
@ -79,7 +79,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
static int mtd_part_do_parse(struct mtd_part_parser *parser,
struct mtd_info *master,
struct mtd_partitions *pparts,
@@ -922,7 +912,9 @@ static int mtd_part_of_parse(struct mtd_
@@ -947,7 +937,9 @@ static int mtd_part_of_parse(struct mtd_
const char *fixed = "fixed-partitions";
int ret, err = 0;
@ -90,7 +90,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
of_property_for_each_string(np, "compatible", prop, compat) {
parser = mtd_part_get_compatible_parser(compat);
if (!parser)
@@ -985,7 +977,8 @@ int parse_mtd_partitions(struct mtd_info
@@ -1010,7 +1002,8 @@ int parse_mtd_partitions(struct mtd_info
int ret, err = 0;
if (!types)

View File

@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
depends on BROKEN || !FRV
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -113,6 +113,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
@@ -110,6 +110,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
obj-$(CONFIG_TORTURE_TEST) += torture.o
obj-$(CONFIG_HAS_IOMEM) += memremap.o

View File

@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -3485,6 +3485,8 @@ static __net_initdata struct pernet_oper
@@ -3486,6 +3486,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{

View File

@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -117,6 +117,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
@@ -114,6 +114,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
obj-$(CONFIG_HAS_IOMEM) += iomem.o
obj-$(CONFIG_ZONE_DEVICE) += memremap.o
obj-$(CONFIG_RSEQ) += rseq.o

View File

@ -110,7 +110,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#include <linux/err.h>
#include <linux/of.h>
@@ -844,6 +845,37 @@ void deregister_mtd_parser(struct mtd_pa
@@ -869,6 +870,37 @@ void deregister_mtd_parser(struct mtd_pa
}
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
@ -148,7 +148,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
/*
* Do not forget to update 'parse_mtd_partitions()' kerneldoc comment if you
* are changing this array!
@@ -993,6 +1025,13 @@ int parse_mtd_partitions(struct mtd_info
@@ -1018,6 +1050,13 @@ int parse_mtd_partitions(struct mtd_info
struct mtd_partitions pparts = { };
struct mtd_part_parser *parser;
int ret, err = 0;
@ -162,7 +162,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
if (!types)
types = mtd_is_partition(master) ? default_subpartition_types :
@@ -1034,6 +1073,7 @@ int parse_mtd_partitions(struct mtd_info
@@ -1059,6 +1098,7 @@ int parse_mtd_partitions(struct mtd_info
if (ret < 0 && !err)
err = ret;
}

View File

@ -60,15 +60,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
* the pointer to that structure.
@@ -668,6 +672,7 @@ int mtd_add_partition(struct mtd_info *p
mutex_unlock(&mtd_partitions_mutex);
@@ -671,6 +675,7 @@ int mtd_add_partition(struct mtd_info *p
if (ret)
goto err_remove_part;
add_mtd_device(&new->mtd);
+ mtd_partition_split(parent, new);
mtd_add_partition_attrs(new);
@@ -746,6 +751,29 @@ int mtd_del_partition(struct mtd_info *m
return 0;
@@ -757,6 +762,29 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
@ -98,10 +98,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
@@ -777,6 +805,7 @@ int add_mtd_partitions(struct mtd_info *
mutex_unlock(&mtd_partitions_mutex);
@@ -797,6 +825,7 @@ int add_mtd_partitions(struct mtd_info *
goto err_del_partitions;
}
add_mtd_device(&slave->mtd);
+ mtd_partition_split(master, slave);
mtd_add_partition_attrs(slave);
/* Look for subpartitions */

View File

@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
@@ -751,6 +755,36 @@ int mtd_del_partition(struct mtd_info *m
@@ -762,6 +766,36 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
@@ -1122,6 +1156,61 @@ void mtd_part_parser_cleanup(struct mtd_
@@ -1147,6 +1181,61 @@ void mtd_part_parser_cleanup(struct mtd_
}
}

View File

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -793,6 +793,7 @@ run_parsers_by_type(struct mtd_part *sla
@@ -804,6 +804,7 @@ run_parsers_by_type(struct mtd_part *sla
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
{
@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
}
static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
@@ -802,6 +803,12 @@ static void mtd_partition_split(struct m
@@ -813,6 +814,12 @@ static void mtd_partition_split(struct m
if (rootfs_found)
return;

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -1235,6 +1235,24 @@ int mtd_is_partition(const struct mtd_in
@@ -1260,6 +1260,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);

View File

@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
help
--- a/init/main.c
+++ b/init/main.c
@@ -359,6 +359,29 @@ static inline void setup_nr_cpu_ids(void
@@ -358,6 +358,29 @@ static inline void setup_nr_cpu_ids(void
static inline void smp_prepare_cpus(unsigned int maxcpus) { }
#endif
@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
/*
* We need to store the untouched command line for future reference.
* We also need to store the touched command line since the parameter
@@ -540,6 +563,7 @@ asmlinkage __visible void __init start_k
@@ -539,6 +562,7 @@ asmlinkage __visible void __init start_k
add_device_randomness(command_line, strlen(command_line));
boot_init_stack_canary();
mm_init_cpumask(&init_mm);

Some files were not shown because too many files have changed in this diff Show More