Skip to content

Commit 6c635f7

Browse files
Geetha sowjanyadavem330
authored andcommitted
octeontx2-af: cn10k: mcs: Handle MCS block interrupts
Hardware triggers an interrupt for events like PN wrap to zero, PN crosses set threshold. This interrupt is received by the MCS_AF. MCS AF then finds the PF/VF to which SA is mapped and notifies them using mcs_intr_notify mbox message. PF/VF using mcs_intr_cfg mbox can configure the list of interrupts for which they want to receive the notification from AF. Signed-off-by: Geetha sowjanya <[email protected]> Signed-off-by: Vamsi Attunuru <[email protected]> Signed-off-by: Sunil Goutham <[email protected]> Signed-off-by: Subbaraya Sundeep <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 9312150 commit 6c635f7

File tree

8 files changed

+865
-12
lines changed

8 files changed

+865
-12
lines changed

drivers/net/ethernet/marvell/octeontx2/af/mbox.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ M(MCS_GET_SA_STATS, 0xa00f, mcs_get_sa_stats, mcs_stats_req, mcs_sa_stats) \
326326
M(MCS_GET_PORT_STATS, 0xa010, mcs_get_port_stats, mcs_stats_req, \
327327
mcs_port_stats) \
328328
M(MCS_CLEAR_STATS, 0xa011, mcs_clear_stats, mcs_clear_stats, msg_rsp) \
329+
M(MCS_INTR_CFG, 0xa012, mcs_intr_cfg, mcs_intr_cfg, msg_rsp) \
329330
M(MCS_SET_LMAC_MODE, 0xa013, mcs_set_lmac_mode, mcs_set_lmac_mode, msg_rsp) \
330331
M(MCS_SET_PN_THRESHOLD, 0xa014, mcs_set_pn_threshold, mcs_set_pn_threshold, \
331332
msg_rsp) \
@@ -351,11 +352,15 @@ M(CGX_LINK_EVENT, 0xC00, cgx_link_event, cgx_link_info_msg, msg_rsp)
351352
#define MBOX_UP_CPT_MESSAGES \
352353
M(CPT_INST_LMTST, 0xD00, cpt_inst_lmtst, cpt_inst_lmtst_req, msg_rsp)
353354

355+
#define MBOX_UP_MCS_MESSAGES \
356+
M(MCS_INTR_NOTIFY, 0xE00, mcs_intr_notify, mcs_intr_info, msg_rsp)
357+
354358
enum {
355359
#define M(_name, _id, _1, _2, _3) MBOX_MSG_ ## _name = _id,
356360
MBOX_MESSAGES
357361
MBOX_UP_CGX_MESSAGES
358362
MBOX_UP_CPT_MESSAGES
363+
MBOX_UP_MCS_MESSAGES
359364
#undef M
360365
};
361366

@@ -2084,4 +2089,37 @@ struct mcs_clear_stats {
20842089
u8 all; /* All resources stats mapped to PF are cleared */
20852090
};
20862091

2092+
struct mcs_intr_cfg {
2093+
struct mbox_msghdr hdr;
2094+
#define MCS_CPM_RX_SECTAG_V_EQ1_INT BIT_ULL(0)
2095+
#define MCS_CPM_RX_SECTAG_E_EQ0_C_EQ1_INT BIT_ULL(1)
2096+
#define MCS_CPM_RX_SECTAG_SL_GTE48_INT BIT_ULL(2)
2097+
#define MCS_CPM_RX_SECTAG_ES_EQ1_SC_EQ1_INT BIT_ULL(3)
2098+
#define MCS_CPM_RX_SECTAG_SC_EQ1_SCB_EQ1_INT BIT_ULL(4)
2099+
#define MCS_CPM_RX_PACKET_XPN_EQ0_INT BIT_ULL(5)
2100+
#define MCS_CPM_RX_PN_THRESH_REACHED_INT BIT_ULL(6)
2101+
#define MCS_CPM_TX_PACKET_XPN_EQ0_INT BIT_ULL(7)
2102+
#define MCS_CPM_TX_PN_THRESH_REACHED_INT BIT_ULL(8)
2103+
#define MCS_CPM_TX_SA_NOT_VALID_INT BIT_ULL(9)
2104+
#define MCS_BBE_RX_DFIFO_OVERFLOW_INT BIT_ULL(10)
2105+
#define MCS_BBE_RX_PLFIFO_OVERFLOW_INT BIT_ULL(11)
2106+
#define MCS_BBE_TX_DFIFO_OVERFLOW_INT BIT_ULL(12)
2107+
#define MCS_BBE_TX_PLFIFO_OVERFLOW_INT BIT_ULL(13)
2108+
#define MCS_PAB_RX_CHAN_OVERFLOW_INT BIT_ULL(14)
2109+
#define MCS_PAB_TX_CHAN_OVERFLOW_INT BIT_ULL(15)
2110+
u64 intr_mask; /* Interrupt enable mask */
2111+
u8 mcs_id;
2112+
u8 lmac_id;
2113+
u64 rsvd;
2114+
};
2115+
2116+
struct mcs_intr_info {
2117+
struct mbox_msghdr hdr;
2118+
u64 intr_mask;
2119+
int sa_id;
2120+
u8 mcs_id;
2121+
u8 lmac_id;
2122+
u64 rsvd;
2123+
};
2124+
20872125
#endif /* MBOX_H */

0 commit comments

Comments
 (0)