Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/139253/?format=api
http://patches.dpdk.org/api/patches/139253/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240412125249.10625-3-VenkatKumar.Ande@amd.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20240412125249.10625-3-VenkatKumar.Ande@amd.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20240412125249.10625-3-VenkatKumar.Ande@amd.com", "date": "2024-04-12T12:52:28", "name": "[03/24] net/axgbe: improve SFP 100Mbps auto-negotiation", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": false, "hash": "a384d680089006d75f85b704b6846d895f97d5ff", "submitter": { "id": 3256, "url": "http://patches.dpdk.org/api/people/3256/?format=api", "name": "Venkat Kumar Ande", "email": "venkatkumar.ande@amd.com" }, "delegate": { "id": 319, "url": "http://patches.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20240412125249.10625-3-VenkatKumar.Ande@amd.com/mbox/", "series": [ { "id": 31734, "url": "http://patches.dpdk.org/api/series/31734/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31734", "date": "2024-04-12T12:52:26", "name": "[01/24] net/axgbe: remove use of comm_owned field", "version": 1, "mbox": "http://patches.dpdk.org/series/31734/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/139253/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/139253/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 69AD043E52;\n\tFri, 12 Apr 2024 14:53:40 +0200 (CEST)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4F3A6410FA;\n\tFri, 12 Apr 2024 14:53:40 +0200 (CEST)", "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2061.outbound.protection.outlook.com [40.107.243.61])\n by mails.dpdk.org (Postfix) with ESMTP id 9920E410FA\n for <dev@dpdk.org>; Fri, 12 Apr 2024 14:53:38 +0200 (CEST)", "from BL1PR13CA0334.namprd13.prod.outlook.com (2603:10b6:208:2c6::9)\n by IA0PR12MB8226.namprd12.prod.outlook.com (2603:10b6:208:403::21)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Fri, 12 Apr\n 2024 12:53:35 +0000", "from BL6PEPF00020E63.namprd04.prod.outlook.com\n (2603:10b6:208:2c6:cafe::b2) by BL1PR13CA0334.outlook.office365.com\n (2603:10b6:208:2c6::9) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7495.13 via Frontend\n Transport; Fri, 12 Apr 2024 12:53:35 +0000", "from SATLEXMB04.amd.com (165.204.84.17) by\n BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.20.7452.22 via Frontend Transport; Fri, 12 Apr 2024 12:53:35 +0000", "from cae-Lilac-RMB.amd.com (10.180.168.240) by SATLEXMB04.amd.com\n (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 12 Apr\n 2024 07:53:33 -0500" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=LIKImuCbs7IyrGXlc/oFwZzMC5eOg5J57px4bstZG02ydE48G2qWM6fdeUtQBgfbHR2UzF2WxBQe2PMjlaAjsC5+0YhK+zFCT3HdzbJvIkAk5DVNnZVTJ6N2iekloc7RTk6dT6rnfho5mPfAK+0HgxX9rhQBw3idzSi5mkvtDspSuEz76CqPLGqYP9YIZTPtFtdF9bD5l+T+I3tcH7ZpBvDLekskhLckcAQd98uqSIYLZPipefQyZQPBcQh7Bp4u4krzc7eN7uDJLxaihTcsxtjnUjlUvXfYxmOb0rSlRTQYJM996F2r87/bAO6K9CNcxD8u+LDf9/3R4EWgf8rucg==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=JQz/9DJz/6I/UEa2+0sjPqtZ562vcVVwszX/Q+CwDV4=;\n b=JQUztRzUFdwQqwRQynejfbhYfwI8Yl6Ki7+rQMYaNrAo9/wrjP8fmpw06OkAsjZS41LQ4zX6hE7CRVzeS/MSEggn03vmjwzf7B96+Jjo3pu1dvp2aIDLwKFZr+GdMaJuaXFGjOq1itPdKMnKQ9eogiVd6pQoAyibiW0yG6MhvLAuqgQImDyZt+4LQCPIjYJrf8Aomtr6lwagvL5tOXZgnlruS4H/EVfbBD/FashLJEcRFiCCgcT5bM9xjXr70WDajdNLS2Z1HPEFl8jFlbXBQCvgrsUZe7m7FXhe3d9AzpfKpHU5gZ0iZfxueVTiVXWJ65DBQmG96YxaMBqSBYiAXw==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=dpdk.org smtp.mailfrom=amd.com; dmarc=pass\n (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;\n dkim=none (message not signed); arc=none (0)", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=JQz/9DJz/6I/UEa2+0sjPqtZ562vcVVwszX/Q+CwDV4=;\n b=voF6CZl00wStqQI+hggFR1As/fRO4AtFjG/4rfnJKE/crCWIJJqCyHPe805CJT7opg9KNyzdEBrT0j7qNJ9xRxb5ewTFlGm3Pxjjrvif98N3QKFSJOyfkvT8PicxdDTCvnszeaKf05DMOexqyMj6Mp1rWRSsq35JG1yfA0RwhZM=", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;", "Received-SPF": "Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C", "From": "Venkat Kumar Ande <VenkatKumar.Ande@amd.com>", "To": "<dev@dpdk.org>", "CC": "<Selwin.Sebastian@amd.com>, Venkat Kumar Ande <VenkatKumar.Ande@amd.com>", "Subject": "[PATCH 03/24] net/axgbe: improve SFP 100Mbps auto-negotiation", "Date": "Fri, 12 Apr 2024 08:52:28 -0400", "Message-ID": "<20240412125249.10625-3-VenkatKumar.Ande@amd.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20240412125249.10625-1-VenkatKumar.Ande@amd.com>", "References": "<20240412125249.10625-1-VenkatKumar.Ande@amd.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-Originating-IP": "[10.180.168.240]", "X-ClientProxiedBy": "SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com\n (10.181.40.145)", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "BL6PEPF00020E63:EE_|IA0PR12MB8226:EE_", "X-MS-Office365-Filtering-Correlation-Id": "a8f2a561-416e-4831-0451-08dc5aef9115", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n rquhl58c5uAweQ1fL9QmKGjzgGBkda4VB8Qkx5zswCMMednruY+7x+hxNnCon1ZsSsd/AuRRYmCW1izrqlYLxLqBtgjEPfnmeebq1LWn7SHXVJm+7ecWa4GypA7h9x5KitKJZRfjDQVPTCEKl+xz/We5Zg4NNZja6WA2TdhDk4sUN3VdAR3yKk7EZUubdmMa9soxCmcIbw7aFc7JaTGOiW133tRxy3hZQDuTDXCKniJ1cS1nRYWffTAg9c5UlVeXIhPZWsWarhSC+Ej5mrGQ6FKCUeKU/IReDR/ytVnd8a0Iq3jVV64/dDgtAD2VijX5uO22RQGzZovGKRBWl7hKID2X2xtBt++8QCMi6ObjeoUhwAbJHQ5nZzoBt5zc9rK8Xl2XqllXiMh1kbZj1ZJL8d0UZ8aEBO3Ojg0jIC/vTNaitvPNhdKAC4wd/7D12qRtw5xzQCv2QB7RePNBNx5AQ7Fdl5bWE8SjCvpMMLdTzd3SpsWv823rsQD11AAqjlzREt/w9QL3WQf7B3IkEiB+eguUy6ENyaMABJ2//tfTrweH/Lr3Dl5EMmhYajyDB6r/Njmtp+0cEPTKDg7HiLAzOpSTgemd2uqZWuvRT+QpwRyg45z7mrsK1WdAhIU/wuZ5KbilBIBlSNh3SQAoGL8AeIFQcoZWPhKtIkEAJxxmG3N4fYHnAzteK6n5heEJi6rO8bPPVml171tEvDZnrUNX6PClVjevZcWEz70APOUGwFiB5Cq7qTVAr9j0nFnLqNA+", "X-Forefront-Antispam-Report": "CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230031)(1800799015)(376005)(82310400014)(36860700004); DIR:OUT;\n SFP:1101;", "X-OriginatorOrg": "amd.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "12 Apr 2024 12:53:35.7056 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n a8f2a561-416e-4831-0451-08dc5aef9115", "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[SATLEXMB04.amd.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n BL6PEPF00020E63.namprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "IA0PR12MB8226", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "After changing speed to 100Mbps as a result of auto-negotiation (AN),\nsome 10/100/1000Mbps SFPs indicate a successful link (no faults or loss\nof signal), but cannot successfully transmit or receive data. These\nSFPs required an extra auto-negotiation (AN) after the speed change in\norder to operate properly. Add a quirk for these SFPs so that if the\noutcome of the AN actually results in changing to a new speed, re-initiate\nAN at that new speed.\n\nSigned-off-by: Venkat Kumar Ande <VenkatKumar.Ande@amd.com>\n---\n drivers/net/axgbe/axgbe_ethdev.h | 1 +\n drivers/net/axgbe/axgbe_mdio.c | 73 ++++++++++++++++--------------\n drivers/net/axgbe/axgbe_phy_impl.c | 5 ++\n 3 files changed, 46 insertions(+), 33 deletions(-)", "diff": "diff --git a/drivers/net/axgbe/axgbe_ethdev.h b/drivers/net/axgbe/axgbe_ethdev.h\nindex df5d63c493..924a26ebe3 100644\n--- a/drivers/net/axgbe/axgbe_ethdev.h\n+++ b/drivers/net/axgbe/axgbe_ethdev.h\n@@ -656,6 +656,7 @@ struct axgbe_port {\n \tenum axgbe_an an_state;\n \tenum axgbe_rx kr_state;\n \tenum axgbe_rx kx_state;\n+\tunsigned int an_again;\n \tunsigned int an_supported;\n \tunsigned int parallel_detect;\n \tunsigned int fec_ability;\ndiff --git a/drivers/net/axgbe/axgbe_mdio.c b/drivers/net/axgbe/axgbe_mdio.c\nindex 913ceada0d..0beeb1d0f5 100644\n--- a/drivers/net/axgbe/axgbe_mdio.c\n+++ b/drivers/net/axgbe/axgbe_mdio.c\n@@ -200,13 +200,14 @@ static void axgbe_switch_mode(struct axgbe_port *pdata)\n \taxgbe_change_mode(pdata, pdata->phy_if.phy_impl.switch_mode(pdata));\n }\n \n-static void axgbe_set_mode(struct axgbe_port *pdata,\n+static bool axgbe_set_mode(struct axgbe_port *pdata,\n \t\t\t enum axgbe_mode mode)\n {\n \tif (mode == axgbe_cur_mode(pdata))\n-\t\treturn;\n+\t\treturn false;\n \n \taxgbe_change_mode(pdata, mode);\n+\treturn true;\n }\n \n static bool axgbe_use_mode(struct axgbe_port *pdata,\n@@ -880,21 +881,22 @@ static int axgbe_phy_config_fixed(struct axgbe_port *pdata)\n \treturn 0;\n }\n \n-static int __axgbe_phy_config_aneg(struct axgbe_port *pdata)\n+static int __axgbe_phy_config_aneg(struct axgbe_port *pdata, bool set_mode)\n {\n \tint ret;\n \n+\tpthread_mutex_lock(&pdata->an_mutex);\n \trte_bit_relaxed_set32(AXGBE_LINK_INIT, &pdata->dev_state);\n \tpdata->link_check = rte_get_timer_cycles();\n \n \tret = pdata->phy_if.phy_impl.an_config(pdata);\n \tif (ret)\n-\t\treturn ret;\n+\t\tgoto out;\n \n \tif (pdata->phy.autoneg != AUTONEG_ENABLE) {\n \t\tret = axgbe_phy_config_fixed(pdata);\n \t\tif (ret || !pdata->kr_redrv)\n-\t\t\treturn ret;\n+\t\t\tgoto out;\n \t\tPMD_DRV_LOG(DEBUG, \"AN redriver support\\n\");\n \t} else {\n \t\tPMD_DRV_LOG(DEBUG, \"AN PHY configuration\\n\");\n@@ -904,23 +906,26 @@ static int __axgbe_phy_config_aneg(struct axgbe_port *pdata)\n \trte_intr_disable(pdata->pci_dev->intr_handle);\n \n \t/* Start auto-negotiation in a supported mode */\n-\tif (axgbe_use_mode(pdata, AXGBE_MODE_KR)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_KR);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_KX_2500)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_KX_2500);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_KX_1000)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_KX_1000);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SFI)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_SFI);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_X)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_X);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SGMII_1000)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_SGMII_1000);\n-\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SGMII_100)) {\n-\t\taxgbe_set_mode(pdata, AXGBE_MODE_SGMII_100);\n-\t} else {\n-\t\trte_intr_enable(pdata->pci_dev->intr_handle);\n-\t\treturn -EINVAL;\n+\tif (set_mode) {\n+\t\tif (axgbe_use_mode(pdata, AXGBE_MODE_KR)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_KR);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_KX_2500)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_KX_2500);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_KX_1000)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_KX_1000);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SFI)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_SFI);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_X)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_X);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SGMII_1000)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_SGMII_1000);\n+\t\t} else if (axgbe_use_mode(pdata, AXGBE_MODE_SGMII_100)) {\n+\t\t\taxgbe_set_mode(pdata, AXGBE_MODE_SGMII_100);\n+\t\t} else {\n+\t\t\trte_intr_enable(pdata->pci_dev->intr_handle);\n+\t\t\tret = -EINVAL;\n+\t\t\tgoto out;\n+\t\t}\n \t}\n \n \t/* Disable and stop any in progress auto-negotiation */\n@@ -938,16 +943,7 @@ static int __axgbe_phy_config_aneg(struct axgbe_port *pdata)\n \taxgbe_an_init(pdata);\n \taxgbe_an_restart(pdata);\n \n-\treturn 0;\n-}\n-\n-static int axgbe_phy_config_aneg(struct axgbe_port *pdata)\n-{\n-\tint ret;\n-\n-\tpthread_mutex_lock(&pdata->an_mutex);\n-\n-\tret = __axgbe_phy_config_aneg(pdata);\n+out:\n \tif (ret)\n \t\trte_bit_relaxed_set32(AXGBE_LINK_ERR, &pdata->dev_state);\n \telse\n@@ -958,6 +954,16 @@ static int axgbe_phy_config_aneg(struct axgbe_port *pdata)\n \treturn ret;\n }\n \n+static int axgbe_phy_config_aneg(struct axgbe_port *pdata)\n+{\n+\treturn __axgbe_phy_config_aneg(pdata, true);\n+}\n+\n+static int axgbe_phy_reconfig_aneg(struct axgbe_port *pdata)\n+{\n+\treturn __axgbe_phy_config_aneg(pdata, false);\n+}\n+\n static bool axgbe_phy_aneg_done(struct axgbe_port *pdata)\n {\n \treturn pdata->an_result == AXGBE_AN_COMPLETE;\n@@ -1016,7 +1022,8 @@ static void axgbe_phy_status_result(struct axgbe_port *pdata)\n \n \tpdata->phy.duplex = DUPLEX_FULL;\n \n-\taxgbe_set_mode(pdata, mode);\n+\tif (axgbe_set_mode(pdata, mode) && pdata->an_again)\n+\t\taxgbe_phy_reconfig_aneg(pdata);\n }\n \n static int autoneg_time_out(unsigned long autoneg_start_time)\ndiff --git a/drivers/net/axgbe/axgbe_phy_impl.c b/drivers/net/axgbe/axgbe_phy_impl.c\nindex e1b926d48a..5acccf9146 100644\n--- a/drivers/net/axgbe/axgbe_phy_impl.c\n+++ b/drivers/net/axgbe/axgbe_phy_impl.c\n@@ -560,6 +560,8 @@ static bool axgbe_phy_belfuse_parse_quirks(struct axgbe_port *pdata)\n \tif (memcmp(&sfp_eeprom->base[AXGBE_SFP_BASE_VENDOR_NAME],\n \t\t AXGBE_BEL_FUSE_VENDOR, strlen(AXGBE_BEL_FUSE_VENDOR)))\n \t\treturn false;\n+\t/* For Bel-Fuse, use the extra AN flag */\n+\tpdata->an_again = 1;\n \n \tif (!memcmp(&sfp_eeprom->base[AXGBE_SFP_BASE_VENDOR_PN],\n \t\t AXGBE_BEL_FUSE_PARTNO, strlen(AXGBE_BEL_FUSE_PARTNO))) {\n@@ -796,6 +798,9 @@ static void axgbe_phy_sfp_detect(struct axgbe_port *pdata)\n \tstruct axgbe_phy_data *phy_data = pdata->phy_data;\n \tint ret;\n \n+\t/* Clear the extra AN flag */\n+\tpdata->an_again = 0;\n+\n \t/* Reset the SFP signals and info */\n \taxgbe_phy_sfp_reset(phy_data);\n \n", "prefixes": [ "03/24" ] }{ "id": 139253, "url": "