diff --git a/include/kernel-5.10 b/include/kernel-5.10 index 0a3629255..bf5689704 100644 --- a/include/kernel-5.10 +++ b/include/kernel-5.10 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.10 = .205 -LINUX_KERNEL_HASH-5.10.205 = c55217a80d74f81b83116289a8bfe4302293390b45aeabb76f64814920788863 +LINUX_VERSION-5.10 = .208 +LINUX_KERNEL_HASH-5.10.208 = 9025147a09547f28ec8f496c12efc30bd2fc03b2824a668e8636b2ca0ef1fb6e diff --git a/target/linux/gemini/patches-5.10/0001-usb-host-fotg2-add-Gemini-specific-handling.patch b/target/linux/gemini/patches-5.10/0001-usb-host-fotg2-add-Gemini-specific-handling.patch index 937c9824f..a52fa65a8 100644 --- a/target/linux/gemini/patches-5.10/0001-usb-host-fotg2-add-Gemini-specific-handling.patch +++ b/target/linux/gemini/patches-5.10/0001-usb-host-fotg2-add-Gemini-specific-handling.patch @@ -43,7 +43,7 @@ Signed-off-by: Linus Walleij #include #include -@@ -5553,6 +5557,72 @@ static void fotg210_init(struct fotg210_ +@@ -5550,6 +5554,72 @@ static void fotg210_init(struct fotg210_ } /* @@ -116,7 +116,7 @@ Signed-off-by: Linus Walleij * fotg210_hcd_probe - initialize faraday FOTG210 HCDs * * Allocates basic resources for this USB host controller, and -@@ -5629,6 +5699,12 @@ static int fotg210_hcd_probe(struct plat +@@ -5626,6 +5696,12 @@ static int fotg210_hcd_probe(struct plat fotg210_init(fotg210); diff --git a/target/linux/generic/backport-5.10/103-v5.13-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch b/target/linux/generic/backport-5.10/103-v5.13-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch index aa88f610d..e451a49ac 100644 --- a/target/linux/generic/backport-5.10/103-v5.13-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch +++ b/target/linux/generic/backport-5.10/103-v5.13-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch @@ -25,7 +25,7 @@ Signed-off-by: Jason A. Donenfeld --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2091,7 +2091,7 @@ config CPU_MIPS32 +@@ -2089,7 +2089,7 @@ config CPU_MIPS32 config CPU_MIPS64 bool default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \ diff --git a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch index 45a93bcce..dc1884c28 100644 --- a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch +++ b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6817,15 +6817,10 @@ void __netif_napi_del(struct napi_struct +@@ -6825,15 +6825,10 @@ void __netif_napi_del(struct napi_struct } EXPORT_SYMBOL(__netif_napi_del); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller weight = n->weight; /* This NAPI_STATE_SCHED test is for avoiding a race -@@ -6845,7 +6840,7 @@ static int napi_poll(struct napi_struct +@@ -6853,7 +6848,7 @@ static int napi_poll(struct napi_struct n->poll, work, weight); if (likely(work < weight)) @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller /* Drivers must not modify the NAPI state if they * consume the entire weight. In such cases this code -@@ -6854,7 +6849,7 @@ static int napi_poll(struct napi_struct +@@ -6862,7 +6857,7 @@ static int napi_poll(struct napi_struct */ if (unlikely(napi_disable_pending(n))) { napi_complete(n); @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller } if (n->gro_bitmask) { -@@ -6872,12 +6867,29 @@ static int napi_poll(struct napi_struct +@@ -6880,12 +6875,29 @@ static int napi_poll(struct napi_struct if (unlikely(!list_empty(&n->poll_list))) { pr_warn_once("%s: Budget exhausted after napi rescheduled\n", n->dev ? n->dev->name : "backlog"); diff --git a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch index 529fd9260..b566ce541 100644 --- a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch +++ b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) { const struct net_device_ops *ops = dev->netdev_ops; -@@ -4276,6 +4298,21 @@ int gro_normal_batch __read_mostly = 8; +@@ -4284,6 +4306,21 @@ int gro_normal_batch __read_mostly = 8; static inline void ____napi_schedule(struct softnet_data *sd, struct napi_struct *napi) { @@ -153,7 +153,7 @@ Signed-off-by: David S. Miller list_add_tail(&napi->poll_list, &sd->poll_list); __raise_softirq_irqoff(NET_RX_SOFTIRQ); } -@@ -6770,6 +6807,12 @@ void netif_napi_add(struct net_device *d +@@ -6778,6 +6815,12 @@ void netif_napi_add(struct net_device *d set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); napi_hash_add(napi); @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(netif_napi_add); -@@ -6786,9 +6829,28 @@ void napi_disable(struct napi_struct *n) +@@ -6794,9 +6837,28 @@ void napi_disable(struct napi_struct *n) hrtimer_cancel(&n->timer); clear_bit(NAPI_STATE_DISABLE, &n->state); @@ -195,7 +195,7 @@ Signed-off-by: David S. Miller static void flush_gro_hash(struct napi_struct *napi) { int i; -@@ -6814,6 +6876,11 @@ void __netif_napi_del(struct napi_struct +@@ -6822,6 +6884,11 @@ void __netif_napi_del(struct napi_struct flush_gro_hash(napi); napi->gro_bitmask = 0; @@ -207,7 +207,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(__netif_napi_del); -@@ -6895,6 +6962,51 @@ static int napi_poll(struct napi_struct +@@ -6903,6 +6970,51 @@ static int napi_poll(struct napi_struct return work; } diff --git a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch index f7a500fd6..6d726f4a6 100644 --- a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch +++ b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller * @n: NAPI context --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4302,8 +4302,9 @@ static inline void ____napi_schedule(str +@@ -4310,8 +4310,9 @@ static inline void ____napi_schedule(str if (test_bit(NAPI_STATE_THREADED, &napi->state)) { /* Paired with smp_mb__before_atomic() in @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller * wake_up_process() when it's not NULL. */ thread = READ_ONCE(napi->thread); -@@ -6780,6 +6781,49 @@ static void init_gro_hash(struct napi_st +@@ -6788,6 +6789,49 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } diff --git a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch index d39a0cb40..be8f89d4d 100644 --- a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch +++ b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch @@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa enum gro_result { --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4309,6 +4309,8 @@ static inline void ____napi_schedule(str +@@ -4317,6 +4317,8 @@ static inline void ____napi_schedule(str */ thread = READ_ONCE(napi->thread); if (thread) { @@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa wake_up_process(thread); return; } -@@ -6572,7 +6574,8 @@ bool napi_complete_done(struct napi_stru +@@ -6580,7 +6582,8 @@ bool napi_complete_done(struct napi_stru WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); @@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa /* If STATE_MISSED was set, leave STATE_SCHED set, * because we will call napi->poll() one more time. -@@ -7008,16 +7011,25 @@ static int napi_poll(struct napi_struct +@@ -7016,16 +7019,25 @@ static int napi_poll(struct napi_struct static int napi_thread_wait(struct napi_struct *napi) { diff --git a/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch b/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch index 3ec3446db..8fe894649 100644 --- a/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch +++ b/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch @@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -7015,7 +7015,7 @@ static int napi_thread_wait(struct napi_ +@@ -7023,7 +7023,7 @@ static int napi_thread_wait(struct napi_ set_current_state(TASK_INTERRUPTIBLE); @@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski /* Testing SCHED_THREADED bit here to make sure the current * kthread owns this napi and could poll on this napi. * Testing SCHED bit is not enough because SCHED bit might be -@@ -7033,6 +7033,7 @@ static int napi_thread_wait(struct napi_ +@@ -7041,6 +7041,7 @@ static int napi_thread_wait(struct napi_ set_current_state(TASK_INTERRUPTIBLE); } __set_current_state(TASK_RUNNING); diff --git a/target/linux/generic/backport-5.10/605-v5.12-net-export-dev_set_threaded-symbol.patch b/target/linux/generic/backport-5.10/605-v5.12-net-export-dev_set_threaded-symbol.patch index f080cb2fd..2308f6d59 100644 --- a/target/linux/generic/backport-5.10/605-v5.12-net-export-dev_set_threaded-symbol.patch +++ b/target/linux/generic/backport-5.10/605-v5.12-net-export-dev_set_threaded-symbol.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6826,6 +6826,7 @@ int dev_set_threaded(struct net_device * +@@ -6834,6 +6834,7 @@ int dev_set_threaded(struct net_device * return err; } diff --git a/target/linux/generic/hack-5.10/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-5.10/301-mips_image_cmdline_hack.patch index f6b44b2a4..ea72094ce 100644 --- a/target/linux/generic/hack-5.10/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-5.10/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1172,6 +1172,10 @@ config MIPS_MSC +@@ -1171,6 +1171,10 @@ config MIPS_MSC config SYNC_R4K bool diff --git a/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch index e77b51a31..8f6702e43 100644 --- a/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch +++ b/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch @@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3658,6 +3658,11 @@ static int xmit_one(struct sk_buff *skb, +@@ -3666,6 +3666,11 @@ static int xmit_one(struct sk_buff *skb, if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/hack-5.10/902-debloat_proc.patch b/target/linux/generic/hack-5.10/902-debloat_proc.patch index a7e3d8431..d4a776666 100644 --- a/target/linux/generic/hack-5.10/902-debloat_proc.patch +++ b/target/linux/generic/hack-5.10/902-debloat_proc.patch @@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3725,6 +3725,8 @@ static __net_initdata struct pernet_oper +@@ -3726,6 +3726,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/generic/hack-5.10/953-net-patch-linux-kernel-to-support-shortcut-fe.patch b/target/linux/generic/hack-5.10/953-net-patch-linux-kernel-to-support-shortcut-fe.patch index 505347fb0..11a15a6fe 100644 --- a/target/linux/generic/hack-5.10/953-net-patch-linux-kernel-to-support-shortcut-fe.patch +++ b/target/linux/generic/hack-5.10/953-net-patch-linux-kernel-to-support-shortcut-fe.patch @@ -80,7 +80,7 @@ struct net_bridge_port *p; --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3654,9 +3654,17 @@ static int xmit_one(struct sk_buff *skb, +@@ -3662,9 +3662,17 @@ static int xmit_one(struct sk_buff *skb, { unsigned int len; int rc; @@ -99,7 +99,7 @@ #ifdef CONFIG_ETHERNET_PACKET_MANGLE if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb))) -@@ -5210,6 +5218,11 @@ void netdev_rx_handler_unregister(struct +@@ -5218,6 +5226,11 @@ void netdev_rx_handler_unregister(struct } EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); @@ -111,7 +111,7 @@ /* * Limit the use of PFMEMALLOC reserves to those protocols that implement * the special handling of PFMEMALLOC skbs. -@@ -5258,6 +5271,10 @@ static int __netif_receive_skb_core(stru +@@ -5266,6 +5279,10 @@ static int __netif_receive_skb_core(stru int ret = NET_RX_DROP; __be16 type; @@ -122,7 +122,7 @@ net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb); trace_netif_receive_skb(skb); -@@ -5297,6 +5314,15 @@ another_round: +@@ -5305,6 +5322,15 @@ another_round: goto out; } diff --git a/target/linux/generic/pending-5.10/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-5.10/300-mips_expose_boot_raw.patch index a10ce9522..ee3fc5e10 100644 --- a/target/linux/generic/pending-5.10/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-5.10/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1087,9 +1087,6 @@ config FW_ARC +@@ -1086,9 +1086,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -3185,6 +3182,18 @@ choice +@@ -3183,6 +3180,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 6966b9650..be0b52db9 100644 --- a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4449,6 +4468,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4446,6 +4465,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -4936,7 +4966,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6136,6 +6167,8 @@ static int ip6_route_dev_notify(struct n +@@ -6133,6 +6164,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 net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6147,6 +6180,7 @@ static int ip6_route_dev_notify(struct n +@@ -6144,6 +6177,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 in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6338,6 +6372,8 @@ static int __net_init ip6_route_net_init +@@ -6335,6 +6369,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 net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6348,11 +6384,21 @@ static int __net_init ip6_route_net_init +@@ -6345,11 +6381,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 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); -@@ -6379,6 +6425,8 @@ out: +@@ -6376,6 +6422,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6398,6 +6446,7 @@ static void __net_exit ip6_route_net_exi +@@ -6395,6 +6443,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 kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6481,6 +6530,9 @@ void __init ip6_route_init_special_entri +@@ -6478,6 +6527,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); diff --git a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 346d49269..ceaf1e99f 100644 --- a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6073,6 +6073,9 @@ static enum gro_result dev_gro_receive(s +@@ -6081,6 +6081,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -8052,6 +8055,48 @@ static void __netdev_adjacent_dev_unlink +@@ -8060,6 +8063,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -8103,6 +8148,7 @@ static int __netdev_upper_dev_link(struc +@@ -8111,6 +8156,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -8199,6 +8245,7 @@ static void __netdev_upper_dev_unlink(st +@@ -8207,6 +8253,7 @@ static void __netdev_upper_dev_unlink(st __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8985,6 +9032,7 @@ int dev_set_mac_address(struct net_devic +@@ -8993,6 +9040,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/ipq807x/patches-5.10/600-qca-nss-ecm-support-CORE.patch b/target/linux/ipq807x/patches-5.10/600-qca-nss-ecm-support-CORE.patch index 31ead21f1..4443ac862 100644 --- a/target/linux/ipq807x/patches-5.10/600-qca-nss-ecm-support-CORE.patch +++ b/target/linux/ipq807x/patches-5.10/600-qca-nss-ecm-support-CORE.patch @@ -168,7 +168,7 @@ void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *); --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c -@@ -550,4 +550,52 @@ static int __init vlan_offload_init(void +@@ -557,4 +557,52 @@ static int __init vlan_offload_init(void return 0; } @@ -687,7 +687,7 @@ const struct in6_addr *daddr) --- a/net/ipv6/route.c +++ b/net/ipv6/route.c -@@ -3768,6 +3768,9 @@ out_free: +@@ -3765,6 +3765,9 @@ out_free: return ERR_PTR(err); } @@ -697,7 +697,7 @@ int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags, struct netlink_ext_ack *extack) { -@@ -3779,6 +3782,10 @@ int ip6_route_add(struct fib6_config *cf +@@ -3776,6 +3779,10 @@ int ip6_route_add(struct fib6_config *cf return PTR_ERR(rt); err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack); @@ -708,7 +708,7 @@ fib6_info_release(rt); return err; -@@ -3800,6 +3807,9 @@ static int __ip6_del_rt(struct fib6_info +@@ -3797,6 +3804,9 @@ static int __ip6_del_rt(struct fib6_info err = fib6_del(rt, info); spin_unlock_bh(&table->tb6_lock); @@ -718,7 +718,7 @@ out: fib6_info_release(rt); return err; -@@ -6188,6 +6198,20 @@ static int ip6_route_dev_notify(struct n +@@ -6185,6 +6195,20 @@ static int ip6_route_dev_notify(struct n return NOTIFY_OK; } diff --git a/target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch b/target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch index 7d09e2df1..15ea1a5b7 100644 --- a/target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch +++ b/target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2441,6 +2441,12 @@ config MIPS_VPE_LOADER +@@ -2439,6 +2439,12 @@ config MIPS_VPE_LOADER Includes a loader for loading an elf relocatable object onto another VPE and running it. diff --git a/target/linux/phytium/patches-5.10/001-add-phytium-support.patch b/target/linux/phytium/patches-5.10/001-add-phytium-support.patch index b627758b4..b11d9e8e5 100644 --- a/target/linux/phytium/patches-5.10/001-add-phytium-support.patch +++ b/target/linux/phytium/patches-5.10/001-add-phytium-support.patch @@ -1,5 +1,3 @@ -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index f1f7c068c..e103476fa 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -3898,6 +3898,10 @@ @@ -13,8 +11,6 @@ index f1f7c068c..e103476fa 100644 pcie_ports= [PCIE] PCIe port services handling: native Use native PCIe services (PME, AER, DPC, PCIe hotplug) even if the platform doesn't give the OS permission to -diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml -index 14cd727d3..623f537e0 100644 --- a/Documentation/devicetree/bindings/arm/cpus.yaml +++ b/Documentation/devicetree/bindings/arm/cpus.yaml @@ -162,6 +162,10 @@ properties: @@ -28,8 +24,6 @@ index 14cd727d3..623f537e0 100644 - qcom,krait - qcom,kryo - qcom,kryo260 -diff --git a/Documentation/devicetree/bindings/net/macb.txt b/Documentation/devicetree/bindings/net/macb.txt -index 0b61a90f1..955293ed2 100644 --- a/Documentation/devicetree/bindings/net/macb.txt +++ b/Documentation/devicetree/bindings/net/macb.txt @@ -16,6 +16,8 @@ Required properties: @@ -41,8 +35,6 @@ index 0b61a90f1..955293ed2 100644 Or the generic form: "cdns,emac". - reg: Address and length of the register set for the device For "sifive,fu540-c000-gem", second range is required to specify the -diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml -index 11a6fdb65..1a3ceabd2 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -56,6 +56,7 @@ properties: @@ -53,8 +45,6 @@ index 11a6fdb65..1a3ceabd2 100644 - snps,dwmac - snps,dwmac-3.50a - snps,dwmac-3.610 -diff --git a/arch/arm/include/asm/arch_timer.h b/arch/arm/include/asm/arch_timer.h -index 99175812d..bb129b6d2 100644 --- a/arch/arm/include/asm/arch_timer.h +++ b/arch/arm/include/asm/arch_timer.h @@ -7,6 +7,7 @@ @@ -110,7 +100,7 @@ index 99175812d..bb129b6d2 100644 } static __always_inline -@@ -59,19 +66,19 @@ u32 arch_timer_reg_read_cp15(int access, enum arch_timer_reg reg) +@@ -59,19 +66,19 @@ u32 arch_timer_reg_read_cp15(int access, case ARCH_TIMER_REG_CTRL: asm volatile("mrc p15, 0, %0, c14, c2, 1" : "=r" (val)); break; @@ -136,8 +126,6 @@ index 99175812d..bb129b6d2 100644 } return val; -diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms -index 889e78f40..62c2ebbd1 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -327,4 +327,9 @@ config ARCH_ZYNQMP @@ -150,8 +138,6 @@ index 889e78f40..62c2ebbd1 100644 + This enables support for Phytium ARMv8 SoC family. + endmenu -diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile -index 9b1170658..dd2db8f54 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -30,3 +30,4 @@ subdir-y += ti @@ -159,8 +145,6 @@ index 9b1170658..dd2db8f54 100644 subdir-y += xilinx subdir-y += zte +subdir-y += phytium -diff --git a/arch/arm64/include/asm/arch_timer.h b/arch/arm64/include/asm/arch_timer.h -index 88d20f04c..af1fafbe7 100644 --- a/arch/arm64/include/asm/arch_timer.h +++ b/arch/arm64/include/asm/arch_timer.h @@ -32,7 +32,7 @@ @@ -222,7 +206,7 @@ index 88d20f04c..af1fafbe7 100644 } #define arch_timer_reg_read_stable(reg) \ -@@ -102,51 +103,58 @@ static inline notrace u64 arch_timer_read_cntvct_el0(void) +@@ -102,51 +103,58 @@ static inline notrace u64 arch_timer_rea * the code. */ static __always_inline @@ -294,7 +278,7 @@ index 88d20f04c..af1fafbe7 100644 } static inline u32 arch_timer_get_cntfrq(void) -@@ -169,7 +177,6 @@ static __always_inline u64 __arch_counter_get_cntpct_stable(void) +@@ -169,7 +177,6 @@ static __always_inline u64 __arch_counte { u64 cnt; @@ -302,7 +286,7 @@ index 88d20f04c..af1fafbe7 100644 cnt = arch_timer_reg_read_stable(cntpct_el0); arch_counter_enforce_ordering(cnt); return cnt; -@@ -179,8 +186,10 @@ static __always_inline u64 __arch_counter_get_cntpct(void) +@@ -179,8 +186,10 @@ static __always_inline u64 __arch_counte { u64 cnt; @@ -315,7 +299,7 @@ index 88d20f04c..af1fafbe7 100644 arch_counter_enforce_ordering(cnt); return cnt; } -@@ -189,7 +198,6 @@ static __always_inline u64 __arch_counter_get_cntvct_stable(void) +@@ -189,7 +198,6 @@ static __always_inline u64 __arch_counte { u64 cnt; @@ -323,7 +307,7 @@ index 88d20f04c..af1fafbe7 100644 cnt = arch_timer_reg_read_stable(cntvct_el0); arch_counter_enforce_ordering(cnt); return cnt; -@@ -199,8 +207,10 @@ static __always_inline u64 __arch_counter_get_cntvct(void) +@@ -199,8 +207,10 @@ static __always_inline u64 __arch_counte { u64 cnt; @@ -336,8 +320,6 @@ index 88d20f04c..af1fafbe7 100644 arch_counter_enforce_ordering(cnt); return cnt; } -diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h -index d2080a41f..f973e0249 100644 --- a/arch/arm64/include/asm/cpucaps.h +++ b/arch/arm64/include/asm/cpucaps.h @@ -69,7 +69,7 @@ @@ -350,8 +332,6 @@ index d2080a41f..f973e0249 100644 +#define ARM64_NCAPS 63 #endif /* __ASM_CPUCAPS_H */ -diff --git a/arch/arm64/include/asm/esr.h b/arch/arm64/include/asm/esr.h -index 4a76f566e..d7638b528 100644 --- a/arch/arm64/include/asm/esr.h +++ b/arch/arm64/include/asm/esr.h @@ -227,6 +227,9 @@ @@ -374,8 +354,6 @@ index 4a76f566e..d7638b528 100644 #define ESR_ELx_CP15_32_ISS_SYS_CNTFRQ (ESR_ELx_CP15_32_ISS_SYS_VAL(0, 0, 14, 0) |\ ESR_ELx_CP15_32_ISS_DIR_READ) -diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h -index 9fea6e976..8fd45a8f5 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -453,6 +453,9 @@ @@ -388,11 +366,9 @@ index 9fea6e976..8fd45a8f5 100644 #define SYS_CNTP_TVAL_EL0 sys_reg(3, 3, 14, 2, 0) #define SYS_CNTP_CTL_EL0 sys_reg(3, 3, 14, 2, 1) #define SYS_CNTP_CVAL_EL0 sys_reg(3, 3, 14, 2, 2) -diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c -index 1f0a2deaf..fccfeddbb 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c -@@ -1769,6 +1769,16 @@ static const struct arm64_cpu_capabilities arm64_features[] = { +@@ -1769,6 +1769,16 @@ static const struct arm64_cpu_capabiliti .sign = FTR_UNSIGNED, .min_field_value = 1, }, @@ -409,24 +385,22 @@ index 1f0a2deaf..fccfeddbb 100644 #ifdef CONFIG_ARM64_PAN { .desc = "Privileged Access Never", -diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c -index 10a58017d..dd19cea3b 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c -@@ -552,6 +552,12 @@ static const struct sys64_hook sys64_hooks[] = { - .esr_val = ESR_ELx_SYS64_ISS_SYS_CNTVCT, +@@ -553,6 +553,12 @@ static const struct sys64_hook sys64_hoo .handler = cntvct_read_handler, }, -+ { + { + /* Trap read access to CNTVCTSS_EL0 */ + .esr_mask = ESR_ELx_SYS64_ISS_SYS_OP_MASK, + .esr_val = ESR_ELx_SYS64_ISS_SYS_CNTVCTSS, + .handler = cntvct_read_handler, + }, - { ++ { /* Trap read access to CNTFRQ_EL0 */ .esr_mask = ESR_ELx_SYS64_ISS_SYS_OP_MASK, -@@ -628,6 +634,11 @@ static const struct sys64_hook cp15_64_hooks[] = { + .esr_val = ESR_ELx_SYS64_ISS_SYS_CNTFRQ, +@@ -628,6 +634,11 @@ static const struct sys64_hook cp15_64_h .esr_val = ESR_ELx_CP15_64_ISS_SYS_CNTVCT, .handler = compat_cntvct_read_handler, }, @@ -438,8 +412,6 @@ index 10a58017d..dd19cea3b 100644 {}, }; -diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c -index 6d44c028d..1fa10d7b3 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -78,6 +78,8 @@ EXPORT_SYMBOL(flush_dcache_page); @@ -451,11 +423,9 @@ index 6d44c028d..1fa10d7b3 100644 #ifdef CONFIG_ARCH_HAS_PMEM_API void arch_wb_cache_pmem(void *addr, size_t size) -diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c -index 645e82a66..b7ee51710 100644 --- a/drivers/acpi/acpi_apd.c +++ b/drivers/acpi/acpi_apd.c -@@ -158,6 +158,16 @@ static const struct apd_device_desc hip08_lite_i2c_desc = { +@@ -158,6 +158,16 @@ static const struct apd_device_desc hip0 .fixed_clk_rate = 125000000, }; @@ -472,7 +442,7 @@ index 645e82a66..b7ee51710 100644 static const struct apd_device_desc thunderx2_i2c_desc = { .setup = acpi_apd_setup, .fixed_clk_rate = 125000000, -@@ -240,6 +250,8 @@ static const struct acpi_device_id acpi_apd_device_ids[] = { +@@ -240,6 +250,8 @@ static const struct acpi_device_id acpi_ { "HISI02A2", APD_ADDR(hip08_i2c_desc) }, { "HISI02A3", APD_ADDR(hip08_lite_i2c_desc) }, { "HISI0173", APD_ADDR(hip08_spi_desc) }, @@ -481,11 +451,9 @@ index 645e82a66..b7ee51710 100644 { "NXP0001", APD_ADDR(nxp_i2c_desc) }, #endif { } -diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h -index 125e4901c..bc242c874 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h -@@ -90,6 +90,18 @@ bool acpi_scan_is_offline(struct acpi_device *adev, bool uevent); +@@ -90,6 +90,18 @@ bool acpi_scan_is_offline(struct acpi_de acpi_status acpi_sysfs_table_handler(u32 event, void *table, void *context); void acpi_scan_table_handler(u32 event, void *table, void *context); @@ -504,8 +472,6 @@ index 125e4901c..bc242c874 100644 /* -------------------------------------------------------------------------- Device Node Initialization / Removal -------------------------------------------------------------------------- */ -diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c -index 6a9490ad7..bc61170b4 100644 --- a/drivers/acpi/irq.c +++ b/drivers/acpi/irq.c @@ -10,6 +10,8 @@ @@ -517,7 +483,7 @@ index 6a9490ad7..bc61170b4 100644 enum acpi_irq_model_id acpi_irq_model; static struct fwnode_handle *acpi_gsi_domain_id; -@@ -38,29 +40,19 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) +@@ -38,29 +40,19 @@ int acpi_gsi_to_irq(u32 gsi, unsigned in } EXPORT_SYMBOL_GPL(acpi_gsi_to_irq); @@ -553,7 +519,7 @@ index 6a9490ad7..bc61170b4 100644 fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); fwspec.param_count = 2; -@@ -70,6 +62,22 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, +@@ -70,6 +62,22 @@ int acpi_register_gsi(struct device *dev return irq; } @@ -585,8 +551,6 @@ index 6a9490ad7..bc61170b4 100644 acpi_get_irq_source_fwhandle(const struct acpi_resource_source *source) { struct fwnode_handle *result; -diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c -index 14ee631cb..5cccc0f70 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c @@ -22,6 +22,8 @@ @@ -598,7 +562,7 @@ index 14ee631cb..5cccc0f70 100644 #define PREFIX "ACPI: " #define _COMPONENT ACPI_PCI_COMPONENT -@@ -410,6 +412,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) +@@ -410,6 +412,7 @@ int acpi_pci_irq_enable(struct pci_dev * char *link = NULL; char link_desc[16]; int rc; @@ -606,7 +570,7 @@ index 14ee631cb..5cccc0f70 100644 pin = dev->pin; if (!pin) { -@@ -438,7 +441,8 @@ int acpi_pci_irq_enable(struct pci_dev *dev) +@@ -438,7 +441,8 @@ int acpi_pci_irq_enable(struct pci_dev * gsi = acpi_pci_link_allocate_irq(entry->link, entry->index, &triggering, &polarity, @@ -616,7 +580,7 @@ index 14ee631cb..5cccc0f70 100644 else gsi = entry->index; } else -@@ -462,7 +466,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) +@@ -462,7 +466,7 @@ int acpi_pci_irq_enable(struct pci_dev * return 0; } @@ -625,8 +589,6 @@ index 14ee631cb..5cccc0f70 100644 if (rc < 0) { dev_warn(&dev->dev, "PCI INT %c: failed to register GSI\n", pin_name(pin)); -diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c -index fb4c5632a..21f3e4e30 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c @@ -59,6 +59,7 @@ struct acpi_pci_link_irq { @@ -637,7 +599,7 @@ index fb4c5632a..21f3e4e30 100644 u8 initialized:1; u8 reserved:7; }; -@@ -120,6 +121,8 @@ static acpi_status acpi_pci_link_check_possible(struct acpi_resource *resource, +@@ -120,6 +121,8 @@ static acpi_status acpi_pci_link_check_p { struct acpi_resource_extended_irq *p = &resource->data.extended_irq; @@ -646,7 +608,7 @@ index fb4c5632a..21f3e4e30 100644 if (!p || !p->interrupt_count) { printk(KERN_WARNING PREFIX "Blank _PRS EXT IRQ resource\n"); -@@ -140,6 +143,12 @@ static acpi_status acpi_pci_link_check_possible(struct acpi_resource *resource, +@@ -140,6 +143,12 @@ static acpi_status acpi_pci_link_check_p link->irq.triggering = p->triggering; link->irq.polarity = p->polarity; link->irq.resource_type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ; @@ -659,7 +621,7 @@ index fb4c5632a..21f3e4e30 100644 break; } default: -@@ -326,7 +335,8 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq) +@@ -326,7 +335,8 @@ static int acpi_pci_link_set(struct acpi resource->res.data.extended_irq.shareable = ACPI_SHARED; resource->res.data.extended_irq.interrupt_count = 1; resource->res.data.extended_irq.interrupts[0] = irq; @@ -669,7 +631,7 @@ index fb4c5632a..21f3e4e30 100644 break; default: printk(KERN_ERR PREFIX "Invalid Resource_type %d\n", link->irq.resource_type); -@@ -612,7 +622,7 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link) +@@ -612,7 +622,7 @@ static int acpi_pci_link_allocate(struct * failure: return -1 */ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering, @@ -678,7 +640,7 @@ index fb4c5632a..21f3e4e30 100644 { int result; struct acpi_device *device; -@@ -656,6 +666,8 @@ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering, +@@ -656,6 +666,8 @@ int acpi_pci_link_allocate_irq(acpi_hand *polarity = link->irq.polarity; if (name) *name = acpi_device_bid(link->device); @@ -687,8 +649,6 @@ index fb4c5632a..21f3e4e30 100644 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Link %s is referenced\n", acpi_device_bid(link->device))); -diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig -index a7d9e4600..b5ff63d39 100644 --- a/drivers/char/hw_random/Kconfig +++ b/drivers/char/hw_random/Kconfig @@ -536,6 +536,18 @@ config HW_RANDOM_XIPHERA @@ -710,19 +670,15 @@ index a7d9e4600..b5ff63d39 100644 endif # HW_RANDOM config UML_RANDOM -diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile -index 5da344509..17cc2f445 100644 --- a/drivers/char/hw_random/Makefile +++ b/drivers/char/hw_random/Makefile -@@ -46,3 +46,5 @@ obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-rng.o +@@ -46,3 +46,5 @@ obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-r obj-$(CONFIG_HW_RANDOM_NPCM) += npcm-rng.o obj-$(CONFIG_HW_RANDOM_CCTRNG) += cctrng.o obj-$(CONFIG_HW_RANDOM_XIPHERA) += xiphera-trng.o + +obj-$(CONFIG_HW_RANDOM_PHYTIUM) += phytium-rng.o \ No newline at end of file -diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig -index f44318626..1fdabf78a 100644 --- a/drivers/char/ipmi/Kconfig +++ b/drivers/char/ipmi/Kconfig @@ -109,6 +109,27 @@ config ASPEED_KCS_IPMI_BMC @@ -753,19 +709,15 @@ index f44318626..1fdabf78a 100644 config NPCM7XX_KCS_IPMI_BMC depends on ARCH_NPCM7XX || COMPILE_TEST select IPMI_KCS_BMC -diff --git a/drivers/char/ipmi/Makefile b/drivers/char/ipmi/Makefile -index 0822adc2e..97712d873 100644 --- a/drivers/char/ipmi/Makefile +++ b/drivers/char/ipmi/Makefile -@@ -27,3 +27,5 @@ obj-$(CONFIG_ASPEED_BT_IPMI_BMC) += bt-bmc.o +@@ -27,3 +27,5 @@ obj-$(CONFIG_ASPEED_BT_IPMI_BMC) += bt-b obj-$(CONFIG_ASPEED_KCS_IPMI_BMC) += kcs_bmc_aspeed.o obj-$(CONFIG_NPCM7XX_KCS_IPMI_BMC) += kcs_bmc_npcm7xx.o obj-$(CONFIG_IPMB_DEVICE_INTERFACE) += ipmb_dev_int.o +obj-$(CONFIG_PHYTIUM_KCS_IPMI_BMC) += kcs_bmc_phytium.o +obj-$(CONFIG_PHYTIUM_BT_IPMI_BMC) += bt_bmc_phytium.o \ No newline at end of file -diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c -index f4881764b..5ebafb91c 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -41,23 +41,29 @@ @@ -804,11 +756,10 @@ index f4881764b..5ebafb91c 100644 #define to_arch_timer(e) container_of(e, struct arch_timer, evt) static u32 arch_timer_rate; -@@ -84,33 +90,58 @@ static int __init early_evtstrm_cfg(char *buf) - } +@@ -85,32 +91,57 @@ static int __init early_evtstrm_cfg(char early_param("clocksource.arm_arch_timer.evtstrm", early_evtstrm_cfg); -+/* + /* + * Makes an educated guess at a valid counter width based on the Generic Timer + * specification. Of note: + * 1) the system counter is at least 56 bits wide @@ -824,7 +775,7 @@ index f4881764b..5ebafb91c 100644 + return clamp_val(ilog2(min_cycles - 1) + 1, 56, 64); +} + - /* ++/* * Architected system timer support. */ @@ -870,7 +821,7 @@ index f4881764b..5ebafb91c 100644 } } else { arch_timer_reg_write_cp15(access, reg, val); -@@ -129,9 +160,8 @@ u32 arch_timer_reg_read(int access, enum arch_timer_reg reg, +@@ -129,9 +160,8 @@ u32 arch_timer_reg_read(int access, enum case ARCH_TIMER_REG_CTRL: val = readl_relaxed(timer->base + CNTP_CTL); break; @@ -882,7 +833,7 @@ index f4881764b..5ebafb91c 100644 } } else if (access == ARCH_TIMER_MEM_VIRT_ACCESS) { struct arch_timer *timer = to_arch_timer(clk); -@@ -139,9 +169,8 @@ u32 arch_timer_reg_read(int access, enum arch_timer_reg reg, +@@ -139,9 +169,8 @@ u32 arch_timer_reg_read(int access, enum case ARCH_TIMER_REG_CTRL: val = readl_relaxed(timer->base + CNTV_CTL); break; @@ -894,7 +845,7 @@ index f4881764b..5ebafb91c 100644 } } else { val = arch_timer_reg_read_cp15(access, reg); -@@ -193,13 +222,11 @@ static struct clocksource clocksource_counter = { +@@ -193,13 +222,11 @@ static struct clocksource clocksource_co .name = "arch_sys_counter", .rating = 400, .read = arch_counter_read, @@ -925,7 +876,7 @@ index f4881764b..5ebafb91c 100644 static u64 notrace fsl_a008585_read_cntpct_el0(void) { return __fsl_a008585_read_reg(cntpct_el0); -@@ -273,16 +290,6 @@ static u64 notrace fsl_a008585_read_cntvct_el0(void) +@@ -273,16 +290,6 @@ static u64 notrace fsl_a008585_read_cntv _new; \ }) @@ -942,7 +893,7 @@ index f4881764b..5ebafb91c 100644 static u64 notrace hisi_161010101_read_cntpct_el0(void) { return __hisi_161010101_read_reg(cntpct_el0); -@@ -367,16 +374,6 @@ static u64 notrace sun50i_a64_read_cntvct_el0(void) +@@ -367,16 +374,6 @@ static u64 notrace sun50i_a64_read_cntvc { return __sun50i_a64_read_reg(cntvct_el0); } @@ -959,7 +910,7 @@ index f4881764b..5ebafb91c 100644 #endif #ifdef CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND -@@ -385,7 +382,7 @@ EXPORT_SYMBOL_GPL(timer_unstable_counter_workaround); +@@ -385,7 +382,7 @@ EXPORT_SYMBOL_GPL(timer_unstable_counter static atomic_t timer_unstable_counter_workaround_in_use = ATOMIC_INIT(0); @@ -968,7 +919,7 @@ index f4881764b..5ebafb91c 100644 struct clock_event_device *clk) { unsigned long ctrl; -@@ -406,17 +403,17 @@ static void erratum_set_next_event_tval_generic(const int access, unsigned long +@@ -406,17 +403,17 @@ static void erratum_set_next_event_tval_ arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl, clk); } @@ -990,7 +941,7 @@ index f4881764b..5ebafb91c 100644 return 0; } -@@ -426,12 +423,10 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = { +@@ -426,12 +423,10 @@ static const struct arch_timer_erratum_w .match_type = ate_match_dt, .id = "fsl,erratum-a008585", .desc = "Freescale erratum a005858", @@ -1005,7 +956,7 @@ index f4881764b..5ebafb91c 100644 }, #endif #ifdef CONFIG_HISILICON_ERRATUM_161010101 -@@ -439,23 +434,19 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = { +@@ -439,23 +434,19 @@ static const struct arch_timer_erratum_w .match_type = ate_match_dt, .id = "hisilicon,erratum-161010101", .desc = "HiSilicon erratum 161010101", @@ -1033,7 +984,7 @@ index f4881764b..5ebafb91c 100644 }, #endif #ifdef CONFIG_ARM64_ERRATUM_858921 -@@ -472,12 +463,10 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = { +@@ -472,12 +463,10 @@ static const struct arch_timer_erratum_w .match_type = ate_match_dt, .id = "allwinner,erratum-unknown1", .desc = "Allwinner erratum UNKNOWN1", @@ -1048,7 +999,7 @@ index f4881764b..5ebafb91c 100644 }, #endif #ifdef CONFIG_ARM64_ERRATUM_1418040 -@@ -715,10 +704,18 @@ static __always_inline void set_next_event(const int access, unsigned long evt, +@@ -715,10 +704,18 @@ static __always_inline void set_next_eve struct clock_event_device *clk) { unsigned long ctrl; @@ -1068,7 +1019,7 @@ index f4881764b..5ebafb91c 100644 arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl, clk); } -@@ -736,23 +733,79 @@ static int arch_timer_set_next_event_phys(unsigned long evt, +@@ -736,23 +733,79 @@ static int arch_timer_set_next_event_phy return 0; } @@ -1150,7 +1101,7 @@ index f4881764b..5ebafb91c 100644 clk->features = CLOCK_EVT_FEAT_ONESHOT; if (type == ARCH_TIMER_TYPE_CP15) { -@@ -784,6 +837,7 @@ static void __arch_timer_setup(unsigned type, +@@ -784,6 +837,7 @@ static void __arch_timer_setup(unsigned } clk->set_next_event = sne; @@ -1158,7 +1109,7 @@ index f4881764b..5ebafb91c 100644 } else { clk->features |= CLOCK_EVT_FEAT_DYNIRQ; clk->name = "arch_mem_timer"; -@@ -800,11 +854,13 @@ static void __arch_timer_setup(unsigned type, +@@ -800,11 +854,13 @@ static void __arch_timer_setup(unsigned clk->set_next_event = arch_timer_set_next_event_phys_mem; } @@ -1190,7 +1141,7 @@ index f4881764b..5ebafb91c 100644 } static struct arch_timer_kvm_info arch_timer_kvm_info; -@@ -995,6 +1043,7 @@ struct arch_timer_kvm_info *arch_timer_get_kvm_info(void) +@@ -995,6 +1043,7 @@ struct arch_timer_kvm_info *arch_timer_g static void __init arch_counter_register(unsigned type) { u64 start_count; @@ -1198,7 +1149,7 @@ index f4881764b..5ebafb91c 100644 /* Register the CP15 based counter if we have one */ if (type & ARCH_TIMER_TYPE_CP15) { -@@ -1019,6 +1068,10 @@ static void __init arch_counter_register(unsigned type) +@@ -1019,6 +1068,10 @@ static void __init arch_counter_register arch_timer_read_counter = arch_counter_get_cntvct_mem; } @@ -1209,7 +1160,7 @@ index f4881764b..5ebafb91c 100644 if (!arch_counter_suspend_stop) clocksource_counter.flags |= CLOCK_SOURCE_SUSPEND_NONSTOP; start_count = arch_timer_read_counter(); -@@ -1028,8 +1081,7 @@ static void __init arch_counter_register(unsigned type) +@@ -1028,8 +1081,7 @@ static void __init arch_counter_register timecounter_init(&arch_timer_kvm_info.timecounter, &cyclecounter, start_count); @@ -1219,7 +1170,7 @@ index f4881764b..5ebafb91c 100644 } static void arch_timer_stop(struct clock_event_device *clk) -@@ -1170,25 +1222,25 @@ static int __init arch_timer_mem_register(void __iomem *base, unsigned int irq) +@@ -1170,25 +1222,25 @@ static int __init arch_timer_mem_registe { int ret; irq_handler_t func; @@ -1253,7 +1204,7 @@ index f4881764b..5ebafb91c 100644 } return ret; -@@ -1436,7 +1488,6 @@ arch_timer_mem_frame_register(struct arch_timer_mem_frame *frame) +@@ -1436,7 +1488,6 @@ arch_timer_mem_frame_register(struct arc return ret; } @@ -1261,8 +1212,6 @@ index f4881764b..5ebafb91c 100644 arch_timers_present |= ARCH_TIMER_TYPE_MEM; return 0; -diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig -index dbdee43c6..e2f01f00a 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -21,7 +21,7 @@ config CRYPTO_DEV_PADLOCK @@ -1274,8 +1223,6 @@ index dbdee43c6..e2f01f00a 100644 The instructions are used only when the CPU supports them. Otherwise software encryption is used. -diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index 7e1bd79fb..81d031c7f 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -712,6 +712,13 @@ config ZX_DMA @@ -1292,8 +1239,6 @@ index 7e1bd79fb..81d031c7f 100644 # driver files source "drivers/dma/bestcomm/Kconfig" -diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile -index 948a8da05..e5cef402a 100644 --- a/drivers/dma/Makefile +++ b/drivers/dma/Makefile @@ -87,3 +87,4 @@ obj-y += mediatek/ @@ -1301,8 +1246,6 @@ index 948a8da05..e5cef402a 100644 obj-y += ti/ obj-y += xilinx/ +obj-y += phytium/ -diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig -index 7a47680d6..28d639a57 100644 --- a/drivers/edac/Kconfig +++ b/drivers/edac/Kconfig @@ -537,4 +537,11 @@ config EDAC_DMC520 @@ -1317,8 +1260,6 @@ index 7a47680d6..28d639a57 100644 + Phytium Pe220x family of SOCs. + endif # EDAC -diff --git a/drivers/edac/Makefile b/drivers/edac/Makefile -index 3a8491687..d259f76bd 100644 --- a/drivers/edac/Makefile +++ b/drivers/edac/Makefile @@ -89,3 +89,4 @@ obj-$(CONFIG_EDAC_QCOM) += qcom_edac.o @@ -1326,8 +1267,6 @@ index 3a8491687..d259f76bd 100644 obj-$(CONFIG_EDAC_BLUEFIELD) += bluefield_edac.o obj-$(CONFIG_EDAC_DMC520) += dmc520_edac.o +obj-$(CONFIG_EDAC_PHYTIUM) += phytium_edac.o -diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig -index 807c5320d..91e8a70fc 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -27,6 +27,18 @@ config ARM_SCMI_PROTOCOL @@ -1349,8 +1288,6 @@ index 807c5320d..91e8a70fc 100644 config ARM_SCMI_POWER_DOMAIN tristate "SCMI power domain driver" depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) -diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c -index 8d2408284..e79580579 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -98,6 +98,10 @@ struct scmi_info { @@ -1364,7 +1301,7 @@ index 8d2408284..e79580579 100644 #define handle_to_scmi_info(h) container_of(h, struct scmi_info, handle) static const int scmi_linux_errmap[] = { -@@ -344,6 +348,15 @@ static bool scmi_xfer_done_no_timeout(struct scmi_chan_info *cinfo, +@@ -344,6 +348,15 @@ static bool scmi_xfer_done_no_timeout(st ktime_after(ktime_get(), stop); } @@ -1380,7 +1317,7 @@ index 8d2408284..e79580579 100644 /** * scmi_do_xfer() - Do one transfer * -@@ -366,6 +379,11 @@ int scmi_do_xfer(const struct scmi_handle *handle, struct scmi_xfer *xfer) +@@ -366,6 +379,11 @@ int scmi_do_xfer(const struct scmi_handl if (unlikely(!cinfo)) return -EINVAL; @@ -1392,8 +1329,6 @@ index 8d2408284..e79580579 100644 trace_scmi_xfer_begin(xfer->transfer_id, xfer->hdr.id, xfer->hdr.protocol_id, xfer->hdr.seq, xfer->hdr.poll_completion); -diff --git a/drivers/firmware/arm_scmi/shmem.c b/drivers/firmware/arm_scmi/shmem.c -index 56a1f61aa..2d734faf8 100644 --- a/drivers/firmware/arm_scmi/shmem.c +++ b/drivers/firmware/arm_scmi/shmem.c @@ -32,6 +32,14 @@ struct scmi_shared_mem { @@ -1411,8 +1346,6 @@ index 56a1f61aa..2d734faf8 100644 /* * Ideally channel must be free by now unless OS timeout last * request and platform continued to process the same, wait -diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index 39f3e1366..7c93abd3f 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -108,6 +108,10 @@ config GPIO_REGMAP @@ -1475,11 +1408,9 @@ index 39f3e1366..7c93abd3f 100644 endmenu menu "SPI GPIO expanders" -diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile -index 09dada80a..67dea5151 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile -@@ -180,3 +180,8 @@ obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o +@@ -180,3 +180,8 @@ obj-$(CONFIG_GPIO_XTENSA) += gpio-xtens obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o obj-$(CONFIG_GPIO_ZX) += gpio-zx.o obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o @@ -1488,8 +1419,6 @@ index 09dada80a..67dea5151 100644 +obj-$(CONFIG_GPIO_PHYTIUM_PCI) += gpio-phytium-pci.o +obj-$(CONFIG_GPIO_PHYTIUM_PLAT) += gpio-phytium-platform.o +obj-$(CONFIG_GPIO_PHYTIUM_SGPIO) += gpio-phytium-sgpio.o -diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig -index 4e9b3a95f..518fd948c 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -393,6 +393,8 @@ source "drivers/gpu/drm/tidss/Kconfig" @@ -1501,8 +1430,6 @@ index 4e9b3a95f..518fd948c 100644 # Keep legacy drivers last menuconfig DRM_LEGACY -diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile -index 81569009f..d78dc598c 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -124,3 +124,4 @@ obj-$(CONFIG_DRM_ASPEED_GFX) += aspeed/ @@ -1510,8 +1437,6 @@ index 81569009f..d78dc598c 100644 obj-$(CONFIG_DRM_TIDSS) += tidss/ obj-y += xlnx/ +obj-$(CONFIG_DRM_PHYTIUM) += phytium/ -diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig -index 8a427467a..3d8fe5982 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig @@ -2096,6 +2096,16 @@ config SENSORS_INTEL_M10_BMC_HWMON @@ -1531,11 +1456,9 @@ index 8a427467a..3d8fe5982 100644 if ACPI comment "ACPI drivers" -diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile -index 9db2903b6..5b9a59433 100644 --- a/drivers/hwmon/Makefile +++ b/drivers/hwmon/Makefile -@@ -194,6 +194,8 @@ obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o +@@ -194,6 +194,8 @@ obj-$(CONFIG_SENSORS_WM831X) += wm831x-h obj-$(CONFIG_SENSORS_WM8350) += wm8350-hwmon.o obj-$(CONFIG_SENSORS_XGENE) += xgene-hwmon.o @@ -1544,8 +1467,6 @@ index 9db2903b6..5b9a59433 100644 obj-$(CONFIG_SENSORS_OCC) += occ/ obj-$(CONFIG_PMBUS) += pmbus/ -diff --git a/drivers/hwspinlock/Kconfig b/drivers/hwspinlock/Kconfig -index 32cd26352..da1f879f5 100644 --- a/drivers/hwspinlock/Kconfig +++ b/drivers/hwspinlock/Kconfig @@ -65,4 +65,13 @@ config HSEM_U8500 @@ -1562,19 +1483,15 @@ index 32cd26352..da1f879f5 100644 + If unsure, say N. + endif # HWSPINLOCK -diff --git a/drivers/hwspinlock/Makefile b/drivers/hwspinlock/Makefile -index ed053e3f0..530aa6363 100644 --- a/drivers/hwspinlock/Makefile +++ b/drivers/hwspinlock/Makefile -@@ -10,3 +10,5 @@ obj-$(CONFIG_HWSPINLOCK_SIRF) += sirf_hwspinlock.o +@@ -10,3 +10,5 @@ obj-$(CONFIG_HWSPINLOCK_SIRF) += sirf_h obj-$(CONFIG_HWSPINLOCK_SPRD) += sprd_hwspinlock.o obj-$(CONFIG_HWSPINLOCK_STM32) += stm32_hwspinlock.o obj-$(CONFIG_HSEM_U8500) += u8500_hsem.o + +obj-$(CONFIG_HWSPINLOCK_PHYTIUM) += phytium_hwspinlock.o \ No newline at end of file -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index ea474b16e..c2bdd7b92 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -1206,6 +1206,34 @@ config I2C_RCAR @@ -1612,8 +1529,6 @@ index ea474b16e..c2bdd7b92 100644 comment "External I2C/SMBus adapter drivers" config I2C_DIOLAN_U2C -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 683c49fac..78372fb65 100644 --- a/drivers/i2c/busses/Makefile +++ b/drivers/i2c/busses/Makefile @@ -123,6 +123,10 @@ obj-$(CONFIG_I2C_XLR) += i2c-xlr.o @@ -1627,8 +1542,6 @@ index 683c49fac..78372fb65 100644 # External I2C/SMBus adapter drivers obj-$(CONFIG_I2C_DIOLAN_U2C) += i2c-diolan-u2c.o -diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig -index e39b67912..c08a8421c 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -1226,4 +1226,16 @@ config XILINX_XADC @@ -1648,18 +1561,14 @@ index e39b67912..c08a8421c 100644 + will be called phytium-adc. + endmenu -diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile -index 90f94ada7..49b6f4651 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile -@@ -111,3 +111,4 @@ obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o +@@ -111,3 +111,4 @@ obj-$(CONFIG_VIPERBOARD_ADC) += viperboa xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o obj-$(CONFIG_SD_ADC_MODULATOR) += sd_adc_modulator.o +obj-$(CONFIG_PHYTIUM_ADC) += phytium-adc.o \ No newline at end of file -diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig -index 3f7a5ff17..9ab0634f2 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig @@ -788,4 +788,15 @@ config KEYBOARD_MTK_PMIC @@ -1678,17 +1587,13 @@ index 3f7a5ff17..9ab0634f2 100644 + module will be called phytium_keypad. + endif -diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile -index 1d689fdd5..4947b23ef 100644 --- a/drivers/input/keyboard/Makefile +++ b/drivers/input/keyboard/Makefile -@@ -70,3 +70,4 @@ obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-kbc.o +@@ -70,3 +70,4 @@ obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-k obj-$(CONFIG_KEYBOARD_TM2_TOUCHKEY) += tm2-touchkey.o obj-$(CONFIG_KEYBOARD_TWL4030) += twl4030_keypad.o obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o +obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o -diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig -index 0754744b9..ffda99260 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig @@ -40,6 +40,18 @@ config SERIO_I8042 @@ -1710,8 +1615,6 @@ index 0754744b9..ffda99260 100644 config SERIO_SERPORT tristate "Serial port line discipline" default y -diff --git a/drivers/input/serio/Makefile b/drivers/input/serio/Makefile -index 6d97bad7b..958591822 100644 --- a/drivers/input/serio/Makefile +++ b/drivers/input/serio/Makefile @@ -7,6 +7,7 @@ @@ -1722,11 +1625,9 @@ index 6d97bad7b..958591822 100644 obj-$(CONFIG_SERIO_PARKBD) += parkbd.o obj-$(CONFIG_SERIO_SERPORT) += serport.o obj-$(CONFIG_SERIO_CT82C710) += ct82c710.o -diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c -index 982c42c87..4dbeb03a0 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c -@@ -2873,6 +2873,13 @@ static void arm_smmu_write_msi_msg(struct msi_desc *desc, struct msi_msg *msg) +@@ -2873,6 +2873,13 @@ static void arm_smmu_write_msi_msg(struc doorbell = (((u64)msg->address_hi) << 32) | msg->address_lo; doorbell &= MSI_CFG0_ADDR_MASK; @@ -1740,7 +1641,7 @@ index 982c42c87..4dbeb03a0 100644 writeq_relaxed(doorbell, smmu->base + cfg[0]); writel_relaxed(msg->data, smmu->base + cfg[1]); writel_relaxed(ARM_SMMU_MEMATTR_DEVICE_nGnRE, smmu->base + cfg[2]); -@@ -2928,11 +2935,51 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu) +@@ -2928,11 +2935,51 @@ static void arm_smmu_setup_msis(struct a devm_add_action(dev, arm_smmu_free_msis, dev); } @@ -1794,7 +1695,7 @@ index 982c42c87..4dbeb03a0 100644 /* Request interrupt lines */ irq = smmu->evtq.q.irq; -@@ -2974,7 +3021,7 @@ static void arm_smmu_setup_unique_irqs(struct arm_smmu_device *smmu) +@@ -2974,7 +3021,7 @@ static void arm_smmu_setup_unique_irqs(s } } @@ -1803,7 +1704,7 @@ index 982c42c87..4dbeb03a0 100644 { int ret, irq; u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN; -@@ -3001,7 +3048,7 @@ static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu) +@@ -3001,7 +3048,7 @@ static int arm_smmu_setup_irqs(struct ar if (ret < 0) dev_warn(smmu->dev, "failed to enable combined irq\n"); } else @@ -1812,7 +1713,7 @@ index 982c42c87..4dbeb03a0 100644 if (smmu->features & ARM_SMMU_FEAT_PRI) irqen_flags |= IRQ_CTRL_PRIQ_IRQEN; -@@ -3026,7 +3073,7 @@ static int arm_smmu_device_disable(struct arm_smmu_device *smmu) +@@ -3026,7 +3073,7 @@ static int arm_smmu_device_disable(struc return ret; } @@ -1821,7 +1722,7 @@ index 982c42c87..4dbeb03a0 100644 { int ret; u32 reg, enables; -@@ -3134,7 +3181,7 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass) +@@ -3134,7 +3181,7 @@ static int arm_smmu_device_reset(struct } } @@ -1830,7 +1731,7 @@ index 982c42c87..4dbeb03a0 100644 if (ret) { dev_err(smmu->dev, "failed to setup irqs\n"); return ret; -@@ -3144,7 +3191,7 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass) +@@ -3144,7 +3191,7 @@ static int arm_smmu_device_reset(struct enables &= ~(CR0_EVTQEN | CR0_PRIQEN); /* Enable the SMMU interface, or ensure bypass */ @@ -1839,7 +1740,7 @@ index 982c42c87..4dbeb03a0 100644 enables |= CR0_SMMUEN; } else { ret = arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT); -@@ -3492,6 +3539,26 @@ static void __iomem *arm_smmu_ioremap(struct device *dev, resource_size_t start, +@@ -3492,6 +3539,26 @@ static void __iomem *arm_smmu_ioremap(st return devm_ioremap_resource(dev, &res); } @@ -1866,7 +1767,7 @@ index 982c42c87..4dbeb03a0 100644 static int arm_smmu_device_probe(struct platform_device *pdev) { int irq, ret; -@@ -3499,7 +3566,6 @@ static int arm_smmu_device_probe(struct platform_device *pdev) +@@ -3499,7 +3566,6 @@ static int arm_smmu_device_probe(struct resource_size_t ioaddr; struct arm_smmu_device *smmu; struct device *dev = &pdev->dev; @@ -1874,7 +1775,7 @@ index 982c42c87..4dbeb03a0 100644 smmu = devm_kzalloc(dev, sizeof(*smmu), GFP_KERNEL); if (!smmu) { -@@ -3517,7 +3583,7 @@ static int arm_smmu_device_probe(struct platform_device *pdev) +@@ -3517,7 +3583,7 @@ static int arm_smmu_device_probe(struct } /* Set bypass mode according to firmware probing result */ @@ -1883,7 +1784,7 @@ index 982c42c87..4dbeb03a0 100644 /* Base address */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -@@ -3578,7 +3644,7 @@ static int arm_smmu_device_probe(struct platform_device *pdev) +@@ -3578,7 +3644,7 @@ static int arm_smmu_device_probe(struct platform_set_drvdata(pdev, smmu); /* Reset the device */ @@ -1892,7 +1793,7 @@ index 982c42c87..4dbeb03a0 100644 if (ret) return ret; -@@ -3623,10 +3689,21 @@ static const struct of_device_id arm_smmu_of_match[] = { +@@ -3623,10 +3689,21 @@ static const struct of_device_id arm_smm }; MODULE_DEVICE_TABLE(of, arm_smmu_of_match); @@ -1914,8 +1815,6 @@ index 982c42c87..4dbeb03a0 100644 .suppress_bind_attrs = true, }, .probe = arm_smmu_device_probe, -diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h -index 57e5d223c..bc95e4773 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -636,6 +636,7 @@ struct arm_smmu_device { @@ -1926,8 +1825,6 @@ index 57e5d223c..bc95e4773 100644 }; /* SMMU private data for each master */ -diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig -index 3c24bf452..45d9ac4db 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -599,4 +599,12 @@ config MST_IRQ @@ -1943,17 +1840,13 @@ index 3c24bf452..45d9ac4db 100644 + This enables support PCI Legacy Interrupt on Phytium SoC. + endmenu -diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile -index 94c288588..337859dd3 100644 --- a/drivers/irqchip/Makefile +++ b/drivers/irqchip/Makefile -@@ -114,3 +114,4 @@ obj-$(CONFIG_LOONGSON_PCH_PIC) += irq-loongson-pch-pic.o +@@ -114,3 +114,4 @@ obj-$(CONFIG_LOONGSON_PCH_PIC) += irq-l obj-$(CONFIG_LOONGSON_PCH_MSI) += irq-loongson-pch-msi.o obj-$(CONFIG_MST_IRQ) += irq-mst-intc.o obj-$(CONFIG_SL28CPLD_INTC) += irq-sl28cpld.o +obj-$(CONFIG_PHYTIUM_IXIC) += irq-phytium-ixic.o -diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c -index f1fa98e5e..584cbccec 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -4788,6 +4788,7 @@ static void its_restore_enable(void) @@ -1988,8 +1881,6 @@ index f1fa98e5e..584cbccec 100644 raw_spin_unlock(&its_lock); } -diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig -index 05b1009e2..e75a6824a 100644 --- a/drivers/mailbox/Kconfig +++ b/drivers/mailbox/Kconfig @@ -254,4 +254,13 @@ config QCOM_IPCC @@ -2006,18 +1897,14 @@ index 05b1009e2..e75a6824a 100644 + driver. + endif -diff --git a/drivers/mailbox/Makefile b/drivers/mailbox/Makefile -index 2e06e02b2..e08fb4b9a 100644 --- a/drivers/mailbox/Makefile +++ b/drivers/mailbox/Makefile -@@ -54,3 +54,5 @@ obj-$(CONFIG_SUN6I_MSGBOX) += sun6i-msgbox.o +@@ -54,3 +54,5 @@ obj-$(CONFIG_SUN6I_MSGBOX) += sun6i-msgb obj-$(CONFIG_SPRD_MBOX) += sprd-mailbox.o obj-$(CONFIG_QCOM_IPCC) += qcom-ipcc.o + +obj-$(CONFIG_PHYTIUM_MBOX) += phytium-mailbox.o -diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig -index 7e152bbb4..a7ff83d43 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -168,6 +168,15 @@ config VIDEO_TI_CAL @@ -2036,18 +1923,14 @@ index 7e152bbb4..a7ff83d43 100644 endif # V4L_PLATFORM_DRIVERS menuconfig V4L_MEM2MEM_DRIVERS -diff --git a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile -index 62b6cdc8c..78533a4ba 100644 --- a/drivers/media/platform/Makefile +++ b/drivers/media/platform/Makefile -@@ -80,3 +80,4 @@ obj-$(CONFIG_VIDEO_QCOM_CAMSS) += qcom/camss/ +@@ -80,3 +80,4 @@ obj-$(CONFIG_VIDEO_QCOM_CAMSS) += qcom/ obj-$(CONFIG_VIDEO_QCOM_VENUS) += qcom/venus/ obj-y += sunxi/ +obj-$(CONFIG_VIDEO_PHYTIUM_JPEG) += phytium-jpeg/ \ No newline at end of file -diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index b8847ae04..a00f54a23 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1035,6 +1035,21 @@ config UCB1400_CORE @@ -2072,19 +1955,15 @@ index b8847ae04..a00f54a23 100644 config MFD_PM8XXX tristate "Qualcomm PM8xxx PMIC chips driver" depends on (ARM || HEXAGON || COMPILE_TEST) -diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 1780019d2..5e0bd7d96 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -267,3 +267,6 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas-mcu.o +@@ -267,3 +267,6 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas- obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o obj-$(CONFIG_MFD_SIMPLE_MFD_I2C) += simple-mfd-i2c.o obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o + +obj-$(CONFIG_MFD_PHYTIUM_I2S_LSD) += phytium_px210_i2s_lsd.o +obj-$(CONFIG_MFD_PHYTIUM_I2S_MMD) += phytium_px210_i2s_mmd.o -diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index a5b2bf0e4..e296557eb 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -1103,3 +1103,37 @@ config MMC_OWL @@ -2125,11 +2004,9 @@ index a5b2bf0e4..e296557eb 100644 + If you have a controller with this interface, say Y or M here. + + If unsure, say N. -diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile -index 451c25fc2..4a46cf083 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile -@@ -77,6 +77,7 @@ obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6rol0.o +@@ -77,6 +77,7 @@ obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6ro obj-$(CONFIG_MMC_TOSHIBA_PCI) += toshsd.o obj-$(CONFIG_MMC_BCM2835) += bcm2835.o obj-$(CONFIG_MMC_OWL) += owl-mmc.o @@ -2144,8 +2021,6 @@ index 451c25fc2..4a46cf083 100644 + +obj-$(CONFIG_MMC_PHYTIUM_MCI_PCI) += phytium-mci-pci.o phytium-mci.o +obj-$(CONFIG_MMC_PHYTIUM_MCI_PLTFM) += phytium-mci-plat.o phytium-mci.o -diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig -index 6c46f25b5..2fce65c27 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -486,6 +486,25 @@ config MTD_NAND_RICOH @@ -2174,11 +2049,9 @@ index 6c46f25b5..2fce65c27 100644 config MTD_NAND_DISKONCHIP tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)" depends on HAS_IOMEM -diff --git a/drivers/mtd/nand/raw/Makefile b/drivers/mtd/nand/raw/Makefile -index 2930f5b90..b603ff23e 100644 --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -59,6 +59,10 @@ obj-$(CONFIG_MTD_NAND_MESON) += meson_nand.o +@@ -59,6 +59,10 @@ obj-$(CONFIG_MTD_NAND_MESON) += meson_n obj-$(CONFIG_MTD_NAND_CADENCE) += cadence-nand-controller.o obj-$(CONFIG_MTD_NAND_ARASAN) += arasan-nand-controller.o @@ -2189,8 +2062,6 @@ index 2930f5b90..b603ff23e 100644 nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o nand-objs += nand_onfi.o nand-objs += nand_jedec.o -diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile -index 3f7a52d7f..101baaf11 100644 --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -17,6 +17,7 @@ spi-nor-objs += sst.o @@ -2201,8 +2072,6 @@ index 3f7a52d7f..101baaf11 100644 spi-nor-objs += xtx.o obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o -diff --git a/drivers/mtd/spi-nor/controllers/Kconfig b/drivers/mtd/spi-nor/controllers/Kconfig -index 5c0e0ec2e..5bfc72f71 100644 --- a/drivers/mtd/spi-nor/controllers/Kconfig +++ b/drivers/mtd/spi-nor/controllers/Kconfig @@ -62,3 +62,12 @@ config SPI_INTEL_SPI_PLATFORM @@ -2218,20 +2087,16 @@ index 5c0e0ec2e..5bfc72f71 100644 + This enables support for the Quad SPI controller in master mode. + This driver does not support generic SPI. The implementation only + supports SPI NOR. -diff --git a/drivers/mtd/spi-nor/controllers/Makefile b/drivers/mtd/spi-nor/controllers/Makefile -index e7abba491..a83cf25ce 100644 --- a/drivers/mtd/spi-nor/controllers/Makefile +++ b/drivers/mtd/spi-nor/controllers/Makefile -@@ -5,3 +5,4 @@ obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o +@@ -5,3 +5,4 @@ obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi obj-$(CONFIG_SPI_INTEL_SPI) += intel-spi.o obj-$(CONFIG_SPI_INTEL_SPI_PCI) += intel-spi-pci.o obj-$(CONFIG_SPI_INTEL_SPI_PLATFORM) += intel-spi-platform.o +obj-$(CONFIG_SPI_PHYTIUM_QUADSPI) += phytium-quadspi.o -diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c -index 2c1dd5786..2bce2004c 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -2038,6 +2038,7 @@ static const struct spi_nor_manufacturer *manufacturers[] = { +@@ -2038,6 +2038,7 @@ static const struct spi_nor_manufacturer &spi_nor_winbond, &spi_nor_xilinx, &spi_nor_xmc, @@ -2239,11 +2104,9 @@ index 2c1dd5786..2bce2004c 100644 &spi_nor_xtx, }; -diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h -index 5ab19ca85..01624481e 100644 --- a/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h -@@ -398,6 +398,7 @@ extern const struct spi_nor_manufacturer spi_nor_sst; +@@ -398,6 +398,7 @@ extern const struct spi_nor_manufacturer extern const struct spi_nor_manufacturer spi_nor_winbond; extern const struct spi_nor_manufacturer spi_nor_xilinx; extern const struct spi_nor_manufacturer spi_nor_xmc; @@ -2251,8 +2114,6 @@ index 5ab19ca85..01624481e 100644 extern const struct spi_nor_manufacturer spi_nor_xtx; int spi_nor_write_enable(struct spi_nor *nor); -diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig -index 1c28eade6..09bf99e20 100644 --- a/drivers/net/can/Kconfig +++ b/drivers/net/can/Kconfig @@ -179,6 +179,8 @@ source "drivers/net/can/softing/Kconfig" @@ -2264,8 +2125,6 @@ index 1c28eade6..09bf99e20 100644 endif config CAN_DEBUG_DEVICES -diff --git a/drivers/net/can/Makefile b/drivers/net/can/Makefile -index a2b4463d8..18f31d6ca 100644 --- a/drivers/net/can/Makefile +++ b/drivers/net/can/Makefile @@ -29,5 +29,6 @@ obj-$(CONFIG_CAN_SUN4I) += sun4i_can.o @@ -2275,8 +2134,6 @@ index a2b4463d8..18f31d6ca 100644 +obj-$(CONFIG_CAN_PHYTIUM) += phytium/ subdir-ccflags-$(CONFIG_CAN_DEBUG_DEVICES) += -DDEBUG -diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h -index 5de47f6fd..80d1ca87d 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -9,6 +9,7 @@ @@ -2517,7 +2374,7 @@ index 5de47f6fd..80d1ca87d 100644 }; #ifdef CONFIG_MACB_USE_HWSTAMP -@@ -1301,6 +1407,24 @@ static inline bool gem_has_ptp(struct macb *bp) +@@ -1301,6 +1407,24 @@ static inline bool gem_has_ptp(struct ma return !!(bp->caps & MACB_CAPS_GEM_HAS_PTP); } @@ -2542,7 +2399,7 @@ index 5de47f6fd..80d1ca87d 100644 /** * struct macb_platform_data - platform data for MACB Ethernet used for PCI registration * @pclk: platform clock -@@ -1309,6 +1433,7 @@ static inline bool gem_has_ptp(struct macb *bp) +@@ -1309,6 +1433,7 @@ static inline bool gem_has_ptp(struct ma struct macb_platform_data { struct clk *pclk; struct clk *hclk; @@ -2550,8 +2407,6 @@ index 5de47f6fd..80d1ca87d 100644 }; #endif /* _MACB_H */ -diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c -index 04bc284bf..e31513c45 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -35,6 +35,8 @@ @@ -2578,7 +2433,7 @@ index 04bc284bf..e31513c45 100644 /* Graceful stop timeouts in us. We should allow up to * 1 frame time (10 Mbits/s, full-duplex, ignoring collisions) */ -@@ -513,6 +523,10 @@ static void macb_validate(struct phylink_config *config, +@@ -513,6 +523,10 @@ static void macb_validate(struct phylink state->interface != PHY_INTERFACE_MODE_RMII && state->interface != PHY_INTERFACE_MODE_GMII && state->interface != PHY_INTERFACE_MODE_SGMII && @@ -2589,7 +2444,7 @@ index 04bc284bf..e31513c45 100644 !phy_interface_mode_is_rgmii(state->interface)) { bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); return; -@@ -525,10 +539,47 @@ static void macb_validate(struct phylink_config *config, +@@ -525,10 +539,47 @@ static void macb_validate(struct phylink return; } @@ -2637,7 +2492,7 @@ index 04bc284bf..e31513c45 100644 phylink_set(mask, 10baseT_Half); phylink_set(mask, 10baseT_Full); phylink_set(mask, 100baseT_Half); -@@ -545,23 +596,110 @@ static void macb_validate(struct phylink_config *config, +@@ -545,23 +596,110 @@ static void macb_validate(struct phylink if (!(bp->caps & MACB_CAPS_NO_GIGABIT_HALF)) phylink_set(mask, 1000baseT_Half); } @@ -2681,7 +2536,7 @@ index 04bc284bf..e31513c45 100644 + +static void macb_usx_pcs_get_state(struct phylink_pcs *pcs, struct phylink_link_state *state) -+{ + { + struct macb *bp = container_of(pcs, struct macb, phylink_pcs); + u32 val; + @@ -2717,7 +2572,7 @@ index 04bc284bf..e31513c45 100644 + +static void macb_pcs_get_state(struct phylink_pcs *pcs, + struct phylink_link_state *state) - { ++{ state->link = 0; } @@ -2751,7 +2606,7 @@ index 04bc284bf..e31513c45 100644 static void macb_mac_config(struct phylink_config *config, unsigned int mode, const struct phylink_link_state *state) { -@@ -569,25 +707,57 @@ static void macb_mac_config(struct phylink_config *config, unsigned int mode, +@@ -569,25 +707,57 @@ static void macb_mac_config(struct phyli struct macb *bp = netdev_priv(ndev); unsigned long flags; u32 old_ctrl, ctrl; @@ -2811,7 +2666,7 @@ index 04bc284bf..e31513c45 100644 spin_unlock_irqrestore(&bp->lock, flags); } -@@ -600,18 +770,184 @@ static void macb_mac_link_down(struct phylink_config *config, unsigned int mode, +@@ -600,18 +770,184 @@ static void macb_mac_link_down(struct ph unsigned int q; u32 ctrl; @@ -2997,7 +2852,7 @@ index 04bc284bf..e31513c45 100644 static void macb_mac_link_up(struct phylink_config *config, struct phy_device *phy, unsigned int mode, phy_interface_t interface, -@@ -624,9 +960,13 @@ static void macb_mac_link_up(struct phylink_config *config, +@@ -624,9 +960,13 @@ static void macb_mac_link_up(struct phyl unsigned long flags; unsigned int q; u32 ctrl; @@ -3011,7 +2866,7 @@ index 04bc284bf..e31513c45 100644 ctrl = macb_or_gem_readl(bp, NCFGR); ctrl &= ~(MACB_BIT(SPD) | MACB_BIT(FD)); -@@ -642,7 +982,7 @@ static void macb_mac_link_up(struct phylink_config *config, +@@ -642,7 +982,7 @@ static void macb_mac_link_up(struct phyl if (macb_is_gem(bp)) { ctrl &= ~GEM_BIT(GBE); @@ -3020,7 +2875,7 @@ index 04bc284bf..e31513c45 100644 ctrl |= GEM_BIT(GBE); } -@@ -664,18 +1004,71 @@ static void macb_mac_link_up(struct phylink_config *config, +@@ -664,18 +1004,71 @@ static void macb_mac_link_up(struct phyl macb_or_gem_writel(bp, NCFGR, ctrl); @@ -3094,7 +2949,7 @@ index 04bc284bf..e31513c45 100644 .mac_config = macb_mac_config, .mac_link_down = macb_mac_link_down, .mac_link_up = macb_mac_link_up, -@@ -693,8 +1086,14 @@ static int macb_phylink_connect(struct macb *bp) +@@ -693,8 +1086,14 @@ static int macb_phylink_connect(struct m struct device_node *dn = bp->pdev->dev.of_node; struct net_device *dev = bp->dev; struct phy_device *phydev; @@ -3109,7 +2964,7 @@ index 04bc284bf..e31513c45 100644 if (dn) ret = phylink_of_phy_connect(bp->phylink, dn, 0); -@@ -704,6 +1103,7 @@ static int macb_phylink_connect(struct macb *bp) +@@ -704,6 +1103,7 @@ static int macb_phylink_connect(struct m netdev_err(dev, "no PHY found\n"); return -ENXIO; } @@ -3117,7 +2972,7 @@ index 04bc284bf..e31513c45 100644 /* attach the mac to the phy */ ret = phylink_connect_phy(bp->phylink, phydev); -@@ -719,6 +1119,29 @@ static int macb_phylink_connect(struct macb *bp) +@@ -719,6 +1119,29 @@ static int macb_phylink_connect(struct m return 0; } @@ -3147,7 +3002,7 @@ index 04bc284bf..e31513c45 100644 /* based on au1000_eth. c*/ static int macb_mii_probe(struct net_device *dev) { -@@ -727,8 +1150,19 @@ static int macb_mii_probe(struct net_device *dev) +@@ -727,8 +1150,19 @@ static int macb_mii_probe(struct net_dev bp->phylink_config.dev = &dev->dev; bp->phylink_config.type = PHYLINK_NETDEV; @@ -3167,7 +3022,7 @@ index 04bc284bf..e31513c45 100644 if (IS_ERR(bp->phylink)) { netdev_err(dev, "Could not create a phylink instance (%ld)\n", PTR_ERR(bp->phylink)); -@@ -2097,6 +2531,8 @@ static netdev_tx_t macb_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2097,6 +2531,8 @@ static netdev_tx_t macb_start_xmit(struc wmb(); skb_tx_timestamp(skb); @@ -3176,7 +3031,7 @@ index 04bc284bf..e31513c45 100644 macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART)); if (CIRC_SPACE(queue->tx_head, queue->tx_tail, bp->tx_ring_size) < 1) -@@ -2294,6 +2730,9 @@ static void gem_init_rings(struct macb *bp) +@@ -2294,6 +2730,9 @@ static void gem_init_rings(struct macb * queue->tx_head = 0; queue->tx_tail = 0; @@ -3186,7 +3041,7 @@ index 04bc284bf..e31513c45 100644 queue->rx_tail = 0; queue->rx_prepared_head = 0; -@@ -2463,6 +2902,45 @@ static void macb_configure_dma(struct macb *bp) +@@ -2463,6 +2902,45 @@ static void macb_configure_dma(struct ma } } @@ -3232,7 +3087,7 @@ index 04bc284bf..e31513c45 100644 static void macb_init_hw(struct macb *bp) { u32 config; -@@ -2491,6 +2969,25 @@ static void macb_init_hw(struct macb *bp) +@@ -2491,6 +2969,25 @@ static void macb_init_hw(struct macb *bp if (bp->caps & MACB_CAPS_JUMBO) bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK; @@ -3258,7 +3113,7 @@ index 04bc284bf..e31513c45 100644 macb_configure_dma(bp); } -@@ -2615,7 +3112,10 @@ static void macb_set_rx_mode(struct net_device *dev) +@@ -2615,7 +3112,10 @@ static void macb_set_rx_mode(struct net_ static int macb_open(struct net_device *dev) { @@ -3270,7 +3125,7 @@ index 04bc284bf..e31513c45 100644 struct macb *bp = netdev_priv(dev); struct macb_queue *queue; unsigned int q; -@@ -3543,6 +4043,8 @@ static const struct net_device_ops macb_netdev_ops = { +@@ -3543,6 +4043,8 @@ static const struct net_device_ops macb_ #endif .ndo_set_features = macb_set_features, .ndo_features_check = macb_features_check, @@ -3279,7 +3134,7 @@ index 04bc284bf..e31513c45 100644 }; /* Configure peripheral capabilities according to device tree -@@ -3552,16 +4054,26 @@ static void macb_configure_caps(struct macb *bp, +@@ -3552,16 +4054,26 @@ static void macb_configure_caps(struct m const struct macb_config *dt_conf) { u32 dcfg; @@ -3306,68 +3161,51 @@ index 04bc284bf..e31513c45 100644 dcfg = gem_readl(bp, DCFG2); if ((dcfg & (GEM_BIT(RX_PKT_BUFF) | GEM_BIT(TX_PKT_BUFF))) == 0) bp->caps |= MACB_CAPS_FIFO_MODE; -@@ -3603,9 +4115,10 @@ static void macb_probe_queues(void __iomem *mem, +@@ -3603,6 +4115,165 @@ static void macb_probe_queues(void __iom *num_queues = hweight32(*queue_mask); } --static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, -- struct clk **hclk, struct clk **tx_clk, -- struct clk **rx_clk, struct clk **tsu_clk) +#ifdef CONFIG_ACPI +static int phytium_clk_acpi_init(struct platform_device *pdev, struct clk **pclk, + struct clk **hclk, struct clk **tx_clk, + struct clk **rx_clk, struct clk **tsu_clk) - { - struct macb_platform_data *pdata; - int err; -@@ -3614,38 +4127,103 @@ static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, - if (pdata) { - *pclk = pdata->pclk; - *hclk = pdata->hclk; ++{ ++ struct macb_platform_data *pdata; ++ int err; ++ ++ pdata = dev_get_platdata(&pdev->dev); ++ if (pdata) { ++ *pclk = pdata->pclk; ++ *hclk = pdata->hclk; + *tx_clk = pdata->phytium_macb_pdata.txclk; + *rx_clk = pdata->phytium_macb_pdata.rxclk; + *tsu_clk = pdata->phytium_macb_pdata.tsu_clk; - } else { -- *pclk = devm_clk_get(&pdev->dev, "pclk"); -- *hclk = devm_clk_get(&pdev->dev, "hclk"); ++ } else { + *pclk = NULL; + *hclk = NULL; + *tx_clk = NULL; + *rx_clk = NULL; + *tsu_clk = NULL; - } - -- if (IS_ERR_OR_NULL(*pclk)) { -- err = PTR_ERR(*pclk); -- if (!err) -- err = -ENODEV; -- -- dev_err(&pdev->dev, "failed to get macb_clk (%d)\n", err); ++ } ++ + err = clk_prepare_enable(*pclk); + if (err) { + dev_err(&pdev->dev, "failed to enable pclk (%d)\n", err); - return err; - } - -- if (IS_ERR_OR_NULL(*hclk)) { -- err = PTR_ERR(*hclk); -- if (!err) -- err = -ENODEV; ++ return err; ++ } ++ + err = clk_prepare_enable(*hclk); + if (err) { + dev_err(&pdev->dev, "failed to enable hclk (%d)\n", err); + goto err_disable_pclk; + } - -- dev_err(&pdev->dev, "failed to get hclk (%d)\n", err); -- return err; ++ + err = clk_prepare_enable(*tx_clk); + if (err) { + dev_err(&pdev->dev, "failed to enable tx_clk (%d)\n", err); + goto err_disable_hclk; - } - -- *tx_clk = devm_clk_get_optional(&pdev->dev, "tx_clk"); ++ } ++ + err = clk_prepare_enable(*rx_clk); + if (err) { + dev_err(&pdev->dev, "failed to enable rx_clk (%d)\n", err); @@ -3430,87 +3268,12 @@ index 04bc284bf..e31513c45 100644 + IS_ERR(*hclk) ? PTR_ERR(*hclk) : -ENODEV, + "failed to get hclk\n"); + - if (IS_ERR(*tx_clk)) - return PTR_ERR(*tx_clk); - -- *rx_clk = devm_clk_get_optional(&pdev->dev, "rx_clk"); - if (IS_ERR(*rx_clk)) - return PTR_ERR(*rx_clk); - -- *tsu_clk = devm_clk_get_optional(&pdev->dev, "tsu_clk"); - if (IS_ERR(*tsu_clk)) - return PTR_ERR(*tsu_clk); - -@@ -3696,34 +4274,346 @@ static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, - return err; - } - --static int macb_init(struct platform_device *pdev) -+static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, -+ struct clk **hclk, struct clk **tx_clk, -+ struct clk **rx_clk, struct clk **tsu_clk) - { -- struct net_device *dev = platform_get_drvdata(pdev); -- unsigned int hw_q, q; -- struct macb *bp = netdev_priv(dev); -- struct macb_queue *queue; -+ struct macb_platform_data *pdata; - int err; -- u32 val, reg; - -- bp->tx_ring_size = DEFAULT_TX_RING_SIZE; -- bp->rx_ring_size = DEFAULT_RX_RING_SIZE; -+ pdata = dev_get_platdata(&pdev->dev); -+ if (pdata) { -+ *pclk = pdata->pclk; -+ *hclk = pdata->hclk; -+ } else { -+ *pclk = devm_clk_get(&pdev->dev, "pclk"); -+ *hclk = devm_clk_get(&pdev->dev, "hclk"); -+ } - -- /* set the queue register mapping once for all: queue0 has a special -- * register mapping but we don't want to test the queue index then -- * compute the corresponding register offset at run time. -- */ -- for (hw_q = 0, q = 0; hw_q < MACB_MAX_QUEUES; ++hw_q) { -- if (!(bp->queue_mask & (1 << hw_q))) -- continue; -+ if (IS_ERR_OR_NULL(*pclk)) { -+ err = PTR_ERR(*pclk); -+ if (!err) -+ err = -ENODEV; - -- queue = &bp->queues[q]; -- queue->bp = bp; -- netif_napi_add(dev, &queue->napi, macb_poll, NAPI_POLL_WEIGHT); -- if (hw_q) { -- queue->ISR = GEM_ISR(hw_q - 1); -- queue->IER = GEM_IER(hw_q - 1); -- queue->IDR = GEM_IDR(hw_q - 1); -- queue->IMR = GEM_IMR(hw_q - 1); -+ dev_err(&pdev->dev, "failed to get macb_clk (%d)\n", err); -+ return err; -+ } -+ -+ if (IS_ERR_OR_NULL(*hclk)) { -+ err = PTR_ERR(*hclk); -+ if (!err) -+ err = -ENODEV; -+ -+ dev_err(&pdev->dev, "failed to get hclk (%d)\n", err); -+ return err; -+ } -+ -+ *tx_clk = devm_clk_get_optional(&pdev->dev, "tx_clk"); + if (IS_ERR(*tx_clk)) + return PTR_ERR(*tx_clk); + -+ *rx_clk = devm_clk_get_optional(&pdev->dev, "rx_clk"); + if (IS_ERR(*rx_clk)) + return PTR_ERR(*rx_clk); + -+ *tsu_clk = devm_clk_get_optional(&pdev->dev, "tsu_clk"); + if (IS_ERR(*tsu_clk)) + return PTR_ERR(*tsu_clk); + @@ -3561,6 +3324,13 @@ index 04bc284bf..e31513c45 100644 + return err; +} + + static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, + struct clk **hclk, struct clk **tx_clk, + struct clk **rx_clk, struct clk **tsu_clk) +@@ -3696,6 +4367,225 @@ err_disable_pclk: + return err; + } + +static irqreturn_t phytium_macb_interrupt_intx(int irq, void *dev_id) +{ + struct macb *bp = dev_id; @@ -3780,38 +3550,10 @@ index 04bc284bf..e31513c45 100644 + return 0; +} + -+static int macb_init(struct platform_device *pdev) -+{ -+ struct net_device *dev = platform_get_drvdata(pdev); -+ unsigned int hw_q, q; -+ struct macb *bp = netdev_priv(dev); -+ struct macb_queue *queue; -+ int err; -+ u32 val, reg; -+ -+ bp->tx_ring_size = DEFAULT_TX_RING_SIZE; -+ bp->rx_ring_size = DEFAULT_RX_RING_SIZE; -+ -+ /* set the queue register mapping once for all: queue0 has a special -+ * register mapping but we don't want to test the queue index then -+ * compute the corresponding register offset at run time. -+ */ -+ for (hw_q = 0, q = 0; hw_q < MACB_MAX_QUEUES; ++hw_q) { -+ if (!(bp->queue_mask & (1 << hw_q))) -+ continue; -+ -+ queue = &bp->queues[q]; -+ queue->bp = bp; -+ netif_napi_add(dev, &queue->napi, macb_poll, NAPI_POLL_WEIGHT); -+ if (hw_q) { -+ queue->ISR = GEM_ISR(hw_q - 1); -+ queue->IER = GEM_IER(hw_q - 1); -+ queue->IDR = GEM_IDR(hw_q - 1); -+ queue->IMR = GEM_IMR(hw_q - 1); - queue->TBQP = GEM_TBQP(hw_q - 1); - queue->RBQP = GEM_RBQP(hw_q - 1); - queue->RBQS = GEM_RBQS(hw_q - 1); -@@ -4436,6 +5326,75 @@ static const struct macb_config zynq_config = { + static int macb_init(struct platform_device *pdev) + { + struct net_device *dev = platform_get_drvdata(pdev); +@@ -4436,6 +5326,75 @@ static const struct macb_config zynq_con .init = macb_init, }; @@ -3887,7 +3629,7 @@ index 04bc284bf..e31513c45 100644 static const struct of_device_id macb_dt_ids[] = { { .compatible = "cdns,at32ap7000-macb" }, { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config }, -@@ -4453,11 +5412,26 @@ static const struct of_device_id macb_dt_ids[] = { +@@ -4453,11 +5412,26 @@ static const struct of_device_id macb_dt { .compatible = "cdns,zynqmp-gem", .data = &zynqmp_config}, { .compatible = "cdns,zynq-gem", .data = &zynq_config }, { .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config }, @@ -3914,7 +3656,7 @@ index 04bc284bf..e31513c45 100644 static const struct macb_config default_gem_config = { .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO | -@@ -4468,6 +5442,32 @@ static const struct macb_config default_gem_config = { +@@ -4468,6 +5442,32 @@ static const struct macb_config default_ .jumbo_max_len = 10240, }; @@ -3947,7 +3689,7 @@ index 04bc284bf..e31513c45 100644 static int macb_probe(struct platform_device *pdev) { const struct macb_config *macb_config = &default_gem_config; -@@ -4476,17 +5476,26 @@ static int macb_probe(struct platform_device *pdev) +@@ -4476,17 +5476,26 @@ static int macb_probe(struct platform_de struct clk **) = macb_config->clk_init; int (*init)(struct platform_device *) = macb_config->init; struct device_node *np = pdev->dev.of_node; @@ -3976,7 +3718,7 @@ index 04bc284bf..e31513c45 100644 regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); mem = devm_ioremap_resource(&pdev->dev, regs); if (IS_ERR(mem)) -@@ -4501,6 +5510,15 @@ static int macb_probe(struct platform_device *pdev) +@@ -4501,6 +5510,15 @@ static int macb_probe(struct platform_de clk_init = macb_config->clk_init; init = macb_config->init; } @@ -3992,7 +3734,7 @@ index 04bc284bf..e31513c45 100644 } err = clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk); -@@ -4549,8 +5567,11 @@ static int macb_probe(struct platform_device *pdev) +@@ -4549,8 +5567,11 @@ static int macb_probe(struct platform_de if (macb_config) bp->jumbo_max_len = macb_config->jumbo_max_len; @@ -4005,7 +3747,7 @@ index 04bc284bf..e31513c45 100644 bp->wol |= MACB_WOL_HAS_MAGIC_PACKET; device_set_wakeup_capable(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET); -@@ -4602,22 +5623,47 @@ static int macb_probe(struct platform_device *pdev) +@@ -4602,22 +5623,47 @@ static int macb_probe(struct platform_de else if (err) macb_get_hwaddr(bp); @@ -4059,7 +3801,7 @@ index 04bc284bf..e31513c45 100644 netif_carrier_off(dev); err = register_netdev(dev); -@@ -4661,6 +5707,7 @@ static int macb_remove(struct platform_device *pdev) +@@ -4661,6 +5707,7 @@ static int macb_remove(struct platform_d { struct net_device *dev; struct macb *bp; @@ -4067,7 +3809,7 @@ index 04bc284bf..e31513c45 100644 dev = platform_get_drvdata(pdev); -@@ -4669,16 +5716,21 @@ static int macb_remove(struct platform_device *pdev) +@@ -4669,16 +5716,21 @@ static int macb_remove(struct platform_d mdiobus_unregister(bp->mii_bus); mdiobus_free(bp->mii_bus); @@ -4094,7 +3836,7 @@ index 04bc284bf..e31513c45 100644 pm_runtime_set_suspended(&pdev->dev); } phylink_destroy(bp->phylink); -@@ -4895,6 +5947,7 @@ static struct platform_driver macb_driver = { +@@ -4895,6 +5947,7 @@ static struct platform_driver macb_drive .driver = { .name = "macb", .of_match_table = of_match_ptr(macb_dt_ids), @@ -4102,8 +3844,6 @@ index 04bc284bf..e31513c45 100644 .pm = &macb_pm_ops, }, }; -diff --git a/drivers/net/ethernet/cadence/macb_pci.c b/drivers/net/ethernet/cadence/macb_pci.c -index 3593b310c..63d8e3e01 100644 --- a/drivers/net/ethernet/cadence/macb_pci.c +++ b/drivers/net/ethernet/cadence/macb_pci.c @@ -21,17 +21,166 @@ @@ -4273,7 +4013,7 @@ index 3593b310c..63d8e3e01 100644 /* enable pci device */ err = pcim_enable_device(pdev); -@@ -48,9 +197,6 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id) +@@ -48,9 +197,6 @@ static int macb_probe(struct pci_dev *pd res[0].end = pci_resource_end(pdev, 0); res[0].name = PCI_DRIVER_NAME; res[0].flags = IORESOURCE_MEM; @@ -4283,7 +4023,7 @@ index 3593b310c..63d8e3e01 100644 dev_info(&pdev->dev, "EMAC physical base addr: %pa\n", &res[0].start); -@@ -58,32 +204,48 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id) +@@ -58,32 +204,48 @@ static int macb_probe(struct pci_dev *pd /* set up macb platform data */ memset(&plat_data, 0, sizeof(plat_data)); @@ -4345,7 +4085,7 @@ index 3593b310c..63d8e3e01 100644 /* register platform device */ plat_dev = platform_device_register_full(&plat_info); -@@ -92,11 +254,21 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id) +@@ -92,11 +254,21 @@ static int macb_probe(struct pci_dev *pd goto err_plat_dev_register; } @@ -4367,7 +4107,7 @@ index 3593b310c..63d8e3e01 100644 clk_unregister(plat_data.hclk); err_hclk_register: -@@ -113,11 +285,26 @@ static void macb_remove(struct pci_dev *pdev) +@@ -113,11 +285,26 @@ static void macb_remove(struct pci_dev * clk_unregister(plat_data->pclk); clk_unregister(plat_data->hclk); @@ -4394,8 +4134,6 @@ index 3593b310c..63d8e3e01 100644 { 0, } }; -diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig -index 53f14c5a9..3f2034ef8 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig @@ -117,6 +117,16 @@ config DWMAC_OXNAS @@ -4415,11 +4153,9 @@ index 53f14c5a9..3f2034ef8 100644 config DWMAC_QCOM_ETHQOS tristate "Qualcomm ETHQOS support" default ARCH_QCOM -diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile -index 24e6145d4..04823f06c 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Makefile +++ b/drivers/net/ethernet/stmicro/stmmac/Makefile -@@ -18,6 +18,7 @@ obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc18xx.o +@@ -18,6 +18,7 @@ obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc obj-$(CONFIG_DWMAC_MEDIATEK) += dwmac-mediatek.o obj-$(CONFIG_DWMAC_MESON) += dwmac-meson.o dwmac-meson8b.o obj-$(CONFIG_DWMAC_OXNAS) += dwmac-oxnas.o @@ -4427,8 +4163,6 @@ index 24e6145d4..04823f06c 100644 obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-ethqos.o obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o -diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig -index 99a747a89..dc2f7ec87 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -394,6 +394,12 @@ config XILINX_GMII2RGMII @@ -4444,8 +4178,6 @@ index 99a747a89..dc2f7ec87 100644 endif # PHYLIB config MICREL_KS8995MA -diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile -index ee7058718..91ad7880e 100644 --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile @@ -96,3 +96,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o @@ -4454,8 +4186,6 @@ index ee7058718..91ad7880e 100644 obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o + +obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm.o -diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c -index fd66cec11..1ffa3d8a1 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c @@ -103,6 +103,10 @@ @@ -4469,7 +4199,7 @@ index fd66cec11..1ffa3d8a1 100644 #define AT803X_DEBUG_REG_1F 0x1F #define AT803X_DEBUG_PLL_ON BIT(2) #define AT803X_DEBUG_RGMII_1V8 BIT(3) -@@ -284,6 +288,20 @@ static int at803x_enable_tx_delay(struct phy_device *phydev) +@@ -284,6 +288,20 @@ static int at803x_enable_tx_delay(struct AT803X_DEBUG_TX_CLK_DLY_EN); } @@ -4490,7 +4220,7 @@ index fd66cec11..1ffa3d8a1 100644 static int at803x_disable_rx_delay(struct phy_device *phydev) { return at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, -@@ -717,6 +735,10 @@ static int at803x_config_init(struct phy_device *phydev) +@@ -717,6 +735,10 @@ static int at803x_config_init(struct phy { int ret; @@ -4501,11 +4231,9 @@ index fd66cec11..1ffa3d8a1 100644 /* The RX and TX delay default is: * after HW reset: RX delay enabled and TX delay disabled * after SW reset: RX delay enabled, while TX delay retains the -diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c -index cbdd01f31..d0c6bc96d 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c -@@ -306,6 +306,9 @@ static int phylink_parse_mode(struct phylink *pl, struct fwnode_handle *fwnode) +@@ -306,6 +306,9 @@ static int phylink_parse_mode(struct phy phylink_set(pl->supported, 2500baseX_Full); break; @@ -4515,8 +4243,6 @@ index cbdd01f31..d0c6bc96d 100644 case PHY_INTERFACE_MODE_USXGMII: case PHY_INTERFACE_MODE_10GKR: case PHY_INTERFACE_MODE_10GBASER: -diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h -index f1f789fe0..cd818ea56 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h @@ -109,6 +109,11 @@ struct controller { @@ -4531,11 +4257,9 @@ index f1f789fe0..cd818ea56 100644 }; /** -diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c -index 32baba1b7..7c6a64c93 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c -@@ -226,6 +226,11 @@ void pciehp_handle_presence_or_link_change(struct controller *ctrl, u32 events) +@@ -226,6 +226,11 @@ void pciehp_handle_presence_or_link_chan { int present, link_active; @@ -4547,7 +4271,7 @@ index 32baba1b7..7c6a64c93 100644 /* * If the slot is on and presence or link has changed, turn it off. * Even if it's occupied again, we cannot assume the card is the same. -@@ -244,6 +249,21 @@ void pciehp_handle_presence_or_link_change(struct controller *ctrl, u32 events) +@@ -244,6 +249,21 @@ void pciehp_handle_presence_or_link_chan if (events & PCI_EXP_SLTSTA_PDC) ctrl_info(ctrl, "Slot(%s): Card not present\n", slot_name(ctrl)); @@ -4569,11 +4293,9 @@ index 32baba1b7..7c6a64c93 100644 pciehp_disable_slot(ctrl, SURPRISE_REMOVAL); break; default: -diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c -index 75c6c72ec..ad7e9ce25 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c -@@ -597,7 +597,7 @@ static irqreturn_t pciehp_isr(int irq, void *dev_id) +@@ -597,7 +597,7 @@ static irqreturn_t pciehp_isr(int irq, v * in the Slot Control register (PCIe r4.0, sec 6.7.3.4). */ if (pdev->current_state == PCI_D3cold || @@ -4582,7 +4304,7 @@ index 75c6c72ec..ad7e9ce25 100644 return IRQ_NONE; /* -@@ -695,7 +695,13 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id) +@@ -695,7 +695,13 @@ static irqreturn_t pciehp_ist(int irq, v struct controller *ctrl = (struct controller *)dev_id; struct pci_dev *pdev = ctrl_dev(ctrl); irqreturn_t ret; @@ -4596,7 +4318,7 @@ index 75c6c72ec..ad7e9ce25 100644 ctrl->ist_running = true; pci_config_pm_runtime_get(pdev); -@@ -715,6 +721,23 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id) +@@ -715,6 +721,23 @@ static irqreturn_t pciehp_ist(int irq, v goto out; } @@ -4620,7 +4342,7 @@ index 75c6c72ec..ad7e9ce25 100644 /* Check Attention Button Pressed */ if (events & PCI_EXP_SLTSTA_ABP) { ctrl_info(ctrl, "Slot(%s): Attention button pressed\n", -@@ -749,7 +772,6 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id) +@@ -749,7 +772,6 @@ static irqreturn_t pciehp_ist(int irq, v else if (events & (PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_DLLSC)) pciehp_handle_presence_or_link_change(ctrl, events); up_read(&ctrl->reset_lock); @@ -4628,8 +4350,6 @@ index 75c6c72ec..ad7e9ce25 100644 ret = IRQ_HANDLED; out: pci_config_pm_runtime_put(pdev); -diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h -index 2ff5724b8..6ac559346 100644 --- a/drivers/pci/pcie/portdrv.h +++ b/drivers/pci/pcie/portdrv.h @@ -123,6 +123,19 @@ void pcie_port_bus_unregister(void); @@ -4652,8 +4372,6 @@ index 2ff5724b8..6ac559346 100644 #ifdef CONFIG_PCIE_PME extern bool pcie_pme_msi_disabled; -diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c -index 3779b264d..839e43c55 100644 --- a/drivers/pci/pcie/portdrv_core.c +++ b/drivers/pci/pcie/portdrv_core.c @@ -25,6 +25,17 @@ struct portdrv_service_data { @@ -4674,7 +4392,7 @@ index 3779b264d..839e43c55 100644 /** * release_pcie_device - free PCI Express port service device structure * @dev: Port service device to release -@@ -177,6 +188,9 @@ static int pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) +@@ -177,6 +188,9 @@ static int pcie_init_service_irqs(struct if ((mask & PCIE_PORT_SERVICE_PME) && pcie_pme_no_msi()) goto legacy_irq; @@ -4684,8 +4402,6 @@ index 3779b264d..839e43c55 100644 /* Try to use MSI-X or MSI if supported */ if (pcie_port_enable_irq_vec(dev, irqs, mask) == 0) return 0; -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 46401cebb..b6ab004ae 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -30,6 +30,7 @@ @@ -4696,7 +4412,7 @@ index 46401cebb..b6ab004ae 100644 #include "pci.h" static ktime_t fixup_debug_start(struct pci_dev *dev, -@@ -3885,12 +3886,12 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe) +@@ -3885,12 +3886,12 @@ static int nvme_disable_and_flr(struct p void __iomem *bar; u16 cmd; u32 cfg; @@ -4711,7 +4427,7 @@ index 46401cebb..b6ab004ae 100644 return 0; bar = pci_iomap(dev, 0, NVME_REG_CC + sizeof(cfg)); -@@ -3944,7 +3945,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe) +@@ -3944,7 +3945,7 @@ static int nvme_disable_and_flr(struct p pci_iounmap(dev, bar); pcie_flr(dev); @@ -4720,7 +4436,7 @@ index 46401cebb..b6ab004ae 100644 return 0; } -@@ -4040,6 +4041,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { +@@ -4040,6 +4041,7 @@ static const struct pci_dev_reset_method { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IVB_M2_VGA, reset_ivb_igd }, { PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr }, @@ -4728,7 +4444,7 @@ index 46401cebb..b6ab004ae 100644 { PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr }, { PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID, reset_chelsio_generic_dev }, -@@ -4975,6 +4977,10 @@ static const struct pci_dev_acs_enabled { +@@ -4975,6 +4977,10 @@ static const struct pci_dev_acs_enabled { PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs }, /* Wangxun nics */ { PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs }, @@ -4739,16 +4455,14 @@ index 46401cebb..b6ab004ae 100644 { 0 } }; -@@ -5358,6 +5364,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags); +@@ -5358,6 +5364,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SE DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PHYTIUM, 0xdc3a, quirk_no_ext_tags); #ifdef CONFIG_PCI_ATS - /* -diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig -index 63be5362f..90c428634 100644 + static void quirk_no_ats(struct pci_dev *pdev) --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig @@ -570,4 +570,14 @@ config PWM_ZX @@ -4766,8 +4480,6 @@ index 63be5362f..90c428634 100644 + will be called pwm-phytium. + endif -diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile -index cbdcd55d6..32efa3652 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile @@ -55,3 +55,5 @@ obj-$(CONFIG_PWM_TWL) += pwm-twl.o @@ -4776,11 +4488,9 @@ index cbdcd55d6..32efa3652 100644 obj-$(CONFIG_PWM_ZX) += pwm-zx.o + +obj-$(CONFIG_PWM_PHYTIUM) += pwm-phytium.o -diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c -index b8417a8d2..5778eb5f5 100644 --- a/drivers/pwm/sysfs.c +++ b/drivers/pwm/sysfs.c -@@ -260,7 +260,7 @@ static int pwm_export_child(struct device *parent, struct pwm_device *pwm) +@@ -260,7 +260,7 @@ static int pwm_export_child(struct devic export->child.parent = parent; export->child.devt = MKDEV(0, 0); export->child.groups = pwm_groups; @@ -4789,8 +4499,6 @@ index b8417a8d2..5778eb5f5 100644 ret = device_register(&export->child); if (ret) { -diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig -index d99548fb5..b714bf090 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -288,6 +288,12 @@ config TI_K3_R5_REMOTEPROC @@ -4806,19 +4514,13 @@ index d99548fb5..b714bf090 100644 endif # REMOTEPROC endmenu -diff --git a/drivers/remoteproc/Makefile b/drivers/remoteproc/Makefile -index da2ace4ec..9a5540d9a 100644 --- a/drivers/remoteproc/Makefile +++ b/drivers/remoteproc/Makefile -@@ -34,3 +34,4 @@ obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_slim_rproc.o +@@ -34,3 +34,4 @@ obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_s obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o obj-$(CONFIG_TI_K3_DSP_REMOTEPROC) += ti_k3_dsp_remoteproc.o obj-$(CONFIG_TI_K3_R5_REMOTEPROC) += ti_k3_r5_remoteproc.o +obj-$(CONFIG_HOMO_REMOTEPROC) += homo_remoteproc.o -diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig -old mode 100644 -new mode 100755 -index 54cf5ec8f..c1a385acd --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -701,6 +701,16 @@ config RTC_DRV_S5M @@ -4838,10 +4540,6 @@ index 54cf5ec8f..c1a385acd config RTC_DRV_SD3078 tristate "ZXW Shenzhen whwave SD3078" select REGMAP_I2C -diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile -old mode 100644 -new mode 100755 -index bfb574641..422182033 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@ -153,6 +153,7 @@ obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o @@ -4852,8 +4550,6 @@ index bfb574641..422182033 obj-$(CONFIG_RTC_DRV_SD3078) += rtc-sd3078.o obj-$(CONFIG_RTC_DRV_SH) += rtc-sh.o obj-$(CONFIG_RTC_DRV_SIRFSOC) += rtc-sirfsoc.o -diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig -index 5fd9b515f..93ddfee6e 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -585,6 +585,44 @@ config SPI_ORION @@ -4901,11 +4597,9 @@ index 5fd9b515f..93ddfee6e 100644 config SPI_PIC32 tristate "Microchip PIC32 series SPI" depends on MACH_PIC32 || COMPILE_TEST -diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile -index 6fea58216..567bb2073 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile -@@ -82,6 +82,11 @@ obj-$(CONFIG_SPI_OMAP_100K) += spi-omap-100k.o +@@ -82,6 +82,11 @@ obj-$(CONFIG_SPI_OMAP_100K) += spi-omap obj-$(CONFIG_SPI_OMAP24XX) += spi-omap2-mcspi.o obj-$(CONFIG_SPI_TI_QSPI) += spi-ti-qspi.o obj-$(CONFIG_SPI_ORION) += spi-orion.o @@ -4917,8 +4611,6 @@ index 6fea58216..567bb2073 100644 obj-$(CONFIG_SPI_PIC32) += spi-pic32.o obj-$(CONFIG_SPI_PIC32_SQI) += spi-pic32-sqi.o obj-$(CONFIG_SPI_PL022) += spi-pl022.o -diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c -index 6ea80add7..b96f8e313 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -5,6 +5,7 @@ @@ -4929,7 +4621,7 @@ index 6ea80add7..b96f8e313 100644 #include #include #include -@@ -776,6 +777,14 @@ static const struct of_device_id optee_dt_match[] = { +@@ -776,6 +777,14 @@ static const struct of_device_id optee_d }; MODULE_DEVICE_TABLE(of, optee_dt_match); @@ -4944,7 +4636,7 @@ index 6ea80add7..b96f8e313 100644 static struct platform_driver optee_driver = { .probe = optee_probe, .remove = optee_remove, -@@ -783,6 +792,7 @@ static struct platform_driver optee_driver = { +@@ -783,6 +792,7 @@ static struct platform_driver optee_driv .driver = { .name = "optee", .of_match_table = optee_dt_match, @@ -4952,8 +4644,6 @@ index 6ea80add7..b96f8e313 100644 }, }; module_platform_driver(optee_driver); -diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig -index 28f22e586..4d6ac2bc7 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -73,6 +73,17 @@ config SERIAL_AMBA_PL011_CONSOLE @@ -4974,8 +4664,6 @@ index 28f22e586..4d6ac2bc7 100644 config SERIAL_EARLYCON_ARM_SEMIHOST bool "Early console using ARM semihosting" depends on ARM64 || ARM -diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile -index caf167f0c..f215657dc 100644 --- a/drivers/tty/serial/Makefile +++ b/drivers/tty/serial/Makefile @@ -91,6 +91,8 @@ obj-$(CONFIG_SERIAL_RDA) += rda-uart.o @@ -4987,8 +4675,6 @@ index caf167f0c..f215657dc 100644 # GPIOLIB helpers for modem control lines obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o -diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig -index 26475b409..ad99f91aa 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -125,6 +125,8 @@ source "drivers/usb/chipidea/Kconfig" @@ -5000,8 +4686,6 @@ index 26475b409..ad99f91aa 100644 comment "USB port drivers" if USB -diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile -index 1c1c1d659..0f2c03958 100644 --- a/drivers/usb/Makefile +++ b/drivers/usb/Makefile @@ -66,3 +66,5 @@ obj-$(CONFIG_USBIP_CORE) += usbip/ @@ -5010,8 +4694,6 @@ index 1c1c1d659..0f2c03958 100644 obj-$(CONFIG_USB_ROLE_SWITCH) += roles/ + +obj-$(CONFIG_USB_PHYTIUM) += phytium/ -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 53f832787..96be5bc21 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c @@ -72,6 +72,8 @@ @@ -5023,7 +4705,7 @@ index 53f832787..96be5bc21 100644 static const char hcd_name[] = "xhci_hcd"; static struct hc_driver __read_mostly xhci_pci_hc_driver; -@@ -283,6 +285,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -283,6 +285,9 @@ static void xhci_pci_quirks(struct devic if (pdev->vendor == PCI_VENDOR_ID_VIA) xhci->quirks |= XHCI_RESET_ON_RESUME; @@ -5033,11 +4715,9 @@ index 53f832787..96be5bc21 100644 /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3432) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index e56a1fb97..c8db7a9f3 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -137,6 +137,10 @@ static const struct xhci_plat_priv xhci_plat_brcm = { +@@ -137,6 +137,10 @@ static const struct xhci_plat_priv xhci_ .quirks = XHCI_RESET_ON_RESUME | XHCI_SUSPEND_RESUME_CLKS, }; @@ -5048,7 +4728,7 @@ index e56a1fb97..c8db7a9f3 100644 static const struct of_device_id usb_xhci_of_match[] = { { .compatible = "generic-xhci", -@@ -178,6 +182,9 @@ static const struct of_device_id usb_xhci_of_match[] = { +@@ -178,6 +182,9 @@ static const struct of_device_id usb_xhc }, { .compatible = "brcm,bcm7445-xhci", .data = &xhci_plat_brcm, @@ -5058,7 +4738,7 @@ index e56a1fb97..c8db7a9f3 100644 }, {}, }; -@@ -289,6 +296,8 @@ static int xhci_plat_probe(struct platform_device *pdev) +@@ -289,6 +296,8 @@ static int xhci_plat_probe(struct platfo if (pdev->dev.of_node) priv_match = of_device_get_match_data(&pdev->dev); @@ -5067,7 +4747,7 @@ index e56a1fb97..c8db7a9f3 100644 else priv_match = dev_get_platdata(&pdev->dev); -@@ -533,6 +542,7 @@ static const struct dev_pm_ops xhci_plat_pm_ops = { +@@ -533,6 +542,7 @@ static const struct dev_pm_ops xhci_plat static const struct acpi_device_id usb_xhci_acpi_match[] = { /* XHCI-compliant USB Controller */ { "PNP0D10", }, @@ -5075,8 +4755,6 @@ index e56a1fb97..c8db7a9f3 100644 { } }; MODULE_DEVICE_TABLE(acpi, usb_xhci_acpi_match); -diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig -index 24b9a8e05..8c2f6e045 100644 --- a/drivers/w1/masters/Kconfig +++ b/drivers/w1/masters/Kconfig @@ -74,5 +74,15 @@ config W1_MASTER_SGI @@ -5095,19 +4773,15 @@ index 24b9a8e05..8c2f6e045 100644 + endmenu -diff --git a/drivers/w1/masters/Makefile b/drivers/w1/masters/Makefile -index dae629b7a..43a66fd6d 100644 --- a/drivers/w1/masters/Makefile +++ b/drivers/w1/masters/Makefile -@@ -12,3 +12,5 @@ obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm.o +@@ -12,3 +12,5 @@ obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm. obj-$(CONFIG_W1_MASTER_GPIO) += w1-gpio.o obj-$(CONFIG_HDQ_MASTER_OMAP) += omap_hdq.o obj-$(CONFIG_W1_MASTER_SGI) += sgi_w1.o + +obj-$(CONFIG_W1_MASTER_PHYTIUM) += phytium_w1.o \ No newline at end of file -diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h -index 5eb175933..dbdcd2f51 100644 --- a/include/acpi/acpi_drivers.h +++ b/include/acpi/acpi_drivers.h @@ -68,7 +68,7 @@ @@ -5119,8 +4793,6 @@ index 5eb175933..dbdcd2f51 100644 int acpi_pci_link_free_irq(acpi_handle handle); /* ACPI PCI Device Binding (pci_bind.c) */ -diff --git a/include/clocksource/arm_arch_timer.h b/include/clocksource/arm_arch_timer.h -index 1d68d5613..6b085710e 100644 --- a/include/clocksource/arm_arch_timer.h +++ b/include/clocksource/arm_arch_timer.h @@ -24,7 +24,7 @@ @@ -5132,11 +4804,9 @@ index 1d68d5613..6b085710e 100644 }; enum arch_timer_ppi_nr { -diff --git a/include/linux/acpi.h b/include/linux/acpi.h -index 9c184dbce..5692707e0 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h -@@ -340,6 +340,16 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags, +@@ -340,6 +340,16 @@ struct irq_domain *acpi_irq_create_hiera const struct irq_domain_ops *ops, void *host_data); @@ -5153,8 +4823,6 @@ index 9c184dbce..5692707e0 100644 #ifdef CONFIG_X86_IO_APIC extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity); #else -diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h -index f5a5df3a8..a88f59544 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -196,6 +196,7 @@ enum cpuhp_state { @@ -5165,8 +4833,6 @@ index f5a5df3a8..a88f59544 100644 CPUHP_AP_ACTIVE, CPUHP_ONLINE, }; -diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h -index 1a41147b2..62c6786ce 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -3141,4 +3141,6 @@ @@ -5176,13 +4842,9 @@ index 1a41147b2..62c6786ce 100644 +#define PCI_VENDOR_ID_PHYTIUM 0x1db7 + #endif /* _LINUX_PCI_IDS_H */ -diff --git a/include/linux/phy.h b/include/linux/phy.h -old mode 100644 -new mode 100755 -index c5426d705..44862aedf --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -107,6 +107,7 @@ extern const int phy_10gbit_features_array[1]; +@@ -107,6 +107,7 @@ extern const int phy_10gbit_features_arr * @PHY_INTERFACE_MODE_100BASEX: 100 BaseX * @PHY_INTERFACE_MODE_1000BASEX: 1000 BaseX * @PHY_INTERFACE_MODE_2500BASEX: 2500 BaseX @@ -5198,7 +4860,7 @@ index c5426d705..44862aedf PHY_INTERFACE_MODE_RXAUI, PHY_INTERFACE_MODE_XAUI, /* 10GBASE-R, XFI, SFI - single lane 10G Serdes */ -@@ -209,6 +211,8 @@ static inline const char *phy_modes(phy_interface_t interface) +@@ -209,6 +211,8 @@ static inline const char *phy_modes(phy_ return "1000base-x"; case PHY_INTERFACE_MODE_2500BASEX: return "2500base-x"; @@ -5216,8 +4878,6 @@ index c5426d705..44862aedf struct phy_c45_device_ids c45_ids; unsigned is_c45:1; unsigned is_internal:1; -diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h -index 496decb63..febaa698e 100644 --- a/include/sound/hdaudio.h +++ b/include/sound/hdaudio.h @@ -340,6 +340,7 @@ struct hdac_bus { @@ -5228,8 +4888,6 @@ index 496decb63..febaa698e 100644 bool polling_mode:1; bool needs_damn_long_delay:1; -diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h -index 851b982f8..f08747fd2 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h @@ -279,4 +279,11 @@ @@ -5244,11 +4902,9 @@ index 851b982f8..f08747fd2 100644 +#define PORT_PHYTIUM 200 + #endif /* _UAPILINUX_SERIAL_CORE_H */ -diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c -index 522d18976..a019ad892 100644 --- a/sound/hda/hdac_controller.c +++ b/sound/hda/hdac_controller.c -@@ -143,6 +143,9 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val) +@@ -143,6 +143,9 @@ int snd_hdac_bus_send_cmd(struct hdac_bu { unsigned int addr = azx_command_addr(val); unsigned int wp, rp; @@ -5258,7 +4914,7 @@ index 522d18976..a019ad892 100644 spin_lock_irq(&bus->reg_lock); -@@ -169,6 +172,42 @@ int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val) +@@ -169,6 +172,42 @@ int snd_hdac_bus_send_cmd(struct hdac_bu bus->corb.buf[wp] = cpu_to_le32(val); snd_hdac_chip_writew(bus, CORBWP, wp); @@ -5301,11 +4957,9 @@ index 522d18976..a019ad892 100644 spin_unlock_irq(&bus->reg_lock); return 0; -diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c -index 557072245..84d5a9ca6 100644 --- a/sound/hda/hdac_stream.c +++ b/sound/hda/hdac_stream.c -@@ -87,7 +87,11 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start) +@@ -87,7 +87,11 @@ void snd_hdac_stream_start(struct hdac_s trace_snd_hdac_stream_start(bus, azx_dev); @@ -5317,7 +4971,7 @@ index 557072245..84d5a9ca6 100644 if (!fresh_start) azx_dev->start_wallclk -= azx_dev->period_wallclk; -@@ -550,7 +554,11 @@ static u64 azx_cc_read(const struct cyclecounter *cc) +@@ -550,7 +554,11 @@ static u64 azx_cc_read(const struct cycl { struct hdac_stream *azx_dev = container_of(cc, struct hdac_stream, cc); @@ -5329,8 +4983,6 @@ index 557072245..84d5a9ca6 100644 } static void azx_timecounter_init(struct hdac_stream *azx_dev, -diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig -index 90759391c..9cfaaa649 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig @@ -26,6 +26,22 @@ config SND_HDA_INTEL @@ -5356,8 +5008,6 @@ index 90759391c..9cfaaa649 100644 config SND_HDA_TEGRA tristate "NVIDIA Tegra HD Audio" depends on ARCH_TEGRA -diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile -index b57432f00..448ab7de3 100644 --- a/sound/pci/hda/Makefile +++ b/sound/pci/hda/Makefile @@ -1,6 +1,7 @@ @@ -5368,13 +5018,11 @@ index b57432f00..448ab7de3 100644 snd-hda-codec-y := hda_bind.o hda_codec.o hda_jack.o hda_auto_parser.o hda_sysfs.o snd-hda-codec-y += hda_controller.o -@@ -48,3 +49,4 @@ obj-$(CONFIG_SND_HDA_CODEC_HDMI) += snd-hda-codec-hdmi.o +@@ -48,3 +49,4 @@ obj-$(CONFIG_SND_HDA_CODEC_HDMI) += snd- # when built in kernel obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-intel.o obj-$(CONFIG_SND_HDA_TEGRA) += snd-hda-tegra.o +obj-$(CONFIG_SND_HDA_PHYTIUM) += snd-hda-phytium.o -diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c -index ea76395d7..9bc0b6e24 100644 --- a/sound/pci/hda/hda_controller.c +++ b/sound/pci/hda/hda_controller.c @@ -17,6 +17,8 @@ @@ -5386,7 +5034,7 @@ index ea76395d7..9bc0b6e24 100644 #ifdef CONFIG_X86 /* for art-tsc conversion */ #include -@@ -157,6 +159,10 @@ static int azx_pcm_prepare(struct snd_pcm_substream *substream) +@@ -157,6 +159,10 @@ static int azx_pcm_prepare(struct snd_pc snd_hda_spdif_out_of_nid(apcm->codec, hinfo->nid); unsigned short ctls = spdif ? spdif->ctls : 0; @@ -5397,8 +5045,6 @@ index ea76395d7..9bc0b6e24 100644 trace_azx_pcm_prepare(chip, azx_dev); dsp_lock(azx_dev); if (dsp_is_locked(azx_dev)) { -diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig -index 71a6fe87d..ed286439e 100644 --- a/sound/soc/Kconfig +++ b/sound/soc/Kconfig @@ -77,6 +77,7 @@ source "sound/soc/ux500/Kconfig" @@ -5409,8 +5055,6 @@ index 71a6fe87d..ed286439e 100644 # Supported codecs source "sound/soc/codecs/Kconfig" -diff --git a/sound/soc/Makefile b/sound/soc/Makefile -index ddbac3a21..fc461482b 100644 --- a/sound/soc/Makefile +++ b/sound/soc/Makefile @@ -60,3 +60,4 @@ obj-$(CONFIG_SND_SOC) += ux500/ @@ -5418,8 +5062,6 @@ index ddbac3a21..fc461482b 100644 obj-$(CONFIG_SND_SOC) += xtensa/ obj-$(CONFIG_SND_SOC) += zte/ +obj-$(CONFIG_SND_SOC) += phytium/ -diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 04a7070c7..4558ee2b9 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -795,6 +795,15 @@ config SND_SOC_ES8328_SPI @@ -5438,8 +5080,6 @@ index 04a7070c7..4558ee2b9 100644 config SND_SOC_GTM601 tristate 'GTM601 UMTS modem audio codec' -diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index 11ce98c25..f89e41e8b 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -90,6 +90,8 @@ snd-soc-es8316-objs := es8316.o @@ -5451,7 +5091,7 @@ index 11ce98c25..f89e41e8b 100644 snd-soc-gtm601-objs := gtm601.o snd-soc-hdac-hdmi-objs := hdac_hdmi.o snd-soc-hdac-hda-objs := hdac_hda.o -@@ -399,6 +401,8 @@ obj-$(CONFIG_SND_SOC_ES8316) += snd-soc-es8316.o +@@ -399,6 +401,8 @@ obj-$(CONFIG_SND_SOC_ES8316) += snd-s obj-$(CONFIG_SND_SOC_ES8328) += snd-soc-es8328.o obj-$(CONFIG_SND_SOC_ES8328_I2C)+= snd-soc-es8328-i2c.o obj-$(CONFIG_SND_SOC_ES8328_SPI)+= snd-soc-es8328-spi.o diff --git a/target/linux/phytium/patches-5.10/002-fix-build-fail.patch b/target/linux/phytium/patches-5.10/002-fix-build-fail.patch index 71b87f4f7..d94ddc879 100644 --- a/target/linux/phytium/patches-5.10/002-fix-build-fail.patch +++ b/target/linux/phytium/patches-5.10/002-fix-build-fail.patch @@ -1,8 +1,6 @@ -diff --git a/scripts/Makefile b/scripts/Makefile -index 9adb6d247818..97f1ad5b2f66 100644 --- a/scripts/Makefile +++ b/scripts/Makefile -@@ -21,7 +21,7 @@ HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include +@@ -21,7 +21,7 @@ HOSTCFLAGS_asn1_compiler.o = -I$(srctree HOSTCFLAGS_sign-file.o = $(CRYPTO_CFLAGS) HOSTLDLIBS_sign-file = $(CRYPTO_LIBS) HOSTCFLAGS_extract-cert.o = $(CRYPTO_CFLAGS)