From nobody Fri Jun 19 07:17:34 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B006C433F5 for ; Wed, 6 Apr 2022 18:18:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240479AbiDFSUZ (ORCPT ); Wed, 6 Apr 2022 14:20:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241574AbiDFST0 (ORCPT ); Wed, 6 Apr 2022 14:19:26 -0400 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2091.outbound.protection.outlook.com [40.107.117.91]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07A53BF017; Wed, 6 Apr 2022 10:01:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jFgh4a2DVdB8nbOEjcua9Gu/9DTUs+X0OxUX0/nFHFmLC9GAqfG8GM7fSethE962X9ZxSBP9oprC1ItoZSLjfik3lXP2telBXWitGRfiJup+dC5Lyt3rMaTK4AbkVTD1a8LuP0guBjPFaGg8QYUXcgZ7uQYxEzE80vAMoIyaRRqbn08wp2dKe0S3wgdOVwmWFhd2tE1ROApQYecHl2IG//uY5cheaXWE67OSj4O1K0PNO+0FPzPX0tnhZex1ZFv7KlM4iFWbtM1aIQHTVNL1bJODH7Itw+2DID0+1KP6p/KSobM2kbXr9XeCWsZU0HhASS4E8NGtTwwX8eOlcGNt7w== 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=AYzr40+X2aVF3Ayj/CulXGvHvmrjzqpfdwE9vWNRAhw=; b=lbTaK+7r74uTxzCx4vqM/um40VXbLlxoOnOWU+seB0oDTKCc09BajDAex87RdD30kSGbT0EUNWU3b+eoCSQyAGOGBDbn1qK70eQDSqYlaPbDg9howMp47oeCq3p5o/EVXW6/q3eImprVSqY/Dw0YQRx8xwwt6aLkESFiSUKdItGeq/0GXbU4LtrgffNjWh4gNmMKjK6fMRrgO+3OmoAKdufWoIKv496s64tDJrGjvsoE7kh+sRYyP28xznJWojAWppgCKm3AV3iPGFEkwbSp1R9Q+RqrntIdKFsMvE1XJOH97T/X1Dh1bnM1f7hXjHILW1IJyTmxMWthJ5ZZgR9AHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AYzr40+X2aVF3Ayj/CulXGvHvmrjzqpfdwE9vWNRAhw=; b=zPEZMFuqk7MCFfoWidBtGZ/pQHXBieAgiqFXMgpSg3W5KNWCoucPAmYkuU//EyZflN4PTxL8dZRG1WXqvep9mftP1Opa/CZ7kuIEVMYRWQ2qNg58OAcV+TzS4MGq5yFN2Q/G9y0kfR1QZHQ2pGL6VQnS9u1X75LXdheqofB867Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) by PUZPR04MB5204.apcprd04.prod.outlook.com (2603:1096:301:bf::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.19; Wed, 6 Apr 2022 17:01:20 +0000 Received: from HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f]) by HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f%6]) with mapi id 15.20.5123.031; Wed, 6 Apr 2022 17:01:20 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: Patrick Williams , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Potin Lai Subject: [PATCH net-next RESEND v2 1/3] net: mdio: aspeed: move reg accessing part into separate functions Date: Thu, 7 Apr 2022 01:00:53 +0800 Message-Id: <20220406170055.28516-2-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220406170055.28516-1-potin.lai@quantatw.com> References: <20220406170055.28516-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a2c7f00d-d1e1-490a-d382-08da17ef1298 X-MS-TrafficTypeDiagnostic: PUZPR04MB5204:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BU4EyBr4UPjsvjFYsDBIWD9j37U0ukcRzOsedP1QNXPed0z08z/lUeXJn/DZIs9A0Or9t8SyUXUE2tuzoOJUqMylv1QU+7RH95K2VIcQWZKcpPEBvmDGeGWQ7Swr/Dj2xny8XCPMjw1KNDUlFMVyx7hiZYJsPH/lsd75NZiAQjby0jsTix0iRGnnyrUKUl9JgKe0qbZJVE+JJ3SDeeHPiWA5kIHRDRXlZRgvqglE3GJ2nIEwgbuM0Ow7WSIbQIumyjSniDTe9IPR7zZndSglZCslYv5teQDl15iaycY07E0BiZyN0uiYdNTn9TTKZdbB+NvA/9t2cxRL1D3dGwTJ2E/4jfmU5CaB8x4TLIeXv1aFczkaQf3yufPL/WDzqy9WK8/aRhqyo8PXO7KhA8sKTGa2V7DVuQ4fiZkgn11vXRqPrd+ftYef0IoG6zedEdPBU6vYReUeF4Yo8IprUhNn08GHeW0N3qnfh2NHwwhlO5S9NzHSuUR5lnoOXbWotvsh2ZlM5TRqxiH0GGiDxrotSmVhpB8FGhBvk13Pjvf60ooLg8xUHKmHaMn/1AcbywY/oritlHD0+oWjTuRSbnF6Rm/7NIh7/emm8Hzp+Iq8bYixswiJCtnDsENgNfrwo4BzfKytKcMA8zZP3J3pDd0HjzfPlnwWrMlmSEmuYGYonclVx8Tn8ibgp3np+dCpljC5vcO8HMrNeANBRV5ZQb5o9g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR04MB3282.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(83380400001)(5660300002)(38350700002)(26005)(7416002)(6512007)(36756003)(2906002)(6506007)(52116002)(186003)(508600001)(44832011)(38100700002)(6486002)(8936002)(110136005)(107886003)(4326008)(8676002)(66476007)(66556008)(1076003)(54906003)(66946007)(86362001)(2616005)(316002)(6666004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?whCk43gK6hAAn4qVGUsiRVojM5rEJAr0J/xgr0rhdDZB5/qpQ1Jby5jiuEyN?= =?us-ascii?Q?/pPdVImEeAoPxG1ye0CG5yAz2/H+GUcZatJ1UtOxbUlHjwSkan03tGNyl/aH?= =?us-ascii?Q?EXC0CcrBm3tlhVvJejG6iUW+YhcrM837xunusZHDAh7jcfitn8xuK+B3b73j?= =?us-ascii?Q?CK1m5HGx1T46FHqMiJR5MeA7pEaZnW/813PeAuxqfQfb3lqn4yFwqYPCtq/Y?= =?us-ascii?Q?/3L0fsgKH35e6F3+bRe69Grvo1wbQh+3plSyjQrbeXZw3oyWINVl1hBNxwSd?= =?us-ascii?Q?ueUI8WgUnk+ET+N0qtDepjXFwVR983aN3PQ7q28k66EreBqcBhXZQOs+eVT5?= =?us-ascii?Q?pmC2VRZBg4Ks2tnwdyL6MCBLZ+fWJTutT3aVOtReFLQ6R6Tf7u0g9jY1JLL9?= =?us-ascii?Q?wbw0gvpP9Kqeri1l6GsM2rmV6aDlcKfbxzls9KdrVRsw4P4UOuKeCHVuv9/1?= =?us-ascii?Q?oh1edbof3RYNBRJh75+oBaTIArtEPDojnwfmLzIL9yyDeX+dwLUISuwJsYxz?= =?us-ascii?Q?Y6x8nyI8Dqdwsmw2ogrMYqpYpgk5nmdSdKLPPkhFzgOX2ClYSohbrL0QorUL?= =?us-ascii?Q?7QMg3pGs139rl35Frb0UisEZCockucpNavP949tDFq8o+R/GBAjFE8RCcqts?= =?us-ascii?Q?/MK3yXwFRy9ZHG2v9p1eMrEi9B0A9mzVh7dtn/43jCt4rl7oZYgDCsthAk80?= =?us-ascii?Q?7FUrJpdNi7+8OF01p8OTfrpdExEWGa4DhinSufahNPjsBmlfIHRwiihwyrnX?= =?us-ascii?Q?AwScjLM/v1PHg31i8it+OSWqhDqhizmsVQj3EGy+iM492N+GgoKp2K4olTsR?= =?us-ascii?Q?DoTnize+vQ8DDquMH94mGbOxCR4sruEETga6TI+8//RqqiFYv6gNFXGRqsFj?= =?us-ascii?Q?KbyUIvWJWaFItiNUdZ0LUWs137hKmC7gNyOZiNW6Ib2hMOH2+mL9CvTcuyGq?= =?us-ascii?Q?9BsawWW7QIEEOA+xyX4gYW2l+6oJ0QB81ExM0D8FGjen26D6HJt1K8eM3gpV?= =?us-ascii?Q?5l45QyMVH/MKW0oswjzMKLLCgLfHLUIhjH1mobaH2gfs27CXD6yvrhXCn7id?= =?us-ascii?Q?RZ5Yt+Kl8RDDCfKbd3ZYfq1XQjeJY/+pAMweDWaJC7NRQ1EXO36ESdlA7GUN?= =?us-ascii?Q?seBeA7sKDHk8m5SAgrRxvZbJSt+Kw1FPTWMyXCaXR4VWNUsKNe4FbFrEl4FN?= =?us-ascii?Q?8NPEV/8BUw2ELjI1I7PP12gN/BExhcaNjsEmcCNu+P+kz38jMgiYOShg0KMV?= =?us-ascii?Q?5bd10DJuAbc5h5DjAu0XXPQD6ho0yYf2j3HHhEo/T/TtXdsrmBmil+J1tZbg?= =?us-ascii?Q?0SuLkODEdaEzDNIzhXAeSPl1hFIlAsWU6FMG7m7sBfjjOEMfNv5lrD4TijUt?= =?us-ascii?Q?nVa1fgxu/vR2QbmzsQtyoCCj4fZ5ZjAfcVQriv3yJJxoFrpO9XuxgN5/DFLk?= =?us-ascii?Q?Ys9XnWc9ZHz7lSOFYU2fm+96dSaA+Mzhzq1+uzT34ZaSL6FAwn934dXddHsg?= =?us-ascii?Q?nbATMH1VSqlIlga725LBUVEoS82KrSSRpjEypCmYgGJrNBIvNSX/WqAC1MGo?= =?us-ascii?Q?fnkgcQUpLRGFtbt0/BUZ4Uvr6Y02SGSQoziYYm93FS13W104GGVfXfGWGTia?= =?us-ascii?Q?5bljUjcfQF5FrzMR13CR1YUMj4ghseGIso9MzFdyFB6ljWsJqgQ1/3DzQL9L?= =?us-ascii?Q?MPPg0LdQc3/ZEnE9zqT3lHV3dQc7wOFBk18wU86N0ZPVaSDJ6lBFHnSbkmG3?= =?us-ascii?Q?GGTttrMoeNmrefNHZtibOHlWtRx2df0=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2c7f00d-d1e1-490a-d382-08da17ef1298 X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB3282.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2022 17:01:20.4693 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I2Rb0YHPFL3MQKwYO+9qQKKGqiwET8IY0fZKirnd7qRx7LVec/M1RfgZA9z8iffTMsMXlQoNKAdVVkjk66/uKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUZPR04MB5204 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add aspeed_mdio_op() and aseed_mdio_get_data() for register accessing. aspeed_mdio_op() handles operations, write command to control register, then check and wait operations is finished (bit 31 is cleared). aseed_mdio_get_data() fetchs the result value of operation from data register. Signed-off-by: Potin Lai Reviewed-by: Andrew Lunn --- drivers/net/mdio/mdio-aspeed.c | 70 ++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index e2273588c75b..f22be2f069e9 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -39,34 +39,35 @@ struct aspeed_mdio { void __iomem *base; }; =20 -static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +static int aspeed_mdio_op(struct mii_bus *bus, u8 st, u8 op, u8 phyad, u8 = regad, + u16 data) { struct aspeed_mdio *ctx =3D bus->priv; u32 ctrl; - u32 data; - int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, - regnum); - - /* Just clause 22 for the moment */ - if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; + dev_dbg(&bus->dev, "%s: st: %u op: %u, phyad: %u, regad: %u, data: %u\n", + __func__, st, op, phyad, regad, data); =20 ctrl =3D ASPEED_MDIO_CTRL_FIRE - | FIELD_PREP(ASPEED_MDIO_CTRL_ST, ASPEED_MDIO_CTRL_ST_C22) - | FIELD_PREP(ASPEED_MDIO_CTRL_OP, MDIO_C22_OP_READ) - | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, addr) - | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regnum); + | FIELD_PREP(ASPEED_MDIO_CTRL_ST, st) + | FIELD_PREP(ASPEED_MDIO_CTRL_OP, op) + | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, phyad) + | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regad) + | FIELD_PREP(ASPEED_MDIO_DATA_MIIRDATA, data); =20 iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL); =20 - rc =3D readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, + return readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, !(ctrl & ASPEED_MDIO_CTRL_FIRE), ASPEED_MDIO_INTERVAL_US, ASPEED_MDIO_TIMEOUT_US); - if (rc < 0) - return rc; +} + +static int aspeed_mdio_get_data(struct mii_bus *bus) +{ + struct aspeed_mdio *ctx =3D bus->priv; + int rc; + u32 data; =20 rc =3D readl_poll_timeout(ctx->base + ASPEED_MDIO_DATA, data, data & ASPEED_MDIO_DATA_IDLE, @@ -78,31 +79,36 @@ static int aspeed_mdio_read(struct mii_bus *bus, int ad= dr, int regnum) return FIELD_GET(ASPEED_MDIO_DATA_MIIRDATA, data); } =20 -static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) +static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) { - struct aspeed_mdio *ctx =3D bus->priv; - u32 ctrl; + int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", - __func__, addr, regnum, val); + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, + regnum); =20 /* Just clause 22 for the moment */ if (regnum & MII_ADDR_C45) return -EOPNOTSUPP; =20 - ctrl =3D ASPEED_MDIO_CTRL_FIRE - | FIELD_PREP(ASPEED_MDIO_CTRL_ST, ASPEED_MDIO_CTRL_ST_C22) - | FIELD_PREP(ASPEED_MDIO_CTRL_OP, MDIO_C22_OP_WRITE) - | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, addr) - | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regnum) - | FIELD_PREP(ASPEED_MDIO_CTRL_MIIWDATA, val); + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_READ, + addr, regnum, 0); + if (rc < 0) + return rc; =20 - iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL); + return aspeed_mdio_get_data(bus); +} =20 - return readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, - !(ctrl & ASPEED_MDIO_CTRL_FIRE), - ASPEED_MDIO_INTERVAL_US, - ASPEED_MDIO_TIMEOUT_US); +static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) +{ + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", + __func__, addr, regnum, val); + + /* Just clause 22 for the moment */ + if (regnum & MII_ADDR_C45) + return -EOPNOTSUPP; + + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, + addr, regnum, val); } =20 static int aspeed_mdio_probe(struct platform_device *pdev) --=20 2.17.1 From nobody Fri Jun 19 07:17:34 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36380C433EF for ; Wed, 6 Apr 2022 18:18:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240484AbiDFSUb (ORCPT ); Wed, 6 Apr 2022 14:20:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241573AbiDFST0 (ORCPT ); Wed, 6 Apr 2022 14:19:26 -0400 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2091.outbound.protection.outlook.com [40.107.117.91]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90C6EC0560; Wed, 6 Apr 2022 10:01:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hzwF1sei2REk72Br4iQHiVBEej/f9c1o6GmQU3uPDXLR6Q2janAATCVyzRW5mFBH49nSDUQT+ZbRAtVklatUfjzOqvp6mXpqq6kTNnZsLNYazKAVjmnbSMsd00kbM6U0kJETXQyveL7rKzIapXuR3TuHXjkFl9oCRm+BkrF67IA5oO9M0u4efPIYsc5p9j/+NJ9v6ss+q7KkkQmpNiFYMJxR9wLfKSETVEgqvsbBLMZPw5nQ24CB/n0wLhufo8CV5kUIYLaLOlh/Z5ecLGAMEVepOb+tJhFTl1VHPqWL2hzxB9+3RzReGu6IoHngeoQjW+RZ4jyqzKYQcaoyrJ/zBQ== 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=VXb9X5yBGCE/Yv1MuBWWaiCSAPduSoTpjKKur/aLeSI=; b=lFnKwbFgwSQewCS8G72L4SkNNp40LLwKihN80L5uDNrG5OnCTLzehsHlSXRnewbYEPBbAYi6Zpt5OnqrYqGlkJB9LzCH3FO6UQz9AGoXrd7Klo6M3vfekb2pAOONixnuyR1AQG0H0OrVI+K6Ri2uCpF0L5l+fl5VHe8flsasQR2i/0CgCW095jzNvSa80OhPNB+/iLvuCntk/ozNYovsTepAySEuDKONp/BDDDaXVxm5QzQYDqZgNqbcm2PycKdVD1rFE1ls7LdhdXvVwolTANK/vC9Z/R6YdtW0BOHs17GABKl8zr616+jtvcXEvMOY3Gu5tOyLWgrNl3QJjSr+wQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VXb9X5yBGCE/Yv1MuBWWaiCSAPduSoTpjKKur/aLeSI=; b=TJ8uwOryV9SIN5c0U5xCMPT1DTJwE7OOun6mwI0xWRtL3MHDilGyxU5pTxEFp19AJcd48NksAuP2Lmb0iu9/MA/K8FoBd7caX7wqkRTGnBcby0doJML97U+TVHNbMxFDl7Pb8f4pm1pYCOl0ab5QeW42jLBcg7yR+nH6y7/x40I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) by PUZPR04MB5204.apcprd04.prod.outlook.com (2603:1096:301:bf::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.19; Wed, 6 Apr 2022 17:01:21 +0000 Received: from HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f]) by HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f%6]) with mapi id 15.20.5123.031; Wed, 6 Apr 2022 17:01:21 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: Patrick Williams , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Potin Lai Subject: [PATCH net-next RESEND v2 2/3] net: mdio: aspeed: Introduce read write function for c22 and c45 Date: Thu, 7 Apr 2022 01:00:54 +0800 Message-Id: <20220406170055.28516-3-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220406170055.28516-1-potin.lai@quantatw.com> References: <20220406170055.28516-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 87c61efc-83d8-4fa9-cd92-08da17ef12f5 X-MS-TrafficTypeDiagnostic: PUZPR04MB5204:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ren9hDA4e+8v7f5c1OE2OKwbg3NwkaFelHbtUJFF8B9TynWRID9Tl7H7vWc8FNtXa3LsTnipZQrddSzifdapBC3bliSN9yphRb3zxewOyRmW4Sn1QZ6p8N5ztLtCds4tFKiMVBoz+tjzGgW3PGMzRA5aXpjPgAqqF6hlnINBJGsBy3a59IX4ZQmcRHPiFNBPY4nrc3X0kugoxQ+FPO7iIVEmX07J4bnY7ibaIUKSMSjzfHpPIa2w7UuOOLHIPgC7QguAHUZGTzn97vS3cseWvlImpBIjh4MoNJpInFeFa/Hcb2H9QN/wEng0PCI9/XTH503WGbeGx0jKgbsUQD7t4X/xzETFUonxEs/HUv6d8+1hfNLx1Tcd67+A2FuZlvfAgk6KM/Sy3HXVO6P8SWayztNeMMPejiLHeSGb5bR1jkxU5pZNjlgLmTrVmeiWTkF12wewfclnanlSDnc2noP3qg2evC2i7Oht8I5A6dKlIZ68vCYCJAVUBT4Mro8A5Qj3recUXOlQEjXHrVk9LKVjuej7v7dE4ab6s0GDYv5b4go02BGFrXibKFtdBgo5lDIboNj2GFhSkf0Od9s6BkLjWx07HXS1SbuWKpxpdaWrLm1i00R0E/nC4cki7WyIP5x1Rf34imggiZKuT3+M9g/kG96l7vKAMBD8Dg4iQ9YeVZjtMXzxZtkclLAu9ARHmC94hDs0xEOERlFUkzb84/KZWw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR04MB3282.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(83380400001)(5660300002)(38350700002)(26005)(7416002)(6512007)(36756003)(2906002)(6506007)(52116002)(186003)(508600001)(44832011)(38100700002)(6486002)(8936002)(110136005)(107886003)(4326008)(8676002)(66476007)(66556008)(1076003)(54906003)(66946007)(86362001)(2616005)(316002)(6666004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ygTYtSb98gnQ5ZFsq4p4yDGD7JmFCZJVIQspdf9VG06jJ3Y/t2fYxXIvta2b?= =?us-ascii?Q?xRe+/g3Gx607loUHvzodKozBUq49irhYLQRSWJOLFWamui+DmbHr2hiBjpln?= =?us-ascii?Q?EKocgIWyHwuRzgh/F+evtU+OZoRKhpDk3a+hhDZAaqkLWlYakasaIM3FH1Wl?= =?us-ascii?Q?tpRkudCk0//LQrQaXNXgxYSBT9iLpXNb3z4akGKELCE7pIoR+33fS9xkt1c6?= =?us-ascii?Q?xYoI2PGoB3sUTkALWhU4cSnLp9ZiAAU4nesPH85XxMeUxp88RmVXO/ZVzCuZ?= =?us-ascii?Q?vDA+mNXms39gYwK3SaCnkvpN1P+2Pf/6boXbUJjYp5zfLM9wXyh4pzXDyPuU?= =?us-ascii?Q?oydtihoZ94YqhZaUQ41/e+qV5bU7odzJP0Bn4HNNHBCh3I6V60OcBDUZbW8S?= =?us-ascii?Q?kwuTvZdMsiFoiHB8XmpmeJEKIPdlZk9dmAP7qVidmx2fnwZdZwDBEfVARetB?= =?us-ascii?Q?rqros6YBjaDRXn3lEEVUu4CiSUKyMsQ+ItPUPlwvXnOOSpLHafuSu8/VkpOh?= =?us-ascii?Q?rdvXfUOvMJrOuCNFUqDdxbjnZKQMJj/EKnlWQBUC0X26rhOGaV8zqFhSzrl5?= =?us-ascii?Q?oP8zTLlan46wTo3VMguZMAfqHfUCm0qV1frPhA0jmZPjaDFLPkTwbPOBLKP/?= =?us-ascii?Q?wRBHZxVjvHkC3MdTE9d2tX0eOW6R+vPZRhuYrlUwU3ZYy4k1KGNxjbeSuc6Z?= =?us-ascii?Q?2TKMXKntmG6FpUWjAxkfSkFPxu6sos7RpnAOcIySEjedjxyiRSqowAVVdGvo?= =?us-ascii?Q?lIA4we8X5F+B1rWfHBnSC7ygMwg3T8SE4M4nJKlA2GrAb+Hyy3F/nNIv3CCe?= =?us-ascii?Q?VQCFkPTWI43//HsrzCqPALCbmznRXrvar9Gnp7jdylSrjtfLBEtCbYu5QyGU?= =?us-ascii?Q?8XE/XAnrQljHUhpDZNAkHuw8SfXxhVWtaXUDOpdTqZN/3Yc09h2sRSCS8ZCf?= =?us-ascii?Q?svKbdMKb+deWblD3ZiXSBb1ylxlqZ4Gw0DfxfmYTilubqKucjDUm0XqTLkoy?= =?us-ascii?Q?8IDC2iZIkt1t7UZFwv9Pxniwt23yNM3Pi8aLuGENsPM/xXUL5pmgLrIUr4Vy?= =?us-ascii?Q?hRq3o8W6nZkYHCVNEfFPyp6lBFV19ZiFM84Unj3xopWU9Snp6Klhinoa6LET?= =?us-ascii?Q?SeuwRwOwwMsJj9O3ILnjeGLm6FAnZoC9o8Xpew771PkD2PnflugajaAtkMCk?= =?us-ascii?Q?SZNJCoht2l5LP386yksYMNOJlKpsosOXtpLeo0JyOChm5pE90HrifR6Ghy4k?= =?us-ascii?Q?ZQWu+I0Kh7mjhqouE72vn9vtFBa3qEF8oHBJGKsujBXX7g6771XJh7+6K8JK?= =?us-ascii?Q?qXosR+c3/KpRKHn0+7hkn77DK0iGNX/NE2qboJwyjCei+UTH1sEdzHwWBBeE?= =?us-ascii?Q?5Y95F9uFARpHdzEyiLrWMDs0DOXiBpoYnpCOHRSLG7vYbVZSY9kZ6fVdPqRx?= =?us-ascii?Q?rBDR8hQrt1kBG0svcpNuIMyBnUjLz9BH2O3AihVHs+4yWFNWVBEMC0Okn9M9?= =?us-ascii?Q?QIMtdQNcIOHTpl//iMOjMK0OR+vzpGQaFUDJ+bKjks43eOk8a7biY5MA0qbE?= =?us-ascii?Q?Qh0viAS/5rOVeog0B9QNVzdXWwMArYYpJh7+Oc3G1PwmEpx150YbLXHgwzjq?= =?us-ascii?Q?3PccVXtsOUz5GrPYkNSSM8uqoljk3W6oBDWaM21UtvHBVfX7BwksZNRvQGOm?= =?us-ascii?Q?zxtUCyPdRczFG31hF6k1hJdICOz4DREgBVw83IQ8qaMJrF7SkFSLYtm/L50g?= =?us-ascii?Q?X9n5EXynt5hjMkTqnIVgg0pUL+M9DTI=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87c61efc-83d8-4fa9-cd92-08da17ef12f5 X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB3282.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2022 17:01:21.0317 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: z+XSGwxLcGfphvXytfNwZ8I0oMq2F4MIh+Ef4eOYmW6Vhb2YBz9dq6m3Zav/T3UVXVN6SRbBLwRXeHFvS3YztQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUZPR04MB5204 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add following additional functions to move out the implementation from aspeed_mdio_read() and aspeed_mdio_write(). c22: - aspeed_mdio_read_c22() - aspeed_mdio_write_c22() c45: - aspeed_mdio_read_c45() - aspeed_mdio_write_c45() Signed-off-by: Potin Lai Reviewed-by: Andrew Lunn --- drivers/net/mdio/mdio-aspeed.c | 46 +++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index f22be2f069e9..5becddb56117 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -79,17 +79,10 @@ static int aspeed_mdio_get_data(struct mii_bus *bus) return FIELD_GET(ASPEED_MDIO_DATA_MIIRDATA, data); } =20 -static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +static int aspeed_mdio_read_c22(struct mii_bus *bus, int addr, int regnum) { int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, - regnum); - - /* Just clause 22 for the moment */ - if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; - rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_READ, addr, regnum, 0); if (rc < 0) @@ -98,17 +91,46 @@ static int aspeed_mdio_read(struct mii_bus *bus, int ad= dr, int regnum) return aspeed_mdio_get_data(bus); } =20 +static int aspeed_mdio_write_c22(struct mii_bus *bus, int addr, int regnum, + u16 val) +{ + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, + addr, regnum, val); +} + +static int aspeed_mdio_read_c45(struct mii_bus *bus, int addr, int regnum) +{ + /* TODO: add c45 support */ + return -EOPNOTSUPP; +} + +static int aspeed_mdio_write_c45(struct mii_bus *bus, int addr, int regnum, + u16 val) +{ + /* TODO: add c45 support */ + return -EOPNOTSUPP; +} + +static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +{ + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, + regnum); + + if (regnum & MII_ADDR_C45) + return aspeed_mdio_read_c45(bus, addr, regnum); + + return aspeed_mdio_read_c22(bus, addr, regnum); +} + static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) { dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", __func__, addr, regnum, val); =20 - /* Just clause 22 for the moment */ if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; + return aspeed_mdio_write_c45(bus, addr, regnum, val); =20 - return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, - addr, regnum, val); + return aspeed_mdio_write_c22(bus, addr, regnum, val); } =20 static int aspeed_mdio_probe(struct platform_device *pdev) --=20 2.17.1 From nobody Fri Jun 19 07:17:34 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D95CC4332F for ; Wed, 6 Apr 2022 18:18:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240387AbiDFSUV (ORCPT ); Wed, 6 Apr 2022 14:20:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241575AbiDFST0 (ORCPT ); Wed, 6 Apr 2022 14:19:26 -0400 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2091.outbound.protection.outlook.com [40.107.117.91]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2D90C5590; Wed, 6 Apr 2022 10:01:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+MUsWDuQKhgGFw0K/aGs8LOxWg52Ab/TBzyw9g1QWo74GGN0XWJCkNlFVbiA6pL6Ocx5NIpRVw4yyW7YH9X51N4cCCFlgk6hSgbPYZr5xXZNlEvfG+a8IF60+f1CgCyJus456pE+8XzbNtIPnW9qkaZCIPUZTMOiettIKJfnLnGaqt0K1RLkuq7T6PrdVurp5MuQ4b+KuW8Uv4uaDqAnGBM4F9z0xCIXclpDX5NVh293bZuz1QtQxtNYWVs+i+wQr6fBYPMi7EHh7VRRRvp2enDhONpa5Itk7zdChjM/jCurwBY2SaaiNOc4Uie9FxF0tLvTpRbenVZ5QVa62pDTA== 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=edq+ryQ73PscVubk4QO6nQR8gN/3+Nc3wCNr3YSWrhI=; b=irtFICiVnAwOPzYyiL/KL8kbRtwox4AXdIlYUQDEFpyKnn3KBVxfYnRTVkk/wSI2AehnRpUhTtwdEAwHFfUOwN4uPAwaRMLZTE1Bn1Il4yipNjlMaHIlpOLOxTAgdnvLO0OOGqjSl+pnsc2/Xu+oKQ6AH7gewE7yzJ28vpatvZTuhPhV5ipynKMSGa7FmaTr6XFU/+YoNh69LtaYLWXgZUenON0CLmxKiS6LUYXP5aXrWN+gvbcLvVi0wqvxCdp87dijLfQZhcT+/jZRbTPFEHFUaYBOmLc+CcDRPapXkKah8M99AeTJlbMlEPAJS1dJoMkMFZfZK3Dbmnny9dx/0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=edq+ryQ73PscVubk4QO6nQR8gN/3+Nc3wCNr3YSWrhI=; b=uK652hdoqStu46Lbi7OqyWwmQLwhVQK4TA7e29lHGZcN7dtmFAFvKbRGaHartWdRVpG6InGxqDgtaOCyRmTX2/2qOImx7tUXNCx9NabZw54Oz/YlwR1lM2fY6Q93TcFvFxjp7aHYAcH1XnRernKgrTl3qLAXKacHXboQSCG8i64= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) by PUZPR04MB5204.apcprd04.prod.outlook.com (2603:1096:301:bf::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.19; Wed, 6 Apr 2022 17:01:22 +0000 Received: from HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f]) by HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::9c61:c8e7:d1ad:c65f%6]) with mapi id 15.20.5123.031; Wed, 6 Apr 2022 17:01:21 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: Patrick Williams , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Potin Lai Subject: [PATCH net-next RESEND v2 3/3] net: mdio: aspeed: Add c45 support Date: Thu, 7 Apr 2022 01:00:55 +0800 Message-Id: <20220406170055.28516-4-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220406170055.28516-1-potin.lai@quantatw.com> References: <20220406170055.28516-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7e02ae51-2265-406a-3e7c-08da17ef1349 X-MS-TrafficTypeDiagnostic: PUZPR04MB5204:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NeB0KJmZX20JQZbSa2L27H9Z+SEJzkE949/av7Aot3cyj848Z2leiTy8NE7LfFtosi37nNYMhM2V0x0PyGq1ZpTyAcLBqLAUXRhvfBPEFrbWQDnlEhFzlQR9F+nhj6xsaS4UptCeldK9C80zY0OgsXYJdfth/bPq47XImShye3T45MoT49OjeGFTONVErMpHKvYGNTrvdPTsT653x86we2d83Wwrzj3PrvO+SJ1jjOYj1ARvehSW//03P8n/lOkOClWrEAWzum/kOMt0orf5I621E8xqVnJp1ForuoFDtFgDPD47Jcudk8BkGns3dSv8g6AJC86XWNQcjabZBzLe+L5vEXiwuQkKN+Mh1E9YkaBbZlFFIaE6MhBAL8di8dCY9P+T6WNfbYUApkdi20OwUlk+WHDtxBLvajMV6B06lffxlN93Se2i0kRRGJgw/tdVvNeAq0e//j2uhty5g3F1vHRcO0arrEXWBlrNXn8LI85Eny+aciEjV6Pkf2n5Ws1uLe7S4gW8D2Onbg3qA/kIUkbzsztUx+sLOWkeEGPi9OLB1pQmu6VuLjhMjb3JVnOy9z9eFpzOysZkqO1EmVGNVqAx2nuvm3awlTCVQ47TRe1o7iuDaTnjvIgsokXteGoLlZEsufxXX41N6V6mnIMsgwJNmswFwZAJErEEKypTnfsyr2fJZlgy5FAWHW7gZpbT X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR04MB3282.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(83380400001)(5660300002)(38350700002)(26005)(7416002)(6512007)(36756003)(2906002)(6506007)(52116002)(186003)(508600001)(44832011)(38100700002)(6486002)(8936002)(110136005)(107886003)(4326008)(8676002)(66476007)(66556008)(1076003)(54906003)(66946007)(86362001)(2616005)(316002)(6666004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zX/h3bxOTUAGr4I8r8LA0eFGfdaSdLzYtYtDPU6yv2LP3TVZyqwME2UUEo4F?= =?us-ascii?Q?/TafkZKmqQrdga8p5/wOtla9ke/JsyrbWedsM+xkf9F+jImHxpL2rVVkdeAV?= =?us-ascii?Q?7gbPel2IBvfTiRnptwXWPc4B/uWRfi4wZm+UE3yHeFm5zyt64Un7GXb2b0ME?= =?us-ascii?Q?g90sTKnX4BaRkSctb2KCzJds4slJlsVh7J+M4b/v9RgviQ1P1Z1tQRJcbHai?= =?us-ascii?Q?4De+hyD8W0+Q77ebWusdNac63i0BdjbSFcEMaxA2y9ZQSAk9cmVFLa7ufzxB?= =?us-ascii?Q?zJRBZHjk4+3FtFt2htypNIpY4N8pJw3CMz9Xg2RpSZ/bXDk4jceQh6D6RAAS?= =?us-ascii?Q?jjyonhqLo1Rye5iFQSsHs4O0uSHfj+wecnptwqTYoJ9qJJlJSVkfHUcedCCz?= =?us-ascii?Q?iLXVLR0O+OVduZLQtP4fFK76g90kgSaJJR0RH9K3oJXoD7I7V6gGmqTPAtX4?= =?us-ascii?Q?7pOGsXZRWgBaXWIuXMhQ0VKx4iLwDUKzozXEUdYMVzGFMyJ2iQ+ZZ2PQ8DpR?= =?us-ascii?Q?DWkABsQWuNNKWgtZARrYEllVkiX6FvNjnl8KmoC+JJVGL7uAhNRwjQEXAajr?= =?us-ascii?Q?cncfk/2OmHQiNcT4y16Bl6q+iDAQMYKE53HLQbgMxBJaYmKXaT9tYMB6p+ko?= =?us-ascii?Q?xYwzRjyIDchl2LrZqpQ57I4rUF/hWyzjkAd+gSDO8w2uN7XAD3kJAKno11fC?= =?us-ascii?Q?WKpLkED4V7p0WIikUpzciF3Nd80cuiNVEqBd4kKQA2kFFenn9wZ65tYfWA1m?= =?us-ascii?Q?MBtUN+T8VzvOWgvVIA/yymDCzR8LEux5e5jS2jFDJPAwOKsKmIOm0CjLuXPc?= =?us-ascii?Q?m9H0r/uuEPNCGOTPHn1HH7PYVHlciZ2p1YZikzCpiBehaVsUsEMSz+a42KCH?= =?us-ascii?Q?NR1FmZYg1K+y0/XbYbQC1txaAqff1hgWv03G1QI/9cPoaqTkMlw4WXnVuvLz?= =?us-ascii?Q?w6yDetLseWRjbGn/hdxuoRk3omO6pFAdk43oXD75CGACGC49wCrLTe4dZsoY?= =?us-ascii?Q?o2dkLsjlb3u7/GC0aEUDFWiQI7a4yZYLHvwIewfbXr5BIeuFMBLIEQl8Gx8N?= =?us-ascii?Q?jCTFb5ZxtvbH7/v1NrmUKE4PzgEu1hJMrfUgSg7YI8UOZjY/oMqL0wt24+ny?= =?us-ascii?Q?0oJqykuC+yVbdKZ1e84fGmXFa4pBAyGcJQNh1dEb84dIemN/nKgce2l1Xryd?= =?us-ascii?Q?9Oy5DfST6z4g3oU6e+hM9XjQJTj4OmV85XtfeYUn65E2p1e57dYZ2GyepWXU?= =?us-ascii?Q?GIyzG5++Yl3I9IO9YFJfNWKPduN3gYnHFytD0RTPJHQmKmC2Wi3DwWimX0ce?= =?us-ascii?Q?A26/6UWnIOonVAtUQgCXji+xsrwDgEqkEFl85sG4E2iwredTZunDrMWXzWYh?= =?us-ascii?Q?MKxg7v/GYyaIIxBcx4iP4bImnvUV1N7A29CVd+M68hXXP5gUhsVGRn9hPccC?= =?us-ascii?Q?48uJcqXqUqRMtiUA+agBujqSH/mHXLgAwdtuu5z1T5bPYS0ujPTOy5/btQRR?= =?us-ascii?Q?ELlDD+9SdRH5dMKdhlMqrWthYXtFpefNvc1tDOTgHIIOMYZbsKPxS6sxcpF6?= =?us-ascii?Q?GeWLCv0s4PqiEJ+6asH0mOF08xbU8pyakn6QS2POJWj44WT36tkMPnvR+rth?= =?us-ascii?Q?ijoPvu0leUQUF60F1TK+KrBTxwfuHANVa1GtA4lQZ3oC8YOZzi+EDpkUaa0Z?= =?us-ascii?Q?klipW3+E7XgPqx0oOuoyS6p7aGv/ZxNIQ3D8aSZB9uC8PntM+LYhPsyXf4bl?= =?us-ascii?Q?yw23w3Mrml1oXjyyO7HNvSCvowR2lXs=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e02ae51-2265-406a-3e7c-08da17ef1349 X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB3282.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2022 17:01:21.6098 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jKcOkWOYHuqcVVnre9VofAPkLkWbMSVe+DRQMkv1uEi4kpuEy3GSeabFplU8mEcJz00PcCRV6aBovRBzXOyDnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUZPR04MB5204 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add Clause 45 support for Aspeed mdio driver. Signed-off-by: Potin Lai --- drivers/net/mdio/mdio-aspeed.c | 35 ++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index 5becddb56117..4236ba78aa65 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -21,6 +21,10 @@ #define ASPEED_MDIO_CTRL_OP GENMASK(27, 26) #define MDIO_C22_OP_WRITE 0b01 #define MDIO_C22_OP_READ 0b10 +#define MDIO_C45_OP_ADDR 0b00 +#define MDIO_C45_OP_WRITE 0b01 +#define MDIO_C45_OP_PREAD 0b10 +#define MDIO_C45_OP_READ 0b11 #define ASPEED_MDIO_CTRL_PHYAD GENMASK(25, 21) #define ASPEED_MDIO_CTRL_REGAD GENMASK(20, 16) #define ASPEED_MDIO_CTRL_MIIWDATA GENMASK(15, 0) @@ -100,15 +104,37 @@ static int aspeed_mdio_write_c22(struct mii_bus *bus,= int addr, int regnum, =20 static int aspeed_mdio_read_c45(struct mii_bus *bus, int addr, int regnum) { - /* TODO: add c45 support */ - return -EOPNOTSUPP; + int rc; + u8 c45_dev =3D (regnum >> 16) & 0x1F; + u16 c45_addr =3D regnum & 0xFFFF; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_ADDR, + addr, c45_dev, c45_addr); + if (rc < 0) + return rc; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_READ, + addr, c45_dev, 0); + if (rc < 0) + return rc; + + return aspeed_mdio_get_data(bus); } =20 static int aspeed_mdio_write_c45(struct mii_bus *bus, int addr, int regnum, u16 val) { - /* TODO: add c45 support */ - return -EOPNOTSUPP; + int rc; + u8 c45_dev =3D (regnum >> 16) & 0x1F; + u16 c45_addr =3D regnum & 0xFFFF; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_ADDR, + addr, c45_dev, c45_addr); + if (rc < 0) + return rc; + + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_WRITE, + addr, c45_dev, val); } =20 static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) @@ -153,6 +179,7 @@ static int aspeed_mdio_probe(struct platform_device *pd= ev) bus->parent =3D &pdev->dev; bus->read =3D aspeed_mdio_read; bus->write =3D aspeed_mdio_write; + bus->probe_capabilities =3D MDIOBUS_C22_C45; =20 rc =3D of_mdiobus_register(bus, pdev->dev.of_node); if (rc) { --=20 2.17.1