Merge Official Source

This commit is contained in:
CN_SZTL 2020-11-21 16:58:10 +08:00
commit d19ba6f55d
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
112 changed files with 1046 additions and 1913 deletions

View File

@ -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))

View File

@ -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)

View File

@ -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)))))))

View File

@ -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

View File

@ -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, \

View File

@ -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

View File

@ -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/

View File

@ -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=""
}

View File

@ -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 "$@"

View File

@ -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|\

View File

@ -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

View File

@ -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+

View File

@ -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])

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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) {

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"
}
]
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 > $@

View File

@ -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.

View File

@ -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

View File

@ -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;

View 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

View File

@ -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;

View File

@ -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; \

View File

@ -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)") \

View 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>;
};
};
};

View File

@ -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;

View File

@ -14,7 +14,7 @@
reset {
label = "reset";
linux-code = "KEY_RESTART";
linux,code = <KEY_RESTART>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
};

View 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";
};
};
};
&eth0 {
mtd-mac-address = <&art 0x1002>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
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>;
};
};

View File

@ -50,7 +50,8 @@
};
&eth0 {
mtd-mac-address = <&art 0x0>;
mtd-mac-address = <&art 0x1002>;
mtd-mac-address-increment = <(-2)>;
};
&eth1 {
@ -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 {

View File

@ -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"

View File

@ -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)

View File

@ -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"
;;

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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 := \

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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[] = {

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ||

View File

@ -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 ||

View File

@ -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 = &params->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++;
}

View File

@ -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.
*/

View File

@ -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);

View File

@ -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";
+ };
+ };
+

View File

@ -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";
+ };
+ };
+

View File

@ -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";
+ };
+ };
+

View File

@ -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";
+ };
+ };
+

View File

@ -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 @@
>;
};

View File

@ -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 @@
>;
};

View File

@ -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>;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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) {

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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,

View File

@ -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);
};

View File

@ -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);

View File

@ -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 */ }

View File

@ -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;

View File

@ -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 {

View File

@ -156,19 +156,19 @@
regulator-always-on;
};
rtkgsw: rtkgsw@0 {
compatible = "mediatek,rtk-gsw";
rtkgsw: rtkgsw@0 {
compatible = "mediatek,rtk-gsw";
mediatek,ethsys = <&ethsys>;
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 = <&eth_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>;
};
};
};
};

View File

@ -54,11 +54,11 @@
};
gsw: gsw@0 {
compatible = "mediatek,mt753x";
mediatek,ethsys = <&ethsys>;
#address-cells = <1>;
#size-cells = <0>;
};
compatible = "mediatek,mt753x";
mediatek,ethsys = <&ethsys>;
#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";

View File

@ -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

View File

@ -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 @@
};
&eth {
@ -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 {

View File

@ -17,7 +17,7 @@
+ mediatek,ethsys = <&ethsys>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
memory@40000000 {
device_type = "memory";

View File

@ -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";
+ };
+ };
+ };

View File

@ -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";
};

View File

@ -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";
};

View File

@ -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/

View File

@ -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 @@
};
};

View File

@ -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";

View File

@ -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";
};
};

View File

@ -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 = &eth0;
+ /* 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 = <&eth0>;
@@ -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