Merge Official Source
This commit is contained in:
commit
d19ba6f55d
@ -4,6 +4,7 @@ PKG_INSTALL:=1
|
||||
|
||||
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
|
||||
MAKE_FLAGS+=VERBOSE=1
|
||||
HOST_MAKE_FLAGS+=VERBOSE=1
|
||||
endif
|
||||
|
||||
CMAKE_BINARY_DIR = $(PKG_BUILD_DIR)$(if $(CMAKE_BINARY_SUBDIR),/$(CMAKE_BINARY_SUBDIR))
|
||||
|
||||
@ -136,7 +136,6 @@ define BuildKernel
|
||||
$(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig
|
||||
$(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE
|
||||
$(Kernel/CompileModules)
|
||||
mkdir -p $(PKG_SYMVERS_DIR)
|
||||
touch $$@
|
||||
|
||||
$(LINUX_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST)
|
||||
|
||||
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-5.4 = .75
|
||||
LINUX_VERSION-5.4 = .77
|
||||
|
||||
LINUX_KERNEL_HASH-5.4.75 = d2466fd6eb5433e7bf287b617b11b2640c65a7ea93a57eb7a80d7f537cbc1470
|
||||
LINUX_KERNEL_HASH-5.4.77 = a3e03e6970240dddc8174bf9f49b56d774c40125eabe1582d2ebe85b01addbf7
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@ -149,6 +149,7 @@ define collect_module_symvers
|
||||
grep -F $$$$realdir $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
|
||||
done; \
|
||||
sort -u $(PKG_BUILD_DIR)/Module.symvers.tmp > $(PKG_BUILD_DIR)/Module.symvers; \
|
||||
mkdir -p $(PKG_SYMVERS_DIR); \
|
||||
mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_SYMVERS_DIR)/$(PKG_NAME).symvers
|
||||
endef
|
||||
|
||||
|
||||
@ -125,7 +125,8 @@ $(eval $(call SetupHostCommand,egrep,Please install GNU 'grep', \
|
||||
$(eval $(call SetupHostCommand,getopt, \
|
||||
Please install an extended getopt version that supports --long, \
|
||||
gnugetopt -o t --long test -- --test | grep '^ *--test *--', \
|
||||
getopt -o t --long test -- --test | grep '^ *--test *--'))
|
||||
getopt -o t --long test -- --test | grep '^ *--test *--', \
|
||||
/usr/local/opt/gnu-getopt/bin/getopt -o t --long test -- --test | grep '^ *--test *--'))
|
||||
|
||||
$(eval $(call SetupHostCommand,stat,Cannot find a file stat utility, \
|
||||
gnustat -c%s $(TOPDIR)/Makefile, \
|
||||
|
||||
@ -29,6 +29,12 @@ export GNU_HOST_NAME:=$(shell $(TOPDIR)/scripts/config.guess)
|
||||
export HOST_OS:=$(shell uname)
|
||||
export HOST_ARCH:=$(shell uname -m)
|
||||
|
||||
ifeq ($(HOST_OS),Darwin)
|
||||
ifneq ($(filter /Applications/Xcode.app/% /Library/Developer/%,$(MAKE)),)
|
||||
$(error Please use a newer version of GNU make. The version shipped by Apple is not supported)
|
||||
endif
|
||||
endif
|
||||
|
||||
# prevent perforce from messing with the patch utility
|
||||
unexport P4PORT P4USER P4CONFIG P4CLIENT
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
|
||||
include $(INCLUDE_DIR)/feeds.mk
|
||||
|
||||
PKG_NAME:=base-files
|
||||
PKG_RELEASE:=236
|
||||
PKG_RELEASE:=237
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||
|
||||
@ -18,14 +18,15 @@ generate_bridge() {
|
||||
|
||||
bridge_vlan_id=0
|
||||
generate_bridge_vlan() {
|
||||
local device=$1
|
||||
local ports="$2"
|
||||
local name=$1_vlan
|
||||
local device=$2
|
||||
local ports="$3"
|
||||
bridge_vlan_id=$((bridge_vlan_id + 1))
|
||||
uci -q batch <<-EOF
|
||||
add network bridge-vlan
|
||||
set network.@bridge-vlan[-1].device='$device'
|
||||
set network.@bridge-vlan[-1].vlan='$bridge_vlan_id'
|
||||
set network.@bridge-vlan[-1].ports='$ports'
|
||||
set network.$name=bridge-vlan
|
||||
set network.$name.device='$device'
|
||||
set network.$name.vlan='$bridge_vlan_id'
|
||||
set network.$name.ports='$ports'
|
||||
EOF
|
||||
}
|
||||
|
||||
@ -101,7 +102,7 @@ generate_network() {
|
||||
esac
|
||||
|
||||
[ -n "$bridge" ] && {
|
||||
generate_bridge_vlan $bridge "$ifname"
|
||||
generate_bridge_vlan $1 $bridge "$ifname"
|
||||
ifname=$bridge.$bridge_vlan_id
|
||||
type=""
|
||||
}
|
||||
|
||||
@ -62,15 +62,15 @@ depends() {
|
||||
return 0
|
||||
}
|
||||
|
||||
EXTRA_HELP=""
|
||||
EXTRA_COMMANDS="boot shutdown depends"
|
||||
ALL_HELP=""
|
||||
ALL_COMMANDS="boot shutdown depends"
|
||||
extra_command() {
|
||||
local cmd="$1"
|
||||
local help="$2"
|
||||
|
||||
local extra="$(printf "%-16s%s" "${cmd}" "${help}")"
|
||||
EXTRA_HELP="${EXTRA_HELP}\t${extra}\n"
|
||||
EXTRA_COMMANDS="${EXTRA_COMMANDS} ${cmd}"
|
||||
ALL_HELP="${ALL_HELP}\t${extra}\n"
|
||||
ALL_COMMANDS="${ALL_COMMANDS} ${cmd}"
|
||||
}
|
||||
|
||||
help() {
|
||||
@ -79,7 +79,7 @@ Syntax: $initscript [command]
|
||||
|
||||
Available commands:
|
||||
EOF
|
||||
echo -e "$EXTRA_HELP"
|
||||
echo -e "$ALL_HELP"
|
||||
}
|
||||
|
||||
# for procd
|
||||
@ -175,6 +175,7 @@ extra_command "enabled" "Check if service is started on boot"
|
||||
}
|
||||
}
|
||||
|
||||
ALL_COMMANDS="${EXTRA_COMMANDS}"
|
||||
ALL_COMMANDS="${ALL_COMMANDS} ${EXTRA_COMMANDS}"
|
||||
ALL_HELP="${ALL_HELP}${EXTRA_HELP}"
|
||||
list_contains ALL_COMMANDS "$action" || action=help
|
||||
$action "$@"
|
||||
|
||||
@ -17,6 +17,7 @@ alfa-network,ap121f|\
|
||||
alfa-network,ap121fe|\
|
||||
alfa-network,n2q|\
|
||||
alfa-network,n5q|\
|
||||
alfa-network,pi-wifi4|\
|
||||
alfa-network,r36a|\
|
||||
allnet,all-wap02860ac|\
|
||||
arduino,yun|\
|
||||
|
||||
@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=strace
|
||||
PKG_VERSION:=5.8
|
||||
PKG_VERSION:=5.9
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION)
|
||||
PKG_HASH:=df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9
|
||||
PKG_HASH:=39473eb8465546c3e940fb663cb381eba5613160c7302794699d194a4d5d66d9
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=LGPL-2.1-or-later
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=valgrind
|
||||
PKG_VERSION:=3.15.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=3.16.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
|
||||
PKG_HASH:=417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1
|
||||
PKG_HASH:=c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=GPL-2.0+
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -341,7 +341,7 @@ case "${host_os}" in
|
||||
@@ -345,7 +345,7 @@ case "${host_os}" in
|
||||
# Ok, this is linux. Check the kernel version
|
||||
AC_MSG_CHECKING([for the kernel version])
|
||||
|
||||
|
||||
@ -286,20 +286,6 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,switch-bcm53xx-mdio))
|
||||
|
||||
define KernelPackage/switch-mvsw61xx
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Marvell 88E61xx switch support
|
||||
DEPENDS:=+kmod-swconfig
|
||||
KCONFIG:=CONFIG_MVSW61XX_PHY
|
||||
FILES:=$(LINUX_DIR)/drivers/net/phy/mvsw61xx.ko
|
||||
AUTOLOAD:=$(call AutoLoad,42,mvsw61xx)
|
||||
endef
|
||||
|
||||
define KernelPackage/switch-mvsw61xx/description
|
||||
Marvell 88E61xx switch support
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,switch-mvsw61xx))
|
||||
|
||||
define KernelPackage/switch-ip17xx
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
|
||||
@ -27,6 +27,11 @@ include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
CMAKE_HOST_OPTIONS += \
|
||||
-DCMAKE_SKIP_RPATH=FALSE \
|
||||
-DCMAKE_MACOSX_RPATH=1 \
|
||||
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib"
|
||||
|
||||
define Package/libjson-c
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dropbear
|
||||
PKG_VERSION:=2020.80
|
||||
PKG_RELEASE:=4
|
||||
PKG_VERSION:=2020.81
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:= \
|
||||
http://matt.ucc.asn.au/dropbear/releases/ \
|
||||
https://dropbear.nl/mirror/releases/
|
||||
PKG_HASH:=d927941b91f2da150b2033f1a88b6a47999bf0afb1493a73e9216cffdb5d7949
|
||||
PKG_HASH:=48235d10b37775dbda59341ac0c4b239b82ad6318c31568b985730c788aac53b
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE libtomcrypt/LICENSE libtommath/LICENSE
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/svr-chansession.c
|
||||
+++ b/svr-chansession.c
|
||||
@@ -950,12 +950,12 @@ static void execchild(const void *user_d
|
||||
@@ -954,12 +954,12 @@ static void execchild(const void *user_d
|
||||
/* We can only change uid/gid as root ... */
|
||||
if (getuid() == 0) {
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -199,17 +199,17 @@ dropbearkey: $(dropbearkeyobjs)
|
||||
@@ -198,17 +198,17 @@ dropbearkey: $(dropbearkeyobjs)
|
||||
dropbearconvert: $(dropbearconvertobjs)
|
||||
|
||||
dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
|
||||
# multi-binary compilation.
|
||||
@@ -220,7 +220,7 @@ ifeq ($(MULTI),1)
|
||||
@@ -219,7 +219,7 @@ ifeq ($(MULTI),1)
|
||||
endif
|
||||
|
||||
dropbearmulti$(EXEEXT): $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile
|
||||
|
||||
@ -19,11 +19,9 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz>
|
||||
signkey.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/signkey.c b/signkey.c
|
||||
index 92fe6a242cd0..d16ab174d83a 100644
|
||||
--- a/signkey.c
|
||||
+++ b/signkey.c
|
||||
@@ -657,8 +657,12 @@ int buf_verify(buffer * buf, sign_key *key, enum signature_type expect_sigtype,
|
||||
@@ -657,8 +657,12 @@ int buf_verify(buffer * buf, sign_key *k
|
||||
sigtype = signature_type_from_name(type_name, type_name_len);
|
||||
m_free(type_name);
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostapd
|
||||
PKG_RELEASE:=14
|
||||
PKG_RELEASE:=16
|
||||
|
||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@ -103,6 +103,8 @@ hostapd_common_add_device_config() {
|
||||
config_add_string acs_chan_bias
|
||||
config_add_array hostapd_options
|
||||
|
||||
config_add_int airtime_mode
|
||||
|
||||
hostapd_add_log_config
|
||||
}
|
||||
|
||||
@ -287,6 +289,7 @@ hostapd_common_add_bss_config() {
|
||||
config_add_array hs20_conn_capab
|
||||
config_add_string osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp
|
||||
|
||||
config_add_array airtime_sta_weight
|
||||
config_add_int airtime_bss_weight airtime_bss_limit
|
||||
}
|
||||
|
||||
@ -411,6 +414,10 @@ append_hs20_conn_capab() {
|
||||
[ -n "$1" ] && append bss_conf "hs20_conn_capab=$1" "$N"
|
||||
}
|
||||
|
||||
append_airtime_sta_weight() {
|
||||
[ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N"
|
||||
}
|
||||
|
||||
hostapd_set_bss_options() {
|
||||
local var="$1"
|
||||
local phy="$2"
|
||||
@ -432,7 +439,7 @@ hostapd_set_bss_options() {
|
||||
acct_server acct_secret acct_port acct_interval \
|
||||
bss_load_update_period chan_util_avg_period sae_require_mfp \
|
||||
multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key \
|
||||
airtime_bss_weight airtime_bss_limit
|
||||
airtime_bss_weight airtime_bss_limit airtime_sta_weight
|
||||
|
||||
set_default isolate 0
|
||||
set_default maxassoc 0
|
||||
@ -466,6 +473,7 @@ hostapd_set_bss_options() {
|
||||
|
||||
[ "$airtime_bss_weight" -gt 0 ] && append bss_conf "airtime_bss_weight=$airtime_bss_weight" "$N"
|
||||
[ "$airtime_bss_limit" -gt 0 ] && append bss_conf "airtime_bss_limit=$airtime_bss_limit" "$N"
|
||||
json_for_each_item append_airtime_sta_weight airtime_sta_weight
|
||||
|
||||
append bss_conf "bss_load_update_period=$bss_load_update_period" "$N"
|
||||
append bss_conf "chan_util_avg_period=$chan_util_avg_period" "$N"
|
||||
@ -844,10 +852,12 @@ hostapd_set_bss_options() {
|
||||
json_for_each_item append_iw_anqp_elem iw_anqp_elem
|
||||
json_for_each_item append_iw_nai_realm iw_nai_realm
|
||||
|
||||
iw_domain_name_conf=
|
||||
json_for_each_item append_iw_domain_name iw_domain_name
|
||||
[ -n "$iw_domain_name_conf" ] && \
|
||||
append bss_conf "domain_name=$iw_domain_name_conf" "$N"
|
||||
|
||||
iw_anqp_3gpp_cell_net_conf=
|
||||
json_for_each_item append_iw_anqp_3gpp_cell_net iw_anqp_3gpp_cell_net
|
||||
[ -n "$iw_anqp_3gpp_cell_net_conf" ] && \
|
||||
append bss_conf "anqp_3gpp_cell_net=$iw_anqp_3gpp_cell_net_conf" "$N"
|
||||
|
||||
@ -206,12 +206,82 @@ hostapd_bss_reload(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
hostapd_parse_vht_map_blobmsg(uint16_t map)
|
||||
{
|
||||
char label[4];
|
||||
int16_t val;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
snprintf(label, 4, "%dss", i + 1);
|
||||
|
||||
val = (map & (BIT(1) | BIT(0))) + 7;
|
||||
blobmsg_add_u16(&b, label, val == 10 ? -1 : val);
|
||||
map = map >> 2;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
hostapd_parse_vht_capab_blobmsg(struct ieee80211_vht_capabilities *vhtc)
|
||||
{
|
||||
void *supported_mcs;
|
||||
void *map;
|
||||
int i;
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
uint32_t flag;
|
||||
} vht_capas[] = {
|
||||
{ "su_beamformee", VHT_CAP_SU_BEAMFORMEE_CAPABLE },
|
||||
{ "mu_beamformee", VHT_CAP_MU_BEAMFORMEE_CAPABLE },
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(vht_capas); i++)
|
||||
blobmsg_add_u8(&b, vht_capas[i].name,
|
||||
!!(vhtc->vht_capabilities_info & vht_capas[i].flag));
|
||||
|
||||
supported_mcs = blobmsg_open_table(&b, "mcs_map");
|
||||
|
||||
/* RX map */
|
||||
map = blobmsg_open_table(&b, "rx");
|
||||
hostapd_parse_vht_map_blobmsg(le_to_host16(vhtc->vht_supported_mcs_set.rx_map));
|
||||
blobmsg_close_table(&b, map);
|
||||
|
||||
/* TX map */
|
||||
map = blobmsg_open_table(&b, "tx");
|
||||
hostapd_parse_vht_map_blobmsg(le_to_host16(vhtc->vht_supported_mcs_set.tx_map));
|
||||
blobmsg_close_table(&b, map);
|
||||
|
||||
blobmsg_close_table(&b, supported_mcs);
|
||||
}
|
||||
|
||||
static void
|
||||
hostapd_parse_capab_blobmsg(struct sta_info *sta)
|
||||
{
|
||||
void *r, *v;
|
||||
|
||||
v = blobmsg_open_table(&b, "capabilities");
|
||||
|
||||
if (sta->vht_capabilities) {
|
||||
r = blobmsg_open_table(&b, "vht");
|
||||
hostapd_parse_vht_capab_blobmsg(sta->vht_capabilities);
|
||||
blobmsg_close_table(&b, r);
|
||||
}
|
||||
|
||||
/* ToDo: Add HT / HE capability parsing */
|
||||
|
||||
blobmsg_close_table(&b, v);
|
||||
}
|
||||
|
||||
static int
|
||||
hostapd_bss_get_clients(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
struct ubus_request_data *req, const char *method,
|
||||
struct blob_attr *msg)
|
||||
{
|
||||
struct hostapd_data *hapd = container_of(obj, struct hostapd_data, ubus.obj);
|
||||
struct hostap_sta_driver_data sta_driver_data;
|
||||
struct sta_info *sta;
|
||||
void *list, *c;
|
||||
char mac_buf[20];
|
||||
@ -254,6 +324,31 @@ hostapd_bss_get_clients(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
if (retrieve_sta_taxonomy(hapd, sta, r, 1024) > 0)
|
||||
blobmsg_add_string_buffer(&b);
|
||||
#endif
|
||||
|
||||
/* Driver information */
|
||||
if (hostapd_drv_read_sta_data(hapd, &sta_driver_data, sta->addr) >= 0) {
|
||||
r = blobmsg_open_table(&b, "bytes");
|
||||
blobmsg_add_u64(&b, "rx", sta_driver_data.rx_bytes);
|
||||
blobmsg_add_u64(&b, "tx", sta_driver_data.tx_bytes);
|
||||
blobmsg_close_table(&b, r);
|
||||
r = blobmsg_open_table(&b, "airtime");
|
||||
blobmsg_add_u64(&b, "rx", sta_driver_data.rx_airtime);
|
||||
blobmsg_add_u64(&b, "tx", sta_driver_data.tx_airtime);
|
||||
blobmsg_close_table(&b, r);
|
||||
r = blobmsg_open_table(&b, "packets");
|
||||
blobmsg_add_u32(&b, "rx", sta_driver_data.rx_packets);
|
||||
blobmsg_add_u32(&b, "tx", sta_driver_data.tx_packets);
|
||||
blobmsg_close_table(&b, r);
|
||||
r = blobmsg_open_table(&b, "rate");
|
||||
/* Rate in kbits */
|
||||
blobmsg_add_u32(&b, "rx", sta_driver_data.current_rx_rate * 100);
|
||||
blobmsg_add_u32(&b, "tx", sta_driver_data.current_tx_rate * 100);
|
||||
blobmsg_close_table(&b, r);
|
||||
blobmsg_add_u32(&b, "signal", sta_driver_data.signal);
|
||||
}
|
||||
|
||||
hostapd_parse_capab_blobmsg(sta);
|
||||
|
||||
blobmsg_close_table(&b, c);
|
||||
}
|
||||
blobmsg_close_array(&b, list);
|
||||
@ -277,6 +372,45 @@ hostapd_bss_get_features(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
hostapd_bss_get_status(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
struct ubus_request_data *req, const char *method,
|
||||
struct blob_attr *msg)
|
||||
{
|
||||
struct hostapd_data *hapd = container_of(obj, struct hostapd_data, ubus.obj);
|
||||
void *airtime_table, *dfs_table;
|
||||
struct os_reltime now;
|
||||
char phy_name[17];
|
||||
char mac_buf[20];
|
||||
|
||||
blob_buf_init(&b, 0);
|
||||
blobmsg_add_string(&b, "status", hostapd_state_text(hapd->iface->state));
|
||||
blobmsg_add_u32(&b, "freq", hapd->iface->freq);
|
||||
|
||||
snprintf(phy_name, 17, "%s", hapd->iface->phy);
|
||||
blobmsg_add_string(&b, "phy", phy_name);
|
||||
|
||||
/* Airtime */
|
||||
airtime_table = blobmsg_open_table(&b, "airtime");
|
||||
blobmsg_add_u64(&b, "time", hapd->iface->last_channel_time);
|
||||
blobmsg_add_u64(&b, "time_busy", hapd->iface->last_channel_time_busy);
|
||||
blobmsg_add_u16(&b, "utilization", hapd->iface->channel_utilization);
|
||||
blobmsg_close_table(&b, airtime_table);
|
||||
|
||||
/* DFS */
|
||||
dfs_table = blobmsg_open_table(&b, "dfs");
|
||||
blobmsg_add_u32(&b, "cac_seconds", hapd->iface->dfs_cac_ms / 1000);
|
||||
blobmsg_add_u8(&b, "cac_active", !!(hapd->iface->cac_started));
|
||||
os_reltime_age(&hapd->iface->dfs_cac_start, &now);
|
||||
blobmsg_add_u32(&b, "cac_seconds_left",
|
||||
hapd->iface->cac_started ? hapd->iface->dfs_cac_ms / 1000 - now.sec : 0);
|
||||
blobmsg_close_table(&b, dfs_table);
|
||||
|
||||
ubus_send_reply(ctx, req, b.head);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
enum {
|
||||
NOTIFY_RESPONSE,
|
||||
__NOTIFY_MAX
|
||||
@ -1136,7 +1270,7 @@ hostapd_wnm_disassoc_imminent(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
if (tb[WNM_DISASSOC_ABRIDGED] && blobmsg_get_bool(tb[WNM_DISASSOC_ABRIDGED]))
|
||||
req_mode |= WNM_BSS_TM_REQ_ABRIDGED;
|
||||
|
||||
if (wnm_send_bss_tm_req(hapd, sta, req_mode, duration, 0, NULL,
|
||||
if (wnm_send_bss_tm_req(hapd, sta, req_mode, duration, duration, NULL,
|
||||
NULL, nr, nr_len, NULL, 0))
|
||||
return UBUS_STATUS_UNKNOWN_ERROR;
|
||||
|
||||
@ -1147,6 +1281,7 @@ hostapd_wnm_disassoc_imminent(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
static const struct ubus_method bss_methods[] = {
|
||||
UBUS_METHOD_NOARG("reload", hostapd_bss_reload),
|
||||
UBUS_METHOD_NOARG("get_clients", hostapd_bss_get_clients),
|
||||
UBUS_METHOD_NOARG("get_status", hostapd_bss_get_status),
|
||||
UBUS_METHOD("del_client", hostapd_bss_del_client, del_policy),
|
||||
UBUS_METHOD_NOARG("list_bans", hostapd_bss_list_bans),
|
||||
#ifdef CONFIG_WPS
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=odhcpd
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
|
||||
PKG_SOURCE_DATE:=2020-11-01
|
||||
PKG_SOURCE_VERSION:=735c7836bfcc08f3ecd8cdaf1368665b8a241b94
|
||||
PKG_MIRROR_HASH:=887a2c07375dc5127b31edd71c281f48962d8a40e64995401baf648ed4c94b95
|
||||
PKG_SOURCE_DATE:=2020-11-15
|
||||
PKG_SOURCE_VERSION:=fb55e80394c51d7502bb278f57520dec15a11355
|
||||
PKG_MIRROR_HASH:=631d15fd7c93529fa33433380c4811dbacca9665864e5836c6daca0c7165f25a
|
||||
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=umdns
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/mdnsd.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@ -1,32 +1,43 @@
|
||||
{
|
||||
"whitelist": [
|
||||
"read",
|
||||
"write",
|
||||
"open",
|
||||
"close",
|
||||
"time",
|
||||
"brk",
|
||||
"ioctl",
|
||||
"uname",
|
||||
"bind",
|
||||
"connect",
|
||||
"getsockname",
|
||||
"recvmsg",
|
||||
"sendmsg",
|
||||
"sendto",
|
||||
"setsockopt",
|
||||
"socket",
|
||||
"poll",
|
||||
"fcntl64",
|
||||
"epoll_create",
|
||||
"epoll_ctl",
|
||||
"epoll_wait",
|
||||
"rt_sigaction",
|
||||
"sigreturn",
|
||||
"rt_sigreturn",
|
||||
"exit_group",
|
||||
"exit",
|
||||
"clock_gettime"
|
||||
],
|
||||
"policy": 1
|
||||
"defaultAction": "SCMP_ACT_KILL_PROCESS",
|
||||
"syscalls": [
|
||||
{
|
||||
"names": [
|
||||
"read",
|
||||
"write",
|
||||
"open",
|
||||
"close",
|
||||
"time",
|
||||
"brk",
|
||||
"ioctl",
|
||||
"uname",
|
||||
"bind",
|
||||
"connect",
|
||||
"getsockname",
|
||||
"recvmsg",
|
||||
"recvfrom",
|
||||
"sendmsg",
|
||||
"sendto",
|
||||
"setsockopt",
|
||||
"socket",
|
||||
"pipe",
|
||||
"poll",
|
||||
"fcntl64",
|
||||
"epoll_create",
|
||||
"epoll_create1",
|
||||
"epoll_ctl",
|
||||
"epoll_wait",
|
||||
"epoll_pwait",
|
||||
"rt_sigaction",
|
||||
"sigreturn",
|
||||
"rt_sigreturn",
|
||||
"rt_sigprocmask",
|
||||
"exit_group",
|
||||
"exit",
|
||||
"fcntl",
|
||||
"clock_gettime"
|
||||
],
|
||||
"action": "SCMP_ACT_ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ethtool
|
||||
PKG_VERSION:=5.8
|
||||
PKG_VERSION:=5.9
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/ethtool
|
||||
PKG_HASH:=2f3b54d08d048f5977b80cb6cb4744994370def7553ee634d39dbbb6ccf87546
|
||||
PKG_HASH:=512932010af87bc3e09773c89baea44bca96c1da1151bbcf109fa0e055a88a6f
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iperf
|
||||
PKG_VERSION:=3.7
|
||||
PKG_VERSION:=3.9
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://downloads.es.net/pub/iperf
|
||||
PKG_HASH:=d846040224317caf2f75c843d309a950a7db23f9b44b94688ccbe557d6d1710c
|
||||
PKG_HASH:=24b63a26382325f759f11d421779a937b63ca1bc17c44587d2fcfedab60ac038
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=5.8.0
|
||||
PKG_VERSION:=5.9.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e
|
||||
PKG_HASH:=a25dac94bcdcf2f73316c7f812115ea7a5710580bad892b08a83d00c6b33dacf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/tc/Makefile
|
||||
+++ b/tc/Makefile
|
||||
@@ -127,6 +127,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
|
||||
@@ -128,6 +128,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
|
||||
ifneq ($(IPT_LIB_DIR),)
|
||||
CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
|
||||
endif
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
endif
|
||||
|
||||
TCLIB := tc_core.o
|
||||
@@ -143,7 +143,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
|
||||
@@ -144,7 +144,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
|
||||
all: tc $(TCSO)
|
||||
|
||||
tc: $(TCOBJ) $(LIBNETLINK) libtc.a
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
libtc.a: $(TCLIB)
|
||||
$(QUIET_AR)$(AR) rcs $@ $^
|
||||
@@ -165,6 +165,7 @@ install: all
|
||||
@@ -166,6 +166,7 @@ install: all
|
||||
clean:
|
||||
rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.tab.h; \
|
||||
rm -f emp_ematch.tab.*
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
q_atm.so: q_atm.c
|
||||
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
|
||||
@@ -204,4 +205,15 @@ static-syms.h: $(wildcard *.c)
|
||||
@@ -205,4 +206,15 @@ static-syms.h: $(wildcard *.c)
|
||||
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
||||
done > $@
|
||||
|
||||
|
||||
@ -30,13 +30,22 @@ MAKE_PATH:=src
|
||||
MAKE_VARS += PLATFORM=linux
|
||||
|
||||
define Package/wireguard-tools
|
||||
$(call Package/wireguard/Default)
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=VPN
|
||||
URL:=https://www.wireguard.com
|
||||
MAINTAINER:=Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
TITLE:=WireGuard userspace control program (wg)
|
||||
DEPENDS:=+ip
|
||||
DEPENDS:=+@BUSYBOX_CONFIG_IP +@BUSYBOX_CONFIG_FEATURE_IP_LINK
|
||||
endef
|
||||
|
||||
define Package/wireguard-tools/description
|
||||
$(call Package/wireguard/Default/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.
|
||||
|
||||
This package provides the userspace control program for WireGuard,
|
||||
`wg(8)`, a netifd protocol helper, and a re-resolve watchdog script.
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2020-11-06
|
||||
PKG_SOURCE_VERSION:=b0de894830a93da5b303a3d89a42baf163d0a58c
|
||||
PKG_MIRROR_HASH:=ba7f7631fa74d3bede0241f5d96ee4939f15164e79290d1ac7fd15fc8ed628d9
|
||||
PKG_SOURCE_DATE:=2020-11-17
|
||||
PKG_SOURCE_VERSION:=c110405181056f14956ccd097b8e4ffe97b2f3ec
|
||||
PKG_MIRROR_HASH:=a3c5cd58d58aebd5976ccadd754ac2f601fed888f48f78d364dfc86e3a34a1e4
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -2355,7 +2355,7 @@ sub process {
|
||||
my $commit_log_possible_stack_dump = 0;
|
||||
my $commit_log_long_line = 0;
|
||||
my $commit_log_has_diff = 0;
|
||||
my $reported_maintainer_file = 0;
|
||||
my $reported_maintainer_file = 1;
|
||||
my $non_utf8_charset = 0;
|
||||
|
||||
my $last_blank_line = 0;
|
||||
|
||||
68
scripts/const_structs.checkpatch
Normal file
68
scripts/const_structs.checkpatch
Normal file
@ -0,0 +1,68 @@
|
||||
acpi_dock_ops
|
||||
address_space_operations
|
||||
backlight_ops
|
||||
block_device_operations
|
||||
clk_ops
|
||||
comedi_lrange
|
||||
component_ops
|
||||
dentry_operations
|
||||
dev_pm_ops
|
||||
dma_map_ops
|
||||
driver_info
|
||||
drm_connector_funcs
|
||||
drm_encoder_funcs
|
||||
drm_encoder_helper_funcs
|
||||
ethtool_ops
|
||||
extent_io_ops
|
||||
file_lock_operations
|
||||
file_operations
|
||||
hv_ops
|
||||
ide_dma_ops
|
||||
ide_port_ops
|
||||
inode_operations
|
||||
intel_dvo_dev_ops
|
||||
irq_domain_ops
|
||||
item_operations
|
||||
iwl_cfg
|
||||
iwl_ops
|
||||
kgdb_arch
|
||||
kgdb_io
|
||||
kset_uevent_ops
|
||||
lock_manager_operations
|
||||
machine_desc
|
||||
microcode_ops
|
||||
mlxsw_reg_info
|
||||
mtrr_ops
|
||||
neigh_ops
|
||||
net_device_ops
|
||||
nlmsvc_binding
|
||||
nvkm_device_chip
|
||||
of_device_id
|
||||
pci_raw_ops
|
||||
phy_ops
|
||||
pinctrl_ops
|
||||
pinmux_ops
|
||||
pipe_buf_operations
|
||||
platform_hibernation_ops
|
||||
platform_suspend_ops
|
||||
proto_ops
|
||||
regmap_access_table
|
||||
regulator_ops
|
||||
rpc_pipe_ops
|
||||
rtc_class_ops
|
||||
sd_desc
|
||||
seq_operations
|
||||
sirfsoc_padmux
|
||||
snd_ac97_build_ops
|
||||
snd_soc_component_driver
|
||||
soc_pcmcia_socket_ops
|
||||
stacktrace_ops
|
||||
sysfs_ops
|
||||
tty_operations
|
||||
uart_ops
|
||||
usb_mon_operations
|
||||
v4l2_ctrl_ops
|
||||
v4l2_ioctl_ops
|
||||
vm_operations_struct
|
||||
wacom_features
|
||||
wd_ops
|
||||
@ -93,6 +93,7 @@ $hash_cmd or ($file_hash eq "skip") or die "Cannot find appropriate hash command
|
||||
sub download
|
||||
{
|
||||
my $mirror = shift;
|
||||
my $download_filename = shift;
|
||||
|
||||
$mirror =~ s!/$!!;
|
||||
|
||||
@ -139,7 +140,7 @@ sub download
|
||||
}
|
||||
};
|
||||
} else {
|
||||
my @cmd = download_cmd("$mirror/$url_filename");
|
||||
my @cmd = download_cmd("$mirror/$download_filename");
|
||||
print STDERR "+ ".join(" ",@cmd)."\n";
|
||||
open(FETCH_FD, '-|', @cmd) or die "Cannot launch curl or wget.\n";
|
||||
$hash_cmd and do {
|
||||
@ -280,7 +281,10 @@ while (!-f "$target/$filename") {
|
||||
my $mirror = shift @mirrors;
|
||||
$mirror or die "No more mirrors to try - giving up.\n";
|
||||
|
||||
download($mirror);
|
||||
download($mirror, $url_filename);
|
||||
if (!-f "$target/$filename" && $url_filename ne $filename) {
|
||||
download($mirror, $filename);
|
||||
}
|
||||
}
|
||||
|
||||
$SIG{INT} = \&cleanup;
|
||||
|
||||
@ -61,6 +61,14 @@ else
|
||||
-exec $(CP) -t $(IB_LDIR)/ {} +
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_SIGNATURE_CHECK),)
|
||||
echo '' >> $(PKG_BUILD_DIR)/repositories.conf
|
||||
echo 'option check_signature' >> $(PKG_BUILD_DIR)/repositories.conf
|
||||
$(INSTALL_DIR) $(PKG_BUILD_DIR)/keys
|
||||
$(CP) -L $(STAGING_DIR_ROOT)/etc/opkg/keys/ $(PKG_BUILD_DIR)/
|
||||
$(CP) -L $(STAGING_DIR_ROOT)/usr/sbin/opkg-key $(PKG_BUILD_DIR)/scripts/
|
||||
endif
|
||||
|
||||
$(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
|
||||
if [ -d $(TOPDIR)/staging_dir/host/lib/grub ]; then \
|
||||
$(CP) $(TOPDIR)/staging_dir/host/lib/grub/ $(PKG_BUILD_DIR)/staging_dir/host/lib; \
|
||||
|
||||
@ -46,6 +46,7 @@ Building images:
|
||||
make image BIN_DIR="<path>" # alternative output directory for the images
|
||||
make image EXTRA_IMAGE_NAME="<string>" # Add this to the output image filename (sanitized)
|
||||
make image DISABLED_SERVICES="<svc1> [<svc2> [<svc3> ..]]" # Which services in /etc/init.d/ should be disabled
|
||||
make image ADD_LOCAL_KEY=1 # store locally generated signing key in built images
|
||||
|
||||
Print manifest:
|
||||
List "all" packages which get installed into the image.
|
||||
@ -64,8 +65,10 @@ help: FORCE
|
||||
# override variables from rules.mk
|
||||
PACKAGE_DIR:=$(TOPDIR)/packages
|
||||
LISTS_DIR:=$(subst $(space),/,$(patsubst %,..,$(subst /,$(space),$(TARGET_DIR))))$(DL_DIR)
|
||||
export OPKG_KEYS:=$(TOPDIR)/keys
|
||||
OPKG:=$(call opkg,$(TARGET_DIR)) \
|
||||
-f $(TOPDIR)/repositories.conf \
|
||||
--verify-program $(SCRIPT_DIR)/opkg-key \
|
||||
--cache $(DL_DIR) \
|
||||
--lists-dir $(LISTS_DIR)
|
||||
|
||||
@ -133,7 +136,9 @@ package_index: FORCE
|
||||
@echo Building package index... >&2
|
||||
@mkdir -p $(TMP_DIR) $(TARGET_DIR)/tmp
|
||||
(cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages && \
|
||||
gzip -9nc Packages > Packages.gz \
|
||||
gzip -9nc Packages > Packages.gz; \
|
||||
$(if $(CONFIG_SIGNATURE_CHECK), \
|
||||
$(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY)); \
|
||||
) >/dev/null 2>/dev/null
|
||||
$(OPKG) update >&2 || true
|
||||
|
||||
@ -165,9 +170,14 @@ prepare_rootfs: FORCE
|
||||
@echo Finalizing root filesystem...
|
||||
|
||||
$(CP) $(TARGET_DIR) $(TARGET_DIR_ORIG)
|
||||
$(if $(CONFIG_SIGNATURE_CHECK), \
|
||||
$(if $(ADD_LOCAL_KEY), \
|
||||
OPKG_KEYS=$(TARGET_DIR)/etc/opkg/keys/ \
|
||||
$(SCRIPT_DIR)/opkg-key add $(BUILD_KEY).pub \
|
||||
) \
|
||||
)
|
||||
$(call prepare_rootfs,$(TARGET_DIR),$(USER_FILES),$(DISABLED_SERVICES))
|
||||
|
||||
|
||||
build_image: FORCE
|
||||
@echo
|
||||
@echo Building images...
|
||||
@ -206,8 +216,26 @@ ifneq ($(PROFILE),)
|
||||
endif
|
||||
endif
|
||||
|
||||
_check_keys: FORCE
|
||||
ifneq ($(CONFIG_SIGNATURE_CHECK),)
|
||||
@if [ ! -s $(BUILD_KEY) -o ! -s $(BUILD_KEY).pub ]; then \
|
||||
echo Generate local signing keys... >&2; \
|
||||
$(STAGING_DIR_HOST)/bin/usign -G \
|
||||
-s $(BUILD_KEY) -p $(BUILD_KEY).pub -c "Local build key"; \
|
||||
$(SCRIPT_DIR)/opkg-key add $(BUILD_KEY).pub; \
|
||||
fi
|
||||
if [ ! -s $(BUILD_KEY).ucert ]; then \
|
||||
echo Generate local certificate... >&2; \
|
||||
$(STAGING_DIR_HOST)/bin/ucert -I \
|
||||
-c $(BUILD_KEY).ucert \
|
||||
-p $(BUILD_KEY).pub \
|
||||
-s $(BUILD_KEY); \
|
||||
fi
|
||||
endif
|
||||
|
||||
image:
|
||||
$(MAKE) -s _check_profile
|
||||
$(MAKE) -s _check_keys
|
||||
(unset PROFILE FILES PACKAGES MAKEFLAGS; \
|
||||
$(MAKE) -s _call_image \
|
||||
$(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \
|
||||
@ -218,6 +246,7 @@ image:
|
||||
|
||||
manifest: FORCE
|
||||
$(MAKE) -s _check_profile
|
||||
$(MAKE) -s _check_keys
|
||||
(unset PROFILE FILES PACKAGES MAKEFLAGS; \
|
||||
$(MAKE) -s _call_manifest \
|
||||
$(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \
|
||||
|
||||
38
target/linux/ath79/dts/ar9342_ubnt_nanobeam-ac-gen2.dts
Normal file
38
target/linux/ath79/dts/ar9342_ubnt_nanobeam-ac-gen2.dts
Normal file
@ -0,0 +1,38 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "ar9342_ubnt_wa_2port.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "ubnt,nanobeam-ac-gen2", "ubnt,wa", "qca,ar9342";
|
||||
model = "Ubiquiti NanoBeam AC Gen2 (WA)";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_rssi3;
|
||||
led-failsafe = &led_rssi3;
|
||||
led-upgrade = &led_rssi3;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
rssi0 {
|
||||
label = "blue:rssi0";
|
||||
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
rssi1 {
|
||||
label = "blue:rssi1";
|
||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
rssi2 {
|
||||
label = "blue:rssi2";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_rssi3: rssi3 {
|
||||
label = "blue:rssi3";
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
/ {
|
||||
compatible = "ubnt,nanobeam-ac", "ubnt,wa", "qca,ar9342";
|
||||
model = "Ubiquiti NanoBeam AC (WA)";
|
||||
model = "Ubiquiti NanoBeam AC Gen1 (WA)";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_rssi3;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
linux-code = "KEY_RESTART";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
87
target/linux/ath79/dts/qca9531_alfa-network_pi-wifi4.dts
Normal file
87
target/linux/ath79/dts/qca9531_alfa-network_pi-wifi4.dts
Normal file
@ -0,0 +1,87 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qca9531_alfa-network_r36a.dtsi"
|
||||
|
||||
/ {
|
||||
model = "ALFA Network Pi-WiFi4";
|
||||
compatible = "alfa-network,pi-wifi4", "qca,qca9531";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_usb;
|
||||
led-failsafe = &led_usb;
|
||||
led-upgrade = &led_usb;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&enable_gpio4 &enable_gpio16>;
|
||||
|
||||
lan_data {
|
||||
label = "orange:lan_data";
|
||||
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan_link {
|
||||
label = "green:lan_link";
|
||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_usb: usb {
|
||||
label = "green:usb";
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "usbport";
|
||||
trigger-sources = <&gl850g_port1>, <&gl850g_port2>,
|
||||
<&gl850g_port3>, <&gl850g_port4>;
|
||||
};
|
||||
|
||||
wlan {
|
||||
label = "blue:wlan";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
};
|
||||
|
||||
&gpio_export {
|
||||
usb-power {
|
||||
gpio-export,name = "usb-power";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&hub_port0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gl850g_port1: port@1 {
|
||||
reg = <1>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
|
||||
gl850g_port2: port@2 {
|
||||
reg = <2>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
|
||||
gl850g_port3: port@3 {
|
||||
reg = <3>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
|
||||
gl850g_port4: port@4 {
|
||||
reg = <4>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
};
|
||||
@ -50,7 +50,8 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
mtd-mac-address-increment = <(-2)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
@ -58,7 +59,8 @@
|
||||
* (GMAC0 -> eth0, GMAC1 -> eth1, same as in old ar71xx target) */
|
||||
compatible = "qca,qca9530-eth", "syscon", "simple-mfd";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&gpio_export {
|
||||
|
||||
@ -40,6 +40,10 @@ alfa-network,n5q)
|
||||
ucidef_set_led_rssi "signal3" "SIGNAL3" "green:signal3" "wlan0" "50" "100"
|
||||
ucidef_set_led_rssi "signal4" "SIGNAL4" "green:signal4" "wlan0" "75" "100"
|
||||
;;
|
||||
alfa-network,pi-wifi4)
|
||||
ucidef_set_led_netdev "lan_data" "LAN_DATA" "orange:lan_data" "eth0" "tx rx"
|
||||
ucidef_set_led_netdev "lan_link" "LAN_LINK" "green:lan_link" "eth0" "link"
|
||||
;;
|
||||
alfa-network,r36a)
|
||||
ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0"
|
||||
ucidef_set_led_switch "wan" "WAN" "blue:wan" "switch0" "0x10"
|
||||
@ -362,6 +366,7 @@ ubnt,rocket-m)
|
||||
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "76" "100"
|
||||
;;
|
||||
ubnt,nanobeam-ac|\
|
||||
ubnt,nanobeam-ac-gen2|\
|
||||
ubnt,nanostation-ac|\
|
||||
ubnt,powerbeam-5ac-gen2)
|
||||
ucidef_set_rssimon "wlan0" "200000" "1"
|
||||
|
||||
@ -13,6 +13,7 @@ ath79_setup_interfaces()
|
||||
adtran,bsap1840|\
|
||||
allnet,all-wap02860ac|\
|
||||
alfa-network,ap121f|\
|
||||
alfa-network,pi-wifi4|\
|
||||
arduino,yun|\
|
||||
aruba,ap-105|\
|
||||
avm,fritz1750e|\
|
||||
@ -249,6 +250,7 @@ ath79_setup_interfaces()
|
||||
qxwlan,e1700ac-v2-16m|\
|
||||
qxwlan,e750g-v8-8m|\
|
||||
qxwlan,e750g-v8-16m|\
|
||||
ubnt,nanobeam-ac-gen2|\
|
||||
ubnt,nanostation-ac|\
|
||||
yuncore,a782|\
|
||||
yuncore,xd4200)
|
||||
@ -417,6 +419,8 @@ ath79_setup_macs()
|
||||
alfa-network,ap121f|\
|
||||
alfa-network,ap121fe|\
|
||||
alfa-network,n2q|\
|
||||
alfa-network,n5q|\
|
||||
alfa-network,pi-wifi4|\
|
||||
alfa-network,r36a|\
|
||||
engenius,ens202ext-v1)
|
||||
label_mac=$(mtd_get_mac_binary art 0x1002)
|
||||
@ -583,6 +587,7 @@ ath79_setup_macs()
|
||||
label_mac=$wan_mac
|
||||
;;
|
||||
ubnt,litebeam-ac-gen2|\
|
||||
ubnt,nanobeam-ac-gen2|\
|
||||
ubnt,powerbeam-5ac-500|\
|
||||
ubnt,powerbeam-5ac-gen2)
|
||||
label_mac=$(mtd_get_mac_binary art 0x5006)
|
||||
|
||||
@ -76,6 +76,7 @@ tplink,wbs510-v2)
|
||||
ubnt,aircube-isp)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "11"
|
||||
;;
|
||||
ubnt,nanobeam-ac-gen2|\
|
||||
ubnt,nanostation-ac)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "3"
|
||||
;;
|
||||
|
||||
@ -33,6 +33,7 @@ case "$FIRMWARE" in
|
||||
ubnt,lap-120|\
|
||||
ubnt,litebeam-ac-gen2|\
|
||||
ubnt,nanobeam-ac|\
|
||||
ubnt,nanobeam-ac-gen2|\
|
||||
ubnt,nanostation-ac|\
|
||||
ubnt,nanostation-ac-loco|\
|
||||
ubnt,powerbeam-5ac-500|\
|
||||
@ -169,7 +170,13 @@ case "$FIRMWARE" in
|
||||
;;
|
||||
dlink,dir-842-c1|\
|
||||
dlink,dir-842-c2|\
|
||||
dlink,dir-842-c3|\
|
||||
dlink,dir-842-c3)
|
||||
caldata_extract "art" 0x5000 0x2f20
|
||||
caldata_valid "202f" || caldata_extract "reserved" 0x15000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
|
||||
;;
|
||||
nec,wg1200cr)
|
||||
caldata_extract "art" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
|
||||
|
||||
@ -190,10 +190,19 @@ TARGET_DEVICES += ubnt_litebeam-ac-gen2
|
||||
define Device/ubnt_nanobeam-ac
|
||||
$(Device/ubnt-wa)
|
||||
DEVICE_MODEL := NanoBeam AC
|
||||
DEVICE_VARIANT := Gen1
|
||||
DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct rssileds
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_nanobeam-ac
|
||||
|
||||
define Device/ubnt_nanobeam-ac-gen2
|
||||
$(Device/ubnt-wa)
|
||||
DEVICE_MODEL := NanoBeam AC
|
||||
DEVICE_VARIANT := Gen2
|
||||
DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct rssileds
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_nanobeam-ac-gen2
|
||||
|
||||
define Device/ubnt_nanobridge-m
|
||||
$(Device/ubnt-xm)
|
||||
SOC := ar7241
|
||||
|
||||
@ -284,6 +284,15 @@ define Device/alfa-network_n5q
|
||||
endef
|
||||
TARGET_DEVICES += alfa-network_n5q
|
||||
|
||||
define Device/alfa-network_pi-wifi4
|
||||
SOC := qca9531
|
||||
DEVICE_VENDOR := ALFA Network
|
||||
DEVICE_MODEL := Pi-WiFi4
|
||||
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport -swconfig
|
||||
IMAGE_SIZE := 15872k
|
||||
endef
|
||||
TARGET_DEVICES += alfa-network_pi-wifi4
|
||||
|
||||
define Device/alfa-network_r36a
|
||||
SOC := qca9531
|
||||
DEVICE_VENDOR := ALFA Network
|
||||
|
||||
@ -86,7 +86,14 @@ ifeq ($(SUBTARGET),bcm2708)
|
||||
endif
|
||||
|
||||
define Device/rpi-2
|
||||
DEVICE_MODEL := 2B/3B/3B+/3CM/4B
|
||||
DEVICE_MODEL := 2B/2B 1.2
|
||||
DEVICE_VARIANT := (32bit)
|
||||
DEVICE_ALT0_VENDOR := Raspberry Pi
|
||||
DEVICE_ALT0_MODEL := 3B/3B+/3CM
|
||||
DEVICE_ALT0_VARIANT := (32bit)
|
||||
DEVICE_ALT1_VENDOR := Raspberry Pi
|
||||
DEVICE_ALT1_MODEL := 4B
|
||||
DEVICE_ALT1_VARIANT := (32bit)
|
||||
DEVICE_DTS := \
|
||||
bcm2709-rpi-2-b bcm2710-rpi-2-b \
|
||||
bcm2710-rpi-3-b bcm2710-rpi-3-b-plus \
|
||||
@ -112,7 +119,11 @@ ifeq ($(SUBTARGET),bcm2709)
|
||||
endif
|
||||
|
||||
define Device/rpi-3
|
||||
DEVICE_MODEL := 2B-1.2/3B/3B+/3CM
|
||||
DEVICE_MODEL := 3B/3B+/3CM
|
||||
DEVICE_VARIANT := (64bit)
|
||||
DEVICE_ALT0_VENDOR := Raspberry Pi
|
||||
DEVICE_ALT0_MODEL := 2B-1.2
|
||||
DEVICE_ALT0_VARIANT := (64bit)
|
||||
KERNEL_IMG := kernel8.img
|
||||
DEVICE_DTS := \
|
||||
broadcom/bcm2710-rpi-2-b \
|
||||
@ -136,6 +147,7 @@ endif
|
||||
|
||||
define Device/rpi-4
|
||||
DEVICE_MODEL := 4B
|
||||
DEVICE_VARIANT := (64bit)
|
||||
KERNEL_IMG := kernel8.img
|
||||
DEVICE_DTS := broadcom/bcm2711-rpi-4-b
|
||||
SUPPORTED_DEVICES := \
|
||||
|
||||
@ -70,7 +70,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_drv.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
|
||||
@@ -345,6 +345,7 @@ static struct platform_driver *const com
|
||||
@@ -346,6 +346,7 @@ static struct platform_driver *const com
|
||||
&vc4_txp_driver,
|
||||
&vc4_hvs_driver,
|
||||
&vc4_crtc_driver,
|
||||
|
||||
@ -70,7 +70,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
}
|
||||
|
||||
static int bcm2835_spi_setup(struct spi_device *spi)
|
||||
@@ -1289,6 +1337,7 @@ static int bcm2835_spi_probe(struct plat
|
||||
@@ -1277,6 +1325,7 @@ static int bcm2835_spi_probe(struct plat
|
||||
ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
|
||||
ctlr->num_chipselect = BCM2835_SPI_NUM_CS;
|
||||
ctlr->setup = bcm2835_spi_setup;
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spi-bcm2835.c
|
||||
+++ b/drivers/spi/spi-bcm2835.c
|
||||
@@ -1279,43 +1279,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
@@ -1279,31 +1279,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -31,18 +31,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
- if (!chip)
|
||||
- return 0;
|
||||
-
|
||||
- /*
|
||||
- * Retrieve the corresponding GPIO line used for CS.
|
||||
- * The inversion semantics will be handled by the GPIO core
|
||||
- * code, so we pass GPIOS_OUT_LOW for "unasserted" and
|
||||
- * the correct flag for inversion semantics. The SPI_CS_HIGH
|
||||
- * on spi->mode cannot be checked for polarity in this case
|
||||
- * as the flag use_gpio_descriptors enforces SPI_CS_HIGH.
|
||||
- */
|
||||
- if (of_property_read_bool(spi->dev.of_node, "spi-cs-high"))
|
||||
- lflags = GPIO_ACTIVE_HIGH;
|
||||
- else
|
||||
- lflags = GPIO_ACTIVE_LOW;
|
||||
- spi->cs_gpiod = gpiochip_request_own_desc(chip, 8 - spi->chip_select,
|
||||
- DRV_NAME,
|
||||
- lflags,
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_drv.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
|
||||
@@ -368,6 +368,7 @@ static int vc4_platform_drm_remove(struc
|
||||
@@ -369,6 +369,7 @@ static int vc4_platform_drm_remove(struc
|
||||
}
|
||||
|
||||
static const struct of_device_id vc4_of_match[] = {
|
||||
|
||||
@ -187,16 +187,16 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
int err, i;
|
||||
|
||||
sfp = sfp_alloc(&pdev->dev);
|
||||
@@ -2183,7 +2253,7 @@ static int sfp_probe(struct platform_dev
|
||||
|
||||
@@ -2184,7 +2254,7 @@ static int sfp_probe(struct platform_dev
|
||||
sfp->gpio_irq[i] = gpiod_to_irq(sfp->gpio[i]);
|
||||
if (!sfp->gpio_irq[i]) {
|
||||
if (sfp->gpio_irq[i] < 0) {
|
||||
sfp->gpio_irq[i] = 0;
|
||||
- poll = true;
|
||||
+ sfp->need_poll = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2195,11 +2265,11 @@ static int sfp_probe(struct platform_dev
|
||||
@@ -2196,11 +2266,11 @@ static int sfp_probe(struct platform_dev
|
||||
dev_name(sfp->dev), sfp);
|
||||
if (err) {
|
||||
sfp->gpio_irq[i] = 0;
|
||||
|
||||
@ -3280,7 +3280,6 @@ CONFIG_MULTIUSER=y
|
||||
# CONFIG_MV643XX_ETH is not set
|
||||
# CONFIG_MVMDIO is not set
|
||||
# CONFIG_MVNETA_BM is not set
|
||||
# CONFIG_MVSW61XX_PHY is not set
|
||||
# CONFIG_MVSWITCH_PHY is not set
|
||||
# CONFIG_MV_XOR_V2 is not set
|
||||
# CONFIG_MWAVE is not set
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,309 +0,0 @@
|
||||
/*
|
||||
* Marvell 88E61xx switch driver
|
||||
*
|
||||
* Copyright (c) 2014 Claudio Leite <leitec@staticky.com>
|
||||
* Copyright (c) 2014 Nikita Nazarenko <nnazarenko@radiofid.com>
|
||||
*
|
||||
* Based on code (c) 2008 Felix Fietkau <nbd@nbd.name>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License v2 as published by the
|
||||
* Free Software Foundation
|
||||
*/
|
||||
|
||||
#ifndef __MVSW61XX_H
|
||||
#define __MVSW61XX_H
|
||||
|
||||
#define MV_PORTS 7
|
||||
#define MV_PORTS_MASK ((1 << MV_PORTS) - 1)
|
||||
|
||||
#define MV_BASE 0x10
|
||||
|
||||
#define MV_SWITCHPORT_BASE 0x10
|
||||
#define MV_SWITCHPORT(_n) (MV_SWITCHPORT_BASE + (_n))
|
||||
#define MV_SWITCHREGS (MV_BASE + 0xb)
|
||||
|
||||
#define MV_VLANS 64
|
||||
|
||||
enum {
|
||||
MV_PORT_STATUS = 0x00,
|
||||
MV_PORT_PHYCTL = 0x01,
|
||||
MV_PORT_JAMCTL = 0x02,
|
||||
MV_PORT_IDENT = 0x03,
|
||||
MV_PORT_CONTROL = 0x04,
|
||||
MV_PORT_CONTROL1 = 0x05,
|
||||
MV_PORT_VLANMAP = 0x06,
|
||||
MV_PORT_VLANID = 0x07,
|
||||
MV_PORT_CONTROL2 = 0x08,
|
||||
MV_PORT_ASSOC = 0x0b,
|
||||
MV_PORT_RX_DISCARD_LOW = 0x10,
|
||||
MV_PORT_RX_DISCARD_HIGH = 0x11,
|
||||
MV_PORT_IN_FILTERED = 0x12,
|
||||
MV_PORT_OUT_ACCEPTED = 0x13,
|
||||
};
|
||||
#define MV_PORTREG(_type, _port) MV_SWITCHPORT(_port), MV_PORT_##_type
|
||||
|
||||
enum {
|
||||
MV_PORT_STATUS_FDX = (1 << 10),
|
||||
MV_PORT_STATUS_LINK = (1 << 11),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_PORT_STATUS_CMODE_100BASE_X = 0x8,
|
||||
MV_PORT_STATUS_CMODE_1000BASE_X = 0x9,
|
||||
MV_PORT_STATUS_CMODE_SGMII = 0xa,
|
||||
};
|
||||
|
||||
#define MV_PORT_STATUS_CMODE_MASK 0xf
|
||||
|
||||
enum {
|
||||
MV_PORT_STATUS_SPEED_10 = 0x00,
|
||||
MV_PORT_STATUS_SPEED_100 = 0x01,
|
||||
MV_PORT_STATUS_SPEED_1000 = 0x02,
|
||||
};
|
||||
#define MV_PORT_STATUS_SPEED_SHIFT 8
|
||||
#define MV_PORT_STATUS_SPEED_MASK (3 << 8)
|
||||
|
||||
enum {
|
||||
MV_PORTCTRL_DISABLED = (0 << 0),
|
||||
MV_PORTCTRL_BLOCKING = (1 << 0),
|
||||
MV_PORTCTRL_LEARNING = (2 << 0),
|
||||
MV_PORTCTRL_FORWARDING = (3 << 0),
|
||||
MV_PORTCTRL_VLANTUN = (1 << 7),
|
||||
MV_PORTCTRL_EGRESS = (1 << 12),
|
||||
};
|
||||
|
||||
#define MV_PHYCTL_FC_MASK (3 << 6)
|
||||
|
||||
enum {
|
||||
MV_PHYCTL_FC_ENABLE = (3 << 6),
|
||||
MV_PHYCTL_FC_DISABLE = (1 << 6),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_8021Q_EGRESS_UNMODIFIED = 0x00,
|
||||
MV_8021Q_EGRESS_UNTAGGED = 0x01,
|
||||
MV_8021Q_EGRESS_TAGGED = 0x02,
|
||||
MV_8021Q_EGRESS_ADDTAG = 0x03,
|
||||
};
|
||||
|
||||
#define MV_8021Q_MODE_SHIFT 10
|
||||
#define MV_8021Q_MODE_MASK (0x3 << MV_8021Q_MODE_SHIFT)
|
||||
|
||||
enum {
|
||||
MV_8021Q_MODE_DISABLE = 0x00,
|
||||
MV_8021Q_MODE_FALLBACK = 0x01,
|
||||
MV_8021Q_MODE_CHECK = 0x02,
|
||||
MV_8021Q_MODE_SECURE = 0x03,
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_8021Q_VLAN_ONLY = (1 << 15),
|
||||
};
|
||||
|
||||
#define MV_PORTASSOC_MONITOR (1 << 15)
|
||||
|
||||
enum {
|
||||
MV_SWITCH_ATU_FID0 = 0x01,
|
||||
MV_SWITCH_ATU_FID1 = 0x02,
|
||||
MV_SWITCH_ATU_SID = 0x03,
|
||||
MV_SWITCH_CTRL = 0x04,
|
||||
MV_SWITCH_ATU_CTRL = 0x0a,
|
||||
MV_SWITCH_ATU_OP = 0x0b,
|
||||
MV_SWITCH_ATU_DATA = 0x0c,
|
||||
MV_SWITCH_ATU_MAC0 = 0x0d,
|
||||
MV_SWITCH_ATU_MAC1 = 0x0e,
|
||||
MV_SWITCH_ATU_MAC2 = 0x0f,
|
||||
MV_SWITCH_GLOBAL = 0x1b,
|
||||
MV_SWITCH_GLOBAL2 = 0x1c,
|
||||
};
|
||||
#define MV_SWITCHREG(_type) MV_SWITCHREGS, MV_SWITCH_##_type
|
||||
|
||||
enum {
|
||||
MV_SWITCHCTL_EEIE = (1 << 0),
|
||||
MV_SWITCHCTL_PHYIE = (1 << 1),
|
||||
MV_SWITCHCTL_ATUDONE = (1 << 2),
|
||||
MV_SWITCHCTL_ATUIE = (1 << 3),
|
||||
MV_SWITCHCTL_CTRMODE = (1 << 8),
|
||||
MV_SWITCHCTL_RELOAD = (1 << 9),
|
||||
MV_SWITCHCTL_MSIZE = (1 << 10),
|
||||
MV_SWITCHCTL_DROP = (1 << 13),
|
||||
};
|
||||
|
||||
enum {
|
||||
#define MV_ATUCTL_AGETIME_MIN 16
|
||||
#define MV_ATUCTL_AGETIME_MAX 4080
|
||||
#define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4)
|
||||
MV_ATUCTL_ATU_256 = (0 << 12),
|
||||
MV_ATUCTL_ATU_512 = (1 << 12),
|
||||
MV_ATUCTL_ATU_1K = (2 << 12),
|
||||
MV_ATUCTL_ATUMASK = (3 << 12),
|
||||
MV_ATUCTL_NO_LEARN = (1 << 14),
|
||||
MV_ATUCTL_RESET = (1 << 15),
|
||||
};
|
||||
|
||||
enum {
|
||||
#define MV_ATUOP_DBNUM(_n) ((_n) & 0x0f)
|
||||
MV_ATUOP_NOOP = (0 << 12),
|
||||
MV_ATUOP_FLUSH_ALL = (1 << 12),
|
||||
MV_ATUOP_FLUSH_U = (2 << 12),
|
||||
MV_ATUOP_LOAD_DB = (3 << 12),
|
||||
MV_ATUOP_GET_NEXT = (4 << 12),
|
||||
MV_ATUOP_FLUSH_DB = (5 << 12),
|
||||
MV_ATUOP_FLUSH_DB_UU = (6 << 12),
|
||||
MV_ATUOP_INPROGRESS = (1 << 15),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_GLOBAL_STATUS = 0x00,
|
||||
MV_GLOBAL_ATU_FID = 0x01,
|
||||
MV_GLOBAL_VTU_FID = 0x02,
|
||||
MV_GLOBAL_VTU_SID = 0x03,
|
||||
MV_GLOBAL_CONTROL = 0x04,
|
||||
MV_GLOBAL_VTU_OP = 0x05,
|
||||
MV_GLOBAL_VTU_VID = 0x06,
|
||||
MV_GLOBAL_VTU_DATA1 = 0x07,
|
||||
MV_GLOBAL_VTU_DATA2 = 0x08,
|
||||
MV_GLOBAL_VTU_DATA3 = 0x09,
|
||||
MV_GLOBAL_MONITOR_CTRL = 0x1a,
|
||||
MV_GLOBAL_CONTROL2 = 0x1c,
|
||||
};
|
||||
#define MV_GLOBALREG(_type) MV_SWITCH_GLOBAL, MV_GLOBAL_##_type
|
||||
|
||||
enum {
|
||||
MV_GLOBAL2_SMI_OP = 0x18,
|
||||
MV_GLOBAL2_SMI_DATA = 0x19,
|
||||
MV_GLOBAL2_SDET_POLARITY = 0x1d,
|
||||
};
|
||||
#define MV_GLOBAL2REG(_type) MV_SWITCH_GLOBAL2, MV_GLOBAL2_##_type
|
||||
|
||||
enum {
|
||||
MV_VTU_VID_VALID = (1 << 12),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_VTUOP_PURGE = (1 << 12),
|
||||
MV_VTUOP_LOAD = (3 << 12),
|
||||
MV_VTUOP_INPROGRESS = (1 << 15),
|
||||
MV_VTUOP_STULOAD = (5 << 12),
|
||||
MV_VTUOP_VTU_GET_NEXT = (4 << 12),
|
||||
MV_VTUOP_STU_GET_NEXT = (6 << 12),
|
||||
MV_VTUOP_GET_VIOLATION = (7 << 12),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_CONTROL_RESET = (1 << 15),
|
||||
MV_CONTROL_PPU_ENABLE = (1 << 14),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_VTUCTL_EGRESS_UNMODIFIED = (0 << 0),
|
||||
MV_VTUCTL_EGRESS_UNTAGGED = (1 << 0),
|
||||
MV_VTUCTL_EGRESS_TAGGED = (2 << 0),
|
||||
MV_VTUCTL_DISCARD = (3 << 0),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_STUCTL_STATE_DISABLED = (0 << 0),
|
||||
MV_STUCTL_STATE_BLOCKING = (1 << 0),
|
||||
MV_STUCTL_STATE_LEARNING = (2 << 0),
|
||||
MV_STUCTL_STATE_FORWARDING = (3 << 0),
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_INDIRECT_REG_CMD = 0,
|
||||
MV_INDIRECT_REG_DATA = 1,
|
||||
};
|
||||
|
||||
enum {
|
||||
MV_INDIRECT_INPROGRESS = 0x8000,
|
||||
MV_INDIRECT_WRITE = 0x9400,
|
||||
MV_INDIRECT_READ = 0x9800,
|
||||
};
|
||||
#define MV_INDIRECT_ADDR_S 5
|
||||
|
||||
#define MV_IDENT_MASK 0xfff0
|
||||
|
||||
#define MV_IDENT_VALUE_6171 0x1710
|
||||
#define MV_IDENT_STR_6171 "MV88E6171"
|
||||
|
||||
#define MV_IDENT_VALUE_6172 0x1720
|
||||
#define MV_IDENT_STR_6172 "MV88E6172"
|
||||
|
||||
#define MV_IDENT_VALUE_6176 0x1760
|
||||
#define MV_IDENT_STR_6176 "MV88E6176"
|
||||
|
||||
#define MV_IDENT_VALUE_6352 0x3520
|
||||
#define MV_IDENT_STR_6352 "MV88E6352"
|
||||
|
||||
#define MV_PVID_MASK 0x0fff
|
||||
|
||||
#define MV_FDB_HI_MASK 0x00ff
|
||||
#define MV_FDB_LO_MASK 0xf000
|
||||
#define MV_FDB_HI_SHIFT 4
|
||||
#define MV_FDB_LO_SHIFT 12
|
||||
|
||||
#define MV_MIRROR_RX_DEST_MASK 0xf000
|
||||
#define MV_MIRROR_TX_DEST_MASK 0x0f00
|
||||
#define MV_MIRROR_RX_DEST_SHIFT 12
|
||||
#define MV_MIRROR_TX_DEST_SHIFT 8
|
||||
|
||||
#define MV_MIRROR_RX_SRC_SHIFT 4
|
||||
#define MV_MIRROR_RX_SRC_MASK (1 << MV_MIRROR_RX_SRC_SHIFT)
|
||||
#define MV_MIRROR_TX_SRC_SHIFT 5
|
||||
#define MV_MIRROR_TX_SRC_MASK (1 << MV_MIRROR_TX_SRC_SHIFT)
|
||||
|
||||
/* Marvell Specific PHY register */
|
||||
#define MII_MV_SPEC_CTRL 16
|
||||
enum {
|
||||
MV_SPEC_MDI_CROSS_AUTO = (0x6 << 4),
|
||||
MV_SPEC_ENERGY_DETECT = (0x3 << 8),
|
||||
MV_SPEC_DOWNSHIFT_COUNTER = (0x3 << 12),
|
||||
};
|
||||
|
||||
#define MII_MV_PAGE 22
|
||||
|
||||
#define MV_REG_FIBER_SERDES 0xf
|
||||
#define MV_PAGE_FIBER_SERDES 0x1
|
||||
|
||||
struct mvsw61xx_state {
|
||||
struct switch_dev dev;
|
||||
struct mii_bus *bus;
|
||||
int base_addr;
|
||||
u16 model;
|
||||
|
||||
bool registered;
|
||||
bool is_indirect;
|
||||
|
||||
int cpu_port0;
|
||||
int cpu_port1;
|
||||
|
||||
int vlan_enabled;
|
||||
struct port_state {
|
||||
u16 fdb;
|
||||
u16 pvid;
|
||||
u16 mask;
|
||||
u8 qmode;
|
||||
} ports[MV_PORTS];
|
||||
|
||||
struct vlan_state {
|
||||
bool port_based;
|
||||
|
||||
u16 mask;
|
||||
u16 vid;
|
||||
u32 port_mode;
|
||||
u32 port_sstate;
|
||||
} vlans[MV_VLANS];
|
||||
|
||||
/* mirroring */
|
||||
bool mirror_rx;
|
||||
bool mirror_tx;
|
||||
int source_port;
|
||||
int monitor_port;
|
||||
|
||||
char buf[128];
|
||||
};
|
||||
|
||||
#define get_state(_dev) container_of((_dev), struct mvsw61xx_state, dev)
|
||||
|
||||
#endif
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -250,6 +250,89 @@ config LED_TRIGGER_PHY
|
||||
@@ -250,6 +250,85 @@ config LED_TRIGGER_PHY
|
||||
for any speed known to the PHY.
|
||||
|
||||
|
||||
@ -54,10 +54,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ tristate "Driver for Marvell 88E6060 switches"
|
||||
+ select ETHERNET_PACKET_MANGLE
|
||||
+
|
||||
+config MVSW61XX_PHY
|
||||
+ tristate "Driver for Marvell 88E6171/6172 switches"
|
||||
+ select SWCONFIG
|
||||
+
|
||||
+config PSB6970_PHY
|
||||
+ tristate "Lantiq XWAY Tantos (PSB6970) Ethernet switch"
|
||||
+ select SWCONFIG
|
||||
@ -104,7 +100,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
config SFP
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -22,6 +22,21 @@ libphy-$(CONFIG_LED_TRIGGER_PHY) += phy_
|
||||
@@ -22,6 +22,20 @@ libphy-$(CONFIG_LED_TRIGGER_PHY) += phy_
|
||||
obj-$(CONFIG_PHYLINK) += phylink.o
|
||||
obj-$(CONFIG_PHYLIB) += libphy.o
|
||||
|
||||
@ -114,7 +110,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+obj-$(CONFIG_SWCONFIG_B53) += b53/
|
||||
+obj-$(CONFIG_IP17XX_PHY) += ip17xx.o
|
||||
+obj-$(CONFIG_MVSWITCH_PHY) += mvswitch.o
|
||||
+obj-$(CONFIG_MVSW61XX_PHY) += mvsw61xx.o
|
||||
+obj-$(CONFIG_PSB6970_PHY) += psb6970.o
|
||||
+obj-$(CONFIG_RTL8306_PHY) += rtl8306.o
|
||||
+obj-$(CONFIG_RTL8366_SMI) += rtl8366_smi.o
|
||||
|
||||
@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -4884,6 +4884,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -4883,6 +4883,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
*/
|
||||
if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
|
||||
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
nor->params.set_4byte = winbond_set_4byte;
|
||||
}
|
||||
|
||||
@@ -4886,6 +4887,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -4885,6 +4886,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_MACRONIX ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_SST ||
|
||||
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
depends on OF && (ARM || ARM64 || COMPILE_TEST)
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -4464,6 +4464,7 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4463,6 +4463,7 @@ static void spi_nor_info_init_params(str
|
||||
struct spi_nor_erase_map *map = ¶ms->erase_map;
|
||||
const struct flash_info *info = nor->info;
|
||||
struct device_node *np = spi_nor_get_flash_node(nor);
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
u8 i, erase_mask;
|
||||
|
||||
/* Initialize legacy flash parameters and settings. */
|
||||
@@ -4527,6 +4528,21 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4526,6 +4527,21 @@ static void spi_nor_info_init_params(str
|
||||
*/
|
||||
erase_mask = 0;
|
||||
i = 0;
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (info->flags & SECT_4K_PMC) {
|
||||
erase_mask |= BIT(i);
|
||||
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
|
||||
@@ -4538,6 +4554,7 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4537,6 +4553,7 @@ static void spi_nor_info_init_params(str
|
||||
SPINOR_OP_BE_4K);
|
||||
i++;
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
|
||||
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
|
||||
return ret;
|
||||
}
|
||||
@@ -4726,9 +4768,13 @@ static int spi_nor_init(struct spi_nor *
|
||||
@@ -4725,9 +4767,13 @@ static int spi_nor_init(struct spi_nor *
|
||||
* reboots (e.g., crashes). Warn the user (or hopefully, system
|
||||
* designer) that this is bad.
|
||||
*/
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -2343,6 +2343,10 @@ static int sfp_remove(struct platform_de
|
||||
@@ -2344,6 +2344,10 @@ static int sfp_remove(struct platform_de
|
||||
|
||||
sfp_unregister_socket(sfp->sfp_bus);
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5907.dtsi
|
||||
@@ -0,0 +1,399 @@
|
||||
@@ -0,0 +1,398 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Copyright 2019 Gateworks Corporation
|
||||
@ -117,7 +117,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+ led1: user2 {
|
||||
+ label = "user2";
|
||||
+ gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
|
||||
@ -89,7 +89,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
@@ -0,0 +1,491 @@
|
||||
@@ -0,0 +1,489 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Copyright 2019 Gateworks Corporation
|
||||
@ -129,13 +129,11 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+ led1: user2 {
|
||||
+ label = "user2";
|
||||
+ gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+
|
||||
+ led2: user3 {
|
||||
+ label = "user3";
|
||||
+ gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* MX6_LOCLED# */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
|
||||
@ -84,7 +84,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5913.dtsi
|
||||
@@ -0,0 +1,348 @@
|
||||
@@ -0,0 +1,347 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Copyright 2019 Gateworks Corporation
|
||||
@ -121,7 +121,6 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+ led1: user2 {
|
||||
+ label = "user2";
|
||||
+ gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5912.dtsi
|
||||
@@ -0,0 +1,461 @@
|
||||
@@ -0,0 +1,459 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Copyright 2019 Gateworks Corporation
|
||||
@ -125,13 +125,11 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
+ led1: user2 {
|
||||
+ label = "user2";
|
||||
+ gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+
|
||||
+ led2: user3 {
|
||||
+ label = "user3";
|
||||
+ gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* MX6_LOCLED# */
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
@@ -220,6 +220,14 @@
|
||||
@@ -218,6 +218,14 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
/* Sterling-LWB Bluetooth */
|
||||
&uart4 {
|
||||
pinctrl-names = "default";
|
||||
@@ -411,6 +419,23 @@
|
||||
@@ -409,6 +417,23 @@
|
||||
>;
|
||||
};
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
@@ -83,19 +83,6 @@
|
||||
@@ -81,19 +81,6 @@
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
};
|
||||
|
||||
|
||||
@@ -231,9 +218,14 @@
|
||||
@@ -229,9 +216,14 @@
|
||||
/* Sterling-LWB Bluetooth */
|
||||
&uart4 {
|
||||
pinctrl-names = "default";
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
};
|
||||
|
||||
/* GPS */
|
||||
@@ -288,6 +280,12 @@
|
||||
@@ -286,6 +278,12 @@
|
||||
>;
|
||||
};
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
pinctrl_ecspi3: escpi3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
|
||||
@@ -393,12 +391,6 @@
|
||||
@@ -391,12 +389,6 @@
|
||||
>;
|
||||
};
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
+++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi
|
||||
@@ -81,7 +81,6 @@
|
||||
@@ -79,7 +79,6 @@
|
||||
enable-active-high;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
||||
};
|
||||
};
|
||||
|
||||
@@ -251,7 +250,7 @@
|
||||
@@ -249,7 +248,7 @@
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -581,6 +581,13 @@ config XILINX_GMII2RGMII
|
||||
@@ -577,6 +577,13 @@ config XILINX_GMII2RGMII
|
||||
the Reduced Gigabit Media Independent Interface(RGMII) between
|
||||
Ethernet physical media devices and the Gigabit Ethernet controller.
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
config MICREL_KS8995MA
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -51,6 +51,7 @@ obj-$(CONFIG_MDIO_CAVIUM) += mdio-cavium
|
||||
@@ -50,6 +50,7 @@ obj-$(CONFIG_MDIO_CAVIUM) += mdio-cavium
|
||||
obj-$(CONFIG_MDIO_GPIO) += mdio-gpio.o
|
||||
obj-$(CONFIG_MDIO_HISI_FEMAC) += mdio-hisi-femac.o
|
||||
obj-$(CONFIG_MDIO_I2C) += mdio-i2c.o
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -588,6 +588,13 @@ config MDIO_IPQ40XX
|
||||
@@ -584,6 +584,13 @@ config MDIO_IPQ40XX
|
||||
This driver supports the MDIO interface found in Qualcomm
|
||||
Atheros ipq40xx Soc chip.
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
config MICREL_KS8995MA
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -70,6 +70,7 @@ ifdef CONFIG_HWMON
|
||||
@@ -69,6 +69,7 @@ ifdef CONFIG_HWMON
|
||||
aquantia-objs += aquantia_hwmon.o
|
||||
endif
|
||||
obj-$(CONFIG_AQUANTIA_PHY) += aquantia.o
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
+ a specific device.
|
||||
--- a/drivers/base/core.c
|
||||
+++ b/drivers/base/core.c
|
||||
@@ -1320,6 +1320,34 @@ static ssize_t online_store(struct devic
|
||||
@@ -1318,6 +1318,34 @@ static ssize_t online_store(struct devic
|
||||
}
|
||||
static DEVICE_ATTR_RW(online);
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
int device_add_groups(struct device *dev, const struct attribute_group **groups)
|
||||
{
|
||||
return sysfs_create_groups(&dev->kobj, groups);
|
||||
@@ -1491,8 +1519,20 @@ static int device_add_attrs(struct devic
|
||||
@@ -1489,8 +1517,20 @@ static int device_add_attrs(struct devic
|
||||
goto err_remove_dev_groups;
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
err_remove_dev_groups:
|
||||
device_remove_groups(dev, dev->groups);
|
||||
err_remove_type_groups:
|
||||
@@ -1510,6 +1550,8 @@ static void device_remove_attrs(struct d
|
||||
@@ -1508,6 +1548,8 @@ static void device_remove_attrs(struct d
|
||||
struct class *class = dev->class;
|
||||
const struct device_type *type = dev->type;
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
#include <linux/serial_core.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/tty_flip.h>
|
||||
@@ -2367,6 +2369,54 @@ static struct uart_driver lpuart_reg = {
|
||||
@@ -2391,6 +2393,54 @@ static struct uart_driver lpuart_reg = {
|
||||
.cons = LPUART_CONSOLE,
|
||||
};
|
||||
|
||||
@ -82,7 +82,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
static int lpuart_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct of_device_id *of_id = of_match_device(lpuart_dt_ids,
|
||||
@@ -2404,6 +2454,10 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2428,6 +2478,10 @@ static int lpuart_probe(struct platform_
|
||||
|
||||
sport->port.rs485_config = lpuart_config_rs485;
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
#include <linux/serial_core.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/tty_flip.h>
|
||||
@@ -1542,8 +1543,17 @@ static void lpuart32_configure(struct lp
|
||||
@@ -1555,8 +1556,17 @@ static void lpuart32_configure(struct lp
|
||||
static int lpuart32_startup(struct uart_port *port)
|
||||
{
|
||||
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
|
||||
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -918,7 +918,12 @@ static void lpuart32_rxint(struct lpuart
|
||||
@@ -931,7 +931,12 @@ static void lpuart32_rxint(struct lpuart
|
||||
*/
|
||||
sr = lpuart32_read(&sport->port, UARTSTAT);
|
||||
rx = lpuart32_read(&sport->port, UARTDATA);
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Adriana Reus <adriana.reus@nxp.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -2452,7 +2452,7 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2476,7 +2476,7 @@ static int lpuart_probe(struct platform_
|
||||
return PTR_ERR(sport->port.membase);
|
||||
|
||||
sport->port.membase += sdata->reg_off;
|
||||
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
/* Rx DMA timeout in ms, which is used to calculate Rx ring buffer size */
|
||||
#define DMA_RX_TIMEOUT (10)
|
||||
|
||||
@@ -253,6 +260,9 @@ struct lpuart_port {
|
||||
@@ -254,6 +261,9 @@ struct lpuart_port {
|
||||
unsigned int txfifo_size;
|
||||
unsigned int rxfifo_size;
|
||||
|
||||
@ -70,7 +70,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
bool lpuart_dma_tx_use;
|
||||
bool lpuart_dma_rx_use;
|
||||
struct dma_chan *dma_tx_chan;
|
||||
@@ -278,28 +288,38 @@ struct lpuart_soc_data {
|
||||
@@ -279,33 +289,45 @@ struct lpuart_soc_data {
|
||||
enum lpuart_type devtype;
|
||||
char iotype;
|
||||
u8 reg_off;
|
||||
@ -85,13 +85,20 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
+ .rx_dma_cyclic = true,
|
||||
};
|
||||
|
||||
static const struct lpuart_soc_data ls_data = {
|
||||
static const struct lpuart_soc_data ls1021a_data = {
|
||||
.devtype = LS1021A_LPUART,
|
||||
.iotype = UPIO_MEM32BE,
|
||||
+ .rx_watermark = 0,
|
||||
+ .rx_dma_cyclic = true,
|
||||
};
|
||||
|
||||
static const struct lpuart_soc_data ls1028a_data = {
|
||||
.devtype = LS1028A_LPUART,
|
||||
.iotype = UPIO_MEM32,
|
||||
+ .rx_watermark = 0,
|
||||
+ .rx_dma_cyclic = true,
|
||||
};
|
||||
|
||||
static struct lpuart_soc_data imx7ulp_data = {
|
||||
.devtype = IMX7ULP_LPUART,
|
||||
.iotype = UPIO_MEM32,
|
||||
@ -109,15 +116,15 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
};
|
||||
|
||||
static const struct of_device_id lpuart_dt_ids[] = {
|
||||
@@ -313,6 +333,7 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids);
|
||||
@@ -320,6 +342,7 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids);
|
||||
|
||||
/* Forward declare this for the dma callbacks*/
|
||||
static void lpuart_dma_tx_complete(void *arg);
|
||||
+static int lpuart_sched_rx_dma(struct lpuart_port *sport);
|
||||
|
||||
static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport)
|
||||
static inline bool is_layerscape_lpuart(struct lpuart_port *sport)
|
||||
{
|
||||
@@ -998,19 +1019,15 @@ static irqreturn_t lpuart32_int(int irq,
|
||||
@@ -1011,19 +1034,15 @@ static irqreturn_t lpuart32_int(int irq,
|
||||
if ((sts & UARTSTAT_TDRE) && !sport->lpuart_dma_tx_use)
|
||||
lpuart32_txint(sport);
|
||||
|
||||
@ -141,7 +148,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
if (lpuart_is_32(sport)) {
|
||||
unsigned long sr = lpuart32_read(&sport->port, UARTSTAT);
|
||||
|
||||
@@ -1062,8 +1079,21 @@ static void lpuart_copy_rx_to_tty(struct
|
||||
@@ -1075,8 +1094,21 @@ static void lpuart_copy_rx_to_tty(struct
|
||||
writeb(cr2, sport->port.membase + UARTCR2);
|
||||
}
|
||||
}
|
||||
@ -164,7 +171,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
spin_lock_irqsave(&sport->port.lock, flags);
|
||||
|
||||
@@ -1126,7 +1156,33 @@ static void lpuart_copy_rx_to_tty(struct
|
||||
@@ -1139,7 +1171,33 @@ static void lpuart_copy_rx_to_tty(struct
|
||||
spin_unlock_irqrestore(&sport->port.lock, flags);
|
||||
|
||||
tty_flip_buffer_push(port);
|
||||
@ -199,7 +206,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
}
|
||||
|
||||
static void lpuart_dma_rx_complete(void *arg)
|
||||
@@ -1134,6 +1190,8 @@ static void lpuart_dma_rx_complete(void
|
||||
@@ -1147,6 +1205,8 @@ static void lpuart_dma_rx_complete(void
|
||||
struct lpuart_port *sport = arg;
|
||||
|
||||
lpuart_copy_rx_to_tty(sport);
|
||||
@ -208,7 +215,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
}
|
||||
|
||||
static void lpuart_timer_func(struct timer_list *t)
|
||||
@@ -1141,13 +1199,78 @@ static void lpuart_timer_func(struct tim
|
||||
@@ -1154,13 +1214,78 @@ static void lpuart_timer_func(struct tim
|
||||
struct lpuart_port *sport = from_timer(sport, t, lpuart_timer);
|
||||
|
||||
lpuart_copy_rx_to_tty(sport);
|
||||
@ -291,7 +298,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
int bits, baud;
|
||||
struct tty_port *port = &sport->port.state->port;
|
||||
struct tty_struct *tty = port->tty;
|
||||
@@ -1167,6 +1290,18 @@ static inline int lpuart_start_rx_dma(st
|
||||
@@ -1180,6 +1305,18 @@ static inline int lpuart_start_rx_dma(st
|
||||
sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 1));
|
||||
if (sport->rx_dma_rng_buf_len < 16)
|
||||
sport->rx_dma_rng_buf_len = 16;
|
||||
@ -310,7 +317,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
ring->buf = kzalloc(sport->rx_dma_rng_buf_len, GFP_ATOMIC);
|
||||
if (!ring->buf)
|
||||
@@ -1192,32 +1327,7 @@ static inline int lpuart_start_rx_dma(st
|
||||
@@ -1205,32 +1342,7 @@ static inline int lpuart_start_rx_dma(st
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -344,7 +351,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
}
|
||||
|
||||
static void lpuart_dma_rx_free(struct uart_port *port)
|
||||
@@ -1403,8 +1513,10 @@ static void lpuart_setup_watermark(struc
|
||||
@@ -1416,8 +1528,10 @@ static void lpuart_setup_watermark(struc
|
||||
writeb(UARTSFIFO_RXUF, sport->port.membase + UARTSFIFO);
|
||||
}
|
||||
|
||||
@ -356,7 +363,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
/* Restore cr2 */
|
||||
writeb(cr2_saved, sport->port.membase + UARTCR2);
|
||||
@@ -1425,6 +1537,7 @@ static void lpuart32_setup_watermark(str
|
||||
@@ -1438,6 +1552,7 @@ static void lpuart32_setup_watermark(str
|
||||
{
|
||||
unsigned long val, ctrl;
|
||||
unsigned long ctrl_saved;
|
||||
@ -364,7 +371,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
ctrl = lpuart32_read(&sport->port, UARTCTRL);
|
||||
ctrl_saved = ctrl;
|
||||
@@ -1436,12 +1549,26 @@ static void lpuart32_setup_watermark(str
|
||||
@@ -1449,12 +1564,26 @@ static void lpuart32_setup_watermark(str
|
||||
val = lpuart32_read(&sport->port, UARTFIFO);
|
||||
val |= UARTFIFO_TXFE | UARTFIFO_RXFE;
|
||||
val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH;
|
||||
@ -392,7 +399,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
/* Restore cr2 */
|
||||
lpuart32_write(&sport->port, ctrl_saved, UARTCTRL);
|
||||
}
|
||||
@@ -1453,17 +1580,29 @@ static void lpuart32_setup_watermark_ena
|
||||
@@ -1466,17 +1595,29 @@ static void lpuart32_setup_watermark_ena
|
||||
lpuart32_setup_watermark(sport);
|
||||
|
||||
temp = lpuart32_read(&sport->port, UARTCTRL);
|
||||
@ -423,7 +430,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
static void lpuart_tx_dma_startup(struct lpuart_port *sport)
|
||||
{
|
||||
u32 uartbaud;
|
||||
@@ -1527,19 +1666,23 @@ static int lpuart_startup(struct uart_po
|
||||
@@ -1540,19 +1681,23 @@ static int lpuart_startup(struct uart_po
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -454,7 +461,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
if (!sport->lpuart_dma_tx_use)
|
||||
temp |= UARTCTRL_TIE;
|
||||
lpuart32_write(&sport->port, temp, UARTCTRL);
|
||||
@@ -1572,12 +1715,12 @@ static int lpuart32_startup(struct uart_
|
||||
@@ -1596,12 +1741,12 @@ static int lpuart32_startup(struct uart_
|
||||
|
||||
spin_lock_irqsave(&sport->port.lock, flags);
|
||||
|
||||
@ -469,7 +476,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
lpuart32_configure(sport);
|
||||
|
||||
spin_unlock_irqrestore(&sport->port.lock, flags);
|
||||
@@ -1587,7 +1730,7 @@ static int lpuart32_startup(struct uart_
|
||||
@@ -1611,7 +1756,7 @@ static int lpuart32_startup(struct uart_
|
||||
static void lpuart_dma_shutdown(struct lpuart_port *sport)
|
||||
{
|
||||
if (sport->lpuart_dma_rx_use) {
|
||||
@ -478,7 +485,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
lpuart_dma_rx_free(&sport->port);
|
||||
}
|
||||
|
||||
@@ -1628,11 +1771,22 @@ static void lpuart32_shutdown(struct uar
|
||||
@@ -1652,11 +1797,22 @@ static void lpuart32_shutdown(struct uar
|
||||
|
||||
spin_lock_irqsave(&port->lock, flags);
|
||||
|
||||
@ -503,7 +510,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
spin_unlock_irqrestore(&port->lock, flags);
|
||||
|
||||
@@ -1729,10 +1883,10 @@ lpuart_set_termios(struct uart_port *por
|
||||
@@ -1753,10 +1909,10 @@ lpuart_set_termios(struct uart_port *por
|
||||
* baud rate and restart Rx DMA path.
|
||||
*
|
||||
* Since timer function acqures sport->port.lock, need to stop before
|
||||
@ -516,7 +523,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
lpuart_dma_rx_free(&sport->port);
|
||||
}
|
||||
|
||||
@@ -1944,10 +2098,10 @@ lpuart32_set_termios(struct uart_port *p
|
||||
@@ -1968,10 +2124,10 @@ lpuart32_set_termios(struct uart_port *p
|
||||
* baud rate and restart Rx DMA path.
|
||||
*
|
||||
* Since timer function acqures sport->port.lock, need to stop before
|
||||
@ -529,7 +536,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
lpuart_dma_rx_free(&sport->port);
|
||||
}
|
||||
|
||||
@@ -2456,6 +2610,10 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2480,6 +2636,10 @@ static int lpuart_probe(struct platform_
|
||||
sport->port.dev = &pdev->dev;
|
||||
sport->port.type = PORT_LPUART;
|
||||
sport->devtype = sdata->devtype;
|
||||
@ -540,7 +547,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
ret = platform_get_irq(pdev, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@@ -2618,7 +2776,7 @@ static int lpuart_suspend(struct device
|
||||
@@ -2642,7 +2802,7 @@ static int lpuart_suspend(struct device
|
||||
* Rx DMA path before suspend and start Rx DMA path on resume.
|
||||
*/
|
||||
if (irq_wake) {
|
||||
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -1462,6 +1462,14 @@ static void lpuart32_set_mctrl(struct ua
|
||||
@@ -1477,6 +1477,14 @@ static void lpuart32_set_mctrl(struct ua
|
||||
temp |= UARTMODIR_TXCTSE;
|
||||
|
||||
lpuart32_write(port, temp, UARTMODIR);
|
||||
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -490,6 +490,10 @@ static void lpuart_dma_tx_complete(void
|
||||
@@ -505,6 +505,10 @@ static void lpuart_dma_tx_complete(void
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&sport->port.lock, flags);
|
||||
|
||||
@ -59,9 +59,9 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
||||
#define UARTFIFO_RXIDEN_RDRF 0x3
|
||||
#define UARTCTRL_IDLECFG 0x7
|
||||
|
||||
@@ -335,6 +345,11 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids);
|
||||
static void lpuart_dma_tx_complete(void *arg);
|
||||
static int lpuart_sched_rx_dma(struct lpuart_port *sport);
|
||||
@@ -350,6 +360,11 @@ static inline bool is_layerscape_lpuart(
|
||||
sport->devtype == LS1028A_LPUART);
|
||||
}
|
||||
|
||||
+static inline bool is_imx7ulp_lpuart(struct lpuart_port *sport)
|
||||
+{
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
||||
static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport)
|
||||
{
|
||||
return sport->devtype == IMX8QXP_LPUART;
|
||||
@@ -398,6 +413,33 @@ static unsigned int lpuart_get_baud_clk_
|
||||
@@ -413,6 +428,33 @@ static unsigned int lpuart_get_baud_clk_
|
||||
#define lpuart_enable_clks(x) __lpuart_enable_clks(x, true)
|
||||
#define lpuart_disable_clks(x) __lpuart_enable_clks(x, false)
|
||||
|
||||
@ -105,7 +105,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
||||
static void lpuart_stop_tx(struct uart_port *port)
|
||||
{
|
||||
unsigned char temp;
|
||||
@@ -2702,6 +2744,10 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2728,6 +2770,10 @@ static int lpuart_probe(struct platform_
|
||||
if (ret)
|
||||
goto failed_attach_port;
|
||||
|
||||
@ -116,7 +116,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
||||
uart_get_rs485_mode(&pdev->dev, &sport->port.rs485);
|
||||
|
||||
if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX)
|
||||
@@ -2725,6 +2771,8 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2751,6 +2797,8 @@ static int lpuart_probe(struct platform_
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
|
||||
#define DRIVER_NAME "fsl-lpuart"
|
||||
#define DEV_NAME "ttyLP"
|
||||
@@ -844,6 +845,20 @@ static void lpuart32_start_tx(struct uar
|
||||
@@ -859,6 +860,20 @@ static void lpuart32_start_tx(struct uar
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
/* return TIOCSER_TEMT when transmitter is not busy */
|
||||
static unsigned int lpuart_tx_empty(struct uart_port *port)
|
||||
{
|
||||
@@ -2257,6 +2272,7 @@ static const struct uart_ops lpuart_pops
|
||||
@@ -2283,6 +2298,7 @@ static const struct uart_ops lpuart_pops
|
||||
.break_ctl = lpuart_break_ctl,
|
||||
.startup = lpuart_startup,
|
||||
.shutdown = lpuart_shutdown,
|
||||
@ -51,7 +51,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
.set_termios = lpuart_set_termios,
|
||||
.type = lpuart_type,
|
||||
.request_port = lpuart_request_port,
|
||||
@@ -2281,6 +2297,7 @@ static const struct uart_ops lpuart32_po
|
||||
@@ -2307,6 +2323,7 @@ static const struct uart_ops lpuart32_po
|
||||
.break_ctl = lpuart32_break_ctl,
|
||||
.startup = lpuart32_startup,
|
||||
.shutdown = lpuart32_shutdown,
|
||||
@ -59,7 +59,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
.set_termios = lpuart32_set_termios,
|
||||
.type = lpuart_type,
|
||||
.request_port = lpuart_request_port,
|
||||
@@ -2740,6 +2757,11 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2766,6 +2783,11 @@ static int lpuart_probe(struct platform_
|
||||
if (ret)
|
||||
goto failed_irq_request;
|
||||
|
||||
@ -71,7 +71,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
ret = uart_add_one_port(&lpuart_reg, &sport->port);
|
||||
if (ret)
|
||||
goto failed_attach_port;
|
||||
@@ -2774,6 +2796,9 @@ static int lpuart_probe(struct platform_
|
||||
@@ -2800,6 +2822,9 @@ static int lpuart_probe(struct platform_
|
||||
failed_reset:
|
||||
uart_remove_one_port(&lpuart_reg, &sport->port);
|
||||
failed_attach_port:
|
||||
@ -81,7 +81,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
failed_irq_request:
|
||||
lpuart_disable_clks(sport);
|
||||
failed_clock_enable:
|
||||
@@ -2800,15 +2825,41 @@ static int lpuart_remove(struct platform
|
||||
@@ -2826,15 +2851,41 @@ static int lpuart_remove(struct platform
|
||||
if (sport->dma_rx_chan)
|
||||
dma_release_channel(sport->dma_rx_chan);
|
||||
|
||||
@ -123,7 +123,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
|
||||
if (lpuart_is_32(sport)) {
|
||||
/* disable Rx/Tx and interrupts */
|
||||
@@ -2822,10 +2873,14 @@ static int lpuart_suspend(struct device
|
||||
@@ -2848,10 +2899,14 @@ static int lpuart_suspend(struct device
|
||||
writeb(temp, sport->port.membase + UARTCR2);
|
||||
}
|
||||
|
||||
@ -138,7 +138,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
|
||||
if (sport->lpuart_dma_rx_use) {
|
||||
/*
|
||||
@@ -2856,9 +2911,6 @@ static int lpuart_suspend(struct device
|
||||
@@ -2882,9 +2937,6 @@ static int lpuart_suspend(struct device
|
||||
dmaengine_terminate_all(sport->dma_tx_chan);
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2866,9 +2918,11 @@ static int lpuart_resume(struct device *
|
||||
@@ -2892,9 +2944,11 @@ static int lpuart_resume(struct device *
|
||||
{
|
||||
struct lpuart_port *sport = dev_get_drvdata(dev);
|
||||
bool irq_wake = irqd_is_wakeup_set(irq_get_irq_data(sport->port.irq));
|
||||
@ -162,7 +162,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
|
||||
if (lpuart_is_32(sport))
|
||||
lpuart32_setup_watermark_enable(sport);
|
||||
@@ -2889,13 +2943,23 @@ static int lpuart_resume(struct device *
|
||||
@@ -2915,13 +2969,23 @@ static int lpuart_resume(struct device *
|
||||
if (lpuart_is_32(sport))
|
||||
lpuart32_configure(sport);
|
||||
|
||||
@ -188,7 +188,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
|
||||
|
||||
static struct platform_driver lpuart_driver = {
|
||||
.probe = lpuart_probe,
|
||||
@@ -2903,7 +2967,7 @@ static struct platform_driver lpuart_dri
|
||||
@@ -2929,7 +2993,7 @@ static struct platform_driver lpuart_dri
|
||||
.driver = {
|
||||
.name = "fsl-lpuart",
|
||||
.of_match_table = lpuart_dt_ids,
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
#include <linux/pm_domain.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/reset.h>
|
||||
@@ -1707,10 +1708,23 @@ static void lpuart_rx_dma_startup(struct
|
||||
@@ -1722,10 +1723,23 @@ static void lpuart_rx_dma_startup(struct
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
unsigned char temp;
|
||||
|
||||
/* determine FIFO size and enable FIFO mode */
|
||||
@@ -1723,14 +1737,7 @@ static int lpuart_startup(struct uart_po
|
||||
@@ -1738,14 +1752,7 @@ static int lpuart_startup(struct uart_po
|
||||
sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_RXSIZE_OFF) &
|
||||
UARTPFIFO_FIFOSIZE_MASK);
|
||||
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1757,11 +1764,27 @@ static void lpuart32_configure(struct lp
|
||||
@@ -1772,11 +1779,27 @@ static void lpuart32_configure(struct lp
|
||||
lpuart32_write(&sport->port, temp, UARTCTRL);
|
||||
}
|
||||
|
||||
@ -98,9 +98,9 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
unsigned long temp;
|
||||
int ret;
|
||||
|
||||
@@ -1782,17 +1805,8 @@ static int lpuart32_startup(struct uart_
|
||||
sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_RXSIZE_OFF) &
|
||||
UARTFIFO_FIFOSIZE_MASK);
|
||||
@@ -1808,17 +1831,8 @@ static int lpuart32_startup(struct uart_
|
||||
sport->port.fifosize = sport->txfifo_size;
|
||||
}
|
||||
|
||||
- spin_lock_irqsave(&sport->port.lock, flags);
|
||||
-
|
||||
@ -117,7 +117,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2850,108 +2864,205 @@ static int lpuart_runtime_resume(struct
|
||||
@@ -2876,108 +2890,205 @@ static int lpuart_runtime_resume(struct
|
||||
return lpuart_enable_clks(sport);
|
||||
};
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -2109,11 +2109,12 @@ lpuart32_set_termios(struct uart_port *p
|
||||
@@ -2135,11 +2135,12 @@ lpuart32_set_termios(struct uart_port *p
|
||||
{
|
||||
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
|
||||
unsigned long flags;
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
modem = lpuart32_read(&sport->port, UARTMODIR);
|
||||
/*
|
||||
* only support CS8 and CS7, and for CS7 must enable PE.
|
||||
@@ -2150,7 +2151,9 @@ lpuart32_set_termios(struct uart_port *p
|
||||
@@ -2176,7 +2177,9 @@ lpuart32_set_termios(struct uart_port *p
|
||||
}
|
||||
|
||||
if (termios->c_cflag & CSTOPB)
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
|
||||
/* parity must be enabled when CS7 to match 8-bits format */
|
||||
if ((termios->c_cflag & CSIZE) == CS7)
|
||||
@@ -2220,6 +2223,7 @@ lpuart32_set_termios(struct uart_port *p
|
||||
@@ -2246,6 +2249,7 @@ lpuart32_set_termios(struct uart_port *p
|
||||
lpuart32_write(&sport->port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE),
|
||||
UARTCTRL);
|
||||
|
||||
|
||||
@ -1,68 +0,0 @@
|
||||
From 932dac0380bbf7276d4111c35674679bc9ad6384 Mon Sep 17 00:00:00 2001
|
||||
From: Vabhav Sharma <vabhav.sharma@nxp.com>
|
||||
Date: Thu, 31 Oct 2019 19:20:47 +0530
|
||||
Subject: [PATCH] tty: serial: lpuart: add LS1028A support
|
||||
|
||||
NXP LS1028A lpuart is the same IP as LS1021A, but it is
|
||||
little endian for register accessing instead of big endian
|
||||
on LS1021A.
|
||||
|
||||
So add LS1028A matching data to distiguish the chips.
|
||||
|
||||
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
|
||||
Acked-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
---
|
||||
drivers/tty/serial/fsl_lpuart.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -3,6 +3,7 @@
|
||||
* Freescale lpuart serial port driver
|
||||
*
|
||||
* Copyright 2012-2014 Freescale Semiconductor, Inc.
|
||||
+ * Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_SERIAL_FSL_LPUART_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
|
||||
@@ -260,6 +261,7 @@ static DEFINE_IDA(fsl_lpuart_ida);
|
||||
enum lpuart_type {
|
||||
VF610_LPUART,
|
||||
LS1021A_LPUART,
|
||||
+ LS1028A_LPUART,
|
||||
IMX7ULP_LPUART,
|
||||
IMX8QXP_LPUART,
|
||||
};
|
||||
@@ -311,13 +313,20 @@ static const struct lpuart_soc_data vf_d
|
||||
.rx_dma_cyclic = true,
|
||||
};
|
||||
|
||||
-static const struct lpuart_soc_data ls_data = {
|
||||
+static const struct lpuart_soc_data ls1021a_data = {
|
||||
.devtype = LS1021A_LPUART,
|
||||
.iotype = UPIO_MEM32BE,
|
||||
.rx_watermark = 0,
|
||||
.rx_dma_cyclic = true,
|
||||
};
|
||||
|
||||
+static const struct lpuart_soc_data ls1028a_data = {
|
||||
+ .devtype = LS1028A_LPUART,
|
||||
+ .iotype = UPIO_MEM32,
|
||||
+ .rx_watermark = 0,
|
||||
+ .rx_dma_cyclic = true,
|
||||
+};
|
||||
+
|
||||
static struct lpuart_soc_data imx7ulp_data = {
|
||||
.devtype = IMX7ULP_LPUART,
|
||||
.iotype = UPIO_MEM32,
|
||||
@@ -336,7 +345,8 @@ static struct lpuart_soc_data imx8qxp_da
|
||||
|
||||
static const struct of_device_id lpuart_dt_ids[] = {
|
||||
{ .compatible = "fsl,vf610-lpuart", .data = &vf_data, },
|
||||
- { .compatible = "fsl,ls1021a-lpuart", .data = &ls_data, },
|
||||
+ { .compatible = "fsl,ls1021a-lpuart", .data = &ls1021a_data, },
|
||||
+ { .compatible = "fsl,ls1028a-lpuart", .data = &ls1028a_data, },
|
||||
{ .compatible = "fsl,imx7ulp-lpuart", .data = &imx7ulp_data, },
|
||||
{ .compatible = "fsl,imx8qxp-lpuart", .data = &imx8qxp_data, },
|
||||
{ /* sentinel */ }
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Peng Fan <peng.fan@nxp.com>
|
||||
|
||||
--- a/drivers/tty/serial/fsl_lpuart.c
|
||||
+++ b/drivers/tty/serial/fsl_lpuart.c
|
||||
@@ -2598,7 +2598,9 @@ static int __init lpuart32_early_console
|
||||
@@ -2614,7 +2614,9 @@ static int __init lpuart32_early_console
|
||||
if (!device->port.membase)
|
||||
return -ENODEV;
|
||||
|
||||
|
||||
@ -59,13 +59,11 @@
|
||||
green {
|
||||
label = "bpi-r64:pio:green";
|
||||
gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
red {
|
||||
label = "bpi-r64:pio:red";
|
||||
gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
@ -258,15 +256,15 @@
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_pins>;
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_pins>;
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
|
||||
@ -156,19 +156,19 @@
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
rtkgsw: rtkgsw@0 {
|
||||
compatible = "mediatek,rtk-gsw";
|
||||
rtkgsw: rtkgsw@0 {
|
||||
compatible = "mediatek,rtk-gsw";
|
||||
mediatek,ethsys = <ðsys>;
|
||||
mediatek,mdio = <&mdio>;
|
||||
mediatek,reset-pin = <&pio 54 0>;
|
||||
status = "okay";
|
||||
};
|
||||
mediatek,mdio = <&mdio>;
|
||||
mediatek,reset-pin = <&pio 54 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_pins>;
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&slot0 {
|
||||
@ -450,29 +450,31 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð_pins>;
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "sgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
mdio: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "sgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
mdio: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
@ -513,50 +515,50 @@
|
||||
reg = <0>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "Preloader";
|
||||
reg = <0x00000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
partition@0 {
|
||||
label = "Preloader";
|
||||
reg = <0x00000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
label = "ATF";
|
||||
reg = <0x80000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
partition@80000 {
|
||||
label = "ATF";
|
||||
reg = <0x80000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "uboot";
|
||||
reg = <0xc0000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
partition@c0000 {
|
||||
label = "uboot";
|
||||
reg = <0xc0000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "uboot-env";
|
||||
reg = <0x140000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
partition@140000 {
|
||||
label = "uboot-env";
|
||||
reg = <0x140000 0x0080000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
factory: partition@1c0000 {
|
||||
label = "factory";
|
||||
reg = <0x1c0000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
factory: partition@1c0000 {
|
||||
label = "factory";
|
||||
reg = <0x1c0000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
label = "firmware";
|
||||
reg = <0x200000 0x2000000>;
|
||||
};
|
||||
partition@200000 {
|
||||
label = "firmware";
|
||||
reg = <0x200000 0x2000000>;
|
||||
};
|
||||
|
||||
partition@2200000 {
|
||||
label = "reserved";
|
||||
reg = <0x2200000 0x4000000>;
|
||||
};
|
||||
};
|
||||
partition@2200000 {
|
||||
label = "reserved";
|
||||
reg = <0x2200000 0x4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -54,11 +54,11 @@
|
||||
};
|
||||
|
||||
gsw: gsw@0 {
|
||||
compatible = "mediatek,mt753x";
|
||||
mediatek,ethsys = <ðsys>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
compatible = "mediatek,mt753x";
|
||||
mediatek,ethsys = <ðsys>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
@ -66,13 +66,11 @@
|
||||
green {
|
||||
label = "bpi-r64:pio:green";
|
||||
gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
red {
|
||||
label = "bpi-r64:pio:red";
|
||||
gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
@ -154,34 +152,34 @@
|
||||
};
|
||||
|
||||
&gsw {
|
||||
mediatek,mdio = <&mdio>;
|
||||
mediatek,portmap = "llllw";
|
||||
mediatek,mdio_master_pinmux = <0>;
|
||||
reset-gpios = <&pio 54 0>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "okay";
|
||||
mediatek,mdio = <&mdio>;
|
||||
mediatek,portmap = "llllw";
|
||||
mediatek,mdio_master_pinmux = <0>;
|
||||
reset-gpios = <&pio 54 0>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "okay";
|
||||
|
||||
port5: port@5 {
|
||||
compatible = "mediatek,mt753x-port";
|
||||
reg = <5>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
port5: port@5 {
|
||||
compatible = "mediatek,mt753x-port";
|
||||
reg = <5>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
port6: port@6 {
|
||||
compatible = "mediatek,mt753x-port";
|
||||
reg = <6>;
|
||||
phy-mode = "sgmii";
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
port6: port@6 {
|
||||
compatible = "mediatek,mt753x-port";
|
||||
reg = <6>;
|
||||
phy-mode = "sgmii";
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -333,6 +333,8 @@ config RTL8367B_PHY
|
||||
@@ -329,6 +329,8 @@ config RTL8367B_PHY
|
||||
|
||||
endif # RTL8366_SMI
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
config SFP
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -110,3 +110,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o
|
||||
@@ -109,3 +109,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o
|
||||
obj-$(CONFIG_TERANETICS_PHY) += teranetics.o
|
||||
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
|
||||
|
||||
@ -19,33 +19,33 @@
|
||||
};
|
||||
|
||||
+&gsw {
|
||||
+ mediatek,mdio = <&mdio>;
|
||||
+ mediatek,portmap = "wllll";
|
||||
+ mediatek,mdio_master_pinmux = <0>;
|
||||
+ reset-gpios = <&pio 54 0>;
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ status = "okay";
|
||||
+ mediatek,mdio = <&mdio>;
|
||||
+ mediatek,portmap = "wllll";
|
||||
+ mediatek,mdio_master_pinmux = <0>;
|
||||
+ reset-gpios = <&pio 54 0>;
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ port5: port@5 {
|
||||
+ compatible = "mediatek,mt753x-port";
|
||||
+ reg = <5>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ fixed-link {
|
||||
+ speed = <1000>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+ };
|
||||
+ port5: port@5 {
|
||||
+ compatible = "mediatek,mt753x-port";
|
||||
+ reg = <5>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ fixed-link {
|
||||
+ speed = <1000>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ port6: port@6 {
|
||||
+ compatible = "mediatek,mt753x-port";
|
||||
+ reg = <6>;
|
||||
+ phy-mode = "sgmii";
|
||||
+ fixed-link {
|
||||
+ speed = <2500>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+ };
|
||||
+ port6: port@6 {
|
||||
+ compatible = "mediatek,mt753x-port";
|
||||
+ reg = <6>;
|
||||
+ phy-mode = "sgmii";
|
||||
+ fixed-link {
|
||||
+ speed = <2500>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&i2c1 {
|
||||
@ -81,7 +81,7 @@
|
||||
};
|
||||
|
||||
cpus {
|
||||
@@ -40,23 +39,38 @@
|
||||
@@ -40,23 +39,36 @@
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
@ -108,13 +108,11 @@
|
||||
+ green {
|
||||
+ label = "bpi-r64:pio:green";
|
||||
+ gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+
|
||||
+ red {
|
||||
+ label = "bpi-r64:pio:red";
|
||||
+ gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
||||
+ default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
@ -124,7 +122,7 @@
|
||||
};
|
||||
|
||||
reg_1p8v: regulator-1p8v {
|
||||
@@ -101,23 +115,82 @@
|
||||
@@ -101,23 +113,82 @@
|
||||
};
|
||||
|
||||
ð {
|
||||
@ -214,7 +212,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -185,15 +258,28 @@
|
||||
@@ -185,15 +256,28 @@
|
||||
|
||||
&pcie {
|
||||
pinctrl-names = "default";
|
||||
@ -244,7 +242,7 @@
|
||||
/* eMMC is shared pin with parallel NAND */
|
||||
emmc_pins_default: emmc-pins-default {
|
||||
mux {
|
||||
@@ -460,11 +546,11 @@
|
||||
@@ -460,11 +544,11 @@
|
||||
};
|
||||
|
||||
&sata {
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
+ mediatek,ethsys = <ðsys>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
|
||||
@ -44,7 +44,7 @@ Subject: [PATCH] arm: dts: Add Unielec U7623 DTS
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc.dtsi
|
||||
@@ -0,0 +1,343 @@
|
||||
@@ -0,0 +1,340 @@
|
||||
+/*
|
||||
+ * Copyright 2018 Kristian Evensen <kristian.evensen@gmail.com>
|
||||
+ *
|
||||
@ -132,13 +132,11 @@ Subject: [PATCH] arm: dts: Add Unielec U7623 DTS
|
||||
+ led3 {
|
||||
+ label = "u7623-01:green:led3";
|
||||
+ gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+
|
||||
+ led4 {
|
||||
+ label = "u7623-01:green:led4";
|
||||
+ gpios = <&pio 15 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
@ -343,7 +341,6 @@ Subject: [PATCH] arm: dts: Add Unielec U7623 DTS
|
||||
+ led@0 {
|
||||
+ reg = <0>;
|
||||
+ label = "led0";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
"mediatek,mt8173-nor";
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -101,7 +101,7 @@
|
||||
@@ -99,7 +99,7 @@
|
||||
};
|
||||
|
||||
&bch {
|
||||
@ -31,7 +31,7 @@
|
||||
};
|
||||
|
||||
&btif {
|
||||
@@ -553,6 +553,62 @@
|
||||
@@ -551,6 +551,62 @@
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
"syscon";
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -591,7 +591,7 @@
|
||||
@@ -589,7 +589,7 @@
|
||||
reg = <0x140000 0x0080000>;
|
||||
};
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
label = "Factory";
|
||||
reg = <0x1c0000 0x0040000>;
|
||||
};
|
||||
@@ -648,3 +648,8 @@
|
||||
@@ -646,3 +646,8 @@
|
||||
pinctrl-0 = <&watchdog_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
depends on HAS_IOMEM
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -111,4 +111,5 @@ obj-$(CONFIG_TERANETICS_PHY) += teraneti
|
||||
@@ -110,4 +110,5 @@ obj-$(CONFIG_TERANETICS_PHY) += teraneti
|
||||
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
|
||||
obj-$(CONFIG_MT753X_GSW) += mtk/mt753x/
|
||||
|
||||
@ -389,7 +389,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com>
|
||||
<0 0 0 2 &pcie_intc1 1>,
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -256,18 +256,16 @@
|
||||
@@ -254,18 +254,16 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -591,17 +591,17 @@
|
||||
@@ -589,17 +589,17 @@
|
||||
|
||||
factory: partition@1c0000 {
|
||||
label = "Factory";
|
||||
|
||||
@ -152,15 +152,13 @@
|
||||
hdd1_red {
|
||||
label = "ls421de:red:hdd1";
|
||||
gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "disk-activity";
|
||||
linux,default-trigger = "ata1";
|
||||
};
|
||||
|
||||
hdd2_red {
|
||||
label = "ls421de:red:hdd2";
|
||||
gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "disk-activity";
|
||||
linux,default-trigger = "ata2";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -30,7 +30,6 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
|
||||
---
|
||||
.../dts/marvell/armada-3720-espressobin-v7-emmc.dts | 10 ++++++++--
|
||||
.../boot/dts/marvell/armada-3720-espressobin-v7.dts | 10 ++++++++--
|
||||
.../boot/dts/marvell/armada-3720-espressobin.dtsi | 12 ++++++++----
|
||||
3 files changed, 24 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-v7-emmc.dts
|
||||
@ -87,48 +86,3 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
|
||||
reg = <3>;
|
||||
label = "wan";
|
||||
phy-handle = <&switch0phy2>;
|
||||
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
|
||||
+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
|
||||
@@ -21,6 +21,10 @@
|
||||
|
||||
aliases {
|
||||
ethernet0 = ð0;
|
||||
+ /* for dsa slave device */
|
||||
+ ethernet1 = &switch0port1;
|
||||
+ ethernet2 = &switch0port2;
|
||||
+ ethernet3 = &switch0port3;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
};
|
||||
@@ -147,7 +151,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
- port@0 {
|
||||
+ switch0port0: port@0 {
|
||||
reg = <0>;
|
||||
label = "cpu";
|
||||
ethernet = <ð0>;
|
||||
@@ -158,19 +162,19 @@
|
||||
};
|
||||
};
|
||||
|
||||
- port@1 {
|
||||
+ switch0port1: port@1 {
|
||||
reg = <1>;
|
||||
label = "wan";
|
||||
phy-handle = <&switch0phy0>;
|
||||
};
|
||||
|
||||
- port@2 {
|
||||
+ switch0port2: port@2 {
|
||||
reg = <2>;
|
||||
label = "lan0";
|
||||
phy-handle = <&switch0phy1>;
|
||||
};
|
||||
|
||||
- port@3 {
|
||||
+ switch0port3: port@3 {
|
||||
reg = <3>;
|
||||
label = "lan1";
|
||||
phy-handle = <&switch0phy2>;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user