Merge branch 'openwrt-21.02' of https://github.com/immortalwrt/immortalwrt into openwrt-21.02

This commit is contained in:
hanwckf 2023-09-03 12:27:26 +08:00
commit 45329cb67c
109 changed files with 478 additions and 81 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.4 = .252
LINUX_KERNEL_HASH-5.4.252 = 3a78587523940374a7319089b63357c7dc412b90f5879d512265e59173588267
LINUX_VERSION-5.4 = .255
LINUX_KERNEL_HASH-5.4.255 = 34d5ed902f47d90f27b9d5d6b8db0d3fa660834111f9452e166d920968a4a061

View File

@ -7,9 +7,9 @@ PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://git.openwrt.org/project/bcm63xx/u-boot.git
PKG_SOURCE_DATE:=2022-03-15
PKG_SOURCE_VERSION:=0625aad74d1f5b6f9c068955ad3fd7f6df635e50
PKG_MIRROR_HASH:=0602e0e4f101ead206940eccca832b75191905c1e81290340a89b07dbee7a6ce
PKG_SOURCE_DATE:=2022-12-08
PKG_SOURCE_VERSION:=4435700d18a791dca0d8d767e5414dfac9df4451
PKG_MIRROR_HASH:=6062ce611d7222eb3b9768bb4944ff1c7bcf26b997280adf5ea8d7afe83f28a8
include $(INCLUDE_DIR)/u-boot.mk
include $(INCLUDE_DIR)/package.mk

View File

@ -7,7 +7,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ixgbe
PKG_VERSION:=5.19.6
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/e1000/ixgbe%20stable/$(PKG_VERSION)/

View File

@ -0,0 +1,11 @@
--- a/src/ixgbe_main.c
+++ b/src/ixgbe_main.c
@@ -9869,7 +9869,7 @@ static void ixgbe_atr(struct ixgbe_ring
struct ixgbe_adapter *adapter = q_vector->adapter;
if (unlikely(skb_tail_pointer(skb) < hdr.network +
- VXLAN_HEADROOM))
+ vxlan_headroom(0)))
return;
/* verify the port is recognized as VXLAN or GENEVE*/

View File

@ -5,9 +5,9 @@ PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/urngd.git
PKG_SOURCE_DATE:=2020-01-21
PKG_SOURCE_VERSION:=c7f7b6b65b82eda4675b42d8cd28d76ea7aebf1a
PKG_MIRROR_HASH:=2d31025b79fe130c579d6c3f4bf4dc12abc43a7319b20a5cdca24ae363ec70f3
PKG_SOURCE_DATE:=2023-07-25
PKG_SOURCE_VERSION:=7aefb47be57df0467d97d539f7fe9e23e607a3b4
PKG_MIRROR_HASH:=427d4228fd65cf4320b8c212e710b86bcbfcdd4239f4e67132b3b471f7437202
PKG_LICENSE:=GPL-2.0 BSD-3-Clause
PKG_LICENSE_FILES:=
@ -38,6 +38,11 @@ define Package/urngd/description
Jitter RNGd provides a source of sufficient entropy.
endef
ifdef CONFIG_USE_GLIBC
TARGET_CFLAGS += -U_FORTIFY_SOURCE
TARGET_LDFLAGS += -lpthread
endif
define Package/urngd/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)

View File

@ -1,8 +1,6 @@
diff --git a/urngd.c b/urngd.c
index 35ccdec..410d300 100644
--- a/urngd.c
+++ b/urngd.c
@@ -129,9 +129,14 @@ static size_t gather_entropy(struct urngd *u)
@@ -129,9 +129,14 @@ static size_t gather_entropy(struct urng
static void low_entropy_cb(struct uloop_fd *ufd, unsigned int events)
{
struct urngd *u = container_of(ufd, struct urngd, rnd_fd);
@ -17,3 +15,4 @@ index 35ccdec..410d300 100644
+ }
}
static void urngd_done(struct urngd *u)

View File

