From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <nipun.gupta@nxp.com>
Received: from NAM01-BN3-obe.outbound.protection.outlook.com
 (mail-bn3nam01on0077.outbound.protection.outlook.com [104.47.33.77])
 by dpdk.org (Postfix) with ESMTP id 699AF1B198
 for <dev@dpdk.org>; Tue, 16 Jan 2018 12:43:25 +0100 (CET)
Received: from BLUPR0301CA0038.namprd03.prod.outlook.com (10.162.113.176) by
 DM5PR03MB2697.namprd03.prod.outlook.com (10.168.197.135) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.20.407.7; Tue, 16 Jan 2018 11:43:24 +0000
Received: from BN1AFFO11FD046.protection.gbl (2a01:111:f400:7c10::108) by
 BLUPR0301CA0038.outlook.office365.com (2a01:111:e400:5259::48) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id
 15.20.407.7 via Frontend Transport; Tue, 16 Jan 2018 11:43:24 +0000
Authentication-Results: spf=fail (sender IP is 192.88.168.50)
 smtp.mailfrom=nxp.com; NXP1.onmicrosoft.com; dkim=none (message not signed)
 header.d=none;NXP1.onmicrosoft.com; dmarc=fail action=none
 header.from=nxp.com;
Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not
 designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; 
 client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;
Received: from tx30smr01.am.freescale.net (192.88.168.50) by
 BN1AFFO11FD046.mail.protection.outlook.com (10.58.53.61) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12
 via Frontend Transport; Tue, 16 Jan 2018 11:43:23 +0000
Received: from b27504-OptiPlex-790.ap.freescale.net
 (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60])
 by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w0GBgtjR014705;
 Tue, 16 Jan 2018 04:43:21 -0700
From: Nipun Gupta <nipun.gupta@nxp.com>
To: <jerin.jacob@caviumnetworks.com>
CC: <dev@dpdk.org>, <sunil.kori@nxp.com>, <hemant.agrawal@nxp.com>
Date: Tue, 16 Jan 2018 23:28:00 +0530
Message-ID: <1516125485-28919-8-git-send-email-nipun.gupta@nxp.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1516125485-28919-1-git-send-email-nipun.gupta@nxp.com>
References: <20171215130828.14218-1-sunil.kori@nxp.com>
 <1516125485-28919-1-git-send-email-nipun.gupta@nxp.com>
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131605766038699817;
 (91ab9b29-cfa4-454e-5278-08d120cd25b8); ()
