From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CAAAAA04A6; Thu, 27 Jan 2022 14:39:51 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B5E1D427C6; Thu, 27 Jan 2022 14:39:51 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2051.outbound.protection.outlook.com [40.107.92.51]) by mails.dpdk.org (Postfix) with ESMTP id A5390427A9 for ; Thu, 27 Jan 2022 14:39:49 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nyYJLoqaJ7Isjj3UOUSBWpftfBkPbPSW1Hokdld4k7msVI0h5SyP8MegDJUC1nSN9ca+5IXZPhWu0SwyaBfVuGBi80eA6DA6rT6hR+jjZ6eFf3tbBTnJwDJW4joJYnq6NYuMm2D2QESTB5QOaBKYVmhG5H1nxhNIbcw7lFreFGy5S6Or69YaCkjRQ4f6WPBlQglAyt5nITYPPIggQDYaURYkyPzM8aq7+uuL+QMuFlfZIvAb77iJR/zXu4+9tkhv7VDV9emVAwY0BJIK0WX9qK8oA6eydUUBW6t5zvonBFpeeHuaQj+EYCfd0zOgNaAFCVDuTUWc5aK8ajHmnv/v5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=8VUfVrGjzhrbH4Ew6nLOye+exnKBaJ2GFFQ097jcdow=; b=bxASDHpEVHOKPeq7EnCjdXtQzGxwAgjt6ooBTb5s91lRp9gugdn8Xaz9HR9JKXIpi/569HIhjdHoza83+Hhjy2L95HNcaCfPSbPWJD0Ixmo3J0lvUZfGPAcuKqSGHs2ZqoTD/CcdZBy3Khv3ba1afQaVVDLZ8oDbDmeBZE+tyPwrXwY6MhQOD6nP6NKQjQTv8kfN35hnhqmCQUms4Ej4m6oXrzgaZSOQ9IIeL6IImXuVYBOM4ZdXu/OZJFzgDYTW/kIXN9qdoZGbZAwRWcB8gwNHwAOuX/YprLi7pxXA7BHy8xDqWWceRXSLAKJCpnScfhHWmGGxR8cpKXmO9PqinQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8VUfVrGjzhrbH4Ew6nLOye+exnKBaJ2GFFQ097jcdow=; b=p5X0oGPwRSg2Ukx8uXvJYNwUiFYfxpb3XXUe/uVZqeCssCudhURn4tTGgyGoYKxdbhz6uRGMrgcfya5DCAsEdu13z+cfUXnzINfNPAJ7FCwbs3+RU5knfu0LcO0fYbivQsP1Dw8A9e6koEtptQEkieLjnf9MP+rmensxrNegS2E= Received: from MW2PR12MB2538.namprd12.prod.outlook.com (2603:10b6:907:5::14) by PH7PR12MB5687.namprd12.prod.outlook.com (2603:10b6:510:13e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.13; Thu, 27 Jan 2022 13:39:48 +0000 Received: from MW2PR12MB2538.namprd12.prod.outlook.com ([fe80::ad98:6ba4:7d63:fd6a]) by MW2PR12MB2538.namprd12.prod.outlook.com ([fe80::ad98:6ba4:7d63:fd6a%4]) with mapi id 15.20.4930.017; Thu, 27 Jan 2022 13:39:48 +0000 From: "Namburu, Chandu-babu" To: "Sebastian, Selwin" , "dev@dpdk.org" Subject: RE: [PATCH v2 3/6] net/axgbe: simplify mailbox interface rate change code Thread-Topic: [PATCH v2 3/6] net/axgbe: simplify mailbox interface rate change code Thread-Index: AQHYEeXXpZem1ugRj06RP7U4aV90V6x24t+A Date: Thu, 27 Jan 2022 13:39:47 +0000 Message-ID: References: <20220125121747.344631-1-ssebasti@amd.com> <20220125121747.344631-4-ssebasti@amd.com> In-Reply-To: <20220125121747.344631-4-ssebasti@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Enabled=true; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SetDate=2022-01-27T13:39:44Z; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Method=Privileged; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Name=Public-AIP 2.0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ActionId=3f78283c-934f-4496-8176-2de13b51c098; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ContentBits=1 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_enabled: true msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_setdate: 2022-01-27T13:39:45Z msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_method: Privileged msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_name: Public-AIP 2.0 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_actionid: 0370a570-6eb7-4d8a-bbf2-fb3aea85c18d msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_contentbits: 0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 43f346e5-2a33-4cbd-f5bd-08d9e19a7c98 x-ms-traffictypediagnostic: PH7PR12MB5687:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: J8AckDfYY/4YdCv+TzAvqZ/1v17W13DlCB4+4QZloFWFu5WJuoBjZen2TFepot+SH7YWVM/ClMyLMsjgy9jVcLoci8Sojb4Phet6c7mwuzCcg2vy3CLp/RC5FbqvH2Fn7jihF1nID1rYeoWHn7VKvIxnRBd665wzD/d1eMPIyPgazVH8aLMoc54Hplb11K1qVZyBxAj8t1m5wTdKyylvOEd/Y/5jxfytivECKS5yXDM9L/qdvEKmSVqD8IqxMbmMuyofQbwQFCjF7IT/Y8pegbzzVDD9TFH1f4de8jjLEEO1ymVgxv8wLuBD7SO8qbYDzmV5n6SxJcsYnwKZDeJHh6B3e3V0EoJiKoXYPO9m343zbQVbAcJC3GSFR9f705GKgWbc7zcLQzRWgRxRQxviOlB3ej03gVmy2BsVKw7cMR2VvRoA0t9+7+0DekXSj0KSafjvKONY6DHU+6CoOOukSQuB/vkcgDimdAJkCD5eUeATrcTLYpcffxvethIGxuAWw99DgIGbElT1nudPT/gBKkpvmyOWwB30WBRTzDo8KdPq//cDaohPFwbWXMoyOeJF9K2ECfka8mfQ5bY2CEiZtC+wYUg6CmKnKYepNuGm+F0azfjZJor+8Myx9GumtC68DtJtrzJGwzx2F8GXjEC2gZR3C0mLP8aEyvbqT3FmnR/a8DYz5QX/Afzf2pDZ5UpFrgyCxVISXhXQnZLBIjjQqQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB2538.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(66946007)(15650500001)(186003)(508600001)(26005)(52536014)(5660300002)(38070700005)(86362001)(8676002)(53546011)(76116006)(83380400001)(7696005)(110136005)(55016003)(122000001)(8936002)(6506007)(33656002)(64756008)(9686003)(38100700002)(316002)(66446008)(66476007)(71200400001)(66556008)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?KSWQFnJeJqKDuwn4K3fFgn5EV4wjc5F0AOZM0PVRnBdRT8NiQrIowCdU9f2D?= =?us-ascii?Q?QGtOJDatAD029EMW8OMTwlEtwI5XXcCPfoc1pBuGIzkk7BssyTM6mC75XkWc?= =?us-ascii?Q?AoBnSTP00KKI7ixdNYUUld4faRPGHSJOyprvAXKoSyipNrapcwZO4dX1ptqP?= =?us-ascii?Q?fDCjIMollOWt+WIcJA7oNW2qMMIJs/bXt7cx457//hZqPeetpvuxPW1gEtW+?= =?us-ascii?Q?ut6EaSTMOAvDyRjK9N063imfLz6tymKt20wK/v5PVMrp5TRlA33AulWVcNyX?= =?us-ascii?Q?WvEfMyLi+Mve0Rc+zQS4N1TUZ53u+Ej4gn0flwFiGiSgImehpw5CyXGpRyZf?= =?us-ascii?Q?gx2K8dxWZJOrykfMLdgaawPVWWXOUvva0A0epPfgjWvbe+iRWaAX8l7jNcuI?= =?us-ascii?Q?u7RbvCxyUm7OaQjf7yrqMXnMC9kMtTgzxp/3JjDryVKqLrYexgNAW4qFyb/z?= =?us-ascii?Q?tAqwsAylEUkrstWlmHlkIRnxZkxOO3OlAT8WqoLlsByzRIq3nAFMMrr+E59N?= =?us-ascii?Q?1jlACFmimIKbddX0JbRMUO1T56DC1OWGFFtfwGa7bimswMkt+/VMdcHFF2w/?= =?us-ascii?Q?WhB+6/oEjb4relhlum40PxFrnSYo6RwLDnOrJjiH8AIaCNAhvlP6UumRHM9B?= =?us-ascii?Q?zcW6DVRCCgVPrAHNU3I34az1Qdk5ayK3C6NK15E3f8YhGC7qlwAE4RaAUfVO?= =?us-ascii?Q?OERti2suxK6U1N1DqfglWQBgWkbZDLqc/zky2kO1NAzrPDgYhvqu3UCmiOVM?= =?us-ascii?Q?wJe9jRNUiOre56QgZ9BPxwcUynkBw6kUGEzuTfwtRvHJemuQu0hBeWFiWDeg?= =?us-ascii?Q?eR5ChoEdVRU9XNxA8LvAQWYampf7bmu5cPKWAFLGOqV78vm86Dk3BBXUMtnv?= =?us-ascii?Q?pLpuazP8y0nT92UET1qQLw53ashAY4Tn2DuaL8Re1ragDUOw1mkPWGE9B96j?= =?us-ascii?Q?mfW0YDxjYE1Bmjflx2H5WpbyTqwiIJNHTvOANy1O1QiWZW52Es8T/0dJfowC?= =?us-ascii?Q?RGTLSFZYjoqGwS4hFr1wGTqIVIQpq++h2f7A3JrxnWdlfoRAbqAYOjrtbk5d?= =?us-ascii?Q?0OY9vLLf003/0apzBxvQTxWRy2cDqKhE1YUvA+BT0jC+/OBEf7owcF7QKM8S?= =?us-ascii?Q?HtkU5Ri4MUxY/6lfen3836bTwnoEQDmaEtAEgU8C0C8IKYHxJUKBm+GsD+gn?= =?us-ascii?Q?pKL7cIJFdMa6OsUNDlfVEZ31NnjRvZYUucp2cpEQL5cqSAGdDwnXtspgo+Uh?= =?us-ascii?Q?lvD+eQysiAL+TDFh3ClPsEpzw0iHvFbzvXo+DG14JTaDpYluZWJ/zM8Tw5pA?= =?us-ascii?Q?TzQQwQclkWf0iv4p1Bx8o8kw2828pMekf2BYfk8meufGzNhjxKoVUL8rLTVw?= =?us-ascii?Q?DhIiNQeC0iXorNZB99xbu69z/qiySkrpb5Sd3pmb3VZ37X5UPZVTB1Ypfidx?= =?us-ascii?Q?TZvIUaUAHRr6L8oRdsfODtuzzj4VvzOxQTqyxMyJ3gETyErNNOSIvs9BTZi1?= =?us-ascii?Q?fVPYGte/vW/hRKloldpPVE1oLsxeBf8LuREKOfxRDTgDkKGUqq26sZx26OM6?= =?us-ascii?Q?9uhv8sjLKcTxwcr7AS8AjophJbJ1kBkipjVdafuY74is2g2uK20yEf1Pq5ZO?= =?us-ascii?Q?yMh//x+a0o7g5FV4575oYFY=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB2538.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43f346e5-2a33-4cbd-f5bd-08d9e19a7c98 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jan 2022 13:39:48.0154 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sqA7JPneSoRBBZwf/w4oBtgkW9dcnqN6fcx8Snjv9IUnJSvmNHy6NeLGFhqm9MKxA8UGNWB2N18nviqEFQrFSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5687 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org [Public] Acked-by: Chandubabu Namburu -----Original Message----- From: ssebasti@amd.com =20 Sent: Tuesday, January 25, 2022 5:48 PM To: dev@dpdk.org Subject: [PATCH v2 3/6] net/axgbe: simplify mailbox interface rate change c= ode From: Selwin Sebastian Simplify and centralize the mailbox command rate change interface by having= a single function perform the writes to the mailbox registers to issue the= request. Signed-off-by: Selwin Sebastian --- drivers/net/axgbe/axgbe_phy_impl.c | 95 ++++++++---------------------- 1 file changed, 23 insertions(+), 72 deletions(-) diff --git a/drivers/net/axgbe/axgbe_phy_impl.c b/drivers/net/axgbe/axgbe_p= hy_impl.c index 08d3484a11..2ed94868b8 100644 --- a/drivers/net/axgbe/axgbe_phy_impl.c +++ b/drivers/net/axgbe/axgbe_phy_impl.c @@ -1207,21 +1207,26 @@ static void axgbe_phy_pll_ctrl(struct axgbe_port *p= data, bool enable) rte_delay_us(150); } =20 -static void axgbe_phy_start_ratechange(struct axgbe_port *pdata) +static void axgbe_phy_perform_ratechange(struct axgbe_port *pdata, + unsigned int cmd, unsigned int sub_cmd) { + unsigned int s0 =3D 0; + unsigned int wait; /* Clear the PLL so that it helps in power down sequence */ axgbe_phy_pll_ctrl(pdata, false); =20 /* Log if a previous command did not complete */ if (XP_IOREAD_BITS(pdata, XP_DRIVER_INT_RO, STATUS)) PMD_DRV_LOG(NOTICE, "firmware mailbox not ready for command\n"); - else - return; -} =20 -static void axgbe_phy_complete_ratechange(struct axgbe_port *pdata) -{ - unsigned int wait; + /* Construct the command */ + XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, cmd); + XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, sub_cmd); + + /* Issue the command */ + XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); + XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); + XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); =20 /* Wait for command to complete */ wait =3D AXGBE_RATECHANGE_COUNT; @@ -1240,21 +1245,10 @@ static void axgbe_phy_complete_ratechange(struct ax= gbe_port *pdata) =20 static void axgbe_phy_rrc(struct axgbe_port *pdata) { - unsigned int s0; =20 - axgbe_phy_start_ratechange(pdata); =20 /* Receiver Reset Cycle */ - s0 =3D 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 5); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - axgbe_phy_complete_ratechange(pdata); + axgbe_phy_perform_ratechange(pdata, 5, 0); =20 PMD_DRV_LOG(DEBUG, "receiver reset complete\n"); } @@ -1263,13 +1257,9 @= @ static void axgbe_phy_power_off(struct axgbe_port *pdata) { struct axgbe_phy_data *phy_data =3D pdata->phy_data; =20 - axgbe_phy_start_ratechange(pdata); + /* Power off */ + axgbe_phy_perform_ratechange(pdata, 0, 0); =20 - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, 0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - axgbe_phy_complete_ratechange(pdata); phy_data->cur_mode =3D AXGBE_MODE_UNKNOWN; =20 PMD_DRV_LOG(DEBUG, "phy powered off\n"); @@ -1278,31 +1268,21 @@ static v= oid axgbe_phy_power_off(struct axgbe_port *pdata) static void axgbe_phy_sf= i_mode(struct axgbe_port *pdata) { struct axgbe_phy_data *phy_data =3D pdata->phy_data; - unsigned int s0; =20 axgbe_phy_set_redrv_mode(pdata); =20 - axgbe_phy_start_ratechange(pdata); - /* 10G/SFI */ - s0 =3D 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 3); if (phy_data->sfp_cable !=3D AXGBE_SFP_CABLE_PASSIVE) { - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); + axgbe_phy_perform_ratechange(pdata, 3, 0); } else { if (phy_data->sfp_cable_len <=3D 1) - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 1); + axgbe_phy_perform_ratechange(pdata, 3, 1); else if (phy_data->sfp_cable_len <=3D 3) - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 2); + axgbe_phy_perform_ratechange(pdata, 3, 2); else - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 3); + axgbe_phy_perform_ratechange(pdata, 3, 3); } =20 - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - axgbe_phy_complete_ratechange(pdata); phy_data->cur_mode =3D AXGBE_MODE_SFI; =20 PMD_DRV_LOG(DEBUG, "10GbE SFI mode set\n"); @@ -1311,22 +1291,11 @@ stati= c void axgbe_phy_sfi_mode(struct axgbe_port *pdata) static void axgbe_phy_= kr_mode(struct axgbe_port *pdata) { struct axgbe_phy_data *phy_data =3D pdata->phy_data; - unsigned int s0; =20 axgbe_phy_set_redrv_mode(pdata); =20 - axgbe_phy_start_ratechange(pdata); - /* 10G/KR */ - s0 =3D 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 4); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - axgbe_phy_complete_ratechange(pdata); + axgbe_phy_perform_ratechange(pdata, 4, 0); phy_data->cur_mode =3D AXGBE_MODE_KR; =20 PMD_DRV_LOG(DEBUG, "10GbE KR mode set\n"); @@ -1335,40 +1304,22 @@ static= void axgbe_phy_kr_mode(struct axgbe_port *pdata) static void axgbe_phy_kx= _2500_mode(struct axgbe_port *pdata) { struct axgbe_phy_data *phy_data =3D pdata->phy_data; - unsigned int s0; =20 axgbe_phy_set_redrv_mode(pdata); - /* 2.5G/KX */ - axgbe_phy_start_ratechange(pdata); - s0 =3D 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 2); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); =20 + /* 2.5G/KX */ + axgbe_phy_perform_ratechange(pdata, 2, 0); phy_data->cur_mode =3D AXGBE_MODE_KX_2500; } =20 static void axgbe_phy_sgmii_1000_mode(struct axgbe_port *pdata) { struct axgbe_phy_data *phy_data =3D pdata->phy_data; - unsigned int s0; =20 axgbe_phy_set_redrv_mode(pdata); =20 /* 1G/SGMII */ - axgbe_phy_start_ratechange(pdata); - s0 =3D 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 1); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 2); - - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); + axgbe_phy_perform_ratechange(pdata, 1, 2); =20 phy_data->cur_mode =3D AXGBE_MODE_SGMII_1000; } -- 2.25.1