@ -610,7 +610,7 @@
return false;
return true;
@@ -741,13 +745,13 @@ static inline void ipv6_addr_set_v4mappe
@@ -737,13 +741,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));
}
@@ -934,17 +938,18 @@ static inline int ip6_multipath_hash_pol
@@ -930,17 +934,18 @@ static inline int ip6_multipath_hash_pol
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
__be32 flowlabel)
{

View File

@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
@@ -2895,6 +2902,7 @@ static int mmc_blk_probe(struct mmc_card
@@ -2896,6 +2903,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
/*
* Check that the card supports the command class(es) we need.
@@ -2902,7 +2910,16 @@ static int mmc_blk_probe(struct mmc_card
@@ -2903,7 +2911,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
@@ -2917,9 +2934,14 @@ static int mmc_blk_probe(struct mmc_card
@@ -2918,9 +2935,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));

View File

@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1272,6 +1275,9 @@
@@ -1273,6 +1276,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
@ -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 },
@@ -196,6 +197,7 @@ static const struct hid_device_id hid_qu
@@ -197,6 +198,7 @@ static const struct hid_device_id hid_qu
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ 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 },

View File

@ -83,7 +83,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
* for the output and the capture buffer queue.
--- a/include/media/v4l2-mem2mem.h
+++ b/include/media/v4l2-mem2mem.h
@@ -701,6 +701,10 @@ int v4l2_m2m_ioctl_try_encoder_cmd(struc
@@ -715,6 +715,10 @@ int v4l2_m2m_ioctl_try_encoder_cmd(struc
struct v4l2_encoder_cmd *ec);
int v4l2_m2m_ioctl_try_decoder_cmd(struct file *file, void *fh,
struct v4l2_decoder_cmd *dc);

View File

@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
return;
val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3);
@@ -641,13 +642,21 @@ static struct phy_driver broadcom_driver
@@ -652,13 +653,21 @@ static struct phy_driver broadcom_driver
.config_intr = bcm_phy_config_intr,
}, {
.phy_id = PHY_ID_BCM54210E,
@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
.phy_id = PHY_ID_BCM5461,
.phy_id_mask = 0xfffffff0,
.name = "Broadcom BCM5461",
@@ -775,7 +784,8 @@ module_phy_driver(broadcom_drivers);
@@ -788,7 +797,8 @@ module_phy_driver(broadcom_drivers);
static struct mdio_device_id __maybe_unused broadcom_tbl[] = {
{ PHY_ID_BCM5411, 0xfffffff0 },
{ PHY_ID_BCM5421, 0xfffffff0 },

View File

@ -8,7 +8,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
---
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -243,6 +243,9 @@
@@ -260,6 +260,9 @@
#ifndef cpu_has_pindexed_dcache
#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
#endif

View File

@ -47,7 +47,7 @@ Tested-by: Yu Zhao <yuzhao@chromium.org>
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1327,7 +1327,6 @@ static inline struct mem_cgroup *page_me
@@ -1329,7 +1329,6 @@ static inline struct mem_cgroup *page_me
}
static inline struct mem_cgroup *page_memcg_rcu(struct page *page)
{

View File

@ -91,7 +91,7 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
return 1;
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -924,6 +924,8 @@ vm_fault_t finish_mkwrite_fault(struct v
@@ -926,6 +926,8 @@ vm_fault_t finish_mkwrite_fault(struct v
#define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH)
#define LAST_CPUPID_PGOFF (ZONES_PGOFF - LAST_CPUPID_WIDTH)
#define KASAN_TAG_PGOFF (LAST_CPUPID_PGOFF - KASAN_TAG_WIDTH)

View File

@ -104,7 +104,7 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
return false;
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1513,6 +1513,23 @@ void unmap_mapping_pages(struct address_
@@ -1515,6 +1515,23 @@ void unmap_mapping_pages(struct address_
pgoff_t start, pgoff_t nr, bool even_cows);
void unmap_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen, int even_cows);
@ -128,7 +128,7 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
#else
static inline vm_fault_t handle_mm_fault(struct vm_area_struct *vma,
unsigned long address, unsigned int flags)
@@ -1534,6 +1551,19 @@ static inline void unmap_mapping_pages(s
@@ -1536,6 +1553,19 @@ static inline void unmap_mapping_pages(s
pgoff_t start, pgoff_t nr, bool even_cows) { }
static inline void unmap_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen, int even_cows) { }

View File

@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>");
--- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c
@@ -234,47 +234,14 @@ static struct nft_expr_type nft_flow_off
@@ -236,47 +236,14 @@ static struct nft_expr_type nft_flow_off
.owner = THIS_MODULE,
};

View File

@ -202,7 +202,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -4884,7 +4884,8 @@ static struct mv88e6xxx_chip *mv88e6xxx_
@@ -4892,7 +4892,8 @@ static struct mv88e6xxx_chip *mv88e6xxx_
}
static enum dsa_tag_protocol mv88e6xxx_get_tag_protocol(struct dsa_switch *ds,

View File

@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2384,7 +2384,14 @@ static int mv88e6xxx_setup_upstream_port
@@ -2392,7 +2392,14 @@ static int mv88e6xxx_setup_upstream_port
if (chip->info->ops->set_egress_port) {
err = chip->info->ops->set_egress_port(chip,

View File

@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -4935,6 +4935,80 @@ static int mv88e6xxx_port_mdb_del(struct
@@ -4943,6 +4943,80 @@ static int mv88e6xxx_port_mdb_del(struct
return err;
}
@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
bool unicast, bool multicast)
{
@@ -4989,6 +5063,8 @@ static const struct dsa_switch_ops mv88e
@@ -4997,6 +5071,8 @@ static const struct dsa_switch_ops mv88e
.port_mdb_prepare = mv88e6xxx_port_mdb_prepare,
.port_mdb_add = mv88e6xxx_port_mdb_add,
.port_mdb_del = mv88e6xxx_port_mdb_del,

View File

@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -5002,7 +5002,7 @@ static void mv88e6xxx_port_mirror_del(st
@@ -5010,7 +5010,7 @@ static void mv88e6xxx_port_mirror_del(st
if (chip->info->ops->set_egress_port(chip,
direction,
dsa_upstream_port(ds,

View File

@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
device, it has to decide which ones to send first, which ones to
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -2300,7 +2300,7 @@ static int __init pktsched_init(void)
@@ -2327,7 +2327,7 @@ static int __init pktsched_init(void)
return err;
}

View File

@ -1,6 +1,6 @@
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2497,6 +2497,9 @@ static int mv88e6xxx_setup_port(struct m
@@ -2505,6 +2505,9 @@ static int mv88e6xxx_setup_port(struct m
if (dsa_is_cpu_port(ds, port))
reg = 0;

View File

@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
{
struct dst_entry *dst = __sk_dst_get(sk);
@@ -1760,9 +1773,11 @@ static void __sk_free(struct sock *sk)
@@ -1763,9 +1776,11 @@ static void __sk_free(struct sock *sk)
if (likely(sk->sk_net_refcnt))
sock_inuse_add(sock_net(sk), -1);

View File

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

View File

@ -10,7 +10,7 @@
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -404,6 +404,7 @@ static void option_instat_callback(struc
@@ -406,6 +406,7 @@ static void option_instat_callback(struc
* Mobidata, etc sell under their own brand names.
*/
#define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */
/* This one was sold as the VW and Skoda "Carstick LTE" */
@@ -621,6 +622,16 @@ static void option_instat_callback(struc
@@ -623,6 +624,16 @@ static void option_instat_callback(struc
/* Device needs ZLP */
#define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -655,6 +666,8 @@ static const struct usb_device_id option
@@ -657,6 +668,8 @@ static const struct usb_device_id option
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) },

View File

@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1802,6 +1802,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1806,6 +1806,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* When we registered the protocol we saved the socket in the data
@@ -1809,6 +1810,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1813,6 +1814,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* Yank back the headers [hope the device set this
@@ -1821,7 +1823,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1825,7 +1827,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2067,12 +2069,12 @@ static int packet_rcv(struct sk_buff *sk
@@ -2071,12 +2073,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -2198,12 +2200,12 @@ static int tpacket_rcv(struct sk_buff *s
@@ -2202,12 +2204,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -3313,6 +3315,7 @@ static int packet_create(struct net *net
@@ -3317,6 +3319,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3952,6 +3955,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3956,6 +3959,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0;
}
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
@@ -4008,6 +4021,13 @@ static int packet_getsockopt(struct sock
@@ -4012,6 +4025,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+MODULE_ALIAS("nf-flow-table-hw");
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -5857,6 +5857,13 @@ static int nf_tables_flowtable_parse_hoo
@@ -5888,6 +5888,13 @@ static int nf_tables_flowtable_parse_hoo
if (err < 0)
return err;
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
if (!ops)
return -ENOMEM;
@@ -5987,10 +5994,19 @@ static int nf_tables_newflowtable(struct
@@ -6023,10 +6030,19 @@ static int nf_tables_newflowtable(struct
}
flowtable->data.type = type;
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
flowtable);
if (err < 0)
@@ -6111,7 +6127,8 @@ static int nf_tables_fill_flowtable_info
@@ -6149,7 +6165,8 @@ static int nf_tables_fill_flowtable_info
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),

View File

@ -17,7 +17,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2668,6 +2668,7 @@ static int mv88e6xxx_setup(struct dsa_sw
@@ -2676,6 +2676,7 @@ static int mv88e6xxx_setup(struct dsa_sw
chip->ds = ds;
ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip);

View File

@ -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
@@ -5089,6 +5089,7 @@ static int mv88e6xxx_register_switch(str
@@ -5097,6 +5097,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;

View File

@ -0,0 +1,32 @@
From 4eb89c73f32d3c87a6938065bd230b3a93619e3e Mon Sep 17 00:00:00 2001
From: Tianling Shen <cnsztl@gmail.com>
Date: Thu, 31 Aug 2023 11:04:59 +0800
Subject: [PATCH] Revert "ASoC: fsl_sai: Disable bit clock with transmitter"
This reverts commit 94239d1830a1f30c30cd0e14efcad47a4379563b.
---
sound/soc/fsl/fsl_sai.c | 2 +-
sound/soc/fsl/fsl_sai.h | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -548,7 +548,7 @@ static void fsl_sai_config_disable(struc
u32 xcsr, count = 100;
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
- FSL_SAI_CSR_TERE | FSL_SAI_CSR_BCE, 0);
+ FSL_SAI_CSR_TERE, 0);
/* TERE will remain set till the end of current frame */
do {
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -87,7 +87,6 @@
/* SAI Transmit/Receive Control Register */
#define FSL_SAI_CSR_TERE BIT(31)
#define FSL_SAI_CSR_SE BIT(30)
-#define FSL_SAI_CSR_BCE BIT(28)
#define FSL_SAI_CSR_FR BIT(25)
#define FSL_SAI_CSR_SR BIT(24)
#define FSL_SAI_CSR_xF_SHIFT 16

View File

@ -0,0 +1,182 @@
From 04493d5f2adffe3473941a860ef77bfd5ee05ed3 Mon Sep 17 00:00:00 2001
From: Tianling Shen <cnsztl@gmail.com>
Date: Thu, 31 Aug 2023 11:05:06 +0800
Subject: [PATCH] Revert "ASoC: fsl_sai: Add new added registers and new bit
definition"
This reverts commit ef9cae4a6c8d4f8822540bed20c2d1eb37722408.
---
sound/soc/fsl/fsl_sai.c | 23 ----------------
sound/soc/fsl/fsl_sai.h | 59 -----------------------------------------
2 files changed, 82 deletions(-)
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -810,8 +810,6 @@ static struct reg_default fsl_sai_reg_de
{FSL_SAI_RCR4(8), 0},
{FSL_SAI_RCR5(8), 0},
{FSL_SAI_RMR, 0},
- {FSL_SAI_MCTL, 0},
- {FSL_SAI_MDIV, 0},
};
static bool fsl_sai_readable_reg(struct device *dev, unsigned int reg)
@@ -852,18 +850,6 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_RFR6:
case FSL_SAI_RFR7:
case FSL_SAI_RMR:
- case FSL_SAI_MCTL:
- case FSL_SAI_MDIV:
- case FSL_SAI_VERID:
- case FSL_SAI_PARAM:
- case FSL_SAI_TTCTN:
- case FSL_SAI_RTCTN:
- case FSL_SAI_TTCTL:
- case FSL_SAI_TBCTN:
- case FSL_SAI_TTCAP:
- case FSL_SAI_RTCTL:
- case FSL_SAI_RBCTN:
- case FSL_SAI_RTCAP:
return true;
default:
return false;
@@ -878,10 +864,6 @@ static bool fsl_sai_volatile_reg(struct
if (reg == FSL_SAI_TCSR(ofs) || reg == FSL_SAI_RCSR(ofs))
return true;
- /* Set VERID and PARAM be volatile for reading value in probe */
- if (ofs == 8 && (reg == FSL_SAI_VERID || reg == FSL_SAI_PARAM))
- return true;
-
switch (reg) {
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
@@ -935,10 +917,6 @@ static bool fsl_sai_writeable_reg(struct
case FSL_SAI_TDR7:
case FSL_SAI_TMR:
case FSL_SAI_RMR:
- case FSL_SAI_MCTL:
- case FSL_SAI_MDIV:
- case FSL_SAI_TTCTL:
- case FSL_SAI_RTCTL:
return true;
default:
return false;
@@ -987,7 +965,6 @@ static int fsl_sai_probe(struct platform
if (sai->soc_data->reg_offset == 8) {
fsl_sai_regmap_config.reg_defaults = fsl_sai_reg_defaults_ofs8;
- fsl_sai_regmap_config.max_register = FSL_SAI_MDIV;
fsl_sai_regmap_config.num_reg_defaults =
ARRAY_SIZE(fsl_sai_reg_defaults_ofs8);
}
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -14,8 +14,6 @@
SNDRV_PCM_FMTBIT_S32_LE)
/* SAI Register Map Register */
-#define FSL_SAI_VERID 0x00 /* SAI Version ID Register */
-#define FSL_SAI_PARAM 0x04 /* SAI Parameter Register */
#define FSL_SAI_TCSR(ofs) (0x00 + ofs) /* SAI Transmit Control */
#define FSL_SAI_TCR1(ofs) (0x04 + ofs) /* SAI Transmit Configuration 1 */
#define FSL_SAI_TCR2(ofs) (0x08 + ofs) /* SAI Transmit Configuration 2 */
@@ -39,10 +37,6 @@
#define FSL_SAI_TFR6 0x58 /* SAI Transmit FIFO 6 */
#define FSL_SAI_TFR7 0x5C /* SAI Transmit FIFO 7 */
#define FSL_SAI_TMR 0x60 /* SAI Transmit Mask */
-#define FSL_SAI_TTCTL 0x70 /* SAI Transmit Timestamp Control Register */
-#define FSL_SAI_TTCTN 0x74 /* SAI Transmit Timestamp Counter Register */
-#define FSL_SAI_TBCTN 0x78 /* SAI Transmit Bit Counter Register */
-#define FSL_SAI_TTCAP 0x7C /* SAI Transmit Timestamp Capture */
#define FSL_SAI_RCSR(ofs) (0x80 + ofs) /* SAI Receive Control */
#define FSL_SAI_RCR1(ofs) (0x84 + ofs)/* SAI Receive Configuration 1 */
#define FSL_SAI_RCR2(ofs) (0x88 + ofs) /* SAI Receive Configuration 2 */
@@ -66,13 +60,6 @@
#define FSL_SAI_RFR6 0xd8 /* SAI Receive FIFO 6 */
#define FSL_SAI_RFR7 0xdc /* SAI Receive FIFO 7 */
#define FSL_SAI_RMR 0xe0 /* SAI Receive Mask */
-#define FSL_SAI_RTCTL 0xf0 /* SAI Receive Timestamp Control Register */
-#define FSL_SAI_RTCTN 0xf4 /* SAI Receive Timestamp Counter Register */
-#define FSL_SAI_RBCTN 0xf8 /* SAI Receive Bit Counter Register */
-#define FSL_SAI_RTCAP 0xfc /* SAI Receive Timestamp Capture */
-
-#define FSL_SAI_MCTL 0x100 /* SAI MCLK Control Register */
-#define FSL_SAI_MDIV 0x104 /* SAI MCLK Divide Register */
#define FSL_SAI_xCSR(tx, ofs) (tx ? FSL_SAI_TCSR(ofs) : FSL_SAI_RCSR(ofs))
#define FSL_SAI_xCR1(tx, ofs) (tx ? FSL_SAI_TCR1(ofs) : FSL_SAI_RCR1(ofs))
@@ -86,7 +73,6 @@
/* SAI Transmit/Receive Control Register */
#define FSL_SAI_CSR_TERE BIT(31)
-#define FSL_SAI_CSR_SE BIT(30)
#define FSL_SAI_CSR_FR BIT(25)
#define FSL_SAI_CSR_SR BIT(24)
#define FSL_SAI_CSR_xF_SHIFT 16
@@ -120,7 +106,6 @@
#define FSL_SAI_CR2_MSEL(ID) ((ID) << 26)
#define FSL_SAI_CR2_BCP BIT(25)
#define FSL_SAI_CR2_BCD_MSTR BIT(24)
-#define FSL_SAI_CR2_BYP BIT(23) /* BCLK bypass */
#define FSL_SAI_CR2_DIV_MASK 0xff
/* SAI Transmit and Receive Configuration 3 Register */
@@ -130,13 +115,6 @@
#define FSL_SAI_CR3_WDFL_MASK 0x1f
/* SAI Transmit and Receive Configuration 4 Register */
-
-#define FSL_SAI_CR4_FCONT BIT(28)
-#define FSL_SAI_CR4_FCOMB_SHIFT BIT(26)
-#define FSL_SAI_CR4_FCOMB_SOFT BIT(27)
-#define FSL_SAI_CR4_FCOMB_MASK (0x3 << 26)
-#define FSL_SAI_CR4_FPACK_8 (0x2 << 24)
-#define FSL_SAI_CR4_FPACK_16 (0x3 << 24)
#define FSL_SAI_CR4_FRSZ(x) (((x) - 1) << 16)
#define FSL_SAI_CR4_FRSZ_MASK (0x1f << 16)
#define FSL_SAI_CR4_SYWD(x) (((x) - 1) << 8)
@@ -154,43 +132,6 @@
#define FSL_SAI_CR5_FBT(x) ((x) << 8)
#define FSL_SAI_CR5_FBT_MASK (0x1f << 8)
-/* SAI MCLK Control Register */
-#define FSL_SAI_MCTL_MCLK_EN BIT(30) /* MCLK Enable */
-#define FSL_SAI_MCTL_MSEL_MASK (0x3 << 24)
-#define FSL_SAI_MCTL_MSEL(ID) ((ID) << 24)
-#define FSL_SAI_MCTL_MSEL_BUS 0
-#define FSL_SAI_MCTL_MSEL_MCLK1 BIT(24)
-#define FSL_SAI_MCTL_MSEL_MCLK2 BIT(25)
-#define FSL_SAI_MCTL_MSEL_MCLK3 (BIT(24) | BIT(25))
-#define FSL_SAI_MCTL_DIV_EN BIT(23)
-#define FSL_SAI_MCTL_DIV_MASK 0xFF
-
-/* SAI VERID Register */
-#define FSL_SAI_VERID_MAJOR_SHIFT 24
-#define FSL_SAI_VERID_MAJOR_MASK GENMASK(31, 24)
-#define FSL_SAI_VERID_MINOR_SHIFT 16
-#define FSL_SAI_VERID_MINOR_MASK GENMASK(23, 16)
-#define FSL_SAI_VERID_FEATURE_SHIFT 0
-#define FSL_SAI_VERID_FEATURE_MASK GENMASK(15, 0)
-#define FSL_SAI_VERID_EFIFO_EN BIT(0)
-#define FSL_SAI_VERID_TSTMP_EN BIT(1)
-
-/* SAI PARAM Register */
-#define FSL_SAI_PARAM_SPF_SHIFT 16
-#define FSL_SAI_PARAM_SPF_MASK GENMASK(19, 16)
-#define FSL_SAI_PARAM_WPF_SHIFT 8
-#define FSL_SAI_PARAM_WPF_MASK GENMASK(11, 8)
-#define FSL_SAI_PARAM_DLN_MASK GENMASK(3, 0)
-
-/* SAI MCLK Divide Register */
-#define FSL_SAI_MDIV_MASK 0xFFFFF
-
-/* SAI timestamp and bitcounter */
-#define FSL_SAI_xTCTL_TSEN BIT(0)
-#define FSL_SAI_xTCTL_TSINC BIT(1)
-#define FSL_SAI_xTCTL_RTSC BIT(8)
-#define FSL_SAI_xTCTL_RBC BIT(9)
-
/* SAI type */
#define FSL_SAI_DMA BIT(0)
#define FSL_SAI_USE_AC97 BIT(1)

View File

@ -0,0 +1,175 @@
From f12dcaf65b9a780f0cc72e3b86479e71a59116f1 Mon Sep 17 00:00:00 2001
From: Tianling Shen <cnsztl@gmail.com>
Date: Thu, 31 Aug 2023 11:05:11 +0800
Subject: [PATCH] Revert "ASoC: fsl_sai: Refine enable/disable TE/RE sequence
in trigger()"
This reverts commit 1b3d751045425ec38e1e68cd1d64da1856772144.
---
sound/soc/fsl/fsl_sai.c | 126 +++++++++++++---------------------------
1 file changed, 41 insertions(+), 85 deletions(-)
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -37,24 +37,6 @@ static const struct snd_pcm_hw_constrain
.list = fsl_sai_rates,
};
-/**
- * fsl_sai_dir_is_synced - Check if stream is synced by the opposite stream
- *
- * SAI supports synchronous mode using bit/frame clocks of either Transmitter's
- * or Receiver's for both streams. This function is used to check if clocks of
- * the stream's are synced by the opposite stream.
- *
- * @sai: SAI context
- * @dir: stream direction
- */
-static inline bool fsl_sai_dir_is_synced(struct fsl_sai *sai, int dir)
-{
- int adir = (dir == TX) ? RX : TX;
-
- /* current dir in async mode while opposite dir in sync mode */
- return !sai->synchronous[dir] && sai->synchronous[adir];
-}
-
static irqreturn_t fsl_sai_isr(int irq, void *devid)
{
struct fsl_sai *sai = (struct fsl_sai *)devid;
@@ -541,38 +523,6 @@ static int fsl_sai_hw_free(struct snd_pc
return 0;
}
-static void fsl_sai_config_disable(struct fsl_sai *sai, int dir)
-{
- unsigned int ofs = sai->soc_data->reg_offset;
- bool tx = dir == TX;
- u32 xcsr, count = 100;
-
- regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
- FSL_SAI_CSR_TERE, 0);
-
- /* TERE will remain set till the end of current frame */
- do {
- udelay(10);
- regmap_read(sai->regmap, FSL_SAI_xCSR(tx, ofs), &xcsr);
- } while (--count && xcsr & FSL_SAI_CSR_TERE);
-
- regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
- FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
-
- /*
- * For sai master mode, after several open/close sai,
- * there will be no frame clock, and can't recover
- * anymore. Add software reset to fix this issue.
- * This is a hardware bug, and will be fix in the
- * next sai version.
- */
- if (!sai->is_slave_mode) {
- /* Software Reset */
- regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), FSL_SAI_CSR_SR);
- /* Clear SR bit to finish the reset */
- regmap_write(sai->regmap, FSL_SAI_xCSR(tx, ofs), 0);
- }
-}
static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
struct snd_soc_dai *cpu_dai)
@@ -581,9 +531,7 @@ static int fsl_sai_trigger(struct snd_pc
unsigned int ofs = sai->soc_data->reg_offset;
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
- int adir = tx ? RX : TX;
- int dir = tx ? TX : RX;
- u32 xcsr;
+ u32 xcsr, count = 100;
/*
* Asynchronous mode: Clear SYNC for both Tx and Rx.
@@ -606,22 +554,10 @@ static int fsl_sai_trigger(struct snd_pc
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE);
- regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
+ regmap_update_bits(sai->regmap, FSL_SAI_RCSR(ofs),
+ FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE);
+ regmap_update_bits(sai->regmap, FSL_SAI_TCSR(ofs),
FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE);
- /*
- * Enable the opposite direction for synchronous mode
- * 1. Tx sync with Rx: only set RE for Rx; set TE & RE for Tx
- * 2. Rx sync with Tx: only set TE for Tx; set RE & TE for Rx
- *
- * RM recommends to enable RE after TE for case 1 and to enable
- * TE after RE for case 2, but we here may not always guarantee
- * that happens: "arecord 1.wav; aplay 2.wav" in case 1 enables
- * TE after RE, which is against what RM recommends but should
- * be safe to do, judging by years of testing results.
- */
- if (fsl_sai_dir_is_synced(sai, adir))
- regmap_update_bits(sai->regmap, FSL_SAI_xCSR((!tx), ofs),
- FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE);
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs),
FSL_SAI_CSR_xIE_MASK, FSL_SAI_FLAGS);
@@ -636,23 +572,43 @@ static int fsl_sai_trigger(struct snd_pc
/* Check if the opposite FRDE is also disabled */
regmap_read(sai->regmap, FSL_SAI_xCSR(!tx, ofs), &xcsr);
-
- /*
- * If opposite stream provides clocks for synchronous mode and
- * it is inactive, disable it before disabling the current one
- */
- if (fsl_sai_dir_is_synced(sai, adir) && !(xcsr & FSL_SAI_CSR_FRDE))
- fsl_sai_config_disable(sai, adir);
-
- /*
- * Disable current stream if either of:
- * 1. current stream doesn't provide clocks for synchronous mode
- * 2. current stream provides clocks for synchronous mode but no
- * more stream is active.
- */
- if (!fsl_sai_dir_is_synced(sai, dir) || !(xcsr & FSL_SAI_CSR_FRDE))
- fsl_sai_config_disable(sai, dir);
-
+ if (!(xcsr & FSL_SAI_CSR_FRDE)) {
+ /* Disable both directions and reset their FIFOs */
+ regmap_update_bits(sai->regmap, FSL_SAI_TCSR(ofs),
+ FSL_SAI_CSR_TERE, 0);
+ regmap_update_bits(sai->regmap, FSL_SAI_RCSR(ofs),
+ FSL_SAI_CSR_TERE, 0);
+
+ /* TERE will remain set till the end of current frame */
+ do {
+ udelay(10);
+ regmap_read(sai->regmap,
+ FSL_SAI_xCSR(tx, ofs), &xcsr);
+ } while (--count && xcsr & FSL_SAI_CSR_TERE);
+
+ regmap_update_bits(sai->regmap, FSL_SAI_TCSR(ofs),
+ FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
+ regmap_update_bits(sai->regmap, FSL_SAI_RCSR(ofs),
+ FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
+
+ /*
+ * For sai master mode, after several open/close sai,
+ * there will be no frame clock, and can't recover
+ * anymore. Add software reset to fix this issue.
+ * This is a hardware bug, and will be fix in the
+ * next sai version.
+ */
+ if (!sai->is_slave_mode) {
+ /* Software Reset for both Tx and Rx */
+ regmap_write(sai->regmap, FSL_SAI_TCSR(ofs),
+ FSL_SAI_CSR_SR);
+ regmap_write(sai->regmap, FSL_SAI_RCSR(ofs),
+ FSL_SAI_CSR_SR);
+ /* Clear SR bit to finish the reset */
+ regmap_write(sai->regmap, FSL_SAI_TCSR(ofs), 0);
+ regmap_write(sai->regmap, FSL_SAI_RCSR(ofs), 0);
+ }
+ }
break;
default:
return -EINVAL;

View File

@ -168,7 +168,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
if (ret) {
--- a/sound/soc/fsl/fsl_spdif.c
+++ b/sound/soc/fsl/fsl_spdif.c
@@ -1248,8 +1248,10 @@ static int fsl_spdif_probe(struct platfo
@@ -1250,8 +1250,10 @@ static int fsl_spdif_probe(struct platfo
}
irq = platform_get_irq(pdev, 0);

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