[qca-nss-drv] Split host to NSS command/data queues
Change-Id: I30a4215fe7742262cd6a7b0c2bd0865ce6dffd7f
Signed-off-by: Stephen Wang <wstephen@codeaurora.org>
diff --git a/nss_ppe.c b/nss_ppe.c
index 90f0c5d..33a3d19 100644
--- a/nss_ppe.c
+++ b/nss_ppe.c
@@ -61,16 +61,7 @@
*/
nss_tx_status_t nss_ppe_tx_msg(struct nss_ctx_instance *nss_ctx, struct nss_ppe_msg *msg)
{
- struct nss_ppe_msg *nm;
struct nss_cmn_msg *ncm = &msg->cm;
- struct sk_buff *nbuf;
- int32_t status;
-
- NSS_VERIFY_CTX_MAGIC(nss_ctx);
- if (unlikely(nss_ctx->state != NSS_CORE_STATE_INITIALIZED)) {
- nss_warning("%p: ppe msg dropped as core not ready\n", nss_ctx);
- return NSS_TX_FAILURE_NOT_READY;
- }
/*
* Sanity check the message
@@ -80,35 +71,12 @@
return NSS_TX_FAILURE;
}
- if (nss_cmn_get_msg_len(ncm) > sizeof(struct nss_ppe_msg)) {
- nss_warning("%p: message length is invalid: %d\n", nss_ctx, nss_cmn_get_msg_len(ncm));
+ if (!nss_ppe_verify_ifnum(ncm->interface)) {
+ nss_warning("%p: invalid interface %d\n", nss_ctx, ncm->interface);
return NSS_TX_FAILURE;
}
- nbuf = dev_alloc_skb(NSS_NBUF_PAYLOAD_SIZE);
- if (unlikely(!nbuf)) {
- NSS_PKT_STATS_INCREMENT(nss_ctx, &nss_ctx->nss_top->stats_drv[NSS_STATS_DRV_NBUF_ALLOC_FAILS]);
- nss_warning("%p: msg dropped as command allocation failed\n", nss_ctx);
- return NSS_TX_FAILURE;
- }
-
- /*
- * Copy the message to our skb
- */
- nm = (struct nss_ppe_msg *)skb_put(nbuf, sizeof(struct nss_ppe_msg));
- memcpy(nm, msg, sizeof(struct nss_ppe_msg));
-
- status = nss_core_send_buffer(nss_ctx, 0, nbuf, NSS_IF_CMD_QUEUE, H2N_BUFFER_CTRL, 0);
- if (status != NSS_CORE_STATUS_SUCCESS) {
- dev_kfree_skb_any(nbuf);
- nss_warning("%p: Unable to enqueue 'ppe message'\n", nss_ctx);
- return NSS_TX_FAILURE;
- }
-
- nss_hal_send_interrupt(nss_ctx, NSS_H2N_INTR_DATA_COMMAND_QUEUE);
-
- NSS_PKT_STATS_INCREMENT(nss_ctx, &nss_ctx->nss_top->stats_drv[NSS_STATS_DRV_TX_CMD_REQ]);
- return NSS_TX_SUCCESS;
+ return nss_core_send_cmd(nss_ctx, msg, sizeof(*msg), NSS_NBUF_PAYLOAD_SIZE);
}
EXPORT_SYMBOL(nss_ppe_tx_msg);
@@ -181,11 +149,6 @@
return NSS_TX_FAILURE;
}
- if (!nss_ppe_verify_ifnum(if_num)) {
- nss_warning("%p: invalid interface %d\n", nss_ctx, if_num);
- return NSS_TX_FAILURE;
- }
-
nss_ppe_msg_init(&npm, if_num, NSS_PPE_MSG_L2_EXCEPTION,
sizeof(struct nss_ppe_l2_exception_msg), NULL, NULL);