From patchwork Tue Dec 27 09:49:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 18581 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 16A2EF95B; Tue, 27 Dec 2016 10:52:15 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0072.outbound.protection.outlook.com [104.47.33.72]) by dpdk.org (Postfix) with ESMTP id 9C2F45598 for ; Tue, 27 Dec 2016 10:52:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=sEN9cC0QpQamZU1HAvl2g7ZX56XwH/o5WP1E8fgr01M=; b=MtWz5OkyPu/LPRKe14EGVTg1PCnHftx9Oi6N2e7vJ95GmEycB4s8aG14qRnZBK2Ruo2yazFKIzMdV5N/0oiSZutr1saiDyHfKNGMTDy4ztec0ZwqFCOHzP0fOxvGZWnTvK83/HCY0Kci0XEX6VF525WNdL1qAsv/CLIQtSDXKg0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (202.83.56.97) by BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 09:52:06 +0000 From: Jerin Jacob To: CC: , , , , , , Jan Medala , Jakub Palider , Jerin Jacob Date: Tue, 27 Dec 2016 15:19:26 +0530 Message-ID: <1482832175-27199-21-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [202.83.56.97] X-ClientProxiedBy: PN1PR01CA0001.INDPRD01.PROD.OUTLOOK.COM (10.164.137.8) To BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) X-MS-Office365-Filtering-Correlation-Id: 2fd8ba7b-6949-4676-9964-08d42e3e0653 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 3:QsMeoSJfU+rC5AOn/+vbmLIzHw1QYrxV/rHk66uHv2oEvk7NKong9fsgGE8Ude511co5LXBH/LdzrF2uF19M3KD9qvutmw2k2lx/sX0F4eRhpiOTVRW8RByPHK9zaikUFrZvS5ThvZLxSLM3nV88OT91enV3khrgj8AASPmFMC85NmvMHJBfYasr5H8KL6TXpad7WrEJmgo/zY/CNiAdRTsfTsBt78prgKSpUhN1USsgfoDeqwezMtv89Y53jXaZce6LB8bMhIy5cIii+uhN8Q==; 25:wEOxo8uj6jg2Hn/MpPg9QcHXAV9Cg0Q3khmo17ecw2KOHaJOvFGBEr6RWtcLu+FUnhjfkSK/nRMhrbuKUfcjr51o3Jrvn//DUM51dLgAUkCTqXxF/sEDuoFilL3QiXj7hCFCgu2sAnZVkVw0KFyltXa1WrNeMkI3DvWmDrSSNdXaN09QtqTa9SG/hRO5ttg+OjNSdBHUzOMVm3DP4W7Und+BQla+SKcU3LnhW9EHtrhKe99M17tTlYGrE0bSE/KXo07NcyapJfCsZNGIZG7neLNw8eymdn+d1U1Vt0cvhCk84jjJG8njDvVOezMmjlid2zzut5hshUFvgEZdnjVx5AINL/AJ2oGJ7jgcwHy8gQTijEAwtIZ0BmQ/XmQUBd6dJLlzZDOOOh67YGjFYT4tnKFUVRpHGB7NO1Ou7KfRlpYb4RPUEUJ0EcuLlfy9c7isswmERs/L137CoC4s8vM3hQ== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 31:pO8ao9m+W0Mr2gjfkP3pkWon6DWveLQIJvoLY40abuqWzzMsRdTVCZne/KSw6qNWVK3p9oipfFmjwuNy/ixEsB6b2esRfTZq5z6pCyzUX3RqhAy+V7Jr/1gZj081umKLxrvxfw4mHRUmVuOX09AC7yCOWCEE0cIXkZs45vbfd/4EDOiW9qPlEcDtDwZ5d4AjxEDvk9/yDfMIFXcZ4BIgKNy/ndmrU0K90UAKkbcdGnpsGB81XOgIcROu4P+8czDy; 20:Cau6E7pM4OgcR/6eJwFxCSEFBtzt1/HqGJRU3q+HttOOtSh6aOf1+kDJPgimxHxM+CYjSvFoikMOIAOpnHsiQGoQW6MEhSW3tOR24pFoD3Rx3wDm0rmrZZqpmxftML/ygaPq1ONbMKtl18iw0IDa6jJ9YH07ThyNkqBJrUerw19B3M7bqhN3jdxS+1N9QlEBPIusYgRcKNfGhBJPgYCb7J057PkJ6qmt8TjnG1KfvQYozv9A1W1zJSLWqu/DUKEI+n5qDkciNwCkWXQKSuXQEniE4Hc2xHsFIyIPeymBUKfmPCXM0QgaMF8iSKaSNj2DuXa8PWUVzRZBDHn3JOY469BK4vNq91Zcq53WCq0gQ3NHlpQJN33dn9s/LTObeznUi1dpQ+0a2IyI0LbuparYj5wjTJw59eK3MNBcgmPoTXxK6N1C4Wk94tefG8lBdX2nX++onbfWXVdjdJVhUet1qZ3faUr0lJMWNDFAO4kOhwVcyqjivkQddz3DP19mJ5jxAkgHWeV5fBpfSRGH0FT0+cAjRl3If36qIGMhYxSEj3aipMUowsk9GXVroQnhuyq2YhsLCLL2jZMxmqiWhLXKrGRJVjoZskaOxgNpgA61LiA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 4:Wx4GoFdIhymmisQLzeMw4O+htM3XeyLpw45FeMOS7IglKHVeBmmbSw1TZF1XyfBmcwUFfAhAHbTd1TYrXQR1MDN6xV9dYgCstXDcuW+GD3n7nttTbi7ezRH9oMblp13zPPbjeh9Z/2+t4zkBYaU9luVZauDXYWirGMs8xwWiM3LizYfrZxSsuHCGZtx3uKWD1HiSKwZYQO/DDaddPGMm2ARZayb8tgvPsVnYZ8MMwZHujVM1NpIgGXK64P7pLM2ia7qpHNHW6hy+3L5/Uc+HzjjDJSr+sLBYDu5sdGx+Dkfk+oai5X0thenYLiyDm3CMpIj2cAngFKbarxZcmvX9KOaHZ04cJYp+cYQ7id6OGwa2Id15xoANIFr4SRr9sFe0s+7xEU1Ownb8PTaRJNZPF2JAyIvLT0tAvv3Q/Z/p6ZJ+Ze9mnJHzgATGuhmVRfCjisHfb9ypokbQV8NPxrymrOoSgIRFnXM0cSPKyyKZUPtOZWkYTpb7WHIe8t2lFSC9MSMNoJjCtbX4igXrPF8HqO2Bxa9ET/z+8VxxcY+eKTZcpFIInmOuhipTg3bqiKRwhFNiIXZxKxnYTZlpLVfelVtXb3nyT6Bc92M3MJEOpyqbyD3RtCLXmKXvGm3gm3UVTexHKU39P902djBcswSQig== X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(51234002)(199003)(36756003)(68736007)(106356001)(97736004)(50226002)(5660300001)(6916009)(47776003)(42882006)(2950100002)(6666003)(189998001)(25786008)(105586002)(33646002)(107886002)(48376002)(38730400001)(7736002)(92566002)(6486002)(6506006)(6512006)(110136003)(50466002)(305945005)(2351001)(50986999)(76176999)(4001430100002)(3846002)(4326007)(6116002)(5003940100001)(42186005)(81156014)(81166006)(101416001)(8676002)(2906002)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 23:nU+XgcYeDx2YJUzFGlS73CjPbkm/NanSpAiq47S?= tj2oAXeRtb4B9O0sdigRxfQ2GCWIeA2bLqdHDrvLT1Tl1YeE5uVVb4/H0ETdeqomN733NAbUFEP3NLgk233t6lQwutcUjyeZdR6GRA5O+jJntKdphchiULbb+Y3m+24YId7VsfKjCHVe4bPnKsGWtshks49GPhOdV5XArFUL4GA7uKDBFhywG+C5LOZrYKKwCQv5fPCwis3gvcO72sjr4e7h7lJ8hEw3HsLwSoYhAnD6zhAhIn8RZnmMjW9dYtB7F0H5KnGf1OLrfiWtMiW8k2BgFG8L6PoGqn10l+g89lPqNvlOx1NTH5/K66G7zzQwAolBWx9NYxtTL/0YbGCqppkeB2WLsVmly1x+AoPY0TGad/ycqztVMTKnD2hpNv1RiUvcFGLcg/9xgw04Hz2mGZXoRZTlbUxjcNc6EHwEUWXc/cTdJ4/cKtC/DOXp5hGe9OkEMNKT5khOkWn5ngtBbvaU3zLTvBB3wwqZK8dNrY1KiEjPOUO4eriYMTVRHo+hRPrBUVvxVBwC4mLsebNY2zhZn+kYS0TphOZx7jxuEez6bd+b4LgEctE6hgMSkea/Zw8wZ33B7z6Sa2WRI1WyqhGHtHAVFf3/ra9ehNRNbE1u4pO8egZl0SYLfRY+MrOMUltrxDV6HvajJXjyAWHGeJKsylEgrkIRDbO6LzA4SI2D5GJYtC0c1YBHG8q7L5CXUg3K994bAdS7c7H6hBdXikuwd8nePEfvHoZP3m3yeTi8gOqI2LWx5BHgtUqpgHgpKBT79NdNianmpYazPUPbkw1qrOXFHOCSVt47NbdHWhcezuaZaGo9DujKDgL3m3DCwqQ+JTt0WChHGuZkN8WAKs5OdF5WNylu9v2FmtqfxoMoUzhdmfLRNfQTEuMFCIfNiZspXHUAxC4h+ooxb5/bu+dsr/+NlnYMIWGY0dtaprdvlV4u0D8EklboYVHAskt8c2IhiXV8FfTJqsawzJUrXz/Fs7j8TSXYGt44wvZj9rujcjz4ba7Gvp4UU7Qdymzr5ojlz+bK97F+NAbXWwR4sAfb0WzpnfCIdfFBYShjpGIe0dD12zHP7dnaye84Tsjl4xiaobNC/8yJErWCoG017e5VBOq1V6Qtw4rIuA++0EheTlDNQCRGxQSsgX8IUBkAyivA= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 6:dDQWCXHE574GAJdS/eKjvt+ZZWpeHADrFFjEH1pHwfVL2kLRHtZknah3FGfIubqxOCNSz+FlIn/Zcneuc6SPbcftgCpx6B+JRuRLrWZEJHGcN+BWPzt0inBaok8Jl8jwqvJe3RK1yOi1lI7ubG7nqxnO2dnDoUxMCt2ZSRTOLfJeAmtXF1+xNspVCXzacH0UVBLnG2cHFPGEbVFZk8JiBig6udC7PZa5QbAYLGWdKf/j9fLF2R1GzbozL+zTASF8dRQY0Qc8m1G8/noW07FOU5l3K+dvQE63xa4i4WiAQ1E7PCAkUnEjO7Hlrm+I4Aw6JWisE3fRqXaXwUGiVuaaGA0p29MlK1XqF2PYp98+CfSCiGE2PRBX26lP2+rl1+WiAVxVrSGe0o+4i5pl0cqKi39bhJWu3wR8FIrKzPNiaHo=; 5:4/XKqxiCv7diZqRO2e+SFCIIN6jXIqG6ymOJWxqLdHJc2SFFHRZTh62O1BNqYSAgRJXxAt4X6vwLFYoT3D+fWENRI0+OL5hoCnvlQzxLA9Q3MH42gLRvaAgm17R827pw1sUcHqduV9ssMoSfDhH2wg==; 24:y67jVQkbAmsk9yvceoin1kcF31hVZsLcJC7HH730LgXAXmpgmuXniBV8RZZzNwNYqjoerGjsw8bbzq2VlbVm1nIlBfTRqHMYtnJyymFPInc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 7:fZfSuCSzB7jj0qeCKvkkmRf4TyEc+tWYKt4RM2jqjl6XGgzhrZmVEuiDgJZAAhIxoIi6Ft2b4p7QhtRIdbUyQMptz/uZlTjz10GSHVILQVlMyQVmE5UH8B+G9LN1nARqV+IvRr64tBAkuxuuYp/z7kt4RM7V59BnF2yqNQR+Tqwca6qjA9kNxj95yrmxgMNuhQLrH+FDTwXhWggNDkfibP+5pIbldelih/O+3pAdEvWFm/BpTKtdgT8VFqeMuvSl5gCIqrDa+if/zbSbw/Oswx/bP5awH5aJnVxIFuZhRpzMNGY9kJXGK5c6l3eM3OgUx12mtt8b9MnlVnSEH0vqv+PQIyy4jERZzG6FulqPEykWXg/rwHsVdL5Wx0b0fI8KZglVJCbHS6AOupV5NLvwoKaOwzTUVbN/5NA3l8d5jGryyfGkvnhYwEvnyI6yXtzsAAFmvpuIcZ2PcDnDH+S3aw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:52:06.2534 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713 Subject: [dpdk-dev] [PATCH v2 20/29] net/ena: use eal I/O device memory read/write API 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Santosh Shukla Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures. CC: Jan Medala CC: Jakub Palider Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Acked-by: Jan Medala --- drivers/net/ena/base/ena_eth_com.h | 2 +- drivers/net/ena/base/ena_plat_dpdk.h | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/base/ena_eth_com.h b/drivers/net/ena/base/ena_eth_com.h index 71a880c..ee62685 100644 --- a/drivers/net/ena/base/ena_eth_com.h +++ b/drivers/net/ena/base/ena_eth_com.h @@ -118,7 +118,7 @@ static inline int ena_com_write_sq_doorbell(struct ena_com_io_sq *io_sq) ena_trc_dbg("write submission queue doorbell for queue: %d tail: %d\n", io_sq->qid, tail); - ENA_REG_WRITE32(tail, io_sq->db_addr); + ENA_REG_WRITE32_RELAXED(tail, io_sq->db_addr); return 0; } diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index 87c3bf1..09d540a 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -48,6 +48,7 @@ #include #include #include +#include #include @@ -226,15 +227,21 @@ typedef uint64_t dma_addr_t; static inline void writel(u32 value, volatile void *addr) { - *(volatile u32 *)addr = value; + rte_write32(value, addr); +} + +static inline void writel_relaxed(u32 value, volatile void *addr) +{ + rte_write32_relaxed(value, addr); } static inline u32 readl(const volatile void *addr) { - return *(const volatile u32 *)addr; + return rte_read32(addr); } #define ENA_REG_WRITE32(value, reg) writel((value), (reg)) +#define ENA_REG_WRITE32_RELAXED(value, reg) writel_relaxed((value), (reg)) #define ENA_REG_READ32(reg) readl((reg)) #define ATOMIC32_INC(i32_ptr) rte_atomic32_inc(i32_ptr)