From patchwork Sat Oct 7 06:31:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 29856 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 528E51B1A5; Sat, 7 Oct 2017 08:31:50 +0200 (CEST) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0055.outbound.protection.outlook.com [104.47.41.55]) by dpdk.org (Postfix) with ESMTP id 91EF11AEE9 for ; Sat, 7 Oct 2017 08:31:43 +0200 (CEST) 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=vySF13gO2Xaex9GBTfUVSOnpu6XTAurLfIM1oKaagQA=; b=YLWnePj2BaAqKxfq9LtMTaqEU/0IG4Nnn1har+SA0rVzMOfmaasD66rF02ztqiO9MBxbnH1S5ILEQDuKi/UKYUSTBa1GbLyY4A2k5UFc5OyJAVJANow6mktzUNW8oBnbCnMOkzZQZF2T/ZcEUxowvM0WNSzigMqsGRCpQZ4EtDY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by MWHPR0701MB3833.namprd07.prod.outlook.com (2603:10b6:301:7f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sat, 7 Oct 2017 06:31:42 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com Date: Fri, 6 Oct 2017 23:31:02 -0700 Message-Id: <1507357872-26475-8-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1507357872-26475-1-git-send-email-rasesh.mody@cavium.com> References: <1507357872-26475-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: SN4PR0501CA0012.namprd05.prod.outlook.com (2603:10b6:803:40::25) To MWHPR0701MB3833.namprd07.prod.outlook.com (2603:10b6:301:7f::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: af6d8eea-db62-4b24-601d-08d50d4d1335 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:MWHPR0701MB3833; X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 3:qIMW1MNVmTl22kz/v2VrmvvkwkC09eQ9XlAovlzMxHfUV3AesODuW/lQPXy5pIUPdvpFe1CX87gX7X2t+kS5sCbfYt86YB+nMjuWeGDdsO0xgjOTafazeb0I+MpR3qpFxJ26ioa2cBUGWVkG0KHHXU6vuRckTjhFRBeBxx00xEtwOnMps9geoEG+5NgGXO5ZVrGdn+UjVvXA0HpJE3RObVRl0r37AoYTOCvhlo6CCsCEmDN7IF/zTOx88mtGcqrh; 25:TUvEiSQmKF2H1KvzF3wu2Ht46mK7vD5s45rMpAPyxIO1dwKBGfT/cayWPZexeeoRarGJ0V/iiWDkOYUJAKv4h2MtN0jACuEtR8I57P4jL4mAVettD3vUVSSycnq41g+bkb/r/d0BnMma4YJsloOCgoEN3dJto38/dasG+0UpP1e6fnCWLRG+89mZaBSFIVpuicIK9tR29VKLEQjCJoDVq5Ms6lPOBow/IexMhLY+39r18M+syVlfbfjke3aYeGv6m9H5ZaJbovuHfJPVI8l1vYQQIwiSu5upa2vYC/P6bGF3v2tmeKhVqRzjsfCtXwnycD/0xeXvFZZzqlXSVIUMcw==; 31:Iirjo46lkrzAzu+2wK1xqtjXvZ/kSO4z4VLqZHWxGnFqnoFUyHrZ/agsXdlvE9GE/0YoQTSctzSh4YPWJhYIl9vB6mH+3ajnsCg67Gk/0MwVhQPCt7+VO3AW+f22Yemu94jTFdheFXzdwwhEA0eh9NfnaBKmmSvhm54bSqQA6ljibgW2+QXaueR1UJU7OsylQrin4U8ulJ2sW51O3GjeihRgUV6C0QSZ8rwVh2aaW9s= X-MS-TrafficTypeDiagnostic: MWHPR0701MB3833: X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 20:KMc5Btb39SFvpkOOGOk2XCskYpJbp/6GP4BboE3dFAHjfNoQTCoa/rqmXJ5D3H7ZnStetyfElvpYgSUFv7mqfFuLHNuVbuUG49Fcf0AiTiY/raVuT/8pI0JglXc9YfvRBId5WNtJ6x/XQ9Car6WDMTich9nEgnlKS4HxisSYmyy1OQcKB3SfJKi4o5qXgnK61nki+FOSy0/vbgTf38SpXuA/Z1n8g7d9mTYHATgXFIKsBeB9opQ8I/+QHRDb/SCLyNs6NreCmBc3Z2a4bLw1uw/KFc/NZYA5Oq5FuVZId53ESmz707A9/wOYrTIvU4j90JbIjPON3vbkqTQqSyXMC0lWG+GJLdwFAnzqD2PNgbS2N8FCSnG1Sj6CNr16Oh8JhfGYONncR3vBcvsBKWZC+dACqS/nlF/6Axx+xm7aKRwBSG3v1gI8Ju5HZSvgfYkQQFdOHnJfrRKb/poYOjpFqNOY1nH+jysk9MNYfttg1D+oY4JFzpRsWS3Km7eMxgZz; 4:YlCpHZ6Li8Lq+Ta7+kQSIyrqPUpzFPmdlsC+qJ+JpcREfCgPDM2+t1jl0A9FLvOaHumuvWQki+rrUWLZm5LeXUaqmwUHvFUMhSCRKTsCloS9t5TaQTTcBYC0GZHUWjK+ILFoDxguTxAQff8WoR80HJJwMMqIBAULlVFQPI5ZvqQOKjZFy5S1auxNb0Hk9rWb/HAwP/YL/f2UqGcfNoFfEcmLIM2Ja5ng2GgkmXc6arJYl9sNI9JLITwA1NBwcN/u X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR0701MB3833; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR0701MB3833; X-Forefront-PRVS: 045315E1EE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(2906002)(6116002)(8936002)(3846002)(48376002)(68736007)(478600001)(101416001)(105586002)(50226002)(106356001)(72206003)(5660300001)(50466002)(33646002)(25786009)(4720700003)(21086003)(2950100002)(6666003)(69596002)(36756003)(76176999)(50986999)(81156014)(53936002)(107886003)(4326008)(55016002)(47776003)(66066001)(5003940100001)(81166006)(189998001)(8676002)(305945005)(97736004)(16586007)(316002)(7736002)(16526018)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR0701MB3833; H:cavium.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; MWHPR0701MB3833; 23:fY6EJ1MARVy/wcVVR+z/9GBkEDoV2/nLs9VOkQE?= Z5Dy2FjIE4JGxcB4795+S/HClbrBqIUxdDhmfx0aEMfr/qih4CwOH0Omyc3JJV5pw6u4GdA02Yh3taz8JMlCCpsGTxzrSQsI/Gd45p9gB1ZSKiA/iM3vQFz5Er497uwzXmGH3ihhb1T/cLrtNAX6KGR3uoFq1rVh6bg1O/3xqzC7oggc/IZ6kzSZFKUxchfx84aMuLj5DcgePxcyXsnq+MTWGd/XPqkSyOmGHapbLHnDeGDyP9Lpb8EXe2978n40DP9rg9RFnLUsVbsPO4c+84HrP5TOFxFH1o+V0XNVbKMN6vr+DvpktV3Jp5sPXPyTzB8fUEezTr1yBxEvEkVt83mtt+fKEi3JykCIurBPca7p3JzMfkftMS/0Cdl/ZFSaWM+z9oAyOhIg15kJW4TnVjFd7E9DQQ4EbNAIDSPfRFWOuYMS9rlQZWX/Kdw/vvxjpcFQdfUi/DxN9ldkriNpd79bPBInpL21UgZQWu3iP4MRaaJvkJfHg/phHpGg3s9gSdTsakDQbNsBimnIiypmOdnyl2qaqKAoGft2zT+MSHhUlik8ISoyGX4LT6TiFlrSLdEH4ZBVHxrCRrLVp2rSc5KQJAxVGSyvXlX/9jg4XX2N+PHZeE1cBVsIhbPhXikytdJyuTKwgWii/nwGJ1GpRyIrF8SIqjaqDB10yjMQhnLzUMMueVESE/EIzywB/keXp0xpvPaYPrpEjQnZjL6dbxip8OfEUjbNYzszG5F9PJMz8Guj4m9cROZu+FfKaxdZVxJTLDKO7UqbbxUKm5GmOerkEjc6f/tLyGSRv9HTD98KNEDp/VAk0fLXau7RmyOkdcK/hajxqkUOTsmJpgONVCXqIqKG5P7kE8wuhnGeXx9pqHePgG+DZln7s49t8L7ReJ/i8tE97lW0xkqVlB2hUUn6e6Ml8QfEmjK5IXy8iuAUZvozwJQay0Ki5ZnOkwzohqZeyMOyDLW1tpYpIG40PAxDI1eSgKjx5BauQQXptHI1wVsKC7JXRB0KjJZp1XVA7UW/2yDDXxojNvso7YN3VmPbndARzOGEFXU5M2dpxOaT6XznxNET26GdLMdajGeC1uOU= X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 6:9GfXqUDHncNs4cxoS00Z1Nm3wYSMZK2cl00g6nPtIl4KcClFWcnB+yzdXuZzaqK64k1EJ7/fmtUldm80jTfd/RUpE1rG54ZH5S386k6U4M/Zdp6JSNMsRdCaqe2dw19OyxNJykqsPOUcMSkamchjcyrkf8Vuf1hnEffqmG6PdvzYzcOQ4fOxng/3waREKZ5pyqINvtb4EhxuRrOTrceqEKWVXBvXtL2kLb0hNmP6wiPF8XHJ5VrFHfgBRwMwMq797Vv0kVhuIWnV+xRPRgPy/YRASKThBo+h7+uz88nCKRel8z02AkfpKfyqU9TWaBfQ+mtfMDekIPCSYycykSgLZg==; 5:KNoMn1dYUubr375mTibAvMrucyM4mFtFef+Cms33zkT+r9TdVLtPlgXZ0UQLyaxdzPkzqsc3L4dD46OxyHm8w8uYDCFb46kvAl+KY2HL8GQ6GUQ5eFvlu8zL7ChHDD+qEqgB/OHdoMtl9HK9GNATdA==; 24:QLJrvDI0Zfq3DZsSnxEKQvSZ6IQ2QYTxXmoVERyXPv+dPpSI7jtfnJJIrFqQsJ0Zm5APhKHVom7NwN0bjM+wttSj5t0o2R5/fZU1f3f4TxU=; 7:K1DoRpbRP9Ub4Y15jdE5MuIymutU9wUVERUwSPZWvRzBgqfl+Q865yhREx3UVRDc1bgMuGyrlRJ8+d0Rk7F+pVg1K3bnRdYlBrzdKxUlaLqfqDn2nIdelo8Agx7LEsnTI7LqI1dageyf3Qkaz4tKh1kcgHzZ4x2sb5A6R94uDjujah9ePw8ihqVfqwwak6RWOYaGERgHGpQQCnrYD20bN9WMGHHqRgS9s92gAwVsg/A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2017 06:31:42.3388 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0701MB3833 Subject: [dpdk-dev] [PATCH 07/17] net/qede/base: add various OS abtraction macros 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" - Introduce OSAL_IOV_VF_VPORT_STOP to allow VF to carry out required operations and prevent a potential assert before closing vport - Add OSAL_DIV_S64() for 64-bit division on 32-bit platforms. - Add OSAL for transceiver update OSAL_TRANSCEIVER_UPDATE() - Add OSAL for MFW command preemption OSAL_MFW_CMD_PREEMPT() within the spinning loops while sending a mailbox command to the MFW - Implement OSAL_SPIN_LOCK_IRQSAVE macro - Rename OSAL_NUM_ACTIVE_CPU() to OSAL_NUM_CPUS() Signed-off-by: Rasesh Mody --- drivers/net/qede/base/bcm_osal.h | 16 ++++++++++++++-- drivers/net/qede/base/ecore_dev.c | 2 +- drivers/net/qede/base/ecore_mcp.c | 4 ++++ drivers/net/qede/base/ecore_sriov.c | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h index 47290f4..74e5188 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -46,6 +46,8 @@ #define OSAL_WARN(arg1, arg2, arg3, ...) (0) +#define UNUSED(x) (void)(x) + /* Memory Types */ typedef uint8_t u8; typedef uint16_t u16; @@ -165,7 +167,12 @@ void *osal_dma_alloc_coherent_aligned(struct ecore_dev *, dma_addr_t *, #define OSAL_SPIN_LOCK_INIT(lock) rte_spinlock_init(lock) #define OSAL_SPIN_LOCK(lock) rte_spinlock_lock(lock) #define OSAL_SPIN_UNLOCK(lock) rte_spinlock_unlock(lock) -#define OSAL_SPIN_LOCK_IRQSAVE(lock, flags) nothing +#define OSAL_SPIN_LOCK_IRQSAVE(lock, flags) \ + do { \ + UNUSED(lock); \ + flags = 0; \ + UNUSED(flags); \ + } while (0) #define OSAL_SPIN_UNLOCK_IRQSAVE(lock, flags) nothing #define OSAL_SPIN_LOCK_ALLOC(hwfn, lock) nothing #define OSAL_SPIN_LOCK_DEALLOC(lock) nothing @@ -332,6 +339,7 @@ void *osal_dma_alloc_coherent_aligned(struct ecore_dev *, dma_addr_t *, #define OSAL_BITMAP_WEIGHT(bitmap, count) 0 #define OSAL_LINK_UPDATE(hwfn, ptt) qed_link_update(hwfn, ptt) +#define OSAL_TRANSCEIVER_UPDATE(hwfn) nothing #define OSAL_DCBX_AEN(hwfn, mib_type) nothing /* SR-IOV channel */ @@ -350,6 +358,7 @@ void *osal_dma_alloc_coherent_aligned(struct ecore_dev *, dma_addr_t *, #define OSAL_IOV_GET_OS_TYPE() 0 #define OSAL_IOV_VF_MSG_TYPE(hwfn, vfid, vf_msg_type) nothing #define OSAL_IOV_PF_RESP_TYPE(hwfn, vfid, pf_resp_type) nothing +#define OSAL_IOV_VF_VPORT_STOP(hwfn, vf) nothing u32 qede_unzip_data(struct ecore_hwfn *p_hwfn, u32 input_len, u8 *input_buf, u32 max_size, u8 *unzip_buf); @@ -369,7 +378,7 @@ void qede_hw_err_notify(struct ecore_hwfn *p_hwfn, qede_hw_err_notify(hwfn, err_type) #define OSAL_NVM_IS_ACCESS_ENABLED(hwfn) (1) -#define OSAL_NUM_ACTIVE_CPU() 0 +#define OSAL_NUM_CPUS() 0 /* Utility functions */ @@ -440,7 +449,10 @@ void qede_get_mcp_proto_stats(struct ecore_dev *, enum ecore_mcp_protocol_type, #define OSAL_CRC8(table, pdata, nbytes, crc) 0 #define OSAL_MFW_TLV_REQ(p_hwfn) nothing #define OSAL_MFW_FILL_TLV_DATA(type, buf, data) (0) +#define OSAL_MFW_CMD_PREEMPT(p_hwfn) nothing #define OSAL_PF_VALIDATE_MODIFY_TUNN_CONFIG(p_hwfn, mask, b_update, tunn) 0 + +#define OSAL_DIV_S64(a, b) ((a) / (b)) #define OSAL_LLDP_RX_TLVS(p_hwfn, tlv_buf, tlv_size) nothing #endif /* __BCM_OSAL_H */ diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c index d3abe08..c81048a 100644 --- a/drivers/net/qede/base/ecore_dev.c +++ b/drivers/net/qede/base/ecore_dev.c @@ -1989,7 +1989,7 @@ enum ECORE_ROCE_EDPM_MODE { /* Either EDPM is mandatory, or we are attempting to allocate a * WID per CPU. */ - n_cpus = OSAL_NUM_ACTIVE_CPU(); + n_cpus = OSAL_NUM_CPUS(); rc = ecore_hw_init_dpi_size(p_hwfn, p_ptt, pwm_regsize, n_cpus); } diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c index f370fb6..f09462b 100644 --- a/drivers/net/qede/base/ecore_mcp.c +++ b/drivers/net/qede/base/ecore_mcp.c @@ -477,6 +477,7 @@ static void ecore_mcp_cmd_set_blocking(struct ecore_hwfn *p_hwfn, OSAL_SPIN_UNLOCK(&p_hwfn->mcp_info->cmd_lock); OSAL_UDELAY(delay); + OSAL_MFW_CMD_PREEMPT(p_hwfn); } while (++cnt < max_retries); if (cnt >= max_retries) { @@ -518,6 +519,7 @@ static void ecore_mcp_cmd_set_blocking(struct ecore_hwfn *p_hwfn, goto err; OSAL_SPIN_UNLOCK(&p_hwfn->mcp_info->cmd_lock); + OSAL_MFW_CMD_PREEMPT(p_hwfn); } while (++cnt < max_retries); if (cnt >= max_retries) { @@ -1195,6 +1197,8 @@ static void ecore_mcp_handle_transceiver_change(struct ecore_hwfn *p_hwfn, DP_NOTICE(p_hwfn, false, "Transceiver is present.\n"); else DP_NOTICE(p_hwfn, false, "Transceiver is unplugged.\n"); + + OSAL_TRANSCEIVER_UPDATE(p_hwfn); } static void ecore_mcp_read_eee_config(struct ecore_hwfn *p_hwfn, diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index 53d3d24..8eafb83 100644 --- a/drivers/net/qede/base/ecore_sriov.c +++ b/drivers/net/qede/base/ecore_sriov.c @@ -2173,6 +2173,7 @@ static void ecore_iov_vf_mbx_stop_vport(struct ecore_hwfn *p_hwfn, u8 status = PFVF_STATUS_SUCCESS; enum _ecore_status_t rc; + OSAL_IOV_VF_VPORT_STOP(p_hwfn, vf); vf->vport_instance--; vf->spoof_chk = false;