From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0061.outbound.protection.outlook.com [104.47.37.61]) by dpdk.org (Postfix) with ESMTP id D0CA67CF0 for ; Thu, 15 Jun 2017 11:00:29 +0200 (CEST) Received: from BN6PR03CA0089.namprd03.prod.outlook.com (10.164.122.155) by BY1PR0301MB1192.namprd03.prod.outlook.com (10.160.195.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Thu, 15 Jun 2017 09:00:28 +0000 Received: from BL2FFO11FD025.protection.gbl (2a01:111:f400:7c09::142) by BN6PR03CA0089.outlook.office365.com (2603:10b6:405:6f::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12 via Frontend Transport; Thu, 15 Jun 2017 09:00:22 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.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 BL2FFO11FD025.mail.protection.outlook.com (10.173.161.104) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1157.12 via Frontend Transport; Thu, 15 Jun 2017 09:00:22 +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 v5F8xWSe012830; Thu, 15 Jun 2017 02:00:19 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Thu, 15 Jun 2017 14:28:46 +0530 Message-ID: <1497517136-11824-11-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1497517136-11824-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1497517136-11824-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131419908225673954; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39450400003)(39840400002)(39400400002)(39410400002)(39850400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(81166006)(4326008)(76176999)(8676002)(77096006)(50986999)(5890100001)(110136004)(50466002)(48376002)(38730400002)(50226002)(498600001)(5003940100001)(305945005)(85426001)(8936002)(189998001)(2351001)(54906002)(36756003)(8656002)(86362001)(53936002)(106466001)(6916009)(2950100002)(2906002)(105606002)(356003)(6666003)(33646002)(104016004)(47776003)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0301MB1192; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD025; 1:7tWadrc0R/LgnV0AL2oPupuKqyQYvlu6tWAN4xKvXWPa2Z3cCmhTSriazsYGmOuBl6J70RWGSMRaf3OLtcK3TtVWrTDzC/SZ0B7mkHeH0Gi/Rpml1knUk+E4jJrvNihOAZhoMT2GCUmGuZmaKM4jizRk45TpNItqqL0Xp4KNZ0OctnZlMDvJFmvogVpJRkxY6hdpQTmcjotCNJ2xr0QcO8kdRtfi8KhjbxcdJ1O7+W9oi3ZEH0CF6yEFpNuQMOj4cNTgMc9VG3l62/HmAtr4P9PxjEhirM4JrBzsFpr4qBt+EWSa1Sxwk3yIcTzXt057aHKu/n/0YD9hxF+IIWj9hn/R0qA4OAflBklTHMam5C/ChcOU3vGTyUCEbwNeIe77dMKm9ggwIv4nv1K3jMuNSnkn9NwpYj3A36RbJcCEEaWIDGOOkSdyfykkueJ8C5iaQv8M5aE9hYxxNvHztZLSyN1TTEBO/ivd16oJ9Stvcoeh+Zvtm93zOcnvpV0emRnDdK/+dKrX8JI1stJ4mS6rC4k/CnPg0/s8/+DO03efvb+k0hadT9pLaia0N43qUVXrUTS7FxJz2YiENQ3EobBtT0wtxKksuw9ofTWZ4vPiTqFXB4ICW5GgnhtuBYmPqtLQreiEDn8a2CncO85myP5VTeqtfZScY1jwLGQQouPrQEpo8zqKp/crp7OWkZRThs4u9fccnLKuZUFnFVyBrOidD24g35i735mApJKEKQhN8MQ= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0301MB1192: X-MS-Office365-Filtering-Correlation-Id: ca6c3bba-e9e7-4385-4981-08d4b3ccf4a9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BY1PR0301MB1192; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1192; 3:fE2eor1b0f2mvyddvFxzGL0zL9lDIevmF/AuWztk8O2C9/3PS6CY/rPVAhZ6pD+Q+1b4UUoIgwhcjDCcIubZSnTBsdezu6PMWa++10uSjNszee0vF+epBmzbKBURwQ0t3yr3LM6+Qa7l0BWqhYxxUE8KxAe8F3hM+g/nkMweSbAKgh7gifSbLqLnaY13l5329uS531/ISZN2oA/81vVVJwooAWMqZXNQAGEnCoJsecVCosYZguJrmURszk71pVRP6tfLCCiOGD2iGYcJi558QtbRt2E0sF/NR4fD/VLmJtTprh19T55zSdvuc13tanKCY9GVcr/NUQu0m/inrH3OaZEAaQIQ4faVV9NviP6u3sovZaQmQZsaPDy5k3BeOk29WvEq20LMksU+AHXeTv+wc5JwH4+XaJNoToTk+8iNA3bhD4bdUHPjTvypIYyUZZJe; 25:Le6l889RaFRB4kBn4pWm1SYJJvlq521uITJotkB7S0vtA5oI/nFzOdvuFbm+CzYAxPhZyXt5mH1/ymLq274nrRzJws/wG6NQzbMKwO3RsAMFeztJJqGxSM/EMqJm+JgLiKQwl0RHMVxQMZet7MfiQW7DCBbiBpFijZ3b35vwibDRZt5pOqZXawQvV0TnCcvUDZ/EjTnMsrpLXxLneWpDCtr9nJuKmk8lH0aq4rCZXG9tmX5VzVpNwrnw5RO4ep6YZKCA1WAcrZnkAe8UPZ+TMBWUB8KIUSAMwNLHkKthlYvkvekEqy0ESJNqXl9kzAxLJbnZ2uOR9SxgLdQpbCpYkkOQxejLfDuknf3bRiVFdvyYhxVfPbhwZzh2rHN+5M1i1FSOHLdfEcWY2mryPZ/sp8kWG0vqEKWfaAByeKBWWKeuq8Y5dRO/36hVVIfOzCuNCw9uBLuiGuc8s3azDd9i1yFPQNm2Kp8q9e4N54V95Kw= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1192; 31:6QpdQSjdn6gsRsiQr/2nwxASEtL2cBZDUU0mYjpF2OE6JsrNWTIHlhb+MiP35AoiTzxCroqR7Ywa2wzpEJ5uGf5gI/tvA6kP+UOh1UcWHKDJ5F2GLDvPQhNJQfxstg49RbAEwYySicTC6sGW+Bn0oJqEh9p+p1LjfZD2l59R9Q0Us1nRDH5XasG8ahrYTDXaUZql1cNr3rXTdj/zTGcfaIV8cW1k5PzEZu481xEeFSFWlmi053MW9az8OidYWZej X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123565025)(20161123563025)(20161123559100)(20161123556025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123561025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0301MB1192; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0301MB1192; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0301MB1192; 4:nm056T3Gx9aKwudnkAMAk+hI5on/8WjDM0STcQLW?= =?us-ascii?Q?tLLye8U2xNv21u5KwdA+7SjaKZE/4VY3+zsbs4/ydDydHpyOrttarDtv1x/i?= =?us-ascii?Q?aaZwcDycMgMknPMab1zVczFrvctXbqbHq6l3t9BHAXpHusl+jg2Db4c//wPI?= =?us-ascii?Q?2w1VruVAzfcyL8zU5AgqcsNy/2BS0DTsXXEdlQIZZ+8a5P/qNnj8xBRuEVY4?= =?us-ascii?Q?zo/zP0brQpSosS3OUidGNNWeEbHRXO+wPEv8eLi+ZHFzjw44voLxJbQvOq4/?= =?us-ascii?Q?23GPne5dFjAoNUWO8kn+Rddu7WL4z+b3JbXiBsWTgKkf5caDrpU0NZtcxBpC?= =?us-ascii?Q?RyRpnuZwtpL5X3gkN9YE/3f8nq6A1ZEUx4HWCEG25ViloEM9CfvVTLujbaww?= =?us-ascii?Q?njYal+KUYnGYGmJd/89qZbP+u7311Jq3eo5xXx1TceP0BLBU4LxQ0Na7k/EN?= =?us-ascii?Q?kVP57GLuXQMVzWmwTbioa3ZIHAkJzw2mL9S0dc5ep+HXexGAbtp3qK7REcgQ?= =?us-ascii?Q?FEu6JBQY48qyYzdTuJxRRmK20stgpRiB6KcaFahxVirnGJuy1mofwPhW9QX4?= =?us-ascii?Q?Nc9pG70yX+puMYVsUYvSyUSa8/rzu1CmJV4V6tMZlNbqFteyH4StkXoXfu3F?= =?us-ascii?Q?dP3HrYgaXQ5LPBY15+NbdaCmxoaxIqPfrIAIVDdtnOFgMAHkX0JiXejfx5CF?= =?us-ascii?Q?2McOdHhYV7Ef2OQGqcA+4l7SRlourqwhz/RWdv6OVCNP9m+NGoAJ0zMyWaxJ?= =?us-ascii?Q?UWcRzBokeQ+uifR1F3HQyOcce/0VodQ+FiAtAin+kv4bifwZ+85JMuxQk2mR?= =?us-ascii?Q?ntDZ68GOzw2ShtxHa2pZ6KREcYlgxOO6LnCgyFaH9zEsNlTqH/rMONtdmFxQ?= =?us-ascii?Q?Uz/T8NdseOsX+9rqen48tMjJXC4QuZecDqv2NwNKjVVASC1aGOAXZk2m3XMv?= =?us-ascii?Q?uiuUDL7WTk8df9cqJTQAFYti8/tvId8WZm+o1RLNAPM4/+frGtDz9RpEdN2x?= =?us-ascii?Q?Ir1IgjlNYiJtROMXGncyRizWomAsS7HgKHGCONRs9OxlVkNj7AaXip2C8/9J?= =?us-ascii?Q?4wJwCQ1EX2g0yOKbyA6btals85t8htlao1u9Qe3YdPEqab1i9bh9Wczq+qXr?= =?us-ascii?Q?/Btc57ZKF5oYp3KkZmZJ47HuyJ+uE4023ZFmzMRmmT8S/EeFWC4ymhCAa+AZ?= =?us-ascii?Q?h0aaZrFTMBn9+xcWVTqyhZUwqKLRVner3N6UrrpOtwamC7UMxRWLbGwu4nCU?= =?us-ascii?Q?NdXKWBoN8pXxyXc2szDJry9yoMY2oRZjzUulAQqCShVMcedx83mM6+YWPwXN?= =?us-ascii?Q?Zg=3D=3D?= X-Forefront-PRVS: 0339F89554 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0301MB1192; 23:+C+Y7KdTxmrEm4Sb8V70zFLh3tlHWvO4qU8T1S1?= =?us-ascii?Q?q9s9hjeTcaz6GISHVzuaKGgs3V+H8cKCZYtZd7N1KpEtzH8kJbouYCAB6ERe?= =?us-ascii?Q?IXmuNppvcF2KZrQu4l0NpIkKUMWb0v859EWCWG5n1zVxGtKA8xq2TwcWqsnq?= =?us-ascii?Q?JItE49bwEtdBT7f7zIYWaNT6wGCvLBzeuXMsMLcPvGjia3ikT9OZ7fU6Il4v?= =?us-ascii?Q?bzu4OPe4znlVB3xrtMuhwtoAfud7q0HLbE0FB7YvugdV/CmMqV4FOqkxgew8?= =?us-ascii?Q?v5yB9BlP95qqU6xECa7xLs/D4+s6dlpB2/dO+pb7YgVIE1EFUWRdZHBEp7Qe?= =?us-ascii?Q?aF0uWS19XLKhprl3cDgJQgE6sDBa9DBIBjmqSEsbtllDNKfmtBlCdRQcYUJc?= =?us-ascii?Q?9EuGhDsnWKqwN6k35Xz7IrhuGfBYW76cnlqlvHiWpFkZCZuW94kl79+KlMhO?= =?us-ascii?Q?08rzf6A4jDRmMAusigMeIL760glajxc4uULbCDqQ3VDwLe7JnKIumDMydbBW?= =?us-ascii?Q?NPdnGcO/4C8ZFbKkedUD7qH4avqKhQ4EtuPrn4JR9Y3jjBz0ok7zf1OSDaFh?= =?us-ascii?Q?ou/9ixLC97KBCmVMqydLAluzpIS2f4Xu8XqFIdTsJBzMe7wzjGVFvDEMQNvs?= =?us-ascii?Q?iJQVsUcTxtjf1AV081++IvoRFYLcYBqvNqFtQq2enZV+vczkLsLW1/vNBelp?= =?us-ascii?Q?T8sYC3wtUnduBOmQEHbc2GOuVc7zTdKpzZSHDjE2cukjwV5F+yDhBoyJifjn?= =?us-ascii?Q?NiQNSzCzl5r163MC4dmoGookbpoD9UbBiCF/s2fXH0/NcM6Te/BGKr5DGr8X?= =?us-ascii?Q?HzcWzExUgMZ25+BJWWvSFkkUedKstCAetDwJ0r5iiXaiIosVY5cu9uDffsVj?= =?us-ascii?Q?Q5gripuXNk0NkFDY8iDQPThVT2XCHXYCZdMnwl5Am/17wdkluK1xFm72MitV?= =?us-ascii?Q?M2HVh8CTtbe8Apm6DfBYuo/Rfu3QdaYHQ7FTcvFyWQjziDMBVT0rWBueCml2?= =?us-ascii?Q?LF4NyH/dmyvCKzhl7MuXoBDkoO6Sy6xpOoibTabkmiA+bsUEUmsDGTbWg9aK?= =?us-ascii?Q?6Q73y9QOJZTVT1wjRfND/UjjGdKara6SZxYaOHjFRCs6lShcpZ9YCfqO33y2?= =?us-ascii?Q?FG6pbtufTja+qFnw7bOf+AG4wgLltJpHgFU/gqvTOrsDGCMyi7Sp14Qt3h5e?= =?us-ascii?Q?pd57Kx5BALZ+va2nvy0NmtzVgCk3X+PFD+5IY6Vpb3OG+c9ccPzKzyE4DocZ?= =?us-ascii?Q?Ab7PK5XeHgX4fWheJW3Y+sZw4ZH7ym/NQvN7bbtNJ?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0301MB1192; 6:lXPGl/4OzfQBE2XVsQmi2Doy1KSFry1xwMHa6tTA?= =?us-ascii?Q?Q75zFxw4CSjmwDySiNbFdXE+fRqdupo4BrN+IQhgd9ejt7v9FlMV1U/AK/p1?= =?us-ascii?Q?JrNaU0Sl2hquDMEiejgH8tXdX7IgEt+FqIqWYw0XFlZy7uFqktrkXmvucec9?= =?us-ascii?Q?djopwu+B3WIQyMhYpljm1Ke+HnRlxG6ie2l5S1Gs33K4YQuGXBiSXYHjfbnW?= =?us-ascii?Q?6udEWKWs+gdlwTUV4/iK+Pm2qWJ+m2As8bBq3ysDbxydebQqbgS8DsgmE9+N?= =?us-ascii?Q?aPkefyAMuQhsan3kTkCVVzglEPLc31igKP6IvEZlR/dRkiH21D+ZP8GKDK1n?= =?us-ascii?Q?fagmo/YFANljKoY8VLTV2axJuXr9h0Kaqe9pHTuZtACByQWb0RscFoJLa1ua?= =?us-ascii?Q?KflQqs3f1KSzHdzRL0Y9JS84h8Tw/R/ScDnQAbKM2IRDYfZi6pnxTWnUh91D?= =?us-ascii?Q?scKXZw2tM6B9ugneDa8bxgs1bPZ7ZFX5UOj4BbirFgQ57uiwfSxzC3GXFDrw?= =?us-ascii?Q?K3nuLlAERW49IyRdt7QmqxTtMCDzVfpqIM9ER2NdOmu/TASp+61BwLFxgZU6?= =?us-ascii?Q?JwIIjCfDN8m8zGCz5uw4LfHEaUTktgN6KJz7q4fHmELNceYpMfV9CDfwSNCD?= =?us-ascii?Q?T4A116jE3rlTdCZXaMYVl726mhz2D5uLK8Ru6+lsm24pFw+fQhnQUz72SnYb?= =?us-ascii?Q?Owm8Er8qrh1kd+xMu1swJIM//y9juSvXeoJyJIC/jV7ubULfIe/tYvMUsBBl?= =?us-ascii?Q?9O4fTag0atdJJ+R6PYycsZm9BOgnUHdqgOBPoBeV7i6hEeKe7bTlQlrSbU0o?= =?us-ascii?Q?Z1zbWtMd2BBq7y6UsQppY0fmj3pSi9BPM/KVDr55ul9DGUnySfWSbHQAQUXD?= =?us-ascii?Q?6BX4UFrfgSWfJgKJhUz9fT5p4kYjFmbBrL9vGAMaNZoenUCg4157NgCoSs/H?= =?us-ascii?Q?UAzlWvIaV8NdzmSEYzdg9QvCasE7k8uEGPSudQYMQw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1192; 5:51ARJryDcRpwMH51duiqvGV1+Yc3rNbS2ozYVmLXhPj9A2JcfvznOw3Fl5CFJv1pL+hmEW7do/+z3YQj/h4XF2jn5E9l943welbYn4AD94Cf86SI0CoWQXxsvG+gNBjxwug+IiXsXkTBRAeFGaCqg+1nrFuYFeKcK0tTM5oY+hcXfXubL3itMCfb+6dPvWhd0gkL/56zBh1Hxh7g7luVzsfX0Qr5z586dPHvSc8lCrn8Wccu2h3KcFY0BdZ0vy0EbuuZJ+b+l5HbCLYCfVnBBJGkK2nK6B7J5oXDgeQ5/wzcBUGwNAiY/S0SyBP/XJVsrEBhGCRM9nPjBtw7vbqgbhh1yC/3DbQ7FK2mwpn+xlXq82H4jsFn0hIYRnIuFQ5dSg/bf1i0pDSWcvG83ZgtKTzkof8VMsld4ZD4+KfK0aYqW4OB4SO/XJeofh+lOP7s4nmPEh5knJwZ9q2FrSUQ7BSC/QRHpAVbfYpX6VaJjAPG5VFXaBIXpOZUScxaIh7Q1O2aQ4r9K1nF7LGDGlUKtA==; 24:gUcv81Xmz9vGF08/oIgMdKV3JLqYtHWv/AOnvK9rGfoF76IcemOfpH47VOcr0rdhhbpt5JJ61qIn6BMSqsV9bbE+xrDHaEPdOWuzZ5geY/M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1192; 7:YjSO0lMtU03pTY1SOVfkRmgMbapKDkcEadDNm3OFURm5ijQu7W3sYBK9zzDzi1GJ4aU7e+3oLPFIjyhcfXYk4iQkoEkAfxUX3T2AA5dmvjALIpqGKA0Da9fIvT+fF78Zbk7jTQjKYmT+w+x/RfDUeMtK6DxQvuO3FOm6paAFKfIWplSVZSGfNEb1/WncdEmJYCqQipH7fDnIcaMjQ5pDjZkmPZ1LXqf97cJoMnIv5augOzrnSGc6bF4Gvl4AKa8Hyu4rkAPjLTrAkief9iOK9xJGIQiygaLuf22hINacKFwpkh4yHVOPLcBv6p5lH7x4TjucwTifKe4yBFajDS3MbUyPs+lZrR/h4ZetfooMLtZ+71o/5yy16f1JKUjj6iDjRbrats6XA4/POUsHhJ6C3ShZVYW55KZUaH+4LfioHyBWsBrw3A5KgbJGmgpiSCncMBk/AQCU9ZIsgWlFaGaivYTIqBNq1a+My6Z/xEnMwu2gYQy1pnXFs5VrYv0tldnSmxeZq7n4P8i1zctpy9n+aeYSUoypC8DeIvbdAqXuuyNo5y/sZDTVMsUZXJq7XSCLgZ6PLFBIzCJPgb3Cyb5R5uzy1tGUKtjHH8DA9AIPeGG3tvBawdIKXqJpgkjjwfFcY8JSlwSD7XZe8xZldw3wQfCItjxauAaYNe5l20V7er3WcjzYhB52XRqMh4ulfGKKMUBKpBHrCVE88yOCLZg2c4kC1R70T8S9dtNZ+tISLDWEMY5v6Cji4s94gCheAidBGfote0ugH6tYfd2AXRm6bl7SIpPLiffcC4JSQEsXsZ4= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2017 09:00:22.3645 (UTC) 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: BY1PR0301MB1192 Subject: [dpdk-dev] [PATCH 10/20 v2] event/dpaa2: add initialization of event device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2017 09:00:31 -0000 Signed-off-by: Nipun Gupta --- drivers/event/dpaa2/dpaa2_eventdev.c | 157 ++++++++++++++++++++++++++++++++++- drivers/event/dpaa2/dpaa2_eventdev.h | 22 +++++ 2 files changed, 175 insertions(+), 4 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 191901e..b8cc3f8 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -30,17 +30,168 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include "dpaa2_eventdev.h" +#include +#include + +/* Clarifications + * Evendev = SoC Instance + * Eventport = DPIO Instance + * Eventqueue = DPCON Instance + * 1 Eventdev can have N Eventqueue + * Soft Event Flow is DPCI Instance + */ + +static uint16_t +dpaa2_eventdev_enqueue_burst(void *port, const struct rte_event ev[], + uint16_t nb_events) +{ + RTE_SET_USED(port); + RTE_SET_USED(ev); + RTE_SET_USED(nb_events); + + return 0; +} + +static uint16_t +dpaa2_eventdev_enqueue(void *port, const struct rte_event *ev) +{ + return dpaa2_eventdev_enqueue_burst(port, ev, 1); +} + +static uint16_t +dpaa2_eventdev_dequeue_burst(void *port, struct rte_event ev[], + uint16_t nb_events, uint64_t timeout_ticks) +{ + RTE_SET_USED(port); + RTE_SET_USED(ev); + RTE_SET_USED(nb_events); + RTE_SET_USED(timeout_ticks); + + return 0; +} + +static uint16_t +dpaa2_eventdev_dequeue(void *port, struct rte_event *ev, + uint64_t timeout_ticks) +{ + return dpaa2_eventdev_dequeue_burst(port, ev, 1, timeout_ticks); +} + +static const struct rte_eventdev_ops dpaa2_eventdev_ops; + +static int +dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev, + struct dpaa2_dpcon_dev *dpcon_dev) +{ + struct dpci_rx_queue_cfg rx_queue_cfg; + int ret, i; + + /*Do settings to get the frame on a DPCON object*/ + rx_queue_cfg.options = DPCI_QUEUE_OPT_DEST; + rx_queue_cfg.dest_cfg.dest_type = DPCI_DEST_DPCON; + rx_queue_cfg.dest_cfg.dest_id = dpcon_dev->dpcon_id; + rx_queue_cfg.dest_cfg.priority = DPAA2_EVENT_DEFAULT_DPCI_PRIO; + + for (i = 0 ; i < DPAA2_EVENT_DPCI_MAX_QUEUES; i++) { + rx_queue_cfg.user_ctx = (uint64_t)(&dpci_dev->queue[i]); + ret = dpci_set_rx_queue(&dpci_dev->dpci, + CMD_PRI_LOW, + dpci_dev->token, i, + &rx_queue_cfg); + if (ret) { + PMD_DRV_LOG(ERR, PMD, + "set_rx_q failed with err code: %d", ret); + return ret; + } + } + return 0; +} static int dpaa2_eventdev_create(const char *name) { - RTE_SET_USED(name); + struct rte_eventdev *eventdev; + struct dpaa2_eventdev *priv; + struct dpaa2_dpcon_dev *dpcon_dev = NULL; + struct dpaa2_dpci_dev *dpci_dev = NULL; + int ret; + + eventdev = rte_event_pmd_vdev_init(name, + sizeof(struct dpaa2_eventdev), + rte_socket_id()); + if (eventdev == NULL) { + PMD_DRV_ERR("Failed to create eventdev vdev %s", name); + goto fail; + } + + eventdev->dev_ops = &dpaa2_eventdev_ops; + eventdev->schedule = NULL; + eventdev->enqueue = dpaa2_eventdev_enqueue; + eventdev->enqueue_burst = dpaa2_eventdev_enqueue_burst; + eventdev->dequeue = dpaa2_eventdev_dequeue; + eventdev->dequeue_burst = dpaa2_eventdev_dequeue_burst; + + /* For secondary processes, the primary has done all the work */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + + priv = eventdev->data->dev_private; + priv->max_event_queues = 0; + + do { + dpcon_dev = rte_dpaa2_alloc_dpcon_dev(); + if (!dpcon_dev) + break; + priv->evq_info[priv->max_event_queues].dpcon = dpcon_dev; + + dpci_dev = rte_dpaa2_alloc_dpci_dev(); + if (!dpci_dev) { + rte_dpaa2_free_dpcon_dev(dpcon_dev); + break; + } + priv->evq_info[priv->max_event_queues].dpci = dpci_dev; + + ret = dpaa2_eventdev_setup_dpci(dpci_dev, dpcon_dev); + if (ret) { + PMD_DRV_LOG(ERR, PMD, + "dpci setup failed with err code: %d", ret); + return ret; + } + priv->max_event_queues++; + } while (dpcon_dev && dpci_dev); return 0; +fail: + return -EFAULT; } static int @@ -61,9 +212,7 @@ name = rte_vdev_device_name(vdev); PMD_DRV_LOG(INFO, "Closing %s", name); - RTE_SET_USED(name); - - return 0; + return rte_event_pmd_vdev_uninit(name); } static struct rte_vdev_driver vdev_eventdev_dpaa2_pmd = { diff --git a/drivers/event/dpaa2/dpaa2_eventdev.h b/drivers/event/dpaa2/dpaa2_eventdev.h index b151502..01de73c 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.h +++ b/drivers/event/dpaa2/dpaa2_eventdev.h @@ -52,6 +52,16 @@ #define PMD_DRV_ERR(fmt, args...) \ RTE_LOG(ERR, PMD, "%s(): " fmt "\n", __func__, ## args) +#define DPAA2_EVENT_DEFAULT_DPCI_PRIO 0 + +#define DPAA2_EVENT_MAX_QUEUES 16 + +enum { + DPAA2_EVENT_DPCI_PARALLEL_QUEUE, + DPAA2_EVENT_DPCI_ATOMIC_QUEUE, + DPAA2_EVENT_DPCI_MAX_QUEUES +}; + struct dpaa2_dpcon_dev { TAILQ_ENTRY(dpaa2_dpcon_dev) next; struct fsl_mc_io dpcon; @@ -63,6 +73,18 @@ struct dpaa2_dpcon_dev { uint8_t channel_index; }; +struct evq_info_t { + /* DPcon device */ + struct dpaa2_dpcon_dev *dpcon; + /* Attached DPCI device */ + struct dpaa2_dpci_dev *dpci; +}; + +struct dpaa2_eventdev { + struct evq_info_t evq_info[DPAA2_EVENT_MAX_QUEUES]; + uint8_t max_event_queues; +}; + struct dpaa2_dpcon_dev *rte_dpaa2_alloc_dpcon_dev(void); void rte_dpaa2_free_dpcon_dev(struct dpaa2_dpcon_dev *dpcon); -- 1.9.1