X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;
 SFV:NSPM;
 SFS:(10009020)(376002)(346002)(39860400002)(39380400002)(396003)(2980300002)(1110001)(1109001)(339900001)(199004)(189003)(6916009)(2950100002)(296002)(316002)(105606002)(54906003)(106466001)(2351001)(8656006)(48376002)(356003)(305945005)(53936002)(76176011)(5660300001)(16586007)(6666003)(2906002)(50466002)(51416003)(47776003)(4326008)(498600001)(8936002)(36756003)(86362001)(85426001)(104016004)(8676002)(81156014)(81166006)(50226002)(68736007)(97736004)(26005)(77096006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2697; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; 
X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD046;
 1:xMDfEwyRpTgPrXPRdpkHXk/3h/6DZmoNqXduzmHZWoYB32jwsH4P2kmNCU84DTRXJFW+0m2pJ/P3SiLBQrn/IB2VRH/z3tNecINxo/2ZoC/iNwMd9qDr4oRWOEppvsQg
MIME-Version: 1.0
Content-Type: text/plain
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 025c48eb-c059-4bc9-3f29-08d55cd65998
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(5600026)(4604075)(2017052603307); SRVR:DM5PR03MB2697; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2697;
 3:ttj83XR5jrO/LFj4Qga2iGQlbgYdHcXdB6U6Ah14MGEVAvfm8oE0NgsIhv32+e0Xjcf8i2UUklPWEay+aQ8rrGA6GbRi4gDbUsOqn7Fb5MrbM5U1MoDhlTYwyBEMNIb1b6+LJ/832B5pjY2o0l16JIWU5/mPo11o1DRRaROIltCvT4gBJMbkVHCOMbGavYnATZSUdFWoIJ0TtLSReiGXSrKNiMndV9CstNyTggEFr+V95l+Mq5a1ZfK2lddWl2TEZsGOGNjO6u614X5qmbHBqQkH8jBQxhwcufMhD3skt7dqA6MLbaQHdX4LHnGcWfBBf/N9d8ZQfmn2kHExbGtAPmAx/k/7/PkrQp7edbey2nI=;
 25:JychtkF07mVnEvuCOh4g4YwwRJWtWmtM8SV4Am7nF5kv7b14yO6rO+H+SBlUUAyweEqZKGZ4svoW0+me9r2Cs7PxeWVhQFC0EUQ/9m3YCdmrjZr5oSn4T4Bq0d3S27yHckMgaU6dPBYEoGDX/BrMvyq7wtSOIfWpQvYrQYP0O/GjVQXQw4RoymWwuUNc22q3EVkSWD5KM3oEVAeIx61gcewYFoVJcQ2/jKoYRQM8hTRO96dyT9LwKs9p/uIAp92V+myK5jMTZchSfhhFE2YYRv47HJl0Cj/yu/j1WJHvFf+Rol3u5Hpj1bl0UbAkyHPV0cGKpB72cn6s+J2D4eihHA==
X-MS-TrafficTypeDiagnostic: DM5PR03MB2697:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2697;
 31:IxtMvzIQqyEpC01KyxPVGsmNdcxsO19NyBffB7copR3cBQAVNzsIYt/2/iHEz9zQIdeYA+2y1PQPG1Tb9vktroSeFqKbXr1aEjfYLH19L4+Px45f77dIcC8/EM/aRtuNvceOmJXO/6sD80bCGTehHLmjxruPg7P96mHXDtiBhJaa6B2vquj9eY/FU+ZlkQ1qxDHZi83+lpohcPtVmGsMfNuD6zOWm9Z0bv3rlYIRrPw=;
 4:QyBdDK8di40+uqfkm23XYKyf2EVHDm6k3KWAvlbLGjMTuZFqx4pelyqmVBZZnFnv5YhaIaoyjsAreL7N0Xwt0bfeLuWPbtVONNpUCCsa8+eh/VdsEUqhrGXuckoWGI/Ssoq9IuLP0BX2UzUGsqK4jYLSgVwq2+5LaaLm3PL7IsYncNMmM1457ZpQQb48wtw/Zbj41o2mSnKf7a4nlllvaM/ZvE18hGl8SXLOar3RhOEkSo/US/BvST3Cf61kAtJKrkSYp+GkPDD/NNaBePub5qBny0Tqca7zDg5g2eS0GcPnUC+HJA8v/CotNKU4KL39
X-Microsoft-Antispam-PRVS: <DM5PR03MB26978044B11660D31389BE4DE6EA0@DM5PR03MB2697.namprd03.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(185117386973197);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231023)(944501161)(6055026)(6096035)(20161123561025)(20161123565025)(20161123556025)(20161123563025)(20161123559100)(201703131430075)(201703131520075)(201703131448075)(201703131433075)(201703151042153)(201708071742011);
 SRVR:DM5PR03MB2697; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006);
 SRVR:DM5PR03MB2697; 
