From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 7D6D243863;
	Mon,  8 Jan 2024 10:10:39 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 4AC7C402B0;
	Mon,  8 Jan 2024 10:10:39 +0100 (CET)
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2081.outbound.protection.outlook.com [40.107.237.81])
 by mails.dpdk.org (Postfix) with ESMTP id B7DD540263
 for <dev@dpdk.org>; Mon,  8 Jan 2024 10:10:37 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TDvNG3quWCoBrmBJ5ffERqRxTzfomqBa5bpyo3PS3H8cz/YMXjjJtX67LgLYQ+uaxsy0ckmvrDt5rqP+WIWD+Xa1Ntm0OD5WUVu/vQnaVTWqyz+MHRMEWCVHPNoqLeBGAjSaluVZUu0RmVHjfV29uuijA+1gYiNec/M7zbsFNGVi2l8gQHor1X7+ARAu4En2OeoCIawQ0Gl7Q9jGSVx5OCftXPP8EBZ79gisFWyxGpVQM5pTo/wf+ENcH99/vwwGtmFxcb2KQXqRzugOSkO2h+OPWCkMPyS6IzTdePfgfmCMGMH36FwfEUtxwGlW2vWqhg2qwmvyAspGWCSkSqnQXA==
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=HcGwc0t/Ba0qJGufY4fTKyifWWLbZmRYHHGOffZZnvg=;
 b=jQ2kz57ba2+G6FZjok8EbsaRTNvhxvCNj5o1lOKEmz/8EBr8gm7Gipn8xraftVQkk96yROx3/QqSgDVCbTVwQskr/07aBEETHDpyGH9xSE6BhLRX6UwkwP7/VJY8sFZp5py0dlM5jASfa9tzSyrAR665SRk1PBIW/IrlZSljE7n+pbWXttk1rnXCJVfZRGZUoEOqfk8dAhTBHLXsEhaF+AI5km7fBZNFNL09b8CEI4847cdmOEf41TtsKJo9Q9FoVYu5YtqbfUJWpCMl5qfRIL8f8sHRDk4s+SqNAEUER7dHOodJx6+kSexORBwHkLvdWK4zTehFHl/blpuRwgjc5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; 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=HcGwc0t/Ba0qJGufY4fTKyifWWLbZmRYHHGOffZZnvg=;
 b=K5m1Qv8QJ2MR+9mRdahEjVJvs8eFMMbhJj7Uxi4vXIHESs4Pt/Tz+LxobHzO3gU3MKqnKAmgoTXZQZ1lt+/r2Cw4FgZpBMQlcQg7xivKhkzkVckU1xtSvS/9aOKpkGpvxbZuAKzFFkJGnJj+U7z36DdnRch8kwl8Vu0SCYoE+OQ=
