From patchwork Thu Oct 4 18:21:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Kovvuri X-Patchwork-Id: 979110 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="CdP7gUus"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42R1TR5v2jz9s5c for ; Fri, 5 Oct 2018 04:22:51 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728180AbeJEBRQ (ORCPT ); Thu, 4 Oct 2018 21:17:16 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43852 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727773AbeJEBRQ (ORCPT ); Thu, 4 Oct 2018 21:17:16 -0400 Received: by mail-pl1-f196.google.com with SMTP id 30-v6so5583938plb.10; Thu, 04 Oct 2018 11:22:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iZW4v2sidj8qkaZBDCQvbd2WUOLk+zFKb5u9tt17wMo=; b=CdP7gUusWaJUhrezXRJ5LuJxdx+JCfD3u1E+ucQ3K3Et3Lijx2CzfCWk3WX+fjfLvJ ZhG4qINTyr59OdPnf3/oc9gedcepYoQpYzHycYY0ji5pfhj8PmsA9r7ihHYPeiykzy14 y+YHxm0DcHZqviQuyjF1t9rnue9k2krWc/L4lfZBey12OlMtipJKlC+CShychQkKzAqA wmFBlkvhymTqhDniAoA4nAYh+ycxaZNvkL5lt/fkxiDVnMq83cAyvsMpDZRyO8weu5lF iqY4gSojxxN9lSYv5ryy+jel2bEktv4zoT1BFBJjulqkCW2HA6cMNep1w0gOkInoQ7VP i5Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iZW4v2sidj8qkaZBDCQvbd2WUOLk+zFKb5u9tt17wMo=; b=KiWDb9DqICk3qw3+6hi0twir0OC69vakWoCg9+t/41AhiWEGyby3NzUJGiUPY7S3RK hczgJiNgHco4QPtXxYLIEpb+LRn+uFrfXw7dWxK//6AKq1bJLi81D+kCcdZyjQu0Os7w 7f9V9RbB8LSr+SuiCAAgrH7fy7Ogr+bL2rZsc1wFj3NIfNDgjvsEMaQxSCJQJlI3jWOK MhF++xeow9uFpcgj0LDMcLSQ8TgoT4hQ36vV7kB+W6K1PKSQLegrv/OOVcPOIiJ0K9Mn TwEutl6IWRnVrjCsFbnoRuCaaWESw9eSrDATxSEqDNmpH8q5n2Cwmz9JZ1jgeR6LyetN tZHw== X-Gm-Message-State: ABuFfoiAvD/G/0boXw+fDHTCP1Iepr/mwUYm6J1XUuhHrfgsS4CDM2Wr aUcbUrgTmmrXTx25+W5vt98zk03k X-Google-Smtp-Source: ACcGV623YUCFPlS93aF1MBDV1AunlGQmkuZ3BvLz9CJePf4srcuhu9NYtXESyml7ilt59uDcVwFtJQ== X-Received: by 2002:a17:902:8bc4:: with SMTP id r4-v6mr7535353plo.124.1538677368592; Thu, 04 Oct 2018 11:22:48 -0700 (PDT) Received: from machine421.caveonetworks.com ([115.113.156.2]) by smtp.googlemail.com with ESMTPSA id k23-v6sm6613863pgl.42.2018.10.04.11.22.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 04 Oct 2018 11:22:47 -0700 (PDT) From: sunil.kovvuri@gmail.com To: netdev@vger.kernel.org, davem@davemloft.net Cc: arnd@arndb.de, linux-soc@vger.kernel.org, Aleksey Makarov , Sunil Goutham Subject: [PATCH v6 06/15] octeontx2-af: Convert mbox msg id check to a macro Date: Thu, 4 Oct 2018 23:51:49 +0530 Message-Id: <1538677318-5002-7-git-send-email-sunil.kovvuri@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1538677318-5002-1-git-send-email-sunil.kovvuri@gmail.com> References: <1538677318-5002-1-git-send-email-sunil.kovvuri@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Aleksey Makarov With 10's of mailbox messages expected to be handled in future, checking for message id could become a lengthy switch case. Hence added a macro to auto generate the switch case for each msg id. Signed-off-by: Aleksey Makarov Signed-off-by: Sunil Goutham --- drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 44 +++++++++++++++++++++---- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c index e795c2f..25f79bf 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -258,6 +258,12 @@ static int rvu_setup_hw_resources(struct rvu *rvu) return 0; } +static int rvu_mbox_handler_READY(struct rvu *rvu, struct msg_req *req, + struct ready_msg_rsp *rsp) +{ + return 0; +} + static int rvu_process_mbox_msg(struct rvu *rvu, int devid, struct mbox_msghdr *req) { @@ -265,13 +271,39 @@ static int rvu_process_mbox_msg(struct rvu *rvu, int devid, if (req->sig != OTX2_MBOX_REQ_SIG) goto bad_message; - if (req->id == MBOX_MSG_READY) - return 0; - + switch (req->id) { +#define M(_name, _id, _req_type, _rsp_type) \ + case _id: { \ + struct _rsp_type *rsp; \ + int err; \ + \ + rsp = (struct _rsp_type *)otx2_mbox_alloc_msg( \ + &rvu->mbox, devid, \ + sizeof(struct _rsp_type)); \ + if (rsp) { \ + rsp->hdr.id = _id; \ + rsp->hdr.sig = OTX2_MBOX_RSP_SIG; \ + rsp->hdr.pcifunc = req->pcifunc; \ + rsp->hdr.rc = 0; \ + } \ + \ + err = rvu_mbox_handler_ ## _name(rvu, \ + (struct _req_type *)req, \ + rsp); \ + if (rsp && err) \ + rsp->hdr.rc = err; \ + \ + return rsp ? err : -ENOMEM; \ + } +MBOX_MESSAGES +#undef M + break; bad_message: - otx2_reply_invalid_msg(&rvu->mbox, devid, req->pcifunc, - req->id); - return -ENODEV; + default: + otx2_reply_invalid_msg(&rvu->mbox, devid, req->pcifunc, + req->id); + return -ENODEV; + } } static void rvu_mbox_handler(struct work_struct *work)