X-Forefront-PRVS: 0554B1F54F
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2697;
 23:JvA+Cp8u1JWBaxV/WmzAxJepvIc8d+fxxVZFm5Jl5?=
 =?us-ascii?Q?BvUfagFwsb4idbicX/0MF78eIiFcyNaOKRPoc/6pZbscHd6vyccDkH3lBgv8?=
 =?us-ascii?Q?0BB+wQAVaFQrThulSLnh9Jg0tQU66xJhTddE6sE8R5DowlG/Yfb1sxTtfKaL?=
 =?us-ascii?Q?CU8HRGU1qwG/DvpfpQGtpcy4s7qMe8i3z03bfS86iQNxqqlaJYqAHJW3Bmmq?=
 =?us-ascii?Q?x/8U8Bkfu7wQ1fWvNSxtb560iPhaav6QG7QfDkzzq7t7q26/IB3RorYUDvlJ?=
 =?us-ascii?Q?IMsm8nsGJwphFmRV8+6ypPPMrXE3F3ybyArP2BIobWApOlUOBYdBXr8M07/I?=
 =?us-ascii?Q?jdKY+mVS7appB3EU1TXEQxacv/FRGgoA0g2tjgstOzKip6mgGDlBnIRUw9qm?=
 =?us-ascii?Q?Wh3XLN6R26M6HBnPbdkICnTj4Az0TqqgySAqNQ2i7GsWZNyEItG4FXV6Q0jk?=
 =?us-ascii?Q?yyXLqG1rCEaZ4mv9IAmhDTm7BeviH4W/VzSzHa/l362VNMD1KzbeN0kPhR2s?=
 =?us-ascii?Q?A5xqoUqIbvFFAkcbB95DjBVeR6p8lVBSLONqmwbCWHx1ALNYUEdzQrwWtnU6?=
 =?us-ascii?Q?36CQ9OeQ/Huv350RDiICsu3l9JP2gW8Xd6yWNjhT3VFqHBniSCE9md6P6F1u?=
 =?us-ascii?Q?QU1qkdRGiKfp8+BR1VBQa+Ork0gy9HWl99CafA0ikaHGD1YP4YRhw21nQFf6?=
 =?us-ascii?Q?s0ao+hst6si2/Tpggp2K95umtjUghj3UBp6I4JoK52ouzLgMdIbYReOvgvZd?=
 =?us-ascii?Q?6g8sAwqJD4hsVyMjlDRHm3awwRm+tZG3pbyG2Tli565cNjROJLaaP3+YYRKl?=
 =?us-ascii?Q?BXKoi4ka+hO3F4N5BYa9X1mCAwIkpYFOh/tJ8dF4OkOmhZz0TYUQuFFwwqD4?=
 =?us-ascii?Q?j6LJ12G6zN0Pm8GUS3l8EbRLDh3N0zmylu+F+X5e81lCUon5RoK+JDa6uHVb?=
 =?us-ascii?Q?fNM2yV6+NiM7NrRcoolD7ac5/zlD6LJ7C5wyNY70To9QdxGly+QTrCh2gN6g?=
 =?us-ascii?Q?6iJtW8TOhZo5q41yUq4T0cG5whTliHCbaS/GJ36V4E3YrKTVrtj1snLXIJZr?=
 =?us-ascii?Q?jcf5q7AXv957ivH5MCa/xdEDGe0j+0I061egJ9wBfD2Emn6Ng=3D=3D?=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2697;
 6:6GP1ajRvErxfyVKU36NioW0pF4x3CmCl7f20o7D3s9T7ICfeMxe1u46ITmfLFi+OWagDMbrdYiS4cCQBw4xGnzcIolHASyBZPr3ynmTd0NwQ/45oSJuBnZHnacwYFMg/7adSwbZTfGD2PHva7fP8Z3r0xKctpSTReYhSSxgVYFzjiT0xjABnu3EgbwEZA6scqGQpcrdJgyBBSZ0lM9lkzqQA3GuV0303dGwunLPduMr+YmsFYmTjNoVrpC6A9sEBBwj/wiqqRlq2hjs3IBpETzr9DfhVNeD2KldKC1uPZojG5dJ0PErl/XXK7jEhk5Umk8NJpyEBGj988tQdoE6sRZ1vUpCOmpYQv1bsxKtY2jY=;
 5:NbJ9CyDmLe3OfOZBDVjeoEtSjoDTuPHvDxoNOk00AMnAI1AxkSWM5GXvBAAfoxDKfbS/l4bOoEqkWPI4Aixi0VIgKiPMSevLMkPVL2yJgodeaQjsqYQK+KgIcq3G/Zg4Xr7BEWlXFag0uKbX9TVE7QOR42yQAIfZJS65b48gK4Q=;
 24:OJ6RFjSPfD6fJDgh2JyoSTg2loiBfq6AWemdWMEtgtfsiwuMfNHrEjHT4wZuSKjwx0DI20BVs2/bRdjFBkAz3JYxOXzzxjrCIesTsL0TMVQ=;
 7:yLFfwyN/S/fYSca5Kgbn8ZkoOsSkc57TXE8yCjqc7qfLI9YRvNyYoLFEORLi6ELiq66m2aj2Zl9YuMusUFBjJDvPJVOJJ8rFQJbsNaAqsTFpWHPbHjMXezuf3F7C9NH4kn5rUG/k8+LJcVgwx+ntF4B/X02rhb+1iQbAxcrgGHhTTzcbX7XiTHaadJjkJVbrI3vY3KJn9r+Mhb4IAy6GggckOSgIOgd5N+gizZZt3FguZzMR9Kd7Ru+xCPy4d5ie
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 11:43:23.4331 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 025c48eb-c059-4bc9-3f29-08d55cd65998
X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50];
 Helo=[tx30smr01.am.freescale.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2697
Subject: [dpdk-dev] [PATCH 07/12 v3] event/dpaa: add event port config
	get/set support
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jan 2018 11:43:25 -0000

From: Sunil Kumar Kori <sunil.kori@nxp.com>

Signed-off-by: Sunil Kumar Kori <sunil.kori@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/event/dpaa/dpaa_eventdev.c | 105 +++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)

diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index f1db711..82362d5 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -247,6 +247,106 @@
 	RTE_SET_USED(queue_id);
 }
 
+static void
+dpaa_event_port_default_conf_get(struct rte_eventdev *dev, uint8_t port_id,
+				 struct rte_event_port_conf *port_conf)
+{
+	EVENTDEV_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(port_id);
+
+	port_conf->new_event_threshold = DPAA_EVENT_MAX_NUM_EVENTS;
+	port_conf->dequeue_depth = DPAA_EVENT_MAX_PORT_DEQUEUE_DEPTH;
+	port_conf->enqueue_depth = DPAA_EVENT_MAX_PORT_ENQUEUE_DEPTH;
+}
+
+static int
+dpaa_event_port_setup(struct rte_eventdev *dev, uint8_t port_id,
+		      const struct rte_event_port_conf *port_conf)
+{
+	struct dpaa_eventdev *eventdev = dev->data->dev_private;
+
+	EVENTDEV_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(port_conf);
+	dev->data->ports[port_id] = &eventdev->ports[port_id];
+
+	return 0;
+}
+
+static void
+dpaa_event_port_release(void *port)
+{
+	EVENTDEV_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(port);
+}
+
+static int
+dpaa_event_port_link(struct rte_eventdev *dev, void *port,
+		     const uint8_t queues[], const uint8_t priorities[],
+		     uint16_t nb_links)
+{
+	struct dpaa_eventdev *priv = dev->data->dev_private;
+	struct dpaa_port *event_port = (struct dpaa_port *)port;
+	struct dpaa_eventq *event_queue;
+	uint8_t eventq_id;
+	int i;
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(priorities);
+
+	/* First check that input configuration are valid */
+	for (i = 0; i < nb_links; i++) {
+		eventq_id = queues[i];
+		event_queue = &priv->evq_info[eventq_id];
+		if ((event_queue->event_queue_cfg
+			& RTE_EVENT_QUEUE_CFG_SINGLE_LINK)
+			&& (event_queue->event_port)) {
+			return -EINVAL;
+		}
+	}
+
+	for (i = 0; i < nb_links; i++) {
+		eventq_id = queues[i];
+		event_queue = &priv->evq_info[eventq_id];
+		event_port->evq_info[i].event_queue_id = eventq_id;
+		event_port->evq_info[i].ch_id = event_queue->ch_id;
+		event_queue->event_port = port;
+	}
+
+	event_port->num_linked_evq = event_port->num_linked_evq + i;
+
+	return (int)i;
+}
+
+static int
+dpaa_event_port_unlink(struct rte_eventdev *dev, void *port,
+		       uint8_t queues[], uint16_t nb_links)
+{
+	int i;
+	uint8_t eventq_id;
+	struct dpaa_eventq *event_queue;
+	struct dpaa_eventdev *priv = dev->data->dev_private;
+	struct dpaa_port *event_port = (struct dpaa_port *)port;
+
+	if (!event_port->num_linked_evq)
+		return nb_links;
+
+	for (i = 0; i < nb_links; i++) {
+		eventq_id = queues[i];
+		event_port->evq_info[eventq_id].event_queue_id = -1;
+		event_port->evq_info[eventq_id].ch_id = 0;
+		event_queue = &priv->evq_info[eventq_id];
+		event_queue->event_port = NULL;
+	}
+
+	event_port->num_linked_evq = event_port->num_linked_evq - i;
+
+	return (int)i;
+}
+
 static const struct rte_eventdev_ops dpaa_eventdev_ops = {
 	.dev_infos_get    = dpaa_event_dev_info_get,
 	.dev_configure    = dpaa_event_dev_configure,
@@ -256,6 +356,11 @@
 	.queue_def_conf   = dpaa_event_queue_def_conf,
 	.queue_setup      = dpaa_event_queue_setup,
 	.queue_release      = dpaa_event_queue_release,
+	.port_def_conf    = dpaa_event_port_default_conf_get,
+	.port_setup       = dpaa_event_port_setup,
+	.port_release       = dpaa_event_port_release,
+	.port_link        = dpaa_event_port_link,
+	.port_unlink      = dpaa_event_port_unlink,
 };
 
 static int
-- 
1.9.1