From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0060.outbound.protection.outlook.com [104.47.32.60]) by dpdk.org (Postfix) with ESMTP id 877DFF952 for ; Tue, 21 Feb 2017 10:28:39 +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=rP7sVNrC7z9QIKHcrS4q3/2AnekqADBwuFbRIvelC5c=; b=IM2rroa8vwT9jtY0FXsLualZVpZB6c4ehLp41gyt2Ds328xsnwSlldXmeu7vl9PtX8sYiB6gmJk+4l8oJql8izeMo9E5nhNzb5jfY+U2IhDZRp8csuwkRZAL/NdNVUZWHqsI72NFgxZiZF45cgg5rbIMYutp0DUHDCNUC3sRnHs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Shijith.Thotton@cavium.com; Received: from lio357.in.caveonetworks.com (14.140.2.178) by SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Tue, 21 Feb 2017 09:28:36 +0000 From: Shijith Thotton To: dev@dpdk.org Cc: Jerin Jacob , Derek Chickles , Venkat Koppula , Mallesham Jatharakonda Date: Tue, 21 Feb 2017 14:56:26 +0530 Message-Id: <1487669225-30091-12-git-send-email-shijith.thotton@caviumnetworks.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> References: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM (10.174.56.29) To SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) X-MS-Office365-Filtering-Correlation-Id: 703cdb7b-35bd-45a2-6759-08d45a3c0432 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 3:xmsusMu1+yr7M/Xy5X25E22RxwK7MzLbRqeGI2lpFJOPiKSPgg0jKxd3ns216BYrfov02GmY1r22S+1VXOz4z8r2JL779yHIuLx2F+t+GghQUoZvagNXJfPLe27IDrknTlGwy63BLCJd8N2MbsE6ux76z00mAIgQR//Qij+nwgqhrkNZ0V4F0hsNb3ZqlvfS/iOi2SFdZdn+swB2nnJKVr5qa2ZB17743SDcRRX6wlU2qu6V2PR518C5Zbs7z4YDVf843FuNfvMzvuGF9i9YtA==; 25:LSoJldmiTCzua6TMaeQZDtJR89trqgoTuxUqsV9HAzYg+jkXVkHq92zbbBAzQ98GlzsteS8Dpg7o7/xV9teaH3JervTxW0WOjTi2/X7UozaDb948Om0yKn3n2XCAL1d2fIqeGxKtmxnQIRd4P8rUC7gPAZIc3m1/BnBNzCW9l/ICrLx1EotthwmU91BNzytYqWN5AoRHCxupVFAUw45e6ueMmVgEx1WXdXaxpOQnse3Zx5P4FwyAUGmpNd9YF5XHK7OeyysnGEijFAGzDy6d0OiYp+d/joaosKGXqMIIjuG4z71NlyHBRyBP9X1JDivyrDFvxUXINJdAcrkjrPfUXI7mgEF2v1tzeOksi7/lSUxQV6DeuA+Pjivlia+bGUFYBPzvdQ+1kDZvrmJ+a68AnyHBXtXX+sYkcOwG8duS6uRbKyzkLFofacJtAKSZet7LPfwofQE/fbLmwqof2/kfmg== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 31:Gi6Y+AZi4v+BoblU5BZt2eSTwKeQQNEn6yjIMohnOr4tnKpO4zR2AdVoPsM4+t6gQ3Mb7kp8KYCh2VbYipwmlamvfu5ihT6loRpPPkd5D2OPKjaDbEDoNG6F3U26oPiVtkiUmVqRPr7O8mUJNe18yRWu+sSXnRBoxnt75cqtf5nlZFWTr7uH5I/PrsjWpFGcs8989ocVnOqIlpHVqrg6hprOuY5xOaMMnLTGzjIgY/t1BkNl6Vu1ZlYR5RWuz6vS; 20:e74aUSqesHPf+0Jr4kvHrIsIYdleQUq9B0/ZhmxW8Tq2ltSz9pXusATJ28qKbDEIuk7MbWzpBbxUL3wtwdIkB1QyXiG4igk3tIlP/YLlOQ76FsSTAqU99yzNBpi3P/tDRJoIfHI8arwKctZKzm1eB2VkYhosypSsDD0wl2FD98xokhjfNgGPylVzSozrcev1WPgGe2Jaj677lMQEn6bVOvkfZFn3VCtt/kzmUCWsZbtBf7yRdBs0FWjIe7QR4NrxM3qRXT5yxMSn9c78+73xEJwENua1/VK0dpDPFb0YQ7kz4vk2Ua5UB1YuYDgpVXO/4tGOo1OPotrjwV8mn1Smkolq96eCQn+YmSNkNbXm2W2NsyAJmkDrcZBXibaD94I7jJC36sYAV9c477dOUF8sT8PI8CEgJj9VdZlp7M1GaiBOFAoi4Z/6Z3eTnT/ZDB94BlRG+z3AZMPKNwqiKgCAbTL0bT/1LwVKH6ir25MMx9CJnFiTeOpDJ46V9V4MGuv5pOgfdK5fDoi/orh9BD3uLbR+iqVfU/QEssLb7YMXI7HBK9B0Y7xh+Z6xqBru/BZQpLTavFL3arOUxT7m4Ap3DRxr2jtS1LeJ+jjevne37Rc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(20161123558025)(6072148); SRVR:SN1PR07MB2285; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 4:mAarx1asdAMxuABfjJspQAAvolNIExLPzZfbJZiRazAIAR3i7g0omt+fLqtCOvM8mnjT4Ezw72Jb7z2Pgjvruqy6+gU3JLq1k66K+5p8vMpiWhLiSFCIFpaCUTDvbuDpfzr3yRZEIuNhuIEdPhCMpclmvaxHvwIQVBIj/Ut46c8JfmTwwqz+93r59wZJepAgB121Ockf2Dy0ddioRC1Z3SUFRj0+3/FvJI6DEYllv5DnoSW946ydub5NtukLndRwDJfGp40C06DKrkomQn4/Atq11M0/Q9+I64gbif83HBASXe4G/rSRhZXOb0i5OyAC2AIWs2X/qiKjwSJKNa8vtwUlw4oC6g0Gso4j9MWsTBVeTF9sJYewaHZqd3bDaH5TewdVfbVwcuE75cb6qw/MKrd5IDMTSJwDxoy5T0JGGvlU2xOFncGXNAxe9Cf1pmtIkigPHBXOAYaZm7Tf8JiP97Rm9bD0DuhexupwAAPsLPehWHqcS9pcOXJceeBOzDr0KjV5LSrL+7JzE35sPtLSKXfalhCq0MbPg2dfgIo1zNTItfI7lg+S+h9D7C7YHl+hwMYRZ9IROu9Jk3Yly8JuNT7ViFCmdYpPP+JKplstAsk= X-Forefront-PRVS: 0225B0D5BC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(50226002)(81166006)(42186005)(2361001)(101416001)(81156014)(305945005)(3846002)(6116002)(5009440100003)(8676002)(105586002)(7736002)(53936002)(36756003)(110136004)(106356001)(6506006)(25786008)(38730400002)(2351001)(92566002)(48376002)(6486002)(97736004)(50466002)(5003940100001)(189998001)(68736007)(2906002)(4326007)(33646002)(76176999)(54906002)(5660300001)(6666003)(6916009)(50986999)(2950100002)(6512007)(4720700003)(42882006)(66066001)(47776003)(7099028)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2285; H:lio357.in.caveonetworks.com; 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; SN1PR07MB2285; 23:uyEiYHugU+TqjmcLR6T5dwB+xcq4EyUo/5hUT2B5Z?= =?us-ascii?Q?u4CkFqyFx/nXiJoprTu/2kCjmG/tTGpcjHyNGrirya0vNBRUdnQSn+3nrowG?= =?us-ascii?Q?IW09PpxlK4uzNzXBHIQdIt6MPZ7m2pDJtrnaXS80gqBr15+R8qh7QMIeonCL?= =?us-ascii?Q?efg/frnnsaheFnUguWki6r5Q5C8adcIM3JyrLmioxHOR4Cd5AgZ9edBriQzL?= =?us-ascii?Q?pQ47OvYAWkTrk5qgeBtp6WaXoPemA3LRMXxXbA4qTRQSLVbf+Q6ipPu3rrzY?= =?us-ascii?Q?y3s11QSFHgdyQV9OwW4Sn64dHtVPhWEeOVsn/sg1glew+BdsxkdGzXfOt4l7?= =?us-ascii?Q?tLOz9B7MDH9wJfUL/Q1jXx9TUm72OFkjGaS/c4wZAx0fftzzk4M/zGvcB2D0?= =?us-ascii?Q?1iX51XHEnRFo8xqfmhm2D9uM8sMS8WFOxyJsZWiHUqF5QW2DViAfIT72QTNE?= =?us-ascii?Q?g15v2wtpt3vpLK2I1VH9Vv0W8uNb1Hc94pluVhjnatb4ONQu1D1FZCUiSP7g?= =?us-ascii?Q?wOy76QeZiTSgxW9lx4FL+Pmc1gMXv0rcVVhJZxQvyEDk+qE8ojyJa1IWefkD?= =?us-ascii?Q?p7pXpDhHcx2oFeTh1Le3LK+0wBFM58/b5XmaJJRKbOtXKbTwEWC+MNhz9QXk?= =?us-ascii?Q?SiTpLhv9Y9To9OwgW1DGxFlQPMUKE+f0Eb2FAg1Hmq3XLYpUGLhLkxFB++nU?= =?us-ascii?Q?8Y71Yqhl7eKkU8LQufFehJy+2yOiKLcfpnbAfSRBu2tOejw4UQ8veiuqHwsc?= =?us-ascii?Q?WnDiwbOeUHR/DTtxzZ6PziPNY9s68ugdg2PzIDkwfGQcLAai+bBZaOqUGpTu?= =?us-ascii?Q?lViS7n5nDUTnshlWPfudgwTkJfWrl2jOD6MDxdsi4olC+oSl1EkL18QaNso3?= =?us-ascii?Q?PMaBHh7vLJTGE1AldxmiYbcHSkm3w/Zz7EWoSaqsSgKAU2dD38cusVN/ZA/S?= =?us-ascii?Q?m2Q8Y67+zUPgYqeL3ZJfoGQsan1TXM1vPwlt79WnPFAOJSRIU8mUzlv5OKvZ?= =?us-ascii?Q?Z3vG5C208LiMMTVCwU9uBgYewauqFW3SujG1jkc6zv7RP++Gs2jdvzD5+SzL?= =?us-ascii?Q?0EXxdjF/s9WouXh+xdGpC6RufC8i0nks8egIccq32bc8131gfKrmNj4p3xkv?= =?us-ascii?Q?anRs8GepTGG48hfiGyMdb0h4pYcQsWGAb2+EVu8KP6HCay1YNB9HcXEhVb2x?= =?us-ascii?Q?l+g/pPQAOCl/YCPbmSmx5nejct95ZYjbbORKLD0sROoaAG/BnScliaXyaTVD?= =?us-ascii?Q?GoUOExJdctheRAhufPeB4d6fSuZ772e2/3fDPmfJkROTrAriaTn+vP8BJrNe?= =?us-ascii?Q?Y3cpBl1Shkb2Lt5UcwVL9c=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 6:Y6xdxpV2BsCyzYjelhyM8Dho8dNjmgNYHW3Y2shajE3VUpA44985BFdcg6j/vxYgOEmgKxpc+lE4uZk6Gkh0xborv7t6PkPT5bvw4Aj76Xn/FTdyWD3Ey8wMTmvwafZ6ntlfgoVVhCD+9/RAKOij3l5keAovoWKgLEAyvkdZfRFrAUiLJyJnvAZh3MFjg1qfu+BnKBXTwrLwVjzIvQPiJ/HK+1A1irjl5BFFd5FIsnCD3KeN1jfIeEi3uvqJpKgoyfwaeHLrF9dvgjR1g5Wau21AyLM70R8SkEdEcsZGj5/6DggA609arJ76DNEmuHLs2uiSOaGFA6e6uTwYWH/l8WMy0lnzlhELkA76t/IaWi05WRRQlRgLGS3vBsNtIDfDaxlfS1IbcxY02kyan/cuPQ==; 5:mRNBxFaCXxyuWsFGKqyOPH+t90VsIckEIle+xw6TGWp99fEgITbKXZqR7ptnfVBe+Zbkcbc9W+wadmU44QycQK9mDEa6j79sDPmK8ECUocmEfA/mDogRZT/8R0pOxGHwJkgyf5lBitdmZenm29vXeg==; 24:n6O9ttoQoCLr5dav118jLPNa/3TPIZcN6ynBVFjd9homVey2HIXE6k0GDHg20JF3LJXpt6NPwnHaKpe9/7JHWAXEtpZ+aauPi/fhW7FXSKQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 7:6dhJD/HTDuwAOcKr7Al3x72EJL9xEm8M31z+bmPl95vGawQ8Uh4/xFFdUxhHEi6Dr9MW1TCBYwkagQZRRS7MHuYpLAWQVTgMfBT+YjnhRj0CKnfgK+Wp1GlmuL8JUBS0NNQP616ja9+GYsdmK7VF5FyGPjSXSFEeBpdkLKJ7etDOWDsOIqUvBAsSjNhF/6qtsCcT0jPb7IQa5vjAtT4rhndUUq9sjgGJgf4Dkaes+f5OzP+HTH4wVF6Jwt79qLDBgJaY6VSVx64m6WQNwRnHa6uZGzqRKd/GcZvI0cCt9F3qKUN9Phk9Br7RLNoSH4E9UlwilXgZvOwg2UXH8Eq2OA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2017 09:28:36.1344 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2285 Subject: [dpdk-dev] [PATCH 11/50] net/liquidio: add API to setup io queue registers 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: Tue, 21 Feb 2017 09:28:40 -0000 Set default configuration values for io queue registers. Signed-off-by: Shijith Thotton Signed-off-by: Jerin Jacob Signed-off-by: Derek Chickles Signed-off-by: Venkat Koppula Signed-off-by: Mallesham Jatharakonda --- drivers/net/liquidio/base/lio_23xx_vf.c | 160 ++++++++++++++++++++++++++++++++ drivers/net/liquidio/lio_ethdev.c | 5 + drivers/net/liquidio/lio_struct.h | 7 ++ 3 files changed, 172 insertions(+) diff --git a/drivers/net/liquidio/base/lio_23xx_vf.c b/drivers/net/liquidio/base/lio_23xx_vf.c index d9b9e2a..f61f185 100644 --- a/drivers/net/liquidio/base/lio_23xx_vf.c +++ b/drivers/net/liquidio/base/lio_23xx_vf.c @@ -39,6 +39,164 @@ #include "lio_23xx_vf.h" #include "lio_23xx_reg.h" +static int +cn23xx_vf_reset_io_queues(struct lio_device *lio_dev, uint32_t num_queues) +{ + uint32_t loop = CN23XX_VF_BUSY_READING_REG_LOOP_COUNT; + uint64_t d64, q_no; + int ret_val = 0; + + PMD_INIT_FUNC_TRACE(); + + for (q_no = 0; q_no < num_queues; q_no++) { + /* set RST bit to 1. This bit applies to both IQ and OQ */ + d64 = lio_read_csr64(lio_dev, + CN23XX_SLI_IQ_PKT_CONTROL64(q_no)); + d64 = d64 | CN23XX_PKT_INPUT_CTL_RST; + lio_write_csr64(lio_dev, CN23XX_SLI_IQ_PKT_CONTROL64(q_no), + d64); + } + + /* wait until the RST bit is clear or the RST and QUIET bits are set */ + for (q_no = 0; q_no < num_queues; q_no++) { + volatile uint64_t reg_val; + + reg_val = lio_read_csr64(lio_dev, + CN23XX_SLI_IQ_PKT_CONTROL64(q_no)); + while ((reg_val & CN23XX_PKT_INPUT_CTL_RST) && + !(reg_val & CN23XX_PKT_INPUT_CTL_QUIET) && + loop) { + reg_val = lio_read_csr64( + lio_dev, + CN23XX_SLI_IQ_PKT_CONTROL64(q_no)); + loop = loop - 1; + } + + if (loop == 0) { + lio_dev_err(lio_dev, + "clearing the reset reg failed or setting the quiet reg failed for qno: %lu\n", + (unsigned long)q_no); + return -1; + } + + reg_val = reg_val & ~CN23XX_PKT_INPUT_CTL_RST; + lio_write_csr64(lio_dev, CN23XX_SLI_IQ_PKT_CONTROL64(q_no), + reg_val); + + reg_val = lio_read_csr64( + lio_dev, CN23XX_SLI_IQ_PKT_CONTROL64(q_no)); + if (reg_val & CN23XX_PKT_INPUT_CTL_RST) { + lio_dev_err(lio_dev, + "clearing the reset failed for qno: %lu\n", + (unsigned long)q_no); + ret_val = -1; + } + } + + return ret_val; +} + +static int +cn23xx_vf_setup_global_input_regs(struct lio_device *lio_dev) +{ + uint64_t q_no; + uint64_t d64; + + PMD_INIT_FUNC_TRACE(); + + if (cn23xx_vf_reset_io_queues(lio_dev, + lio_dev->sriov_info.rings_per_vf)) + return -1; + + for (q_no = 0; q_no < (lio_dev->sriov_info.rings_per_vf); q_no++) { + lio_write_csr64(lio_dev, CN23XX_SLI_IQ_DOORBELL(q_no), + 0xFFFFFFFF); + + d64 = lio_read_csr64(lio_dev, + CN23XX_SLI_IQ_INSTR_COUNT64(q_no)); + + d64 &= 0xEFFFFFFFFFFFFFFFL; + + lio_write_csr64(lio_dev, CN23XX_SLI_IQ_INSTR_COUNT64(q_no), + d64); + + /* Select ES, RO, NS, RDSIZE,DPTR Fomat#0 for + * the Input Queues + */ + lio_write_csr64(lio_dev, CN23XX_SLI_IQ_PKT_CONTROL64(q_no), + CN23XX_PKT_INPUT_CTL_MASK); + } + + return 0; +} + +static void +cn23xx_vf_setup_global_output_regs(struct lio_device *lio_dev) +{ + uint32_t reg_val; + uint32_t q_no; + + PMD_INIT_FUNC_TRACE(); + + for (q_no = 0; q_no < lio_dev->sriov_info.rings_per_vf; q_no++) { + lio_write_csr(lio_dev, CN23XX_SLI_OQ_PKTS_CREDIT(q_no), + 0xFFFFFFFF); + + reg_val = + lio_read_csr(lio_dev, CN23XX_SLI_OQ_PKTS_SENT(q_no)); + + reg_val &= 0xEFFFFFFFFFFFFFFFL; + + reg_val = + lio_read_csr(lio_dev, CN23XX_SLI_OQ_PKT_CONTROL(q_no)); + + /* set IPTR & DPTR */ + reg_val |= + (CN23XX_PKT_OUTPUT_CTL_IPTR | CN23XX_PKT_OUTPUT_CTL_DPTR); + + /* reset BMODE */ + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_BMODE); + + /* No Relaxed Ordering, No Snoop, 64-bit Byte swap + * for Output Queue Scatter List + * reset ROR_P, NSR_P + */ + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_ROR_P); + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_NSR_P); + +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_ES_P); +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN + reg_val |= (CN23XX_PKT_OUTPUT_CTL_ES_P); +#endif + /* No Relaxed Ordering, No Snoop, 64-bit Byte swap + * for Output Queue Data + * reset ROR, NSR + */ + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_ROR); + reg_val &= ~(CN23XX_PKT_OUTPUT_CTL_NSR); + /* set the ES bit */ + reg_val |= (CN23XX_PKT_OUTPUT_CTL_ES); + + /* write all the selected settings */ + lio_write_csr(lio_dev, CN23XX_SLI_OQ_PKT_CONTROL(q_no), + reg_val); + } +} + +static int +cn23xx_vf_setup_device_regs(struct lio_device *lio_dev) +{ + PMD_INIT_FUNC_TRACE(); + + if (cn23xx_vf_setup_global_input_regs(lio_dev)) + return -1; + + cn23xx_vf_setup_global_output_regs(lio_dev); + + return 0; +} + int cn23xx_vf_setup_device(struct lio_device *lio_dev) { @@ -63,6 +221,8 @@ if (lio_dev->default_config == NULL) return -1; + lio_dev->fn_list.setup_device_regs = cn23xx_vf_setup_device_regs; + return 0; } diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index bd6196b..daf7fce 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -91,6 +91,11 @@ return -1; } + if (lio_dev->fn_list.setup_device_regs(lio_dev)) { + lio_dev_err(lio_dev, "Failed to configure device registers\n"); + return -1; + } + dpdk_queues = (int)lio_dev->sriov_info.rings_per_vf; lio_dev->max_tx_queues = dpdk_queues; diff --git a/drivers/net/liquidio/lio_struct.h b/drivers/net/liquidio/lio_struct.h index a1203e4..577ea49 100644 --- a/drivers/net/liquidio/lio_struct.h +++ b/drivers/net/liquidio/lio_struct.h @@ -43,6 +43,11 @@ #include "lio_hw_defs.h" +struct lio_device; +struct lio_fn_list { + int (*setup_device_regs)(struct lio_device *); +}; + struct lio_sriov_info { /** Number of rings assigned to VF */ uint32_t rings_per_vf; @@ -117,6 +122,8 @@ struct lio_device { uint8_t *hw_addr; + struct lio_fn_list fn_list; + struct lio_sriov_info sriov_info; char dev_string[LIO_DEVICE_NAME_LEN]; /* Device print string */ -- 1.8.3.1