kernel: bump 5.4 to 5.4.123
[openwrt/staging/ynezz.git] / target / linux / layerscape / patches-5.4 / 701-net-0397-sdk_dpaa-ceetm-fix-recursive-dependencies.patch
1 From 03117a1e7db4cd3d745c663c697e446695ebb8e1 Mon Sep 17 00:00:00 2001
2 From: Camelia Groza <camelia.groza@nxp.com>
3 Date: Wed, 8 Jan 2020 18:41:33 +0200
4 Subject: [PATCH] sdk_dpaa: ceetm: fix recursive dependencies
5
6 Due to dependencies between the fsl_ceetm and fsl_dpa modules, remove
7 the module support for the ceetm driver and integrate it into the main
8 DPAA Ethernet driver.
9
10 The registration of the CEETM Qdisc was the only operation done at
11 module init. Pass the management of the Qdisc register and unregister
12 operations to the loading and unloading of the DPAA driver.
13
14 Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
15 ---
16 drivers/net/ethernet/freescale/sdk_dpaa/Makefile | 3 +-
17 drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c | 19 +++++++++++++
18 .../ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c | 32 +---------------------
19 3 files changed, 21 insertions(+), 33 deletions(-)
20
21 --- a/drivers/net/ethernet/freescale/sdk_dpaa/Makefile
22 +++ b/drivers/net/ethernet/freescale/sdk_dpaa/Makefile
23 @@ -20,8 +20,7 @@ endif
24
25 ifeq ($(CONFIG_FSL_DPAA_CEETM),y)
26 ccflags-y += -I$(srctree)/drivers/net/ethernet/freescale/sdk_fman/src/wrapper
27 -obj-$(CONFIG_FSL_SDK_DPAA_ETH) += fsl_ceetm.o
28 -fsl_ceetm-objs += dpaa_eth_ceetm.o
29 +fsl_dpa-objs += dpaa_eth_ceetm.o
30 endif
31
32 fsl_mac-objs += mac.o mac-api.o
33 --- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c
34 +++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c
35 @@ -72,6 +72,9 @@
36 #ifdef CONFIG_FSL_DPAA_DBG_LOOP
37 #include "dpaa_debugfs.h"
38 #endif /* CONFIG_FSL_DPAA_DBG_LOOP */
39 +#ifdef CONFIG_FSL_DPAA_CEETM
40 +#include "dpaa_eth_ceetm.h"
41 +#endif
42
43 /* CREATE_TRACE_POINTS only needs to be defined once. Other dpa files
44 * using trace events only need to #include <trace/events/sched.h>
45 @@ -116,6 +119,10 @@ static uint8_t dpa_priv_common_bpid;
46 struct net_device *dpa_loop_netdevs[20];
47 #endif
48
49 +#ifdef CONFIG_FSL_DPAA_CEETM
50 +extern struct Qdisc_ops ceetm_qdisc_ops;
51 +#endif
52 +
53 #ifdef CONFIG_PM
54
55 static int dpaa_suspend(struct device *dev)
56 @@ -1158,6 +1165,14 @@ static int __init __cold dpa_load(void)
57 pr_debug(KBUILD_MODNAME ": %s:%s() ->\n",
58 KBUILD_BASENAME".c", __func__);
59
60 +#ifdef CONFIG_FSL_DPAA_CEETM
61 + _errno = register_qdisc(&ceetm_qdisc_ops);
62 + if (unlikely(_errno))
63 + pr_err(KBUILD_MODNAME
64 + ": %s:%hu:%s(): register_qdisc() = %d\n",
65 + KBUILD_BASENAME ".c", __LINE__, __func__, _errno);
66 +#endif
67 +
68 return _errno;
69 }
70 module_init(dpa_load);
71 @@ -1167,6 +1182,10 @@ static void __exit __cold dpa_unload(voi
72 pr_debug(KBUILD_MODNAME ": -> %s:%s()\n",
73 KBUILD_BASENAME".c", __func__);
74
75 +#ifdef CONFIG_FSL_DPAA_CEETM
76 + unregister_qdisc(&ceetm_qdisc_ops);
77 +#endif
78 +
79 platform_driver_unregister(&dpa_driver);
80
81 #ifdef CONFIG_FSL_DPAA_DBG_LOOP
82 --- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c
83 +++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c
84 @@ -33,16 +33,13 @@
85 #include <linux/init.h>
86 #include "dpaa_eth_ceetm.h"
87
88 -#define DPA_CEETM_DESCRIPTION "FSL DPAA CEETM qdisc"
89 -MODULE_LICENSE("Dual BSD/GPL");
90 -MODULE_DESCRIPTION(DPA_CEETM_DESCRIPTION);
91 -
92 const struct nla_policy ceetm_policy[TCA_CEETM_MAX + 1] = {
93 [TCA_CEETM_COPT] = { .len = sizeof(struct tc_ceetm_copt) },
94 [TCA_CEETM_QOPS] = { .len = sizeof(struct tc_ceetm_qopt) },
95 };
96
97 struct Qdisc_ops ceetm_qdisc_ops;
98 +EXPORT_SYMBOL(ceetm_qdisc_ops);
99
100 /* Obtain the DCP and the SP ids from the FMan port */
101 static void get_dcp_and_sp(struct net_device *dev, enum qm_dc_portal *dcp_id,
102 @@ -2086,30 +2083,3 @@ drop:
103 dev_kfree_skb_any(skb);
104 return NET_XMIT_SUCCESS;
105 }
106 -EXPORT_SYMBOL(ceetm_tx);
107 -
108 -static int __init ceetm_register(void)
109 -{
110 - int _errno = 0;
111 -
112 - pr_info(KBUILD_MODNAME ": " DPA_CEETM_DESCRIPTION "\n");
113 -
114 - _errno = register_qdisc(&ceetm_qdisc_ops);
115 - if (unlikely(_errno))
116 - pr_err(KBUILD_MODNAME
117 - ": %s:%hu:%s(): register_qdisc() = %d\n",
118 - KBUILD_BASENAME ".c", __LINE__, __func__, _errno);
119 -
120 - return _errno;
121 -}
122 -
123 -static void __exit ceetm_unregister(void)
124 -{
125 - pr_debug(KBUILD_MODNAME ": %s:%s() ->\n",
126 - KBUILD_BASENAME ".c", __func__);
127 -
128 - unregister_qdisc(&ceetm_qdisc_ops);
129 -}
130 -
131 -module_init(ceetm_register);
132 -module_exit(ceetm_unregister);