Received: from DM4PR12MB5055.namprd12.prod.outlook.com (2603:10b6:5:39a::20)
 by IA1PR12MB6580.namprd12.prod.outlook.com (2603:10b6:208:3a0::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.21; Mon, 8 Jan
 2024 09:10:34 +0000
Received: from DM4PR12MB5055.namprd12.prod.outlook.com
 ([fe80::3140:40fa:8279:f51c]) by DM4PR12MB5055.namprd12.prod.outlook.com
 ([fe80::3140:40fa:8279:f51c%7]) with mapi id 15.20.7159.020; Mon, 8 Jan 2024
 09:10:34 +0000
From: "Sebastian, Selwin" <Selwin.Sebastian@amd.com>
To: "Ande, Venkat Kumar" <VenkatKumar.Ande@amd.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v1] net/axgbe: read and save the port property register
Thread-Topic: [PATCH v1] net/axgbe: read and save the port property register
Thread-Index: AQHaP8sRzG7Jc+cwtkiTd8Kkwav807DLI8xw
Date: Mon, 8 Jan 2024 09:10:33 +0000
Message-ID: <DM4PR12MB5055732D19A4BC258B4C730F8D6B2@DM4PR12MB5055.namprd12.prod.outlook.com>
References: <20240105113250.11492-1-venkatkumar.ande@amd.com>
In-Reply-To: <20240105113250.11492-1-venkatkumar.ande@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=336c1bea-e856-4c42-b7eb-f8cb578bb48b;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2024-01-05T12:21:21Z;
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB5055:EE_|IA1PR12MB6580:EE_
x-ms-office365-filtering-correlation-id: 6a8a820a-c10b-4d11-1584-08dc1029abae
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: wGEkSyYd3/kU5dCc+/h5DrV2UMuQlyUiTCKMz33Xg7PAW5aRZUwpAPdgE2iYi47c8kVIf8ER/T/zuhHgA0OvqIkvhBxJfSHU8uNeJCcYk6E3sbJhN3LDgLFe6RPUa4JDZUm+2K7mFN35y74qU286/iZD7BmP0expQH1KcF/lB84rlVrCu76RYBBDjvLgYJjjl11/UCm3WaGMQCHrD7AOvVscj6vYJFdG93HtyHLCKpGPIqlkObDf16gzKGxbVRrv2Se4bK4ZkwSX9flSdQniaZ8xaaA+Rb325TWdfp7XT277Ick69Nqr1zJoCGchSl4pjki8HJdjKOrR/deVmfddmg6YspJDJ6J/p1BP+wyBrSepJRQAWW5rKBGrpua3kYvKIPtjuByg/VcsGoFG5DyfWXb9nK8yVJ1cXini7E6hiXcqjlJ2exF3m9jhYSy6kwIwgqKOdyvsVCRU87uNYMIEKElR8U81KgqHS6DTll0cSUFT9ZlqF2ZjmAhLf/57ZM1sMUj2YKuiy17YlkpRWuVg6r/6qAI4IKWq2nSh6H1doIYOx70cTP9FnklaYleNJ3U53mLluIIt19Tvf5Dq56nNc1HB5tvDr2Q4kDxr194rIoTaVkyWQrzqSGXA0g0exdWL
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM4PR12MB5055.namprd12.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230031)(396003)(366004)(39860400002)(376002)(136003)(346002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(53546011)(26005)(9686003)(478600001)(71200400001)(6506007)(7696005)(83380400001)(2906002)(5660300002)(41300700001)(66446008)(66476007)(66556008)(66946007)(4326008)(64756008)(316002)(6636002)(76116006)(52536014)(8936002)(8676002)(6862004)(38070700009)(38100700002)(122000001)(86362001)(33656002)(55016003);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?+7Jc5n/kIrUgKPoduGK5WLlWk1G9srtUufSuVttPY5WXSrIbUXYcPzEgWNS5?=
 =?us-ascii?Q?ut2OXLtRVhj1kLRsxDlMWXIEhya1La1Lwu3p9I4fMd8ye9m/J3U1X11sigPB?=
 =?us-ascii?Q?6bnoiV1/goPpO2DbEpMx8H2Tiu9HQAKb0AigoDUO6w0t2NTnDk8+qGJ2Wa6J?=
 =?us-ascii?Q?mRJHaRJOiUDsGgoZheMsBhA11xkhAIWmbsXMxVfTwSQa0Q2w5liKrGCqlCpc?=
 =?us-ascii?Q?d4G7ew6v12GvLDZiM/5ZAlNEifkTCAAPvzFQrWCSLg7Kg6ma6aZrogDazRKQ?=
 =?us-ascii?Q?Jyy1weoBN7cb0EhnYyU+8zlGUpdjeapqv1jBTSiJkwrMgi9Myn4PRot3RPRC?=
 =?us-ascii?Q?aWtimdDkKGtPPmNL3cHAuBsN57CZm0QOBCnjboFO6cext8Brt6W4vmEQ365g?=
 =?us-ascii?Q?CZAqDA5PwlE9s9FQMTOC46+XxE1YkGe4w119okkPHAblS2a3qeTgqocH3fd3?=
 =?us-ascii?Q?I7+5ijzNvk2QrP4zif8lXxaBBzQcZsxOP00SobwbBP6uT205o7etQug28Ura?=
 =?us-ascii?Q?JuITpLD8PZBZRpS0baPGJGcZknB5pwNuTcyg6tD05k2D4uIsp3iJEyHwSNa1?=
 =?us-ascii?Q?6ZthBDim4B/fd2fcAeUjQFFDB5ZqGcOX+nnfZm7pRTcHSIiJVsdJP6cQTvB5?=
 =?us-ascii?Q?W2I8Cae9KnonEhN1gZuzU19F6XqYVBQlTjfifzSKUC/KyOtdgi3oCYxRYUqQ?=
 =?us-ascii?Q?WtYpWPRviL96xi93OljpjbRQU2DQvUxcDMrAos245hsxeTU86y/l6LTyBwjU?=
 =?us-ascii?Q?KzSjEBaQK9Fm9/uYQ6LDkWfSYhOvg0M0cxTmq+1SPBbmIRVtlgh8lK5QWzi2?=
 =?us-ascii?Q?amO7zvf9oJQz45v5a1XLllZlEJRO5F2VCx6tN/eel6PyjY32gwLhPUpwX+M0?=
 =?us-ascii?Q?vYtQCBr3p0z+X4w+Ui1G/P5s6YbIN6utQ9kCYa6dbcb9DyASHs8T5W50qvYr?=
 =?us-ascii?Q?iKWLpGKi8jQAiTiijXciCBwLq0lwutSkigwAvdCbbqLCc28lC8SBzMRh6QkV?=
 =?us-ascii?Q?Fx0sdHR8tyB/kpFvFjdBdkbBXKSVwS5aBhX88N93evUh485iFhZ+XxGPXmdK?=
 =?us-ascii?Q?+580lo3hIm1vtw8MCuFLxGN1Ubls5sBWcwd2xfqg8m9UZ+tTz0kkYKRd4kWV?=
 =?us-ascii?Q?yXuEV0Cnl7zUdF/Ujt5JUFcRrV4fOQ8hZZodDjVpQ+cluXGvH0tzrSes2UpN?=
 =?us-ascii?Q?pS7U+qPjVw8TnWT57rzXWlLEQTtGoTWDyUutdA6DgzAaq74OZ8Hiq11QDpcr?=
 =?us-ascii?Q?zy2QQ2pPfoz6lJ3gK888BP2qnFHd1AYbhOPIIVWLZGaPNYrNgrB3Z9Zoq96q?=
 =?us-ascii?Q?4XegNLoO9aYzW6RWDLdMC4vn8FcyG3SSNfJgpSlavYHyeechak0jd7z/Ajr4?=
 =?us-ascii?Q?hDRKYq2Z0oQAjUGbdWcObpM+5BEOKx+kISd2Gyw4eoQx/BBimcsqr12Q4KHS?=
 =?us-ascii?Q?AcujZQ1wGx3E7jUcpfDbOPVZA6XJGhLo7fyWDRChl2WsNzxW7+Dl0xOMB0KE?=
 =?us-ascii?Q?GWozVWLGw+Znw5+7oYRa0F9KuSSuNUwcZaZB2ZNZf2wF9oQzPops2LeWWd2X?=
 =?us-ascii?Q?SrPLJQdj4eC2UkXglQA=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: DM4PR12MB5055.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a8a820a-c10b-4d11-1584-08dc1029abae
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2024 09:10:33.9455 (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: yWIkR1vFjbbKeX3ikGVt16gtC52osYofv3vxatoIOUFzf/PYgLVszBtPxWqc87NeAaN1iT4giQ5e0fzj46lJUg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6580
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>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

[AMD Official Use Only - General]

Acked-by: Selwin Sebastian<selwin.sebastian@amd.com>

-----Original Message-----
From: Ande, Venkat Kumar <VenkatKumar.Ande@amd.com>
Sent: Friday, January 5, 2024 5:03 PM
To: dev@dpdk.org
Cc: Sebastian, Selwin <Selwin.Sebastian@amd.com>; Ande, Venkat Kumar <Venka=
tKumar.Ande@amd.com>
Subject: [PATCH v1] net/axgbe: read and save the port property register

From: Venkat Kumar Ande <VenkatKumar.Ande@amd.com>

Read and save the port property registers once during the device probe and =
then use the saved values as they are needed.

Signed-off-by: Venkat Kumar Ande <VenkatKumar.Ande@amd.com>
---
 drivers/net/axgbe/axgbe_ethdev.c   | 21 +++++----
 drivers/net/axgbe/axgbe_ethdev.h   |  7 +++
 drivers/net/axgbe/axgbe_phy_impl.c | 68 ++++++++++++------------------
 3 files changed, 48 insertions(+), 48 deletions(-)

diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_eth=
dev.c
index f174d46143..3450374535 100644
--- a/drivers/net/axgbe/axgbe_ethdev.c
+++ b/drivers/net/axgbe/axgbe_ethdev.c
@@ -2342,23 +2342,28 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
        pdata->arcache =3D AXGBE_DMA_OS_ARCACHE;
        pdata->awcache =3D AXGBE_DMA_OS_AWCACHE;

+       /* Read the port property registers */
+       pdata->pp0 =3D XP_IOREAD(pdata, XP_PROP_0);
+       pdata->pp1 =3D XP_IOREAD(pdata, XP_PROP_1);
+       pdata->pp2 =3D XP_IOREAD(pdata, XP_PROP_2);
+       pdata->pp3 =3D XP_IOREAD(pdata, XP_PROP_3);
+       pdata->pp4 =3D XP_IOREAD(pdata, XP_PROP_4);
+
        /* Set the maximum channels and queues */
-       reg =3D XP_IOREAD(pdata, XP_PROP_1);
-       pdata->tx_max_channel_count =3D XP_GET_BITS(reg, XP_PROP_1, MAX_TX_=
DMA);
-       pdata->rx_max_channel_count =3D XP_GET_BITS(reg, XP_PROP_1, MAX_RX_=
DMA);
-       pdata->tx_max_q_count =3D XP_GET_BITS(reg, XP_PROP_1, MAX_TX_QUEUES=
);
-       pdata->rx_max_q_count =3D XP_GET_BITS(reg, XP_PROP_1, MAX_RX_QUEUES=
);
+       pdata->tx_max_channel_count =3D XP_GET_BITS(pdata->pp1, XP_PROP_1, =
MAX_TX_DMA);
+       pdata->rx_max_channel_count =3D XP_GET_BITS(pdata->pp1, XP_PROP_1, =
MAX_RX_DMA);
+       pdata->tx_max_q_count =3D XP_GET_BITS(pdata->pp1, XP_PROP_1, MAX_TX=
_QUEUES);
+       pdata->rx_max_q_count =3D XP_GET_BITS(pdata->pp1, XP_PROP_1,
+MAX_RX_QUEUES);

        /* Set the hardware channel and queue counts */
        axgbe_set_counts(pdata);

        /* Set the maximum fifo amounts */
-       reg =3D XP_IOREAD(pdata, XP_PROP_2);
-       pdata->tx_max_fifo_size =3D XP_GET_BITS(reg, XP_PROP_2, TX_FIFO_SIZ=
E);
+       pdata->tx_max_fifo_size =3D XP_GET_BITS(pdata->pp2, XP_PROP_2,
+TX_FIFO_SIZE);
        pdata->tx_max_fifo_size *=3D 16384;
        pdata->tx_max_fifo_size =3D RTE_MIN(pdata->tx_max_fifo_size,
                                          pdata->vdata->tx_max_fifo_size);
-       pdata->rx_max_fifo_size =3D XP_GET_BITS(reg, XP_PROP_2, RX_FIFO_SIZ=
E);
+       pdata->rx_max_fifo_size =3D XP_GET_BITS(pdata->pp2, XP_PROP_2,
+RX_FIFO_SIZE);
        pdata->rx_max_fifo_size *=3D 16384;
        pdata->rx_max_fifo_size =3D RTE_MIN(pdata->rx_max_fifo_size,
                                          pdata->vdata->rx_max_fifo_size); =
diff --git a/drivers/net/axgbe/axgbe_ethdev.h b/drivers/net/axgbe/axgbe_eth=
dev.h
index 7f19321d88..df5d63c493 100644
--- a/drivers/net/axgbe/axgbe_ethdev.h
+++ b/drivers/net/axgbe/axgbe_ethdev.h
@@ -539,6 +539,13 @@ struct axgbe_port {
        void *xprop_regs;       /* AXGBE property registers */
        void *xi2c_regs;        /* AXGBE I2C CSRs */

+       /* Port property registers */
+       unsigned int pp0;
+       unsigned int pp1;
+       unsigned int pp2;
+       unsigned int pp3;
+       unsigned int pp4;
+
        bool cdr_track_early;
        /* XPCS indirect addressing lock */
        unsigned int xpcs_window_def_reg;
diff --git a/drivers/net/axgbe/axgbe_phy_impl.c b/drivers/net/axgbe/axgbe_p=
hy_impl.c
index d97fbbfddd..44ff28517c 100644
--- a/drivers/net/axgbe/axgbe_phy_impl.c
+++ b/drivers/net/axgbe/axgbe_phy_impl.c
@@ -1709,40 +1709,35 @@ static int axgbe_phy_link_status(struct axgbe_port =
*pdata, int *an_restart)  static void axgbe_phy_sfp_gpio_setup(struct axgbe=
_port *pdata)  {
        struct axgbe_phy_data *phy_data =3D pdata->phy_data;
-       unsigned int reg;
-
-       reg =3D XP_IOREAD(pdata, XP_PROP_3);

        phy_data->sfp_gpio_address =3D AXGBE_GPIO_ADDRESS_PCA9555 +
-               XP_GET_BITS(reg, XP_PROP_3, GPIO_ADDR);
+               XP_GET_BITS(pdata->pp3, XP_PROP_3, GPIO_ADDR);

-       phy_data->sfp_gpio_mask =3D XP_GET_BITS(reg, XP_PROP_3, GPIO_MASK);
+       phy_data->sfp_gpio_mask =3D XP_GET_BITS(pdata->pp3, XP_PROP_3,
+GPIO_MASK);

-       phy_data->sfp_gpio_rx_los =3D XP_GET_BITS(reg, XP_PROP_3,
+       phy_data->sfp_gpio_rx_los =3D XP_GET_BITS(pdata->pp3, XP_PROP_3,
                                                GPIO_RX_LOS);
-       phy_data->sfp_gpio_tx_fault =3D XP_GET_BITS(reg, XP_PROP_3,
+       phy_data->sfp_gpio_tx_fault =3D XP_GET_BITS(pdata->pp3, XP_PROP_3,
                                                  GPIO_TX_FAULT);
-       phy_data->sfp_gpio_mod_absent =3D XP_GET_BITS(reg, XP_PROP_3,
+       phy_data->sfp_gpio_mod_absent =3D XP_GET_BITS(pdata->pp3, XP_PROP_3=
,
                                                    GPIO_MOD_ABS);
-       phy_data->sfp_gpio_rate_select =3D XP_GET_BITS(reg, XP_PROP_3,
+       phy_data->sfp_gpio_rate_select =3D XP_GET_BITS(pdata->pp3, XP_PROP_=
3,
                                                     GPIO_RATE_SELECT);
 }

 static void axgbe_phy_sfp_comm_setup(struct axgbe_port *pdata)  {
        struct axgbe_phy_data *phy_data =3D pdata->phy_data;
-       unsigned int reg, mux_addr_hi, mux_addr_lo;
+       unsigned int mux_addr_hi, mux_addr_lo;

-       reg =3D XP_IOREAD(pdata, XP_PROP_4);
-
-       mux_addr_hi =3D XP_GET_BITS(reg, XP_PROP_4, MUX_ADDR_HI);
-       mux_addr_lo =3D XP_GET_BITS(reg, XP_PROP_4, MUX_ADDR_LO);
+       mux_addr_hi =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, MUX_ADDR_HI);
+       mux_addr_lo =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, MUX_ADDR_LO);
        if (mux_addr_lo =3D=3D AXGBE_SFP_DIRECT)
                return;

        phy_data->sfp_comm =3D AXGBE_SFP_COMM_PCA9545;
        phy_data->sfp_mux_address =3D (mux_addr_hi << 2) + mux_addr_lo;
-       phy_data->sfp_mux_channel =3D XP_GET_BITS(reg, XP_PROP_4, MUX_CHAN)=
;
+       phy_data->sfp_mux_channel =3D XP_GET_BITS(pdata->pp4, XP_PROP_4,
+MUX_CHAN);
 }

 static void axgbe_phy_sfp_setup(struct axgbe_port *pdata) @@ -1778,12 +177=
3,11 @@ static bool axgbe_phy_redrv_error(struct axgbe_phy_data *phy_data) =
 static int axgbe_phy_mdio_reset_setup(struct axgbe_port *pdata)  {
        struct axgbe_phy_data *phy_data =3D pdata->phy_data;
-       unsigned int reg;

        if (phy_data->conn_type !=3D AXGBE_CONN_TYPE_MDIO)
                return 0;
-       reg =3D XP_IOREAD(pdata, XP_PROP_3);
-       phy_data->mdio_reset =3D XP_GET_BITS(reg, XP_PROP_3, MDIO_RESET);
+
+       phy_data->mdio_reset =3D XP_GET_BITS(pdata->pp3, XP_PROP_3, MDIO_RE=
SET);
        switch (phy_data->mdio_reset) {
        case AXGBE_MDIO_RESET_NONE:
        case AXGBE_MDIO_RESET_I2C_GPIO:
@@ -1796,12 +1790,12 @@ static int axgbe_phy_mdio_reset_setup(struct axgbe_=
port *pdata)
        }
        if (phy_data->mdio_reset =3D=3D AXGBE_MDIO_RESET_I2C_GPIO) {
                phy_data->mdio_reset_addr =3D AXGBE_GPIO_ADDRESS_PCA9555 +
-                       XP_GET_BITS(reg, XP_PROP_3,
+                       XP_GET_BITS(pdata->pp3, XP_PROP_3,
                                    MDIO_RESET_I2C_ADDR);
-               phy_data->mdio_reset_gpio =3D XP_GET_BITS(reg, XP_PROP_3,
+               phy_data->mdio_reset_gpio =3D XP_GET_BITS(pdata->pp3, XP_PR=
OP_3,
                                                        MDIO_RESET_I2C_GPIO=
);
        } else if (phy_data->mdio_reset =3D=3D AXGBE_MDIO_RESET_INT_GPIO) {
-               phy_data->mdio_reset_gpio =3D XP_GET_BITS(reg, XP_PROP_3,
+               phy_data->mdio_reset_gpio =3D XP_GET_BITS(pdata->pp3, XP_PR=
OP_3,
                                                        MDIO_RESET_INT_GPIO=
);
        }

@@ -1893,12 +1887,9 @@ static bool axgbe_phy_conn_type_mismatch(struct axgb=
e_port *pdata)

 static bool axgbe_phy_port_enabled(struct axgbe_port *pdata)  {
-       unsigned int reg;
-
-       reg =3D XP_IOREAD(pdata, XP_PROP_0);
-       if (!XP_GET_BITS(reg, XP_PROP_0, PORT_SPEEDS))
+       if (!XP_GET_BITS(pdata->pp0, XP_PROP_0, PORT_SPEEDS))
                return false;
-       if (!XP_GET_BITS(reg, XP_PROP_0, CONN_TYPE))
+       if (!XP_GET_BITS(pdata->pp0, XP_PROP_0, CONN_TYPE))
                return false;

        return true;
@@ -2061,7 +2052,6 @@ static int axgbe_phy_reset(struct axgbe_port *pdata) =
 static int axgbe_phy_init(struct axgbe_port *pdata)  {
        struct axgbe_phy_data *phy_data;
-       unsigned int reg;
        int ret;

        /* Check if enabled */
@@ -2082,19 +2072,17 @@ static int axgbe_phy_init(struct axgbe_port *pdata)
        }
        pdata->phy_data =3D phy_data;

-       reg =3D XP_IOREAD(pdata, XP_PROP_0);
-       phy_data->port_mode =3D XP_GET_BITS(reg, XP_PROP_0, PORT_MODE);
-       phy_data->port_id =3D XP_GET_BITS(reg, XP_PROP_0, PORT_ID);
-       phy_data->port_speeds =3D XP_GET_BITS(reg, XP_PROP_0, PORT_SPEEDS);
-       phy_data->conn_type =3D XP_GET_BITS(reg, XP_PROP_0, CONN_TYPE);
-       phy_data->mdio_addr =3D XP_GET_BITS(reg, XP_PROP_0, MDIO_ADDR);
-
-       reg =3D XP_IOREAD(pdata, XP_PROP_4);
-       phy_data->redrv =3D XP_GET_BITS(reg, XP_PROP_4, REDRV_PRESENT);
-       phy_data->redrv_if =3D XP_GET_BITS(reg, XP_PROP_4, REDRV_IF);
-       phy_data->redrv_addr =3D XP_GET_BITS(reg, XP_PROP_4, REDRV_ADDR);
-       phy_data->redrv_lane =3D XP_GET_BITS(reg, XP_PROP_4, REDRV_LANE);
-       phy_data->redrv_model =3D XP_GET_BITS(reg, XP_PROP_4, REDRV_MODEL);
+       phy_data->port_mode =3D XP_GET_BITS(pdata->pp0, XP_PROP_0, PORT_MOD=
E);
+       phy_data->port_id =3D XP_GET_BITS(pdata->pp0, XP_PROP_0, PORT_ID);
+       phy_data->port_speeds =3D XP_GET_BITS(pdata->pp0, XP_PROP_0, PORT_S=
PEEDS);
+       phy_data->conn_type =3D XP_GET_BITS(pdata->pp0, XP_PROP_0, CONN_TYP=
E);
+       phy_data->mdio_addr =3D XP_GET_BITS(pdata->pp0, XP_PROP_0, MDIO_ADD=
R);
+
+       phy_data->redrv =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, REDRV_PRESEN=
T);
+       phy_data->redrv_if =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, REDRV_IF)=
;
+       phy_data->redrv_addr =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, REDRV_A=
DDR);
+       phy_data->redrv_lane =3D XP_GET_BITS(pdata->pp4, XP_PROP_4, REDRV_L=
ANE);
+       phy_data->redrv_model =3D XP_GET_BITS(pdata->pp4, XP_PROP_4,
+REDRV_MODEL);

        /* Validate the connection requested */
        if (axgbe_phy_conn_type_mismatch(pdata)) {
--
2.34.1