From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680055.outbound.protection.outlook.com [40.107.68.55]) by dpdk.org (Postfix) with ESMTP id F23414C93; Sat, 8 Sep 2018 22:31:51 +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:X-MS-Exchange-SenderADCheck; bh=GKkZVkPr86NGMBaN6N75wkbPysQ0ZASeNjuQUeDSfCw=; b=e7KNFHpSkDA49fNFVx9mm3zmqNn9bC61HuC4RvBt4JwwA1nVexVtAyPfUzstMeUYq47ix4+X8SWV1D/yXlnBWKmJpw2wc4TlelTvpnF4pLMZjOmyhSk8+ZzU5BrQ5ON7ZmZGZxOKJ7zebAxeuZSyy3YexXH/llnqw3hcCiLlUAU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.1.5) by DM6PR07MB5372.namprd07.prod.outlook.com (2603:10b6:5:44::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.18; Sat, 8 Sep 2018 20:31:50 +0000 From: Rasesh Mody To: dev@dpdk.org Cc: Rasesh Mody , ferruh.yigit@intel.com, Dept-EngDPDKDev@cavium.com, stable@dpdk.org Date: Sat, 8 Sep 2018 13:30:56 -0700 Message-Id: <1536438666-22184-8-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1536438666-22184-1-git-send-email-rasesh.mody@cavium.com> References: <1536438666-22184-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [198.186.1.5] X-ClientProxiedBy: BYAPR02CA0031.namprd02.prod.outlook.com (2603:10b6:a02:ee::44) To DM6PR07MB5372.namprd07.prod.outlook.com (2603:10b6:5:44::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e798834c-0ebb-4beb-0cf3-08d615ca1b5f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:DM6PR07MB5372; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 3:aXMV3XDd5l72rvCuHPNayXUTrZZ4IZA1RaikUIj6rVhuzALiRh1zh53ocHq88fjMuAtcBLJ/ySIS2hANO8/V+Y8szqxB00i+TQp2ARASm9edJVQUP09ybxQ4qSO/knQdOU3AW9xxxCzIj2b2HKqwJsygfTygesB8DMsw0sUIcNs7tPL39wAAhbWLIXj+mxHlBLP6ACAN8RIOB2V3zE19gvs73K21K5ciA/zV10dv4bd09wKZtcZfKLqMCCDfU7fj; 25:7aRrXq/cdSEyuNiO8KENtf0U6582Tx1XUr8CxHuigoERI0Y/TfkzxBC/KceBeS0xxAnvRJBVSdj/mR+AznpRyMVEMZOFHNVfM/+WJcBCn43kAXxx1qUvbougryqD655xnu6o7fSb+jgF4qLTq9u/SUWjy0Q/FhiEQtxO1aYAv64fi3NufsT53aCw/0H7zXkOZIvXRXF6ezVgpbO/Sub9KaHPa5Ruf6xF1y4HuGQMP1WH/Naf18jcIsFl43x59QfOvRlYf2XKNRdY3J9WSYjQLtC7ED538K1JjqiOY2hF+5esQFGBR5FH3uOinIV4tjI1mIPXAc5xXqz8pCRsyyx7AA==; 31:C19mhMR7ZUTySObXbHNHoS8B+hZMBaatpbXf0nd4pZhZJZ4RT4N9IzhghL0NVEax+sHpQGYymeFN9JH+wu/LU9eofB8T4WAoylfz2SO5uf/8XWJFNO6bpjJxSYD3YmvP3nSFiahXzA6EWM3IoqwiePnRA65CRYqt0TQNgZHXHDdjseU3QUR1WFJ47omBKL1qE4Z6Se7PjVBtS53+QEKJzy2hvtT32W9pnK+mAZKcRqY= X-MS-TrafficTypeDiagnostic: DM6PR07MB5372: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 20:XxA7cAL+dtOO2mA58hv9nO4EHYAo5yiibeIp3mgMBz16TBhbfvBsx2UdKre5z8UEAbUquUZOIDzKnZvpEj7sD20717SQ6B0Ni9pUJ2603U++P2EW8aw8fhlcvWJNBmtTnYECdnKzxWdODpC+iJ8m6UF0Yvkd5oz/vj1lejDSdEThqn4YbWaflB7X27AItsuxB3d4xHW8HHQ8wSkTjGUoZFswDU0grx/GNduNcQnJ9J+xS5ZwATLhR0Aj/CMnZNa4m5Ua3xo8FiuoQ5vgRHxIcwY43LAljtrme05awLjCWanWGNHnBCjr/LZoyh9bFrVNKKj08t6IH/LR4cVw1km6xSqZz5y4reolnLVHxYpx4aCX5DKRZHDu6W206VR/Tc5egVuX7LW6z0GGhKaeSjfSePs2H7G8SIjl7tNwzjYE1jpRtQcg+mdtGofWdHMV7/EAe2aUAQkdDgoTG/F/UkFUj6O1JNleRB8asjjVzKl//95ZWXLFzKWh9HBgkSGBYxTP; 4:1baHHPDds4wQ2MYiZOu9Gz05Yw1XzOYYaZLWvdd9N752Vhz2AifEChaW/ODecWeDvJmXux2nRBgd9Ptn/SqEGyVWFU5IjlYNDgYxeludGMoePqPCgW5Rb+tdvb8KbLNmmtTE/u0WdQ+1Uw96rkk0cVUSW5erRA+8R545eVIrBZqJdBJak8JR2uL3zUpBj2zsiKAz+RBQFMk/LxSnW+4xWcJF49m5kGhgZgxfCxIdJ1FKWiZxWcHRtHRgP4XeSCr5oXRCrGE5+m7x3VMA1AIk4g== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DM6PR07MB5372; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB5372; X-Forefront-PRVS: 07891BF289 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(136003)(346002)(376002)(39860400002)(199004)(189003)(4720700003)(97736004)(2351001)(106356001)(105586002)(72206003)(66066001)(47776003)(4326008)(50466002)(48376002)(25786009)(305945005)(7736002)(2361001)(8676002)(478600001)(316002)(52116002)(69596002)(186003)(50226002)(44832011)(16526019)(486006)(21086003)(2906002)(55016002)(26005)(8936002)(476003)(956004)(81156014)(81166006)(86362001)(5660300001)(36756003)(16586007)(11346002)(446003)(2616005)(76176011)(3846002)(6116002)(6916009)(68736007)(14444005)(386003)(51416003)(53936002)(7696005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB5372; H:cavium.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR07MB5372; 23:EsipouqaruaJDiSjnYh5t4K7iT1ebsze96VZ3AThl?= =?us-ascii?Q?Ygw8vFtsZNWWZDfBPgcWgnLVqPigfSifa+iON7qNm5RGYfgvB+gcXkFiHD6E?= =?us-ascii?Q?RQ00qFvpPmdGyow6jlJg5CF5THsIozoHbiXy8SZ65Juzj5HSDuSysQY3aSXA?= =?us-ascii?Q?6a5wugLdE/2xIJralwFOn74iuu1ZUnmMnJRAeNnkoWIijToxJmtslcuj263i?= =?us-ascii?Q?gcqJrnOy/Yxiwgdpg51jzLtlN7G+I6lFfGPTR7H/5f+FxUvuS/yCt4e5GulD?= =?us-ascii?Q?+mUjxaEUCa6bWKKnt3Jr4q56ZgHHMVvynCayBYF7fDH5o9SmWy0ANvlMof/H?= =?us-ascii?Q?Nx3G1BoGivf1rCRDBVt+qBO8SFx7XPW90vZwtAgRxCTMsvcUadpohVKBNCBr?= =?us-ascii?Q?1arM0JXetQZQTPEBteZksNE3dqCNJ+VEWh4jaVj2aTQNkD9BDXqo555Y7mdz?= =?us-ascii?Q?fPwLFyA5Mo2WCLkMbo78ePcRQ7MLknM3Qi2THPNO0Sh6q8tRML7xPBHoebNo?= =?us-ascii?Q?5Pw4U3dpfBYLj4iF/Zua1GCHwQk15oPFXgSvbU5OKCI1ST3qnpMw6skUG4Uj?= =?us-ascii?Q?zz21L50ONowgcx13Xbjb8rBEhOdcCjoI1HI8USDW60TijSUJ79Ibf7y1jqhP?= =?us-ascii?Q?yxvy2/fRcfqf+W78JCg0NWNuvnVhqYd6eSKfSVsGtCz+RCmUa3XaBwTKZFD/?= =?us-ascii?Q?0oFlJJtvRmoup6D+satOe/WuopeBLRkn7c7M0w3XDfYdk4zg/vJQ3ONJAkCA?= =?us-ascii?Q?ZqZEi+nyNnEic1s/Shu8PIK/ElaMeVINUhc2MDj44Yz3rIHr9AUm7gsN28r7?= =?us-ascii?Q?m2ES/wMbE1a5OaKJEyFmRBi2DFDGOq9QS59kTxhSJ8E86CwhQ3/ouoWMFjB/?= =?us-ascii?Q?+YUs1DEoDXuW9BvoEGuo41cMvI0xBe9uONWEsboUYOV7xjTTDT7QiQ4y4g6V?= =?us-ascii?Q?mBX0J5b4Z1IhEZPlCUwXF9STJncDiwA+wRFw9K7QEM6L5MeT8ICPxus3Ro8J?= =?us-ascii?Q?saZGw6Ze4sBDG2QrS7fiHkweyvl8BBJA+ii0W46XsnILwCH8jkp44d8jD/iN?= =?us-ascii?Q?Hm5sk0bFSSN9UrxMij019CE6BD7/8h/JKBaMkcEnAFRJtEfYwSyW2X+7GAkC?= =?us-ascii?Q?5/+AQhfrOAzTNcUF2WKRN+/fWxtCW+PcQNRCRP/acfqrCzHXR3XKbSNx1sn8?= =?us-ascii?Q?TcR/Xa+yIkFb1syYVXz5csaY0VqtLG8Tt0Y83gZsmuG2/3eKH/iFOtMR/VVV?= =?us-ascii?Q?Luj/fm3iaQgLWhTSrRm51I4YsWva0uWZLuV86SAJJoS7AH0rOgjvq2GAn+xM?= =?us-ascii?B?QT09?= X-Microsoft-Antispam-Message-Info: RAIhE+x3/wFl36vpJOW1XG7UJUhCRTRFuM+Pg8FrLK9/94rwJraB2ImSzFGwIU3jbokewj+u9Mv8Bl5v3GFgnhEzJp/eISY0ZmstLv8ayGqVPdfSSwYAEuOFo+A9kGC3rb3tIhNJJuhjSfu/j31UQnMAUbSfKAsCBjMTKTfklcqXqZwcY5d/sZn0zmG1sWjb0Gubfwv8hlGAJD2l0rFH9yCEZRHW61xTqAJP9vhOG79CSALF2JrzmGnles0cD1/bBQ6hUSxHoF47k3fVWSTlKZSqtDhYTj3799L7lB2of9uhzY582KtyWcWOWPGHhD4xcU4G447IOI1adEPZnE3mrq0xu5MT+mK7OzRbsECyEVI= X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 6:98KAA4G3Hs+jbecBTZazaFjRQ0z1Ol9FVz1sxyHwwhGIuRfNpkCbZUXxag3JFUmdx8AhQaEExSYxd40MhcxOiWDEYTt2c4+fiCCnxcxjmVsn5nrhrCBIDhvM7BiaMXqYq+U8Xc84tBfHLb5LLOjkSrLF0YznsnpnjA61atg4quV3dk653zNQ4zJtoWDIb5nHgtyIjDXI9apySlVBE8nm9jFkEg79eV9qbwowIsCN88k5Hrh+ZvevD3GolYdvZGXl2UbgrGcZi+gpOgNIswrEpZCLIK0rHkr+Mrkk/CjBSvsHbV/ED0ikGI1Z1710pXgl7MVjaF4RGtRYU1puCCj6lhCIA8+3nLG5QRG2Dhij9CQ8Dnn9KGM8Zn/V2ie+QaNpRfKcFTKO5HxJuUtFL9hkRQbjwiAjnYF7HrldvBmwrdF8pyy9makmFnp+g9R6Lkgi24h+a5f5I4EgxzecvBvnhA==; 5:y8p2H0ZkCAQGKQm4IyivrR4h9Vx9GLNGFe7OCaI7H25ZePqOv47LUKQUboofcyzkPmydcKT6CnAOhNt8keLdYqWSSnWIM2D9mq53spn1lYAKgULm1+iVGHbS5/pCNHgxQE8W3NNI5SWV+5W5AnkJuWRz/drp+F6/2GXOjL7Hh5M=; 7:aTJg8LpwM+duV5LPud5hThYZq65TeIR7+fkhNqv+Xbah0MudMn+yb4A1EDGIReHrjjgz2jpfx4IQFoP47Dfa2jT/NWpR246G+riHv1BuQlxDploAWf2SmuHpT/sTIcaVRv2v0xQ/HYintFEeUkyjUPbAc03WQv3YQtG11z1tbkQD1J5z7AUUcD3Um901MNXiVoaZ5Ja0NrngLlc+xbe3py1BUB8VyWFCWylGqfmVH1F7xRATqCw1uX8okCki7ws9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2018 20:31:50.2701 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e798834c-0ebb-4beb-0cf3-08d615ca1b5f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB5372 Subject: [dpdk-dev] [PATCH 07/17] net/qede/base: fix logic for sfp get/set 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: Sat, 08 Sep 2018 20:31:52 -0000 Fix logic for sfp get rx_los, tx_fault, tx_disable, and sfp set tx_disable. Fixes: bdc40630a8eb ("net/qede/base: add APIs for xcvr") Cc: stable@dpdk.org Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore_mcp.c | 37 ++++++++++++++++++++------------- drivers/net/qede/base/ecore_mcp_api.h | 2 ++ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c index 1b6eb94..ea71d07 100644 --- a/drivers/net/qede/base/ecore_mcp.c +++ b/drivers/net/qede/base/ecore_mcp.c @@ -2201,8 +2201,10 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn, enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, - u32 *p_tranceiver_type) + u32 *p_transceiver_state, + u32 *p_transceiver_type) { + u32 transceiver_info; enum _ecore_status_t rc = ECORE_SUCCESS; /* TODO - Add support for VFs */ @@ -2213,14 +2215,23 @@ enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn, DP_NOTICE(p_hwfn, false, "MFW is not initialized!\n"); return ECORE_BUSY; } - if (!p_ptt) { - *p_tranceiver_type = ETH_TRANSCEIVER_TYPE_NONE; - rc = ECORE_INVAL; + + *p_transceiver_type = ETH_TRANSCEIVER_TYPE_NONE; + *p_transceiver_state = ETH_TRANSCEIVER_STATE_UPDATING; + + transceiver_info = ecore_rd(p_hwfn, p_ptt, + p_hwfn->mcp_info->port_addr + + offsetof(struct public_port, + transceiver_data)); + + *p_transceiver_state = GET_MFW_FIELD(transceiver_info, + ETH_TRANSCEIVER_STATE); + + if (*p_transceiver_state == ETH_TRANSCEIVER_STATE_PRESENT) { + *p_transceiver_type = GET_MFW_FIELD(transceiver_info, + ETH_TRANSCEIVER_TYPE); } else { - *p_tranceiver_type = ecore_rd(p_hwfn, p_ptt, - p_hwfn->mcp_info->port_addr + - offsetof(struct public_port, - transceiver_data)); + *p_transceiver_type = ETH_TRANSCEIVER_TYPE_UNKNOWN; } return rc; @@ -2240,15 +2251,11 @@ enum _ecore_status_t ecore_mcp_trans_speed_mask(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, u32 *p_speed_mask) { - u32 transceiver_data, transceiver_type, transceiver_state; - - ecore_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_data); + u32 transceiver_type, transceiver_state; - transceiver_state = GET_MFW_FIELD(transceiver_data, - ETH_TRANSCEIVER_STATE); + ecore_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_state, + &transceiver_type); - transceiver_type = GET_MFW_FIELD(transceiver_data, - ETH_TRANSCEIVER_TYPE); if (is_transceiver_ready(transceiver_state, transceiver_type) == 0) return ECORE_INVAL; diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h index 0103293..4098bae 100644 --- a/drivers/net/qede/base/ecore_mcp_api.h +++ b/drivers/net/qede/base/ecore_mcp_api.h @@ -607,6 +607,7 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn, * * @param p_dev - ecore dev pointer * @param p_ptt + * @param p_transceiver_state - transceiver state. * @param p_transceiver_type - media type value * * @return enum _ecore_status_t - @@ -615,6 +616,7 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn, */ enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, + u32 *p_transceiver_state, u32 *p_tranceiver_type); /** -- 1.7.10.3