Merge tag 'drm-misc-next-2021-10-14' of git://anongit.freedesktop.org/drm/drm-misc...
[linux-2.6-microblaze.git] / drivers / net / dsa / sja1105 / sja1105_vl.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright 2020 NXP
3  */
4 #ifndef _SJA1105_VL_H
5 #define _SJA1105_VL_H
6
7 #include "sja1105.h"
8
9 #if IS_ENABLED(CONFIG_NET_DSA_SJA1105_VL)
10
11 int sja1105_vl_redirect(struct sja1105_private *priv, int port,
12                         struct netlink_ext_ack *extack, unsigned long cookie,
13                         struct sja1105_key *key, unsigned long destports,
14                         bool append);
15
16 int sja1105_vl_delete(struct sja1105_private *priv, int port,
17                       struct sja1105_rule *rule,
18                       struct netlink_ext_ack *extack);
19
20 int sja1105_vl_gate(struct sja1105_private *priv, int port,
21                     struct netlink_ext_ack *extack, unsigned long cookie,
22                     struct sja1105_key *key, u32 index, s32 prio,
23                     u64 base_time, u64 cycle_time, u64 cycle_time_ext,
24                     u32 num_entries, struct action_gate_entry *entries);
25
26 int sja1105_vl_stats(struct sja1105_private *priv, int port,
27                      struct sja1105_rule *rule, struct flow_stats *stats,
28                      struct netlink_ext_ack *extack);
29
30 #else
31
32 static inline int sja1105_vl_redirect(struct sja1105_private *priv, int port,
33                                       struct netlink_ext_ack *extack,
34                                       unsigned long cookie,
35                                       struct sja1105_key *key,
36                                       unsigned long destports,
37                                       bool append)
38 {
39         NL_SET_ERR_MSG_MOD(extack, "Virtual Links not compiled in");
40         return -EOPNOTSUPP;
41 }
42
43 static inline int sja1105_vl_delete(struct sja1105_private *priv,
44                                     int port, struct sja1105_rule *rule,
45                                     struct netlink_ext_ack *extack)
46 {
47         NL_SET_ERR_MSG_MOD(extack, "Virtual Links not compiled in");
48         return -EOPNOTSUPP;
49 }
50
51 static inline int sja1105_vl_gate(struct sja1105_private *priv, int port,
52                                   struct netlink_ext_ack *extack,
53                                   unsigned long cookie,
54                                   struct sja1105_key *key, u32 index, s32 prio,
55                                   u64 base_time, u64 cycle_time,
56                                   u64 cycle_time_ext, u32 num_entries,
57                                   struct action_gate_entry *entries)
58 {
59         NL_SET_ERR_MSG_MOD(extack, "Virtual Links not compiled in");
60         return -EOPNOTSUPP;
61 }
62
63 static inline int sja1105_vl_stats(struct sja1105_private *priv, int port,
64                                    struct sja1105_rule *rule,
65                                    struct flow_stats *stats,
66                                    struct netlink_ext_ack *extack)
67 {
68         NL_SET_ERR_MSG_MOD(extack, "Virtual Links not compiled in");
69         return -EOPNOTSUPP;
70 }
71
72 #endif /* IS_ENABLED(CONFIG_NET_DSA_SJA1105_VL) */
73
74 #endif /* _SJA1105_VL_H */