mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
Merge branch 'master' of https://github.com/coolsnowwolf/lede
This commit is contained in:
commit
29884ccce1
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .100
|
||||
LINUX_KERNEL_HASH-5.10.100 = d56965afc9b6a3d26d53db40ccd37fd9d15f2ca6bfd54ef6f0f8b6e92c170999
|
||||
LINUX_VERSION-5.10 = .103
|
||||
LINUX_KERNEL_HASH-5.10.103 = 4fb8ad55e6430342e4fbc94d54e594e9be8eb6a8bea1d71eccf835948d08580a
|
||||
|
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .25
|
||||
LINUX_KERNEL_HASH-5.15.25 = 4399ffbe524a11b3c44bff6dd858ed31417341f58513f04cb6ae15e527543879
|
||||
LINUX_VERSION-5.15 = .26
|
||||
LINUX_KERNEL_HASH-5.15.26 = 58122134f2613fcbb200bb2399ef2117852166a8e11eed4b632a86b20b6bbe3a
|
||||
|
@ -57,9 +57,6 @@ ALLWIFIBOARDS:= \
|
||||
p2w_r619ac \
|
||||
qnap_301w \
|
||||
qxwlan_e2600ac \
|
||||
redmi_ax6 \
|
||||
xiaomi_ax3600 \
|
||||
xiaomi_ax9000 \
|
||||
zte_mf263 \
|
||||
zte_mf269
|
||||
|
||||
@ -163,9 +160,6 @@ $(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200))
|
||||
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC))
|
||||
$(eval $(call generate-ipq-wifi-package,qnap_301w,QNAP 301w))
|
||||
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC))
|
||||
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
|
||||
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
|
||||
$(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000))
|
||||
$(eval $(call generate-ipq-wifi-package,zte_mf263,ZTE MF263))
|
||||
$(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269))
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -26,6 +26,7 @@ define KernelPackage/r8168
|
||||
TITLE:=Driver for Realtek r8168 chipsets
|
||||
SUBMENU:=Network Devices
|
||||
VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
|
||||
DEPENDS:=
|
||||
FILES:= $(PKG_BUILD_DIR)/src/r8168.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8168)
|
||||
CONFLICTS:=kmod-r8169
|
||||
|
@ -0,0 +1,50 @@
|
||||
--- a/src/r8168_n.c 2021-07-05 01:30:48.000000000 +0100
|
||||
+++ b/src/r8168_n.c 2022-02-02 09:13:11.165555448 +0000
|
||||
@@ -96,6 +96,10 @@
|
||||
#include <linux/seq_file.h>
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
|
||||
+#define PDE_DATA pde_data
|
||||
+#endif
|
||||
+
|
||||
#define FIRMWARE_8168D_1 "rtl_nic/rtl8168d-1.fw"
|
||||
#define FIRMWARE_8168D_2 "rtl_nic/rtl8168d-2.fw"
|
||||
#define FIRMWARE_8168E_1 "rtl_nic/rtl8168e-1.fw"
|
||||
@@ -524,6 +528,12 @@
|
||||
|
||||
MODULE_VERSION(RTL8168_VERSION);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
|
||||
+static inline void dev_addr_mod(struct net_device *dev, unsigned int offset, const void *addr, size_t len) {
|
||||
+ memcpy(&dev->dev_addr[offset], addr, len);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static void rtl8168_sleep_rx_enable(struct net_device *dev);
|
||||
static void rtl8168_dsm(struct net_device *dev, int dev_state);
|
||||
|
||||
@@ -24146,11 +24156,13 @@
|
||||
}
|
||||
|
||||
rtl8168_rar_set(tp, mac_addr);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
|
||||
for (i = 0; i < MAC_ADDR_LEN; i++) {
|
||||
dev->dev_addr[i] = RTL_R8(tp, MAC0 + i);
|
||||
tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
|
||||
}
|
||||
+#endif
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
|
||||
memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
|
||||
#endif
|
||||
@@ -24178,9 +24190,9 @@
|
||||
return -EADDRNOTAVAIL;
|
||||
|
||||
spin_lock_irqsave(&tp->lock, flags);
|
||||
-
|
||||
- memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
|
||||
+ dev_addr_mod(dev, 0, addr->sa_data, dev->addr_len);
|
||||
+ /* memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);*/
|
||||
|
||||
rtl8168_rar_set(tp, dev->dev_addr);
|
@ -1,118 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dante
|
||||
PKG_VERSION:=1.4.1
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://www.inet.no/dante/files/
|
||||
PKG_HASH:=b6d232bd6fefc87d14bf97e447e4fcdeef4b28b16b048d804b50b48f261c4f53
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_LICENSE:=BSD-4-Clause
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--without-upnp \
|
||||
--without-pam \
|
||||
--disable-libwrap
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
ac_cv_search_pam_start="" \
|
||||
ac_cv_func_sched_setscheduler=no
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*,la} $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
|
||||
define Package/dante/default
|
||||
TITLE:=Dante SOCKS
|
||||
URL:=http://www.inet.no/dante/
|
||||
endef
|
||||
|
||||
define Package/dante/default/description
|
||||
Dante is a circuit-level firewall/proxy that can be used to provide convenient
|
||||
and secure network connectivity, requiring only that the server Dante runs on
|
||||
has external network connectivity. Dante is used daily by Fortune 100 companies
|
||||
and large international organizations, either as a standard SOCKS server or as
|
||||
a "reverse proxy".
|
||||
endef
|
||||
|
||||
define Package/libsocks
|
||||
$(call Package/dante/default)
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
TITLE+= Library
|
||||
ABI_VERSION:=0
|
||||
endef
|
||||
|
||||
define Package/libsocks/description
|
||||
$(call Package/dante/default/description)
|
||||
This package provides the shared libsocks library.
|
||||
endef
|
||||
|
||||
define Package/libsocks/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsocks.so.* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
|
||||
define Package/sockd
|
||||
$(call Package/dante/default)
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE+= Daemon
|
||||
endef
|
||||
|
||||
define Package/sockd/description
|
||||
$(call Package/dante/default/description)
|
||||
This package provides the Dante sockd daemon.
|
||||
endef
|
||||
|
||||
define Package/sockd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/sockd $(1)/usr/sbin/
|
||||
endef
|
||||
|
||||
|
||||
define Package/socksify
|
||||
$(call Package/dante/default)
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE+= Client
|
||||
endef
|
||||
|
||||
define Package/socksify/description
|
||||
$(call Package/dante/default/description)
|
||||
This package provides the Dante socksify client.
|
||||
endef
|
||||
|
||||
define Package/socksify/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/socksify $(1)/usr/bin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdsocks.so* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
|
||||
$(eval $(call BuildPackage,libsocks))
|
||||
$(eval $(call BuildPackage,sockd))
|
||||
$(eval $(call BuildPackage,socksify))
|
@ -1,36 +0,0 @@
|
||||
--- a/lib/address.c
|
||||
+++ b/lib/address.c
|
||||
@@ -48,11 +48,12 @@
|
||||
|
||||
#include "upnp.h"
|
||||
|
||||
-#ifndef __USE_GNU
|
||||
-#define __USE_GNU /* XXX for RTLD_NEXT on Linux */
|
||||
-#endif /* !__USE_GNU */
|
||||
#include <dlfcn.h>
|
||||
|
||||
+#ifndef RTLD_NEXT
|
||||
+#define RTLD_NEXT ((void *) -1l)
|
||||
+#endif
|
||||
+
|
||||
static const char rcsid[] =
|
||||
"$Id: address.c,v 1.288.4.4 2014/08/15 18:16:40 karls Exp $";
|
||||
|
||||
--- a/dlib/interposition.c
|
||||
+++ b/dlib/interposition.c
|
||||
@@ -93,11 +93,12 @@ write$NOCANCEL(HAVE_PROT_WRITE_1, HAVE_P
|
||||
|
||||
#endif /* HAVE_DARWIN */
|
||||
|
||||
-#ifndef __USE_GNU
|
||||
-#define __USE_GNU /* XXX for RTLD_NEXT on Linux */
|
||||
-#endif /* !__USE_GNU */
|
||||
#include <dlfcn.h>
|
||||
|
||||
+#ifndef RTLD_NEXT
|
||||
+#define RTLD_NEXT ((void *) -1l)
|
||||
+#endif
|
||||
+
|
||||
#ifdef __COVERITY__
|
||||
/*
|
||||
* Coverity naturally has no idea what the function sys_foo calls does,
|
@ -1,53 +0,0 @@
|
||||
When compiled with glibc the config_scan.c wants to use the
|
||||
cpupolicy2numeric() function which is only available when
|
||||
HAVE_SCHED_SETSCHEDULER is set. It looks like the wrong define was used here.
|
||||
|
||||
This fixes a build problem with glibc in combination with the force
|
||||
ac_cv_func_sched_setscheduler=no in the OpenWrt CONFIGURE_VARS.
|
||||
|
||||
--- a/lib/config_scan.c
|
||||
+++ b/lib/config_scan.c
|
||||
@@ -3891,7 +3891,7 @@ YY_RULE_SETUP
|
||||
SERRX(0);
|
||||
|
||||
#else /* !SOCKS_CLIENT */
|
||||
-#if HAVE_SCHED_SETAFFINITY
|
||||
+#if HAVE_SCHED_SETSCHEDULER
|
||||
|
||||
BEGIN(0);
|
||||
|
||||
@@ -3899,9 +3899,9 @@ YY_RULE_SETUP
|
||||
yyerrorx("unknown scheduling policy \"%s\"", yytext);
|
||||
|
||||
return SCHEDULEPOLICY;
|
||||
-#else /* !HAVE_SCHED_SETAFFINITY */
|
||||
+#else /* !HAVE_SCHED_SETSCHEDULER */
|
||||
yyerrorx("setting cpu scheduling policy is not supported on this platform");
|
||||
-#endif /* !HAVE_SCHED_SETAFFINITY */
|
||||
+#endif /* !HAVE_SCHED_SETSCHEDULER */
|
||||
|
||||
#endif /* SOCKS_CLIENT */
|
||||
}
|
||||
--- a/lib/config_scan.l
|
||||
+++ b/lib/config_scan.l
|
||||
@@ -456,7 +456,7 @@ cpu {
|
||||
SERRX(0);
|
||||
|
||||
#else /* !SOCKS_CLIENT */
|
||||
-#if HAVE_SCHED_SETAFFINITY
|
||||
+#if HAVE_SCHED_SETSCHEDULER
|
||||
|
||||
BEGIN(0);
|
||||
|
||||
@@ -464,9 +464,9 @@ cpu {
|
||||
yyerrorx("unknown scheduling policy \"%s\"", yytext);
|
||||
|
||||
return SCHEDULEPOLICY;
|
||||
-#else /* !HAVE_SCHED_SETAFFINITY */
|
||||
+#else /* !HAVE_SCHED_SETSCHEDULER */
|
||||
yyerrorx("setting cpu scheduling policy is not supported on this platform");
|
||||
-#endif /* !HAVE_SCHED_SETAFFINITY */
|
||||
+#endif /* !HAVE_SCHED_SETSCHEDULER */
|
||||
|
||||
#endif /* SOCKS_CLIENT */
|
||||
}
|
@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ipset
|
||||
PKG_VERSION:=7.6
|
||||
PKG_VERSION:=7.15
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://ipset.netfilter.org
|
||||
PKG_HASH:=0e7d44caa9c153d96a9b5f12644fbe35a632537a5a7f653792b72e53d9d5c2db
|
||||
PKG_HASH:=0a5545aaadb640142c1f888d366a78ddf8724799967fa20686a70053bd621751
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
@ -62,6 +62,7 @@ endef
|
||||
define Package/ipset/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ipset $(1)/usr/sbin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ipset-translate $(1)/usr/sbin/
|
||||
endef
|
||||
|
||||
define Package/libipset/install
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- a/lib/ipset.c
|
||||
+++ b/lib/ipset.c
|
||||
@@ -1847,7 +1847,7 @@ static int ipset_xlate(struct ipset *ips
|
||||
return -1;
|
||||
case IPSET_CMD_LIST:
|
||||
if (!set) {
|
||||
- printf("list sets %s\n",
|
||||
+ printf("list sets %s %s\n",
|
||||
ipset_xlate_family(family), table);
|
||||
} else {
|
||||
printf("list set %s %s %s\n",
|
@ -292,7 +292,7 @@
|
||||
#endif /* _LINUX_TYPES_H */
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1467,8 +1467,8 @@ struct sk_buff *inet_gro_receive(struct
|
||||
@@ -1470,8 +1470,8 @@ struct sk_buff *inet_gro_receive(struct
|
||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||
goto out_unlock;
|
||||
|
||||
@ -534,7 +534,7 @@
|
||||
goto next_ht;
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -238,7 +238,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
|
||||
@@ -240,7 +240,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
|
||||
continue;
|
||||
|
||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||
@ -579,7 +579,7 @@
|
||||
|
||||
#define IP6_MF 0x0001
|
||||
#define IP6_OFFSET 0xFFF8
|
||||
@@ -557,8 +557,8 @@ static inline void __ipv6_addr_set_half(
|
||||
@@ -560,8 +560,8 @@ static inline void __ipv6_addr_set_half(
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@ -590,7 +590,7 @@
|
||||
}
|
||||
|
||||
static inline void ipv6_addr_set(struct in6_addr *addr,
|
||||
@@ -617,6 +617,8 @@ static inline bool ipv6_prefix_equal(con
|
||||
@@ -620,6 +620,8 @@ static inline bool ipv6_prefix_equal(con
|
||||
const __be32 *a1 = addr1->s6_addr32;
|
||||
const __be32 *a2 = addr2->s6_addr32;
|
||||
unsigned int pdw, pbi;
|
||||
@ -599,7 +599,7 @@
|
||||
|
||||
/* check complete u32 in prefix */
|
||||
pdw = prefixlen >> 5;
|
||||
@@ -625,7 +627,9 @@ static inline bool ipv6_prefix_equal(con
|
||||
@@ -628,7 +630,9 @@ static inline bool ipv6_prefix_equal(con
|
||||
|
||||
/* check incomplete u32 in prefix */
|
||||
pbi = prefixlen & 0x1f;
|
||||
@ -610,7 +610,7 @@
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -746,13 +750,13 @@ static inline void ipv6_addr_set_v4mappe
|
||||
@@ -749,13 +753,13 @@ static inline void ipv6_addr_set_v4mappe
|
||||
*/
|
||||
static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
|
||||
{
|
||||
@ -626,7 +626,7 @@
|
||||
if (xb)
|
||||
return i * 32 + 31 - __fls(ntohl(xb));
|
||||
}
|
||||
@@ -938,17 +942,18 @@ static inline int ip6_multipath_hash_pol
|
||||
@@ -941,17 +945,18 @@ static inline int ip6_multipath_hash_pol
|
||||
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
|
||||
__be32 flowlabel)
|
||||
{
|
||||
|
@ -42,7 +42,7 @@
|
||||
menu "SPI GPIO expanders"
|
||||
--- a/drivers/gpio/Makefile
|
||||
+++ b/drivers/gpio/Makefile
|
||||
@@ -120,6 +120,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061.
|
||||
@@ -121,6 +121,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061.
|
||||
obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o
|
||||
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
|
||||
obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o
|
||||
|
@ -16,7 +16,7 @@
|
||||
depends on MFD_SYSCON && OF
|
||||
--- a/drivers/gpio/Makefile
|
||||
+++ b/drivers/gpio/Makefile
|
||||
@@ -72,6 +72,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o
|
||||
@@ -73,6 +73,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o
|
||||
obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o
|
||||
obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o
|
||||
obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1467,6 +1467,103 @@ command_cleanup:
|
||||
@@ -1474,6 +1474,103 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5370,6 +5467,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5380,6 +5477,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -194,6 +195,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -195,6 +196,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
|
||||
|
@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
regcache_cache_bypass(s->regmap, false);
|
||||
|
||||
/* Put LCR back to the normal mode */
|
||||
@@ -839,7 +840,7 @@ static unsigned int sc16is7xx_get_mctrl(
|
||||
@@ -842,7 +843,7 @@ static unsigned int sc16is7xx_get_mctrl(
|
||||
/* DCD and DSR are not wired and CTS/RTS is handled automatically
|
||||
* so just indicate DSR and CAR asserted
|
||||
*/
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
@@ -926,14 +927,19 @@ static void sc16is7xx_set_termios(struct
|
||||
@@ -929,14 +930,19 @@ static void sc16is7xx_set_termios(struct
|
||||
regcache_cache_bypass(s->regmap, true);
|
||||
sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]);
|
||||
sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]);
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1491,9 +1491,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1493,9 +1493,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
u32 value;
|
||||
int ret;
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
|
||||
vc4_hdmi, "vc4",
|
||||
CEC_CAP_DEFAULTS |
|
||||
@@ -1926,7 +1923,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -1928,7 +1925,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
.debugfs_name = "hdmi_regs",
|
||||
.card_name = "vc4-hdmi",
|
||||
.max_pixel_clock = 162000000,
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -989,6 +989,44 @@ static void vc4_hdmi_audio_shutdown(stru
|
||||
@@ -991,6 +991,44 @@ static void vc4_hdmi_audio_shutdown(stru
|
||||
vc4_hdmi->audio.substream = NULL;
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
/* HDMI audio codec callbacks */
|
||||
static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_hw_params *params,
|
||||
@@ -999,6 +1037,8 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1001,6 +1039,8 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
struct device *dev = &vc4_hdmi->pdev->dev;
|
||||
u32 audio_packet_config, channel_mask;
|
||||
u32 channel_map;
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
if (substream != vc4_hdmi->audio.substream)
|
||||
return -EINVAL;
|
||||
@@ -1019,6 +1059,14 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1021,6 +1061,14 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
|
||||
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
|
||||
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
#include <sound/dmaengine_pcm.h>
|
||||
#include <sound/pcm_drm_eld.h>
|
||||
#include <sound/pcm_params.h>
|
||||
@@ -1180,6 +1181,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
|
||||
@@ -1182,6 +1183,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = {
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
@@ -1189,6 +1231,19 @@ static const struct snd_kcontrol_new vc4
|
||||
@@ -1191,6 +1233,19 @@ static const struct snd_kcontrol_new vc4
|
||||
.info = vc4_hdmi_audio_eld_ctl_info,
|
||||
.get = vc4_hdmi_audio_eld_ctl_get,
|
||||
},
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
|
||||
@@ -1309,6 +1364,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1311,6 +1366,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
vc4_hdmi->audio.dma_data.maxburst = 2;
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1029,9 +1029,8 @@ static int sample_rate_to_mai_fmt(int sa
|
||||
@@ -1031,9 +1031,8 @@ static int sample_rate_to_mai_fmt(int sa
|
||||
}
|
||||
|
||||
/* HDMI audio codec callbacks */
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
{
|
||||
struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai);
|
||||
struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
|
||||
@@ -1044,12 +1043,15 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1046,12 +1045,15 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
if (substream != vc4_hdmi->audio.substream)
|
||||
return -EINVAL;
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
HDMI_WRITE(HDMI_MAI_CTL,
|
||||
VC4_HD_MAI_CTL_RESET |
|
||||
@@ -1271,7 +1273,7 @@ static const struct snd_soc_component_dr
|
||||
@@ -1273,7 +1275,7 @@ static const struct snd_soc_component_dr
|
||||
static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
|
||||
.startup = vc4_hdmi_audio_startup,
|
||||
.shutdown = vc4_hdmi_audio_shutdown,
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1063,7 +1063,11 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1065,7 +1065,11 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
|
||||
|
||||
mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate);
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1084,22 +1084,12 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1086,22 +1086,12 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
audio_packet_config |= VC4_SET_FIELD(channel_mask,
|
||||
VC4_HDMI_AUDIO_PACKET_CEA_MASK);
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1093,6 +1093,7 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1095,6 +1095,7 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
|
||||
HDMI_WRITE(HDMI_MAI_CONFIG,
|
||||
VC4_HDMI_MAI_CONFIG_BIT_REVERSE |
|
||||
|
@ -191,7 +191,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
{}, \
|
||||
}; \
|
||||
\
|
||||
@@ -344,6 +355,11 @@ static void __exit fbtft_driver_module_e
|
||||
@@ -347,6 +358,11 @@ static void __exit fbtft_driver_module_e
|
||||
module_init(fbtft_driver_module_init); \
|
||||
module_exit(fbtft_driver_module_exit);
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1331,10 +1331,12 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1333,10 +1333,12 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
const __be32 *addr;
|
||||
int index;
|
||||
int ret;
|
||||
|
@ -42,7 +42,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
depends on MFD_JANZ_CMODIO
|
||||
--- a/drivers/gpio/Makefile
|
||||
+++ b/drivers/gpio/Makefile
|
||||
@@ -60,6 +60,7 @@ obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93x
|
||||
@@ -61,6 +61,7 @@ obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93x
|
||||
obj-$(CONFIG_GPIO_EXAR) += gpio-exar.o
|
||||
obj-$(CONFIG_GPIO_F7188X) += gpio-f7188x.o
|
||||
obj-$(CONFIG_GPIO_FTGPIO010) += gpio-ftgpio010.o
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1732,6 +1738,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1734,6 +1740,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct resource *res;
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
|
||||
if (!res)
|
||||
@@ -1822,6 +1829,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1824,6 +1831,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->reset);
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
struct drm_display_mode *mode = &crtc_state->adjusted_mode;
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
unsigned long long pixel_rate = mode->clock * 1000;
|
||||
@@ -875,6 +897,8 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
@@ -876,6 +898,8 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
if (pixel_rate > vc4_hdmi->variant->max_pixel_clock)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -141,7 +141,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
|
||||
@@ -891,6 +951,14 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
@@ -892,6 +952,14 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
pixel_rate = mode->clock * 1000;
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
|
||||
}
|
||||
@@ -1867,6 +1867,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
@@ -1869,6 +1869,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->hsm_clock);
|
||||
}
|
||||
vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1961,6 +1962,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1963,6 +1964,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->audio_clock);
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1572,15 +1572,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1574,15 +1574,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_VC4_HDMI_CEC
|
||||
@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
|
||||
0, 0, 0, 0);
|
||||
} else {
|
||||
@@ -1594,6 +1601,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
@@ -1596,6 +1603,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
|
||||
{
|
||||
struct drm_device *dev = vc4_hdmi->connector.dev;
|
||||
@@ -1618,31 +1638,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
@@ -1620,31 +1640,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1723,9 +1723,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
@@ -1725,9 +1725,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
|
||||
((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
|
||||
|
||||
@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
|
||||
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
|
||||
}
|
||||
@@ -1797,8 +1799,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1799,8 +1801,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
|
||||
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
|
||||
|
||||
@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
value = HDMI_READ(HDMI_CEC_CNTRL_1);
|
||||
/* Set the logical address to Unregistered */
|
||||
value |= VC4_HDMI_CEC_ADDR_MASK;
|
||||
@@ -1806,12 +1806,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1808,12 +1808,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
|
||||
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
|
||||
|
||||
@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
|
||||
if (ret < 0)
|
||||
@@ -2286,6 +2306,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2288,6 +2308,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_CK,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
.init_resources = vc5_hdmi_init_resources,
|
||||
.csc_setup = vc5_hdmi_csc_setup,
|
||||
@@ -2312,6 +2333,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2314,6 +2335,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_2,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1785,9 +1785,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1787,9 +1787,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
{
|
||||
struct cec_connector_info conn_info;
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
|
||||
@@ -2296,6 +2321,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2298,6 +2323,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
|
||||
.channel_map = vc4_hdmi_channel_map,
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
|
||||
@@ -2323,6 +2349,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2325,6 +2351,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
|
||||
@@ -2350,6 +2377,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2352,6 +2379,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1295,10 +1295,10 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1297,10 +1297,10 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
|
||||
/* Set the MAI threshold */
|
||||
HDMI_WRITE(HDMI_MAI_THR,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -2432,7 +2432,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2434,7 +2434,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.encoder_type = VC4_ENCODER_TYPE_HDMI0,
|
||||
.debugfs_name = "hdmi0_regs",
|
||||
.card_name = "vc4-hdmi-0",
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 9f7c0728efb0036f6f197126aa62da40cdf4713a Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
Date: Wed, 28 Apr 2021 16:14:21 +0100
|
||||
Subject: [PATCH] drm/vc4: Allow DBLCLK modes even if horz timing is
|
||||
odd.
|
||||
|
||||
The 2711 pixel valve can't produce odd horizontal timings, and
|
||||
checks were added to vc4_hdmi_encoder_atomic_check and
|
||||
vc4_hdmi_encoder_mode_valid to filter out/block selection of
|
||||
such modes.
|
||||
|
||||
Modes with DRM_MODE_FLAG_DBLCLK double all the horizontal timing
|
||||
values before programming them into the PV. The PV values,
|
||||
therefore, can not be odd, and so the modes can be supported.
|
||||
|
||||
Amend the filtering appropriately.
|
||||
|
||||
See https://github.com/raspberrypi/linux/issues/4307
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
---
|
||||
drivers/gpu/drm/vc4/vc4_hdmi.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1067,6 +1067,7 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
unsigned long long tmds_rate;
|
||||
|
||||
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
|
||||
+ !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
|
||||
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
|
||||
(mode->hsync_end % 2) || (mode->htotal % 2)))
|
||||
return -EINVAL;
|
||||
@@ -1111,6 +1112,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
|
||||
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
|
||||
+ !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
|
||||
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
|
||||
(mode->hsync_end % 2) || (mode->htotal % 2)))
|
||||
return MODE_H_ILLEGAL;
|
@ -118,7 +118,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
|
||||
- MEDIA_BUS_FMT_RGB666_1X24_CPADHI
|
||||
--- a/drivers/gpu/drm/panel/panel-simple.c
|
||||
+++ b/drivers/gpu/drm/panel/panel-simple.c
|
||||
@@ -2093,6 +2093,38 @@ static const struct panel_desc innolux_a
|
||||
@@ -2094,6 +2094,38 @@ static const struct panel_desc innolux_a
|
||||
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
|
||||
};
|
||||
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
|
||||
static const struct drm_display_mode innolux_at070tn92_mode = {
|
||||
.clock = 33333,
|
||||
.hdisplay = 800,
|
||||
@@ -4076,6 +4108,9 @@ static const struct of_device_id platfor
|
||||
@@ -4077,6 +4109,9 @@ static const struct of_device_id platfor
|
||||
.compatible = "innolux,at043tn24",
|
||||
.data = &innolux_at043tn24,
|
||||
}, {
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1432,5 +1432,5 @@ subdir-y := overlays
|
||||
@@ -1433,5 +1433,5 @@ subdir-y := overlays
|
||||
|
||||
# Enable fixups to support overlays on BCM2835 platforms
|
||||
ifeq ($(CONFIG_ARCH_BCM2835),y)
|
||||
|
@ -70,7 +70,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
nft_trans_table_update(trans) = true;
|
||||
list_add_tail(&trans->list, &ctx->net->nft.commit_list);
|
||||
return 0;
|
||||
@@ -7903,11 +7907,10 @@ static int nf_tables_commit(struct net *
|
||||
@@ -7908,11 +7912,10 @@ static int nf_tables_commit(struct net *
|
||||
switch (trans->msg_type) {
|
||||
case NFT_MSG_NEWTABLE:
|
||||
if (nft_trans_table_update(trans)) {
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
} else {
|
||||
nft_clear(net, trans->ctx.table);
|
||||
}
|
||||
@@ -8120,11 +8123,9 @@ static int __nf_tables_abort(struct net
|
||||
@@ -8125,11 +8128,9 @@ static int __nf_tables_abort(struct net
|
||||
switch (trans->msg_type) {
|
||||
case NFT_MSG_NEWTABLE:
|
||||
if (nft_trans_table_update(trans)) {
|
||||
|
@ -77,7 +77,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
#include "mtdcore.h"
|
||||
|
||||
@@ -1000,6 +1001,8 @@ int mtd_device_parse_register(struct mtd
|
||||
@@ -1002,6 +1003,8 @@ int mtd_device_parse_register(struct mtd
|
||||
|
||||
ret = mtd_otp_nvmem_add(mtd);
|
||||
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
#include <linux/nvmem-provider.h>
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
@@ -696,6 +697,19 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
@@ -697,6 +698,19 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
of this try_ nonsense, and no bitching about it
|
||||
either. :) */
|
||||
__module_get(THIS_MODULE);
|
||||
|
@ -8,7 +8,7 @@
|
||||
mv88e6xxx_reg_lock(chip);
|
||||
err = mv88e6xxx_port_db_load_purge(chip, port, addr, vid,
|
||||
MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC);
|
||||
@@ -2342,6 +2342,7 @@ static int mv88e6xxx_port_fdb_del(struct
|
||||
@@ -2342,6 +2343,7 @@ static int mv88e6xxx_port_fdb_del(struct
|
||||
struct mv88e6xxx_chip *chip = ds->priv;
|
||||
int err;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -2988,6 +2988,9 @@ static int mv88e6xxx_setup_port(struct m
|
||||
@@ -2990,6 +2990,9 @@ static int mv88e6xxx_setup_port(struct m
|
||||
else
|
||||
reg = 1 << port;
|
||||
|
||||
|
@ -138,7 +138,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct gpio_device *gdev;
|
||||
@@ -626,6 +626,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
@@ -623,6 +623,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
offset = gpio_chip_hwgpio(desc);
|
||||
if (chip->names && chip->names[offset])
|
||||
ioname = chip->names[offset];
|
||||
@ -147,7 +147,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
dev = device_create_with_groups(&gpio_class, &gdev->dev,
|
||||
MKDEV(0, 0), data, gpio_groups,
|
||||
@@ -647,6 +649,12 @@ err_unlock:
|
||||
@@ -644,6 +646,12 @@ err_unlock:
|
||||
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||
return status;
|
||||
}
|
||||
|
@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/ipv4/fib_trie.c
|
||||
+++ b/net/ipv4/fib_trie.c
|
||||
@@ -3018,11 +3018,13 @@ static const struct seq_operations fib_r
|
||||
@@ -3019,11 +3019,13 @@ static const struct seq_operations fib_r
|
||||
|
||||
int __net_init fib_proc_init(struct net *net)
|
||||
{
|
||||
@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
fib_triestat_seq_show, NULL))
|
||||
goto out2;
|
||||
|
||||
@@ -3033,17 +3035,21 @@ int __net_init fib_proc_init(struct net
|
||||
@@ -3034,17 +3036,21 @@ int __net_init fib_proc_init(struct net
|
||||
return 0;
|
||||
|
||||
out3:
|
||||
|
@ -20,8 +20,6 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
net/netfilter/nf_conntrack_netlink.c | 17 ++++
|
||||
6 files changed, 146 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
|
||||
index d932e22ed..c45657013 100644
|
||||
--- a/include/net/netfilter/nf_conntrack_ecache.h
|
||||
+++ b/include/net/netfilter/nf_conntrack_ecache.h
|
||||
@@ -83,9 +83,14 @@ struct nf_ct_event_notifier {
|
||||
@ -55,7 +53,7 @@ index d932e22ed..c45657013 100644
|
||||
|
||||
e = nf_ct_ecache_find(ct);
|
||||
if (e == NULL)
|
||||
@@ -130,10 +137,12 @@ nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct,
|
||||
@@ -130,10 +137,12 @@ nf_conntrack_event_report(enum ip_conntr
|
||||
u32 portid, int report)
|
||||
{
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
@ -81,11 +79,9 @@ index d932e22ed..c45657013 100644
|
||||
|
||||
return nf_conntrack_eventmask_report(1 << event, ct, 0, 0);
|
||||
#else
|
||||
diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
|
||||
index 0294f3d47..9bc2a1eba 100644
|
||||
--- a/include/net/netns/conntrack.h
|
||||
+++ b/include/net/netns/conntrack.h
|
||||
@@ -112,6 +112,9 @@ struct netns_ct {
|
||||
@@ -113,6 +113,9 @@ struct netns_ct {
|
||||
|
||||
struct ct_pcpu __percpu *pcpu_lists;
|
||||
struct ip_conntrack_stat __percpu *stat;
|
||||
@ -95,8 +91,6 @@ index 0294f3d47..9bc2a1eba 100644
|
||||
struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb;
|
||||
struct nf_ip_net nf_ct_proto;
|
||||
#if defined(CONFIG_NF_CONNTRACK_LABELS)
|
||||
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
|
||||
index 92a747896..258bdeac9 100644
|
||||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -151,6 +151,14 @@ config NF_CONNTRACK_EVENTS
|
||||
@ -114,11 +108,9 @@ index 92a747896..258bdeac9 100644
|
||||
config NF_CONNTRACK_TIMEOUT
|
||||
bool 'Connection tracking timeout'
|
||||
depends on NETFILTER_ADVANCED
|
||||
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
|
||||
index 4712a90a1..ac05af611 100644
|
||||
--- a/net/netfilter/nf_conntrack_core.c
|
||||
+++ b/net/netfilter/nf_conntrack_core.c
|
||||
@@ -2825,6 +2825,10 @@ int nf_conntrack_init_net(struct net *net)
|
||||
@@ -2827,6 +2827,10 @@ int nf_conntrack_init_net(struct net *ne
|
||||
nf_conntrack_helper_pernet_init(net);
|
||||
nf_conntrack_proto_pernet_init(net);
|
||||
|
||||
@ -129,8 +121,6 @@ index 4712a90a1..ac05af611 100644
|
||||
return 0;
|
||||
|
||||
err_expect:
|
||||
diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
|
||||
index 41768ff19..9d8075db0 100644
|
||||
--- a/net/netfilter/nf_conntrack_ecache.c
|
||||
+++ b/net/netfilter/nf_conntrack_ecache.c
|
||||
@@ -18,6 +18,9 @@
|
||||
@ -143,7 +133,7 @@ index 41768ff19..9d8075db0 100644
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/export.h>
|
||||
@@ -167,6 +170,35 @@ static int __nf_conntrack_eventmask_report(struct nf_conntrack_ecache *e,
|
||||
@@ -167,6 +170,35 @@ static int __nf_conntrack_eventmask_repo
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -179,7 +169,7 @@ index 41768ff19..9d8075db0 100644
|
||||
int nf_conntrack_eventmask_report(unsigned int events, struct nf_conn *ct,
|
||||
u32 portid, int report)
|
||||
{
|
||||
@@ -203,10 +235,52 @@ int nf_conntrack_eventmask_report(unsigned int events, struct nf_conn *ct,
|
||||
@@ -203,10 +235,52 @@ int nf_conntrack_eventmask_report(unsign
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -232,7 +222,7 @@ index 41768ff19..9d8075db0 100644
|
||||
void nf_ct_deliver_cached_events(struct nf_conn *ct)
|
||||
{
|
||||
struct nf_conntrack_ecache *e;
|
||||
@@ -232,6 +306,7 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct)
|
||||
@@ -232,6 +306,7 @@ void nf_ct_deliver_cached_events(struct
|
||||
*/
|
||||
__nf_conntrack_eventmask_report(e, events, e->missed, &item);
|
||||
}
|
||||
@ -286,7 +276,7 @@ index 41768ff19..9d8075db0 100644
|
||||
void nf_conntrack_unregister_notifier(struct net *net)
|
||||
{
|
||||
mutex_lock(&nf_ct_ecache_mutex);
|
||||
@@ -285,6 +383,7 @@ void nf_conntrack_unregister_notifier(struct net *net)
|
||||
@@ -285,6 +383,7 @@ void nf_conntrack_unregister_notifier(st
|
||||
mutex_unlock(&nf_ct_ecache_mutex);
|
||||
/* synchronize_rcu() is called after netns pre_exit */
|
||||
}
|
||||
@ -294,11 +284,9 @@ index 41768ff19..9d8075db0 100644
|
||||
EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
|
||||
|
||||
void nf_conntrack_ecache_work(struct net *net, enum nf_ct_ecache_state state)
|
||||
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
|
||||
index 81d03acf6..f99de87c1 100644
|
||||
--- a/net/netfilter/nf_conntrack_netlink.c
|
||||
+++ b/net/netfilter/nf_conntrack_netlink.c
|
||||
@@ -706,12 +706,19 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct)
|
||||
@@ -706,12 +706,19 @@ static size_t ctnetlink_nlmsg_size(const
|
||||
}
|
||||
|
||||
static int
|
||||
@ -318,7 +306,7 @@ index 81d03acf6..f99de87c1 100644
|
||||
struct nf_conn *ct = item->ct;
|
||||
struct sk_buff *skb;
|
||||
unsigned int type;
|
||||
@@ -3760,11 +3767,17 @@ static int ctnetlink_stat_exp_cpu(struct sk_buff *skb,
|
||||
@@ -3761,11 +3768,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
@ -336,7 +324,7 @@ index 81d03acf6..f99de87c1 100644
|
||||
|
||||
static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = {
|
||||
[IPCTNL_MSG_CT_NEW] = {
|
||||
@@ -3863,8 +3876,12 @@ static int __net_init ctnetlink_net_init(struct net *net)
|
||||
@@ -3864,8 +3877,12 @@ static int __net_init ctnetlink_net_init
|
||||
static void ctnetlink_net_pre_exit(struct net *net)
|
||||
{
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
@ -349,6 +337,3 @@ index 81d03acf6..f99de87c1 100644
|
||||
}
|
||||
|
||||
static struct pernet_operations ctnetlink_net_ops = {
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
|
||||
index 509e18c7e..d0ea4afbb 100644
|
||||
--- a/include/linux/if_bridge.h
|
||||
+++ b/include/linux/if_bridge.h
|
||||
@@ -68,6 +68,9 @@ void brioctl_set(int (*hook)(struct net *net, struct net_bridge *br,
|
||||
@@ -69,6 +69,9 @@ void brioctl_set(int (*hook)(struct net
|
||||
int br_ioctl_call(struct net *net, struct net_bridge *br, unsigned int cmd,
|
||||
struct ifreq *ifr, void __user *uarg);
|
||||
|
||||
@ -12,11 +10,9 @@ index 509e18c7e..d0ea4afbb 100644
|
||||
#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
|
||||
int br_multicast_list_adjacent(struct net_device *dev,
|
||||
struct list_head *br_ip_list);
|
||||
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
|
||||
index b8c273af2..2e238037c 100644
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -873,6 +873,10 @@ struct sk_buff {
|
||||
@@ -877,6 +877,10 @@ struct sk_buff {
|
||||
#endif
|
||||
__u8 slow_gro:1;
|
||||
|
||||
@ -27,8 +23,6 @@ index b8c273af2..2e238037c 100644
|
||||
#ifdef CONFIG_NET_SCHED
|
||||
__u16 tc_index; /* traffic control index */
|
||||
#endif
|
||||
diff --git a/include/linux/timer.h b/include/linux/timer.h
|
||||
index fda13c9d1..b69492fd4 100644
|
||||
--- a/include/linux/timer.h
|
||||
+++ b/include/linux/timer.h
|
||||
@@ -18,6 +18,10 @@ struct timer_list {
|
||||
@ -42,8 +36,6 @@ index fda13c9d1..b69492fd4 100644
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
struct lockdep_map lockdep_map;
|
||||
#endif
|
||||
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
|
||||
index c45657013..3c02392ea 100644
|
||||
--- a/include/net/netfilter/nf_conntrack_ecache.h
|
||||
+++ b/include/net/netfilter/nf_conntrack_ecache.h
|
||||
@@ -86,6 +86,8 @@ struct nf_ct_event_notifier {
|
||||
@ -55,11 +47,9 @@ index c45657013..3c02392ea 100644
|
||||
#else
|
||||
int nf_conntrack_register_notifier(struct net *net,
|
||||
const struct nf_ct_event_notifier *nb);
|
||||
diff --git a/net/Kconfig b/net/Kconfig
|
||||
index fb13460c6..2e926a2ed 100644
|
||||
--- a/net/Kconfig
|
||||
+++ b/net/Kconfig
|
||||
@@ -447,6 +447,9 @@ config FAILOVER
|
||||
@@ -456,6 +456,9 @@ config FAILOVER
|
||||
migration of VMs with direct attached VFs by failing over to the
|
||||
paravirtual datapath when the VF is unplugged.
|
||||
|
||||
@ -69,11 +59,9 @@ index fb13460c6..2e926a2ed 100644
|
||||
config ETHTOOL_NETLINK
|
||||
bool "Netlink interface for ethtool"
|
||||
default y
|
||||
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
|
||||
index 4a02f8bb2..8a85ab557 100644
|
||||
--- a/net/bridge/br_if.c
|
||||
+++ b/net/bridge/br_if.c
|
||||
@@ -773,6 +773,28 @@ void br_port_flags_change(struct net_bridge_port *p, unsigned long mask)
|
||||
@@ -773,6 +773,28 @@ void br_port_flags_change(struct net_bri
|
||||
br_recalculate_neigh_suppress_enabled(br);
|
||||
}
|
||||
|
||||
@ -102,11 +90,9 @@ index 4a02f8bb2..8a85ab557 100644
|
||||
bool br_port_flag_is_set(const struct net_device *dev, unsigned long flag)
|
||||
{
|
||||
struct net_bridge_port *p;
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index e0878a500..4a9846b64 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3574,9 +3574,17 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
|
||||
@@ -3574,9 +3574,17 @@ static int xmit_one(struct sk_buff *skb,
|
||||
{
|
||||
unsigned int len;
|
||||
int rc;
|
||||
@ -125,7 +111,7 @@ index e0878a500..4a9846b64 100644
|
||||
|
||||
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
||||
if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
||||
@@ -5198,6 +5205,11 @@ void netdev_rx_handler_unregister(struct net_device *dev)
|
||||
@@ -5203,6 +5211,11 @@ void netdev_rx_handler_unregister(struct
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
|
||||
|
||||
@ -137,7 +123,7 @@ index e0878a500..4a9846b64 100644
|
||||
/*
|
||||
* Limit the use of PFMEMALLOC reserves to those protocols that implement
|
||||
* the special handling of PFMEMALLOC skbs.
|
||||
@@ -5246,6 +5258,10 @@ static int __netif_receive_skb_core(struct sk_buff **pskb, bool pfmemalloc,
|
||||
@@ -5251,6 +5264,10 @@ static int __netif_receive_skb_core(stru
|
||||
int ret = NET_RX_DROP;
|
||||
__be16 type;
|
||||
|
||||
@ -148,7 +134,7 @@ index e0878a500..4a9846b64 100644
|
||||
net_timestamp_check(!netdev_tstamp_prequeue, skb);
|
||||
|
||||
trace_netif_receive_skb(skb);
|
||||
@@ -5283,6 +5299,15 @@ another_round:
|
||||
@@ -5288,6 +5305,15 @@ another_round:
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -164,11 +150,9 @@ index e0878a500..4a9846b64 100644
|
||||
if (skb_skip_tc_classify(skb))
|
||||
goto skip_classify;
|
||||
|
||||
diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
|
||||
index 9d8075db0..fc49b77e4 100644
|
||||
--- a/net/netfilter/nf_conntrack_ecache.c
|
||||
+++ b/net/netfilter/nf_conntrack_ecache.c
|
||||
@@ -149,12 +149,23 @@ static int __nf_conntrack_eventmask_report(struct nf_conntrack_ecache *e,
|
||||
@@ -149,12 +149,23 @@ static int __nf_conntrack_eventmask_repo
|
||||
rcu_read_lock();
|
||||
|
||||
notify = rcu_dereference(net->ct.nf_conntrack_event_cb);
|
||||
@ -194,7 +178,7 @@ index 9d8075db0..fc49b77e4 100644
|
||||
rcu_read_unlock();
|
||||
|
||||
if (likely(ret >= 0 && missed == 0))
|
||||
@@ -345,6 +356,11 @@ int nf_conntrack_register_notifier(struct net *net,
|
||||
@@ -345,6 +356,11 @@ int nf_conntrack_register_notifier(struc
|
||||
{
|
||||
return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb);
|
||||
}
|
||||
@ -206,7 +190,7 @@ index 9d8075db0..fc49b77e4 100644
|
||||
#else
|
||||
int nf_conntrack_register_notifier(struct net *net,
|
||||
const struct nf_ct_event_notifier *new)
|
||||
@@ -375,6 +391,11 @@ int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb)
|
||||
@@ -375,6 +391,11 @@ int nf_conntrack_unregister_notifier(str
|
||||
{
|
||||
return atomic_notifier_chain_unregister(&net->ct.nf_conntrack_chain, nb);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/include/net/netns/ipv6.h
|
||||
+++ b/include/net/netns/ipv6.h
|
||||
@@ -87,6 +87,7 @@ struct netns_ipv6 {
|
||||
@@ -88,6 +88,7 @@ struct netns_ipv6 {
|
||||
unsigned int fib6_routes_require_src;
|
||||
#endif
|
||||
struct rt6_info *ip6_prohibit_entry;
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -5431,6 +5431,7 @@ static int mv88e6xxx_register_switch(str
|
||||
@@ -5436,6 +5436,7 @@ static int mv88e6xxx_register_switch(str
|
||||
ds->ops = &mv88e6xxx_switch_ops;
|
||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||
|
@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -4547,6 +4560,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -4548,6 +4561,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = qc->hw_tag = tag;
|
||||
@@ -5325,6 +5341,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -5326,6 +5342,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5360,6 +5379,12 @@ static void ata_host_release(struct kref
|
||||
@@ -5361,6 +5380,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -5766,7 +5791,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -5767,7 +5792,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/compiler.h
|
||||
+++ b/include/linux/compiler.h
|
||||
@@ -231,6 +231,8 @@ void ftrace_likely_update(struct ftrace_
|
||||
@@ -220,6 +220,8 @@ void ftrace_likely_update(struct ftrace_
|
||||
#define function_nocfi(x) (x)
|
||||
#endif
|
||||
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
@@ -263,6 +265,4 @@ static inline void *offset_to_ptr(const
|
||||
@@ -252,6 +254,4 @@ static inline void *offset_to_ptr(const
|
||||
*/
|
||||
#define prevent_tail_call_optimization() mb()
|
||||
|
||||
|
@ -17,7 +17,7 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1201,6 +1201,44 @@ out_unlock:
|
||||
@@ -1203,6 +1203,44 @@ out_unlock:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_mtd_device_nm);
|
||||
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__NF_SYSCTL_CT_LAST_SYSCTL,
|
||||
};
|
||||
|
||||
@@ -1026,6 +1027,15 @@ static struct ctl_table nf_ct_sysctl_table[] = {
|
||||
@@ -1026,6 +1027,15 @@ static struct ctl_table nf_ct_sysctl_tab
|
||||
.proc_handler = nf_hooks_lwtunnel_sysctl_handler,
|
||||
},
|
||||
#endif
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -1153,6 +1163,7 @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
|
||||
@@ -1153,6 +1163,7 @@ static int nf_conntrack_standalone_init_
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
table[NF_SYSCTL_CT_EVENTS].data = &net->ct.sysctl_events;
|
||||
#endif
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#ifdef CONFIG_NF_CONNTRACK_TIMESTAMP
|
||||
table[NF_SYSCTL_CT_TIMESTAMP].data = &net->ct.sysctl_tstamp;
|
||||
#endif
|
||||
@@ -1222,6 +1233,7 @@ static int nf_conntrack_pernet_init(struct net *net)
|
||||
@@ -1222,6 +1233,7 @@ static int nf_conntrack_pernet_init(stru
|
||||
int ret;
|
||||
|
||||
net->ct.sysctl_checksum = 1;
|
||||
|
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6291,6 +6322,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6292,6 +6323,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6302,6 +6335,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6303,6 +6336,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||
#endif
|
||||
}
|
||||
@@ -6493,6 +6527,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6494,6 +6528,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.fib6_has_custom_rules = false;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6503,11 +6539,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6504,11 +6540,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6534,6 +6580,8 @@ out:
|
||||
@@ -6535,6 +6581,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6553,6 +6601,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6554,6 +6602,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6630,6 +6679,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6631,6 +6680,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
struct rtnl_link {
|
||||
rtnl_doit_func doit;
|
||||
@@ -4687,7 +4687,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
|
||||
@@ -4689,7 +4689,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
|
||||
brport_nla_put_flag(skb, flags, mask,
|
||||
IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
|
||||
brport_nla_put_flag(skb, flags, mask,
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -6325,6 +6325,7 @@ static int mv88e6xxx_register_switch(str
|
||||
@@ -6326,6 +6326,7 @@ static int mv88e6xxx_register_switch(str
|
||||
ds->ops = &mv88e6xxx_switch_ops;
|
||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||
|
@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -4572,6 +4585,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -4573,6 +4586,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = qc->hw_tag = tag;
|
||||
@@ -5350,6 +5366,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -5351,6 +5367,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5385,6 +5404,12 @@ static void ata_host_release(struct kref
|
||||
@@ -5386,6 +5405,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -5791,7 +5816,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -5792,7 +5817,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -907,8 +907,33 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
@@ -908,8 +908,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
qcom-ipq4019-ap.dk04.1-c3.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c1.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c2.dtb \
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
@@ -159,6 +159,11 @@
|
||||
@@ -158,6 +158,11 @@
|
||||
/* NAND_CTRL bits */
|
||||
#define BAM_MODE_EN BIT(0)
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
/*
|
||||
* the NAND controller performs reads/writes with ECC in 516 byte chunks.
|
||||
* the driver calls the chunks 'step' or 'codeword' interchangeably
|
||||
@@ -430,6 +435,13 @@ struct qcom_nand_controller {
|
||||
@@ -429,6 +434,13 @@ struct qcom_nand_controller {
|
||||
* @cfg0, cfg1, cfg0_raw..: NANDc register configurations needed for
|
||||
* ecc/non-ecc mode for the current nand flash
|
||||
* device
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
*/
|
||||
struct qcom_nand_host {
|
||||
struct nand_chip chip;
|
||||
@@ -452,6 +464,9 @@ struct qcom_nand_host {
|
||||
@@ -451,6 +463,9 @@ struct qcom_nand_host {
|
||||
u32 ecc_bch_cfg;
|
||||
u32 clrflashstatus;
|
||||
u32 clrreadstatus;
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -460,12 +475,14 @@ struct qcom_nand_host {
|
||||
@@ -459,12 +474,14 @@ struct qcom_nand_host {
|
||||
* @ecc_modes - ecc mode for NAND
|
||||
* @is_bam - whether NAND controller is using BAM
|
||||
* @is_qpic - whether NAND CTRL is part of qpic IP
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
u32 dev_cmd_reg_start;
|
||||
};
|
||||
|
||||
@@ -1604,7 +1621,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
|
||||
@@ -1603,7 +1620,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
|
||||
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
||||
oob_size1 = host->bbm_size;
|
||||
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
data_size2 = ecc->size - data_size1 -
|
||||
((ecc->steps - 1) * 4);
|
||||
oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw +
|
||||
@@ -1685,7 +1702,7 @@ check_for_erased_page(struct qcom_nand_h
|
||||
@@ -1684,7 +1701,7 @@ check_for_erased_page(struct qcom_nand_h
|
||||
}
|
||||
|
||||
for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) {
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
data_size = ecc->size - ((ecc->steps - 1) * 4);
|
||||
oob_size = (ecc->steps * 4) + host->ecc_bytes_hw;
|
||||
} else {
|
||||
@@ -1844,7 +1861,7 @@ static int read_page_ecc(struct qcom_nan
|
||||
@@ -1843,7 +1860,7 @@ static int read_page_ecc(struct qcom_nan
|
||||
for (i = 0; i < ecc->steps; i++) {
|
||||
int data_size, oob_size;
|
||||
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
||||
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||
host->spare_bytes;
|
||||
@@ -1941,6 +1958,30 @@ static int copy_last_cw(struct qcom_nand
|
||||
@@ -1940,6 +1957,30 @@ static int copy_last_cw(struct qcom_nand
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
/* implements ecc->read_page() */
|
||||
static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf,
|
||||
int oob_required, int page)
|
||||
@@ -1949,6 +1990,9 @@ static int qcom_nandc_read_page(struct n
|
||||
@@ -1948,6 +1989,9 @@ static int qcom_nandc_read_page(struct n
|
||||
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
||||
u8 *data_buf, *oob_buf = NULL;
|
||||
|
||||
@ -135,7 +135,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
nand_read_page_op(chip, page, 0, NULL, 0);
|
||||
data_buf = buf;
|
||||
oob_buf = oob_required ? chip->oob_poi : NULL;
|
||||
@@ -1968,6 +2012,9 @@ static int qcom_nandc_read_page_raw(stru
|
||||
@@ -1967,6 +2011,9 @@ static int qcom_nandc_read_page_raw(stru
|
||||
int cw, ret;
|
||||
u8 *data_buf = buf, *oob_buf = chip->oob_poi;
|
||||
|
||||
@ -145,7 +145,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
for (cw = 0; cw < ecc->steps; cw++) {
|
||||
ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf,
|
||||
page, cw);
|
||||
@@ -1988,6 +2035,9 @@ static int qcom_nandc_read_oob(struct na
|
||||
@@ -1987,6 +2034,9 @@ static int qcom_nandc_read_oob(struct na
|
||||
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
||||
struct nand_ecc_ctrl *ecc = &chip->ecc;
|
||||
|
||||
@ -155,7 +155,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
clear_read_regs(nandc);
|
||||
clear_bam_transaction(nandc);
|
||||
|
||||
@@ -2008,6 +2058,9 @@ static int qcom_nandc_write_page(struct
|
||||
@@ -2007,6 +2057,9 @@ static int qcom_nandc_write_page(struct
|
||||
u8 *data_buf, *oob_buf;
|
||||
int i, ret;
|
||||
|
||||
@ -165,7 +165,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
||||
|
||||
clear_read_regs(nandc);
|
||||
@@ -2023,7 +2076,7 @@ static int qcom_nandc_write_page(struct
|
||||
@@ -2022,7 +2075,7 @@ static int qcom_nandc_write_page(struct
|
||||
for (i = 0; i < ecc->steps; i++) {
|
||||
int data_size, oob_size;
|
||||
|
||||
@ -174,7 +174,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
||||
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||
host->spare_bytes;
|
||||
@@ -2080,6 +2133,9 @@ static int qcom_nandc_write_page_raw(str
|
||||
@@ -2079,6 +2132,9 @@ static int qcom_nandc_write_page_raw(str
|
||||
u8 *data_buf, *oob_buf;
|
||||
int i, ret;
|
||||
|
||||
@ -184,7 +184,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
||||
clear_read_regs(nandc);
|
||||
clear_bam_transaction(nandc);
|
||||
@@ -2098,7 +2154,7 @@ static int qcom_nandc_write_page_raw(str
|
||||
@@ -2097,7 +2153,7 @@ static int qcom_nandc_write_page_raw(str
|
||||
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
||||
oob_size1 = host->bbm_size;
|
||||
|
||||
@ -193,7 +193,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
data_size2 = ecc->size - data_size1 -
|
||||
((ecc->steps - 1) << 2);
|
||||
oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||
@@ -2158,6 +2214,9 @@ static int qcom_nandc_write_oob(struct n
|
||||
@@ -2157,6 +2213,9 @@ static int qcom_nandc_write_oob(struct n
|
||||
int data_size, oob_size;
|
||||
int ret;
|
||||
|
||||
@ -203,7 +203,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
host->use_ecc = true;
|
||||
clear_bam_transaction(nandc);
|
||||
|
||||
@@ -2806,6 +2865,7 @@ static int qcom_nand_host_init_and_regis
|
||||
@@ -2805,6 +2864,7 @@ static int qcom_nand_host_init_and_regis
|
||||
struct nand_chip *chip = &host->chip;
|
||||
struct mtd_info *mtd = nand_to_mtd(chip);
|
||||
struct device *dev = nandc->dev;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
int ret;
|
||||
|
||||
ret = of_property_read_u32(dn, "reg", &host->cs);
|
||||
@@ -2866,6 +2926,17 @@ static int qcom_nand_host_init_and_regis
|
||||
@@ -2865,6 +2925,17 @@ static int qcom_nand_host_init_and_regis
|
||||
if (ret)
|
||||
nand_cleanup(chip);
|
||||
|
||||
@ -229,7 +229,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -3032,6 +3103,7 @@ static int qcom_nandc_remove(struct plat
|
||||
@@ -3030,6 +3101,7 @@ static int qcom_nandc_remove(struct plat
|
||||
static const struct qcom_nandc_props ipq806x_nandc_props = {
|
||||
.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
|
||||
.is_bam = false,
|
||||
|
@ -7,10 +7,6 @@ board=$(board_name)
|
||||
board_config_update
|
||||
|
||||
case $board in
|
||||
xiaomi,ax3600|\
|
||||
redmi,ax6)
|
||||
ucidef_set_led_netdev "wan" "WAN" "blue:network" "eth0"
|
||||
;;
|
||||
qnap,301w)
|
||||
ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0"
|
||||
ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1"
|
||||
|
@ -14,15 +14,8 @@ ipq807x_setup_interfaces()
|
||||
qnap,301w)
|
||||
ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3 eth4" "eth5"
|
||||
;;
|
||||
redmi,ax6|\
|
||||
xiaomi,ax3600)
|
||||
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3" "eth0"
|
||||
;;
|
||||
zte,mf269)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
hw_mac_addr=$(mtd_get_mac_binary "mac" 0x0)
|
||||
ucidef_set_interface_macaddr "wan" "$hw_mac_addr"
|
||||
ucidef_set_interface_macaddr "lan" "$(macaddr_add $hw_mac_addr 1)"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported hardware. Network interfaces not initialized"
|
||||
@ -30,9 +23,30 @@ ipq807x_setup_interfaces()
|
||||
esac
|
||||
}
|
||||
|
||||
ipq807x_setup_macs()
|
||||
{
|
||||
local board="$1"
|
||||
local lan_mac=""
|
||||
local wan_mac=""
|
||||
local label_mac=""
|
||||
|
||||
case "$board" in
|
||||
zte,mf269)
|
||||
wan_mac=$(mtd_get_mac_binary mac 0x0)
|
||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||
label_mac=$wan_mac
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
||||
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
|
||||
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
|
||||
}
|
||||
|
||||
board_config_update
|
||||
board=$(board_name)
|
||||
ipq807x_setup_interfaces $board
|
||||
ipq807x_setup_macs $board
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
||||
|
@ -1,20 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
. /lib/functions/caldata.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
"ath10k/cal-pci-0000:01:00.0.bin")
|
||||
case "$board" in
|
||||
xiaomi,ax3600)
|
||||
caldata_extract "0:art" 0x33000 0x844
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
@ -9,10 +9,7 @@ board=$(board_name)
|
||||
case "$FIRMWARE" in
|
||||
"ath11k/IPQ8074/hw2.0/caldata.bin")
|
||||
case "$board" in
|
||||
qnap,301w|\
|
||||
redmi,ax6|\
|
||||
xiaomi,ax3600|\
|
||||
xiaomi,ax9000)
|
||||
qnap,301w)
|
||||
caldata_extract "0:art" 0x1000 0x20000
|
||||
;;
|
||||
zte,mf269)
|
||||
|
@ -15,34 +15,6 @@ platform_do_upgrade() {
|
||||
rootfsname="rootfs"
|
||||
mmc_do_upgrade "$1"
|
||||
;;
|
||||
redmi,ax6|\
|
||||
xiaomi,ax3600|\
|
||||
xiaomi,ax9000)
|
||||
part_num="$(fw_printenv -n flag_boot_rootfs)"
|
||||
if [ "$part_num" -eq "1" ]; then
|
||||
CI_UBIPART="rootfs_1"
|
||||
target_num=1
|
||||
# Reset fail flag for the current partition
|
||||
# With both partition set to fail, the partition 2 (bit 1)
|
||||
# is loaded
|
||||
fw_setenv flag_try_sys2_failed 0
|
||||
else
|
||||
CI_UBIPART="rootfs"
|
||||
target_num=0
|
||||
# Reset fail flag for the current partition
|
||||
# or uboot will skip the loading of this partition
|
||||
fw_setenv flag_try_sys1_failed 0
|
||||
fi
|
||||
|
||||
# Tell uboot to switch partition
|
||||
fw_setenv flag_boot_rootfs $target_num
|
||||
fw_setenv flag_last_success $target_num
|
||||
|
||||
# Reset success flag
|
||||
fw_setenv flag_boot_success 0
|
||||
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
zte,mf269)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
|
@ -1,71 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/* Copyright (c) 2021, Robert Marko <robimarko@gmail.com> */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq8071-ax3600.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Xiaomi AX3600";
|
||||
compatible = "xiaomi,ax3600", "qcom,ipq8074";
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_system_blue: system-blue {
|
||||
label = "blue:system";
|
||||
gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_system_yellow: system-yellow {
|
||||
label = "yellow:system";
|
||||
gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
network-yellow {
|
||||
label = "yellow:network";
|
||||
gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
network-blue {
|
||||
label = "blue:network";
|
||||
gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
aiot {
|
||||
label = "blue:aiot";
|
||||
gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&qmp_pcie_phy0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
|
||||
perst-gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
bridge@0,0 {
|
||||
reg = <0x00000000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
wifi0: wifi@1,0 {
|
||||
status = "okay";
|
||||
|
||||
compatible = "qcom,ath10k";
|
||||
reg = <0x00010000 0 0 0 0>;
|
||||
|
||||
qcom,ath10k-calibration-variant = "Xiaomi-AX3600";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
qcom,ath11k-calibration-variant = "Xiaomi-AX3600";
|
||||
};
|
@ -1,498 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/* Copyright (c) 2021, Robert Marko <robimarko@gmail.com> */
|
||||
|
||||
#include "ipq8074.dtsi"
|
||||
#include "ipq8074-ac-cpu.dtsi"
|
||||
#include "ipq8074-ac-nss.dtsi"
|
||||
#include "ipq8074-memory-512m.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
aliases {
|
||||
serial0 = &blsp1_uart5;
|
||||
led-boot = &led_system_yellow;
|
||||
led-failsafe = &led_system_yellow;
|
||||
led-running = &led_system_blue;
|
||||
led-upgrade = &led_system_yellow;
|
||||
/* Aliases as required by u-boot to patch MAC addresses */
|
||||
ethernet1 = &dp2;
|
||||
ethernet2 = &dp3;
|
||||
ethernet3 = &dp4;
|
||||
ethernet4 = &dp5;
|
||||
label-mac-device = &dp2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
bootargs-append = " root=/dev/ubiblock0_1";
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
/delete-node/ tzapp@4a400000;
|
||||
/delete-node/ q6_etr_dump@50f00000;
|
||||
/delete-node/ m3_dump@51000000;
|
||||
};
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
mdio_pins: mdio-pins {
|
||||
mdc {
|
||||
pins = "gpio68";
|
||||
function = "mdc";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mdio {
|
||||
pins = "gpio69";
|
||||
function = "mdio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_uart5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&prng {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cryptobam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_nand {
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
reg = <0>;
|
||||
nand-ecc-strength = <4>;
|
||||
nand-ecc-step-size = <512>;
|
||||
nand-bus-width = <8>;
|
||||
|
||||
partitions {
|
||||
compatible = "qcom,smem-part";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
/*
|
||||
* Disable the reset GPIO temporarely as it
|
||||
* resets the 100Mbit LED configuration which
|
||||
* the bootloader writes.
|
||||
*/
|
||||
//reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
ethernet-phy@2 {
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
ethernet-phy@3 {
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&ess_switch {
|
||||
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
|
||||
switch_lan_bmp = <0x1e>; /* lan port bitmap */
|
||||
switch_wan_bmp = <0x20>; /* wan port bitmap */
|
||||
switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
|
||||
switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
|
||||
switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
|
||||
bm_tick_mode = <0>; /* bm tick mode */
|
||||
tm_tick_mode = <0>; /* tm tick mode */
|
||||
qcom,port_phyinfo {
|
||||
port@0 {
|
||||
port_id = <1>;
|
||||
phy_address = <0>;
|
||||
};
|
||||
port@1 {
|
||||
port_id = <2>;
|
||||
phy_address = <1>;
|
||||
};
|
||||
port@2 {
|
||||
port_id = <3>;
|
||||
phy_address = <2>;
|
||||
};
|
||||
port@3 {
|
||||
port_id = <4>;
|
||||
phy_address = <3>;
|
||||
};
|
||||
port@4 {
|
||||
port_id = <5>;
|
||||
phy_address = <4>;
|
||||
};
|
||||
};
|
||||
port_scheduler_resource {
|
||||
port@0 {
|
||||
port_id = <0>;
|
||||
ucast_queue = <0 143>;
|
||||
mcast_queue = <256 271>;
|
||||
l0sp = <0 35>;
|
||||
l0cdrr = <0 47>;
|
||||
l0edrr = <0 47>;
|
||||
l1cdrr = <0 7>;
|
||||
l1edrr = <0 7>;
|
||||
};
|
||||
port@1 {
|
||||
port_id = <1>;
|
||||
ucast_queue = <144 159>;
|
||||
mcast_queue = <272 275>;
|
||||
l0sp = <36 39>;
|
||||
l0cdrr = <48 63>;
|
||||
l0edrr = <48 63>;
|
||||
l1cdrr = <8 11>;
|
||||
l1edrr = <8 11>;
|
||||
};
|
||||
port@2 {
|
||||
port_id = <2>;
|
||||
ucast_queue = <160 175>;
|
||||
mcast_queue = <276 279>;
|
||||
l0sp = <40 43>;
|
||||
l0cdrr = <64 79>;
|
||||
l0edrr = <64 79>;
|
||||
l1cdrr = <12 15>;
|
||||
l1edrr = <12 15>;
|
||||
};
|
||||
port@3 {
|
||||
port_id = <3>;
|
||||
ucast_queue = <176 191>;
|
||||
mcast_queue = <280 283>;
|
||||
l0sp = <44 47>;
|
||||
l0cdrr = <80 95>;
|
||||
l0edrr = <80 95>;
|
||||
l1cdrr = <16 19>;
|
||||
l1edrr = <16 19>;
|
||||
};
|
||||
port@4 {
|
||||
port_id = <4>;
|
||||
ucast_queue = <192 207>;
|
||||
mcast_queue = <284 287>;
|
||||
l0sp = <48 51>;
|
||||
l0cdrr = <96 111>;
|
||||
l0edrr = <96 111>;
|
||||
l1cdrr = <20 23>;
|
||||
l1edrr = <20 23>;
|
||||
};
|
||||
port@5 {
|
||||
port_id = <5>;
|
||||
ucast_queue = <208 223>;
|
||||
mcast_queue = <288 291>;
|
||||
l0sp = <52 55>;
|
||||
l0cdrr = <112 127>;
|
||||
l0edrr = <112 127>;
|
||||
l1cdrr = <24 27>;
|
||||
l1edrr = <24 27>;
|
||||
};
|
||||
port@6 {
|
||||
port_id = <6>;
|
||||
ucast_queue = <224 239>;
|
||||
mcast_queue = <292 295>;
|
||||
l0sp = <56 59>;
|
||||
l0cdrr = <128 143>;
|
||||
l0edrr = <128 143>;
|
||||
l1cdrr = <28 31>;
|
||||
l1edrr = <28 31>;
|
||||
};
|
||||
port@7 {
|
||||
port_id = <7>;
|
||||
ucast_queue = <240 255>;
|
||||
mcast_queue = <296 299>;
|
||||
l0sp = <60 63>;
|
||||
l0cdrr = <144 159>;
|
||||
l0edrr = <144 159>;
|
||||
l1cdrr = <32 35>;
|
||||
l1edrr = <32 35>;
|
||||
};
|
||||
};
|
||||
port_scheduler_config {
|
||||
port@0 {
|
||||
port_id = <0>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <0 1>; /*L0 SPs*/
|
||||
/*cpri cdrr epri edrr*/
|
||||
cfg = <0 0 0 0>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
/*unicast queues*/
|
||||
ucast_queue = <0 4 8>;
|
||||
/*multicast queues*/
|
||||
mcast_queue = <256 260>;
|
||||
/*sp cpri cdrr epri edrr*/
|
||||
cfg = <0 0 0 0 0>;
|
||||
};
|
||||
group@1 {
|
||||
ucast_queue = <1 5 9>;
|
||||
mcast_queue = <257 261>;
|
||||
cfg = <0 1 1 1 1>;
|
||||
};
|
||||
group@2 {
|
||||
ucast_queue = <2 6 10>;
|
||||
mcast_queue = <258 262>;
|
||||
cfg = <0 2 2 2 2>;
|
||||
};
|
||||
group@3 {
|
||||
ucast_queue = <3 7 11>;
|
||||
mcast_queue = <259 263>;
|
||||
cfg = <0 3 3 3 3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
port_id = <1>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <36>;
|
||||
cfg = <0 8 0 8>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <37>;
|
||||
cfg = <1 9 1 9>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <144>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <272>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <36 0 48 0 48>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@2 {
|
||||
port_id = <2>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <40>;
|
||||
cfg = <0 12 0 12>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <41>;
|
||||
cfg = <1 13 1 13>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <160>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <276>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <40 0 64 0 64>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@3 {
|
||||
port_id = <3>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <44>;
|
||||
cfg = <0 16 0 16>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <45>;
|
||||
cfg = <1 17 1 17>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <176>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <280>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <44 0 80 0 80>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@4 {
|
||||
port_id = <4>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <48>;
|
||||
cfg = <0 20 0 20>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <49>;
|
||||
cfg = <1 21 1 21>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <192>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <284>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <48 0 96 0 96>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@5 {
|
||||
port_id = <5>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <52>;
|
||||
cfg = <0 24 0 24>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <53>;
|
||||
cfg = <1 25 1 25>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <208>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <288>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <52 0 112 0 112>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@6 {
|
||||
port_id = <6>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <56>;
|
||||
cfg = <0 28 0 28>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <57>;
|
||||
cfg = <1 29 1 29>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <224>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <292>;
|
||||
mcast_loop_pri = <4>;
|
||||
cfg = <56 0 128 0 128>;
|
||||
};
|
||||
};
|
||||
};
|
||||
port@7 {
|
||||
port_id = <7>;
|
||||
l1scheduler {
|
||||
group@0 {
|
||||
sp = <60>;
|
||||
cfg = <0 32 0 32>;
|
||||
};
|
||||
group@1 {
|
||||
sp = <61>;
|
||||
cfg = <1 33 1 33>;
|
||||
};
|
||||
};
|
||||
l0scheduler {
|
||||
group@0 {
|
||||
ucast_queue = <240>;
|
||||
ucast_loop_pri = <16>;
|
||||
mcast_queue = <296>;
|
||||
cfg = <60 0 144 0 144>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
dp2: dp2 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <2>;
|
||||
reg = <0x3a001200 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <1>;
|
||||
phy-mode = "sgmii";
|
||||
mdio-bus = <&mdio>;
|
||||
};
|
||||
|
||||
dp3: dp3 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <3>;
|
||||
reg = <0x3a001400 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <2>;
|
||||
phy-mode = "sgmii";
|
||||
mdio-bus = <&mdio>;
|
||||
};
|
||||
|
||||
dp4: dp4 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <4>;
|
||||
reg = <0x3a001600 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <3>;
|
||||
phy-mode = "sgmii";
|
||||
mdio-bus = <&mdio>;
|
||||
};
|
||||
|
||||
dp5: dp5 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <5>;
|
||||
reg = <0x3a001800 0x200>;
|
||||
qcom,mactype = <0>;
|
||||
local-mac-address = [000000000000];
|
||||
qcom,link-poll = <1>;
|
||||
qcom,phy-mdio-addr = <4>;
|
||||
phy-mode = "sgmii";
|
||||
mdio-bus = <&mdio>;
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
status = "okay";
|
||||
|
||||
qcom,board_id = <658>;
|
||||
};
|
@ -1,39 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/* Copyright (c) 2021, Zhijun You <hujy652@gmail.com> */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq8071-ax3600.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Redmi AX6";
|
||||
compatible = "redmi,ax6", "qcom,ipq8074";
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_system_blue: system-blue {
|
||||
label = "blue:system";
|
||||
gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_system_yellow: system-yellow {
|
||||
label = "yellow:system";
|
||||
gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
network-blue {
|
||||
label = "blue:network";
|
||||
gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
network-yellow {
|
||||
label = "yellow:network";
|
||||
gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
qcom,ath11k-calibration-variant = "Redmi-AX6";
|
||||
};
|
48
target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
Executable file → Normal file
48
target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
Executable file → Normal file
@ -106,42 +106,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
&blsp1_spi6 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spi_5_pins>;
|
||||
pinctrl-names = "default";
|
||||
cs-select = <0>;
|
||||
|
||||
si3217x@0 {
|
||||
compatible = "si3217x";
|
||||
num_slic = <1>;
|
||||
reg = <0>;
|
||||
spi-cpha;
|
||||
spi-cpol;
|
||||
spi-max-frequency = <960000>;
|
||||
pinctrl-0 = <&slic_ctl_pins>;
|
||||
pinctrl-names = "default";
|
||||
ctl-gpio = <&tlmm 57 0>;
|
||||
rst-gpio = <&tlmm 58 0>;
|
||||
irq-gpio = <&tlmm 59 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_i2c5 {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-0 = <&i2c_4_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
aw9106b@5b {
|
||||
compatible = "aw9106b";
|
||||
reg = <0x5b>;
|
||||
reset-gpio = <&tlmm 54 0>;
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
&blsp1_uart5 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -559,20 +523,10 @@
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
usb_cc_pins: usb_cc_pins {
|
||||
mux {
|
||||
pins = "gpio47", "gpio48";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb_0 {
|
||||
pinctrl-0 = <&usb_vbus_pins &usb_cc_pins>;
|
||||
pinctrl-0 = <&usb_vbus_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -32,28 +32,6 @@ define Device/qnap_301w
|
||||
endef
|
||||
TARGET_DEVICES += qnap_301w
|
||||
|
||||
define Device/redmi_ax6
|
||||
$(call Device/xiaomi_ax3600)
|
||||
DEVICE_VENDOR := Redmi
|
||||
DEVICE_MODEL := AX6
|
||||
DEVICE_PACKAGES := ipq-wifi-redmi_ax6 uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += redmi_ax6
|
||||
|
||||
define Device/xiaomi_ax3600
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := AX3600
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_DTS_CONFIG := config@ac04
|
||||
SOC := ipq8071
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9887-ct ipq-wifi-xiaomi_ax3600 \
|
||||
kmod-ath10k-ct uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_ax3600
|
||||
|
||||
define Device/zte_mf269
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
|
@ -12,13 +12,11 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/Makefile
|
||||
+++ b/arch/arm64/boot/dts/qcom/Makefile
|
||||
@@ -3,6 +3,10 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d
|
||||
@@ -3,6 +3,8 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d
|
||||
dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += ipq8072-301w.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax6.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax3600.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += ipq8071-mf269.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb
|
||||
|
@ -15,7 +15,7 @@
|
||||
/* initialize internal qc */
|
||||
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
|
||||
|
||||
@@ -4554,6 +4562,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -4555,6 +4563,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
|
||||
return NULL;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
/* libsas case */
|
||||
if (ap->flags & ATA_FLAG_SAS_HOST) {
|
||||
tag = ata_sas_allocate_tag(ap);
|
||||
@@ -4599,6 +4610,8 @@ void ata_qc_free(struct ata_queued_cmd *
|
||||
@@ -4600,6 +4611,8 @@ void ata_qc_free(struct ata_queued_cmd *
|
||||
qc->tag = ATA_TAG_POISON;
|
||||
if (ap->flags & ATA_FLAG_SAS_HOST)
|
||||
ata_sas_free_tag(tag, ap);
|
||||
|
@ -62,7 +62,7 @@ Cc: linux-gpio@vger.kernel.org
|
||||
depends on PLAT_SPEAR
|
||||
--- a/drivers/gpio/Makefile
|
||||
+++ b/drivers/gpio/Makefile
|
||||
@@ -119,6 +119,7 @@ obj-$(CONFIG_GPIO_PISOSR) += gpio-pisos
|
||||
@@ -120,6 +120,7 @@ obj-$(CONFIG_GPIO_PISOSR) += gpio-pisos
|
||||
obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o
|
||||
obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o
|
||||
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
|
||||
|
@ -10,7 +10,7 @@ define Device/embedfire_doornet1
|
||||
IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-bin | gzip | append-metadata
|
||||
DEVICE_PACKAGES := kmod-usb-net-rtl8152 kmod-rtl8821cu
|
||||
endef
|
||||
#TARGET_DEVICES += embedfire_doornet1
|
||||
TARGET_DEVICES += embedfire_doornet1
|
||||
|
||||
define Device/embedfire_doornet2
|
||||
DEVICE_VENDOR := EmbedFire
|
||||
@ -18,9 +18,9 @@ define Device/embedfire_doornet2
|
||||
SOC := rk3399
|
||||
UBOOT_DEVICE_NAME := doornet2-rk3399
|
||||
IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r4s | pine64-bin | gzip | append-metadata
|
||||
DEVICE_PACKAGES := kmod-r8168 kmod-rtl8821cu -urngd
|
||||
DEVICE_PACKAGES := kmod-r8169 kmod-rtl8821cu -urngd
|
||||
endef
|
||||
#TARGET_DEVICES += embedfire_doornet2
|
||||
TARGET_DEVICES += embedfire_doornet2
|
||||
|
||||
define Device/friendlyarm_nanopi-neo3
|
||||
DEVICE_VENDOR := FriendlyARM
|
||||
@ -57,7 +57,7 @@ define Device/friendlyarm_nanopi-r4s
|
||||
SOC := rk3399
|
||||
UBOOT_DEVICE_NAME := nanopi-r4s-rk3399
|
||||
IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r4s | pine64-bin | gzip | append-metadata
|
||||
DEVICE_PACKAGES := kmod-r8169 -urngd
|
||||
DEVICE_PACKAGES := kmod-r8168 -urngd
|
||||
endef
|
||||
TARGET_DEVICES += friendlyarm_nanopi-r4s
|
||||
|
||||
|
@ -1,9 +1,19 @@
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-ro
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
@@ -0,0 +1,412 @@
|
||||
@@ -0,0 +1,419 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
|
||||
+ * Copyright (c) 2021 EmbedFire <embedfire@embedfire.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
@ -21,6 +31,8 @@
|
||||
+ led-failsafe = &sys_led;
|
||||
+ led-running = &sys_led;
|
||||
+ led-upgrade = &sys_led;
|
||||
+ // mmc1 = &sdmmc;
|
||||
+ // mmc0 = &emmc;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
@ -78,6 +90,11 @@
|
||||
+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "doornet1:green:wan";
|
||||
+ };
|
||||
+
|
||||
+ wifi_enable: wifi_enable {
|
||||
+ gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "wifi-enable";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_io_sdio: sdmmcio-regulator {
|
||||
@ -93,8 +110,8 @@
|
||||
+ regulator-settling-time-us = <5000>;
|
||||
+ regulator-type = "voltage";
|
||||
+ startup-delay-us = <2000>;
|
||||
+ states = <1800000 0x1>,
|
||||
+ <3300000 0x0>;
|
||||
+ states = <1800000 0x1
|
||||
+ 3300000 0x0>;
|
||||
+ vin-supply = <&vcc_io_33>;
|
||||
+ };
|
||||
+
|
||||
@ -140,34 +157,16 @@
|
||||
+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||
+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||
+ clock_in_out = "input";
|
||||
+ phy-handle = <&rtl8211f>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-supply = <&vcc_io_33>;
|
||||
+ pinctrl-0 = <&rgmiim1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ snps,aal;
|
||||
+ snps,rxpbl = <0x4>;
|
||||
+ snps,txpbl = <0x4>;
|
||||
+ tx_delay = <0x24>;
|
||||
+ rx_delay = <0x58>;
|
||||
+ snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-delays-us = <0 1000000 50000>;
|
||||
+ snps,reset-active-low;
|
||||
+ tx_delay = <0x18>;
|
||||
+ rx_delay = <0x24>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ mdio {
|
||||
+ compatible = "snps,dwmac-mdio";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ rtl8211f: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-id001c.c916",
|
||||
+ "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ pinctrl-0 = <ð_phy_reset_pin>;
|
||||
+ pinctrl-names = "default";
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <50000>;
|
||||
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
@ -329,6 +328,10 @@
|
||||
+ wan_led_pin: wan-led-pin {
|
||||
+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pin: wifi_pin{
|
||||
+ rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pmic {
|
||||
@ -363,6 +366,20 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emmc {
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ max-frequency = <150000000>;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ non-removable;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
|
||||
+ vmmc-supply = <&vcc_io_33>;
|
||||
+ vqmmc-supply = <&vcc18_emmc>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tsadc {
|
||||
+ rockchip,hw-tshut-mode = <0>;
|
||||
+ rockchip,hw-tshut-polarity = <0>;
|
||||
@ -413,13 +430,5 @@
|
||||
+ realtek,led-data = <0x87>;
|
||||
+ };
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-ro
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
--
|
||||
2.25.1
|
||||
|
@ -274,8 +274,8 @@
|
||||
+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-active-low;
|
||||
+ snps,reset-delays-us = <0 100000 50000>;
|
||||
+ tx_delay = <0x13>;
|
||||
+ rx_delay = <0x0e>;
|
||||
+ tx_delay = <0x28>;
|
||||
+ rx_delay = <0x11>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
@ -766,3 +766,29 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
@@ -363,6 +363,11 @@ int stmmac_mdio_register(struct net_device *ndev)
|
||||
goto bus_register_fail;
|
||||
}
|
||||
|
||||
+ stmmac_mdio_write(new_bus,0,31,2627);
|
||||
+ stmmac_mdio_write(new_bus,0,25,0x1801);
|
||||
+ stmmac_mdio_write(new_bus,0,31,0);
|
||||
+ stmmac_mdio_write(new_bus,0,0,0x8000);
|
||||
+
|
||||
if (priv->plat->phy_node || mdio_node)
|
||||
goto bus_register_done;
|
||||
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -2191,6 +2191,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
|
||||
if (priv->extend_desc && (priv->mode == STMMAC_RING_MODE))
|
||||
atds = 1;
|
||||
|
||||
+ msleep(1500);
|
||||
+
|
||||
ret = stmmac_reset(priv, priv->ioaddr);
|
||||
if (ret) {
|
||||
dev_err(priv->device, "Failed to reset the dma\n");
|
||||
|
@ -0,0 +1,124 @@
|
||||
From 2184ab853067b484ba5677e35f1a6955a5c023a1 Mon Sep 17 00:00:00 2001
|
||||
From: wowowow <you@example.com>
|
||||
Date: Wed, 20 Oct 2021 13:46:46 +0800
|
||||
Subject: [PATCH] arm64-dts-doornet1-add-rk3328-dmc-relate-node
|
||||
|
||||
---
|
||||
.../boot/dts/rockchip/rk3328-doornet1.dts | 73 +++++++++++++++++++
|
||||
1 file changed, 73 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts b/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
index 8333351..d984163 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
+#include "rk3328-dram-nanopi2-timing.dtsi"
|
||||
#include "rk3328.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -56,6 +57,72 @@
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
+ dmc: dmc {
|
||||
+ compatible = "rockchip,rk3328-dmc";
|
||||
+ devfreq-events = <&dfi>;
|
||||
+ center-supply = <&vdd_log>;
|
||||
+ clocks = <&cru SCLK_DDRCLK>;
|
||||
+ clock-names = "dmc_clk";
|
||||
+ operating-points-v2 = <&dmc_opp_table>;
|
||||
+ ddr_timing = <&ddr_timing>;
|
||||
+ upthreshold = <40>;
|
||||
+ downdifferential = <20>;
|
||||
+ auto-min-freq = <786000>;
|
||||
+ auto-freq-en = <1>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ ddr_power_model: ddr_power_model {
|
||||
+ compatible = "ddr_power_model";
|
||||
+ dynamic-power-coefficient = <120>;
|
||||
+ static-power-coefficient = <200>;
|
||||
+ ts = <32000 4700 (-80) 2>;
|
||||
+ thermal-zone = "soc-thermal";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ dmc_opp_table: dmc-opp-table {
|
||||
+ compatible = "operating-points-v2";
|
||||
+
|
||||
+ rockchip,leakage-voltage-sel = <
|
||||
+ 1 10 0
|
||||
+ 11 254 1
|
||||
+ >;
|
||||
+ nvmem-cells = <&logic_leakage>;
|
||||
+ nvmem-cell-names = "ddr_leakage";
|
||||
+
|
||||
+ opp-786000000 {
|
||||
+ opp-hz = /bits/ 64 <786000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-798000000 {
|
||||
+ opp-hz = /bits/ 64 <798000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-840000000 {
|
||||
+ opp-hz = /bits/ 64 <840000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-924000000 {
|
||||
+ opp-hz = /bits/ 64 <924000000>;
|
||||
+ opp-microvolt = <1100000>;
|
||||
+ opp-microvolt-L0 = <1100000>;
|
||||
+ opp-microvolt-L1 = <1075000>;
|
||||
+ };
|
||||
+ opp-1056000000 {
|
||||
+ opp-hz = /bits/ 64 <1056000000>;
|
||||
+ opp-microvolt = <1175000>;
|
||||
+ opp-microvolt-L0 = <1175000>;
|
||||
+ opp-microvolt-L1 = <1150000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
|
||||
@@ -138,6 +205,10 @@
|
||||
cpu-supply = <&vdd_arm>;
|
||||
};
|
||||
|
||||
+&dfi {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&gmac2io {
|
||||
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||
@@ -201,6 +272,7 @@
|
||||
regulator-name = "vdd_log";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
+ regulator-init-microvolt = <1075000>;
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
@@ -215,6 +287,7 @@
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
+ regulator-init-microvolt = <1225000>;
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -10,6 +10,7 @@
|
||||
@@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-od
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
|
@ -1,15 +1,26 @@
|
||||
---- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-ro
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
@@ -0,0 +1,412 @@
|
||||
@@ -0,0 +1,495 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
|
||||
+ * Copyright (c) 2021 EmbedFire <embedfire@embedfire.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include "rk3328-dram-nanopi2-timing.dtsi"
|
||||
+#include "rk3328.dtsi"
|
||||
+
|
||||
+/ {
|
||||
@ -21,6 +32,8 @@
|
||||
+ led-failsafe = &sys_led;
|
||||
+ led-running = &sys_led;
|
||||
+ led-upgrade = &sys_led;
|
||||
+ // mmc1 = &sdmmc;
|
||||
+ // mmc0 = &emmc;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
@ -59,6 +72,72 @@
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ dmc: dmc {
|
||||
+ compatible = "rockchip,rk3328-dmc";
|
||||
+ devfreq-events = <&dfi>;
|
||||
+ center-supply = <&vdd_log>;
|
||||
+ clocks = <&cru SCLK_DDRCLK>;
|
||||
+ clock-names = "dmc_clk";
|
||||
+ operating-points-v2 = <&dmc_opp_table>;
|
||||
+ ddr_timing = <&ddr_timing>;
|
||||
+ upthreshold = <40>;
|
||||
+ downdifferential = <20>;
|
||||
+ auto-min-freq = <786000>;
|
||||
+ auto-freq-en = <1>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ ddr_power_model: ddr_power_model {
|
||||
+ compatible = "ddr_power_model";
|
||||
+ dynamic-power-coefficient = <120>;
|
||||
+ static-power-coefficient = <200>;
|
||||
+ ts = <32000 4700 (-80) 2>;
|
||||
+ thermal-zone = "soc-thermal";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ dmc_opp_table: dmc-opp-table {
|
||||
+ compatible = "operating-points-v2";
|
||||
+
|
||||
+ rockchip,leakage-voltage-sel = <
|
||||
+ 1 10 0
|
||||
+ 11 254 1
|
||||
+ >;
|
||||
+ nvmem-cells = <&logic_leakage>;
|
||||
+ nvmem-cell-names = "ddr_leakage";
|
||||
+
|
||||
+ opp-786000000 {
|
||||
+ opp-hz = /bits/ 64 <786000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-798000000 {
|
||||
+ opp-hz = /bits/ 64 <798000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-840000000 {
|
||||
+ opp-hz = /bits/ 64 <840000000>;
|
||||
+ opp-microvolt = <1075000>;
|
||||
+ opp-microvolt-L0 = <1075000>;
|
||||
+ opp-microvolt-L1 = <1050000>;
|
||||
+ };
|
||||
+ opp-924000000 {
|
||||
+ opp-hz = /bits/ 64 <924000000>;
|
||||
+ opp-microvolt = <1100000>;
|
||||
+ opp-microvolt-L0 = <1100000>;
|
||||
+ opp-microvolt-L1 = <1075000>;
|
||||
+ };
|
||||
+ opp-1056000000 {
|
||||
+ opp-hz = /bits/ 64 <1056000000>;
|
||||
+ opp-microvolt = <1175000>;
|
||||
+ opp-microvolt-L0 = <1175000>;
|
||||
+ opp-microvolt-L1 = <1150000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
|
||||
@ -78,6 +157,11 @@
|
||||
+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "doornet1:green:wan";
|
||||
+ };
|
||||
+
|
||||
+ wifi_enable: wifi_enable {
|
||||
+ gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "wifi-enable";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_io_sdio: sdmmcio-regulator {
|
||||
@ -93,8 +177,8 @@
|
||||
+ regulator-settling-time-us = <5000>;
|
||||
+ regulator-type = "voltage";
|
||||
+ startup-delay-us = <2000>;
|
||||
+ states = <1800000 0x1>,
|
||||
+ <3300000 0x0>;
|
||||
+ states = <1800000 0x1
|
||||
+ 3300000 0x0>;
|
||||
+ vin-supply = <&vcc_io_33>;
|
||||
+ };
|
||||
+
|
||||
@ -136,38 +220,24 @@
|
||||
+ cpu-supply = <&vdd_arm>;
|
||||
+};
|
||||
+
|
||||
+&dfi {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gmac2io {
|
||||
+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||
+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||
+ clock_in_out = "input";
|
||||
+ phy-handle = <&rtl8211f>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-supply = <&vcc_io_33>;
|
||||
+ pinctrl-0 = <&rgmiim1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ snps,aal;
|
||||
+ snps,rxpbl = <0x4>;
|
||||
+ snps,txpbl = <0x4>;
|
||||
+ tx_delay = <0x24>;
|
||||
+ rx_delay = <0x58>;
|
||||
+ snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-delays-us = <0 1000000 50000>;
|
||||
+ snps,reset-active-low;
|
||||
+ tx_delay = <0x18>;
|
||||
+ rx_delay = <0x24>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ mdio {
|
||||
+ compatible = "snps,dwmac-mdio";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ rtl8211f: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-id001c.c916",
|
||||
+ "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ pinctrl-0 = <ð_phy_reset_pin>;
|
||||
+ pinctrl-names = "default";
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <50000>;
|
||||
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
@ -199,6 +269,7 @@
|
||||
+ regulator-name = "vdd_log";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-init-microvolt = <1075000>;
|
||||
+ regulator-min-microvolt = <712500>;
|
||||
+ regulator-max-microvolt = <1450000>;
|
||||
+ regulator-ramp-delay = <12500>;
|
||||
@ -213,6 +284,7 @@
|
||||
+ regulator-name = "vdd_arm";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-init-microvolt = <1225000>;
|
||||
+ regulator-min-microvolt = <712500>;
|
||||
+ regulator-max-microvolt = <1450000>;
|
||||
+ regulator-ramp-delay = <12500>;
|
||||
@ -329,6 +401,10 @@
|
||||
+ wan_led_pin: wan-led-pin {
|
||||
+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pin: wifi_pin{
|
||||
+ rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pmic {
|
||||
@ -363,6 +439,20 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emmc {
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ max-frequency = <150000000>;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ non-removable;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
|
||||
+ vmmc-supply = <&vcc_io_33>;
|
||||
+ vqmmc-supply = <&vcc18_emmc>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tsadc {
|
||||
+ rockchip,hw-tshut-mode = <0>;
|
||||
+ rockchip,hw-tshut-polarity = <0>;
|
||||
@ -402,24 +492,20 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbdrd_dwc3 {
|
||||
+&usbdrd3 {
|
||||
+ dr_mode = "host";
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ usb-eth@2 {
|
||||
+ compatible = "realtek,rtl8153";
|
||||
+ /* Second port is for USB 3.0 */
|
||||
+ rtl8153: device@2 {
|
||||
+ compatible = "usbbda,8153";
|
||||
+ reg = <2>;
|
||||
+
|
||||
+ realtek,led-data = <0x87>;
|
||||
+ };
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-ro
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-li
|
||||
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-li
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
|
||||
@ -274,8 +274,8 @@
|
||||
+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-active-low;
|
||||
+ snps,reset-delays-us = <0 100000 50000>;
|
||||
+ tx_delay = <0x13>;
|
||||
+ rx_delay = <0x0e>;
|
||||
+ tx_delay = <0x28>;
|
||||
+ rx_delay = <0x11>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
@ -766,3 +766,29 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
@@ -363,6 +363,11 @@ int stmmac_mdio_register(struct net_device *ndev)
|
||||
goto bus_register_fail;
|
||||
}
|
||||
|
||||
+ stmmac_mdio_write(new_bus,0,31,2627);
|
||||
+ stmmac_mdio_write(new_bus,0,25,0x1801);
|
||||
+ stmmac_mdio_write(new_bus,0,31,0);
|
||||
+ stmmac_mdio_write(new_bus,0,0,0x8000);
|
||||
+
|
||||
if (priv->plat->phy_node || mdio_node)
|
||||
goto bus_register_done;
|
||||
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -2191,6 +2191,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
|
||||
if (priv->extend_desc && (priv->mode == STMMAC_RING_MODE))
|
||||
atds = 1;
|
||||
|
||||
+ msleep(1500);
|
||||
+
|
||||
ret = stmmac_reset(priv, priv->ioaddr);
|
||||
if (ret) {
|
||||
dev_err(priv->device, "Failed to reset the dma\n");
|
||||
|
@ -9,11 +9,9 @@ Subject: [PATCH] Add support for OrangePi R1 Plus LTS
|
||||
2 files changed, 45 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
index 23373c752..552d97555 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -13,6 +13,7 @@
|
||||
@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-ev
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
@ -21,9 +19,6 @@ index 23373c752..552d97555 100644
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
||||
new file mode 100644
|
||||
index 000000000..c65f7c417
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
||||
@@ -0,0 +1,70 @@
|
||||
@ -97,5 +92,3 @@ index 000000000..c65f7c417
|
||||
+&lan_led {
|
||||
+ label = "orangepi-r1-plus-lts:green:lan";
|
||||
+};
|
||||
--
|
||||
2.25.1
|
||||
|
@ -33,23 +33,16 @@ to status_led in accordance with the board schematics.
|
||||
2 files changed, 397 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
index 479906f3a..5f6ffb496 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -8,8 +8,8 @@
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
@@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb
|
||||
-dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-neo3.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
||||
new file mode 100644
|
||||
index 000000000..1eb7fd5f7
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
||||
@@ -0,0 +1,394 @@
|
||||
@ -447,6 +440,3 @@ index 000000000..1eb7fd5f7
|
||||
+ realtek,led-data = <0x87>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -31,6 +31,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a9
|
||||
@@ -31,6 +31,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gr
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-inx.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-kd.dtb
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
|
||||
--- a/drivers/devfreq/Kconfig
|
||||
+++ b/drivers/devfreq/Kconfig
|
||||
@@ -120,6 +120,18 @@ config ARM_TEGRA20_DEVFREQ
|
||||
@@ -120,6 +120,18 @@ config ARM_TEGRA_DEVFREQ
|
||||
It reads ACTMON counters of memory controllers and adjusts the
|
||||
operating frequencies and voltages with OPP support.
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \
|
||||
--- a/drivers/devfreq/Makefile
|
||||
+++ b/drivers/devfreq/Makefile
|
||||
@@ -11,6 +11,7 @@ obj-$(CONFIG_ARM_EXYNOS_BUS_DEVFREQ) +=
|
||||
@@ -11,6 +11,7 @@ obj-$(CONFIG_DEVFREQ_GOV_PASSIVE) += gov
|
||||
obj-$(CONFIG_ARM_EXYNOS_BUS_DEVFREQ) += exynos-bus.o
|
||||
obj-$(CONFIG_ARM_IMX_BUS_DEVFREQ) += imx-bus.o
|
||||
obj-$(CONFIG_ARM_IMX8M_DDRC_DEVFREQ) += imx8m-ddrc.o
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
#include "rk3328.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -114,6 +115,72 @@
|
||||
@@ -119,6 +120,72 @@
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vdd_5v>;
|
||||
};
|
||||
@ -97,7 +97,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
@@ -132,6 +199,10 @@
|
||||
@@ -137,6 +204,10 @@
|
||||
cpu-supply = <&vdd_arm>;
|
||||
};
|
||||
|
||||
@ -108,7 +108,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
&display_subsystem {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -195,6 +266,7 @@
|
||||
@@ -206,6 +277,7 @@
|
||||
regulator-name = "vdd_log";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
@ -116,7 +116,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
@@ -209,6 +281,7 @@
|
||||
@@ -220,6 +292,7 @@
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
@ -179,7 +179,7 @@ Co-authored-by: gzelvis <gzelvis@gmail.com>
|
||||
+#include "rk3399-nanopi4-opp.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
aliases {
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-doornet2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-doornet2.dtsi
|
||||
@@ -3,7 +3,7 @@
|
||||
|
@ -9,10 +9,10 @@
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-doornet1.dts
|
||||
@@ -0,0 +1,412 @@
|
||||
@@ -0,0 +1,419 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
|
||||
+ * Copyright (c) 2021 EmbedFire <embedfire@embedfire.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
@ -30,6 +30,8 @@
|
||||
+ led-failsafe = &sys_led;
|
||||
+ led-running = &sys_led;
|
||||
+ led-upgrade = &sys_led;
|
||||
+ // mmc1 = &sdmmc;
|
||||
+ // mmc0 = &emmc;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
@ -87,6 +89,11 @@
|
||||
+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "doornet1:green:wan";
|
||||
+ };
|
||||
+
|
||||
+ wifi_enable: wifi_enable {
|
||||
+ gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "wifi-enable";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_io_sdio: sdmmcio-regulator {
|
||||
@ -149,34 +156,16 @@
|
||||
+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||
+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||
+ clock_in_out = "input";
|
||||
+ phy-handle = <&rtl8211f>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-supply = <&vcc_io_33>;
|
||||
+ pinctrl-0 = <&rgmiim1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ snps,aal;
|
||||
+ snps,rxpbl = <0x4>;
|
||||
+ snps,txpbl = <0x4>;
|
||||
+ tx_delay = <0x24>;
|
||||
+ rx_delay = <0x58>;
|
||||
+ snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-delays-us = <0 1000000 50000>;
|
||||
+ snps,reset-active-low;
|
||||
+ tx_delay = <0xf>;
|
||||
+ rx_delay = <0x68>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ mdio {
|
||||
+ compatible = "snps,dwmac-mdio";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ rtl8211f: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-id001c.c916",
|
||||
+ "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ pinctrl-0 = <ð_phy_reset_pin>;
|
||||
+ pinctrl-names = "default";
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <50000>;
|
||||
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
@ -338,6 +327,10 @@
|
||||
+ wan_led_pin: wan-led-pin {
|
||||
+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pin: wifi_pin{
|
||||
+ rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pmic {
|
||||
@ -372,6 +365,20 @@
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emmc {
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ max-frequency = <150000000>;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ non-removable;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
|
||||
+ vmmc-supply = <&vcc_io_33>;
|
||||
+ vqmmc-supply = <&vcc18_emmc>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tsadc {
|
||||
+ rockchip,hw-tshut-mode = <0>;
|
||||
+ rockchip,hw-tshut-polarity = <0>;
|
||||
@ -422,3 +429,5 @@
|
||||
+ realtek,led-data = <0x87>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.25.1
|
||||
|
@ -182,7 +182,7 @@
|
||||
/* Clean trail, interrupt corrects the leds */
|
||||
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
|
||||
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
|
||||
@@ -110,6 +110,10 @@ static int disable_tpa;
|
||||
@@ -113,6 +113,10 @@ static int disable_tpa;
|
||||
module_param(disable_tpa, int, 0444);
|
||||
MODULE_PARM_DESC(disable_tpa, " Disable the TPA (LRO) feature");
|
||||
|
||||
@ -193,7 +193,7 @@
|
||||
static int int_mode;
|
||||
module_param(int_mode, int, 0444);
|
||||
MODULE_PARM_DESC(int_mode, " Force interrupt mode other than MSI-X "
|
||||
@@ -12343,6 +12347,8 @@ static int bnx2x_init_bp(struct bnx2x *b
|
||||
@@ -12346,6 +12350,8 @@ static int bnx2x_init_bp(struct bnx2x *b
|
||||
if (BP_NOMCP(bp) && (func == 0))
|
||||
dev_err(&bp->pdev->dev, "MCP disabled, must load devices in order!\n");
|
||||
|
||||
|
@ -46,6 +46,7 @@ $(curdir)/bison/compile := $(curdir)/flex/compile
|
||||
$(curdir)/cbootimage/compile += $(curdir)/automake/compile
|
||||
$(curdir)/cmake/compile += $(curdir)/libressl/compile $(curdir)/ninja/compile
|
||||
$(curdir)/dosfstools/compile := $(curdir)/autoconf/compile $(curdir)/automake/compile
|
||||
$(curdir)/expat/compile := $(curdir)/cmake/compile
|
||||
$(curdir)/e2fsprogs/compile := $(curdir)/libtool/compile
|
||||
$(curdir)/fakeroot/compile := $(curdir)/libtool/compile
|
||||
$(curdir)/findutils/compile := $(curdir)/bison/compile
|
||||
|
@ -1,11 +1,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=autoconf-archive
|
||||
PKG_VERSION:=2019.01.06
|
||||
PKG_VERSION:=2021.02.19
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/autoconf-archive
|
||||
PKG_HASH:=17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f
|
||||
PKG_HASH:=e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
|
||||
|
@ -7,11 +7,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=bison
|
||||
PKG_VERSION:=3.7.4
|
||||
PKG_VERSION:=3.8.2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
||||
PKG_HASH:=a3b5813f48a11e540ef26f46e4d288c0c25c7907d9879ae50e430ec49f63c010
|
||||
PKG_HASH:=9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
|
@ -1,17 +0,0 @@
|
||||
--- a/lib/stdio.in.h
|
||||
+++ b/lib/stdio.in.h
|
||||
@@ -835,14 +835,6 @@ _GL_WARN_ON_USE (getline, "getline is un
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning; besides, C11
|
||||
- removed it. */
|
||||
-#undef gets
|
||||
-#if HAVE_RAW_DECL_GETS && !defined __cplusplus
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-#endif
|
||||
-
|
||||
#if defined _WIN32 && !defined __CYGWIN__
|
||||
# undef getw
|
||||
# define getw _getw
|
@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
PKG_NAME:=ccache
|
||||
PKG_VERSION:=4.4.2
|
||||
PKG_VERSION:=4.5.1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://github.com/ccache/ccache/releases/download/v$(PKG_VERSION)
|
||||
PKG_HASH:=9200cafbaa5fd62c2600fccb40a18214e57747825e6cdcd76688b4b61c2dcba0
|
||||
PKG_HASH:=51186ebe0326365f4e6131e1caa8911de7da4aa6718efc00680322d63a759517
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
|
@ -7,14 +7,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=cmake
|
||||
PKG_VERSION:=3.22.1
|
||||
PKG_VERSION:=3.22.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_CPE_ID:=cpe:/a:kitware:cmake
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/Kitware/CMake/releases/download/v$(PKG_VERSION)/ \
|
||||
https://cmake.org/files/v3.19/
|
||||
PKG_HASH:=0e998229549d7b3f368703d20e248e7ee1f853910d42704aa87918c213ea82c0
|
||||
PKG_HASH:=3c1c478b9650b107d452c5bd545c72e2fad4e37c09b89a1984b9a2f46df6aced
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
HOST_CONFIGURE_PARALLEL:=1
|
||||
|
@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=e2fsprogs
|
||||
PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
|
||||
PKG_VERSION:=1.45.6
|
||||
PKG_HASH:=ffa7ae6954395abdc50d0f8605d8be84736465afc53b8938ef473fcf7ff44256
|
||||
PKG_VERSION:=1.46.4
|
||||
PKG_HASH:=b11042533c1b1dcf17512f0da48e05b0c573dada1dd8b762864d10f4dc399713
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
@ -23,7 +23,7 @@ include $(INCLUDE_DIR)/host-build.mk
|
||||
ifneq ($(shell $(HOSTCC) --version | grep clang),)
|
||||
HOST_CFLAGS += -D__GNUC_PREREQ\(...\)=0 -Dloff_t=off_t
|
||||
endif
|
||||
HOST_CFLAGS += $(FPIC)
|
||||
HOST_CFLAGS += $(HOST_FPIC)
|
||||
|
||||
HOST_CONFIGURE_ARGS += \
|
||||
--disable-elf-shlibs \
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/e2fsck/e2fsck.h
|
||||
+++ b/e2fsck/e2fsck.h
|
||||
@@ -73,7 +73,7 @@
|
||||
@@ -74,7 +74,7 @@
|
||||
* Exit codes used by fsck-type programs
|
||||
*/
|
||||
#define FSCK_OK 0 /* No errors */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user