From nobody Mon Jun 8 14:37:25 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010051.outbound.protection.outlook.com [52.101.69.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C5D63546C4; Thu, 28 May 2026 21:03:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002232; cv=fail; b=QiNgewDcUfN4KqTIBdGk7m2nOhORMZjq0maPPLHU/rWyYfnChgl8NQIbxX4LdjHkeYjVJCCZRDPPIKVrI/Jx2IrJ/dKZo+pyoIeyybWZ4ncYqY98KMzJyuAnMbz5bJlEfamG0IVH2cZtIPzUcPajSLm53GwGsvlAZnCOHtdMhcM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002232; c=relaxed/simple; bh=GEIoPmukQZn49SeLa9eWlbI4U9FmZJ/u1V2PSUJYGHI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=StXqgPCtcVsoCVNau3ps5cukCk1UO7s3eqwhW/ZCOxyAugGVi388C3iaqj4l6cN7rwACrKgKCySh8VLxQK0ipHVLiLypdTXVjgX38Mm2Rwf4NZX/Q6BbbBgUWEhlx10S83Ulm5nkg4yIfEcGExQmc23KpyJTUSm4DecvCakSqYI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com; spf=pass smtp.mailfrom=ericsson.com; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b=YPGtZQu+; arc=fail smtp.client-ip=52.101.69.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ericsson.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b="YPGtZQu+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KxKnQ6ucYoLmJJreGxnAyraY44gJWINvp9L6b3Yk+DtIcw+Ke2O3ODMeL0l82kbyFbeHJHLO4FuErdIt0AUp0G1lE9byLAM0FcS7xLCDozSY3jg3EsjQ4wETCDOMZNJtAEgO5GrgzqbsJG3CwDJjjIwupEOf3UZ2GJzAh3egLM7SGzqSt1CcJywIne9ZqdqRCWP/M6fi/wVB8k0aTWSprcEX1KtwYkrcSikDv7n6UepnAQFgwK+YtTyablKaMkTYsRSSoniAWOo+2BFyHLdleheGVvElYnAT7qEliEIaM7SOAW847m+8ExVUep/kcCP7KN6bWDTGuIK87BP8zki4iQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kT/4iiaoCSIZKJLQ5zVn+FpzwUqWSbbtV5eqOxfGTis=; b=uZqSHG3/CZ16+UWQs4lQ3nxDdCl433lDdPfwkJC9OH3wEOVWhObd3N6KFAh0TSQSoe/jlr9VGtP78sT9Hv58B+4A1xxqrhtmXXhIGEZmH5XnMSjtVqGIUzKhiNdV85u+Xxl1wnsDdYkhXokTs9uSl0oqXyVTRyJwz/Mm1boemdBK6MCP931iJYcBBtdckch1hc3dQLyX1B2z+wjg3gCa3AvLfZvQ8wdBcPfdrynsV5AmZOOcUZwm8oIbflJ3PBcC7teQF6gxlibv1v6Qpmkl/dXFoEEjbyUFJVKmAsag10/CtQ7EibXF68AaqWdeV+VikOFsy+QxZnzQYvOULykMng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=davemloft.net smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kT/4iiaoCSIZKJLQ5zVn+FpzwUqWSbbtV5eqOxfGTis=; b=YPGtZQu+RJrVB4gi8hmfpb8K+/Jh6oX445jzu1apxQR8SuwelPrXjvof1lbthydEZXoht5iW/1QMDXQmfKbf4yRpHnxLARlS70tbP95CJDcQwnX1Ui7QEPU7o/GCAawERXBNM616lhhQCq25nDibimlo0t7kTanRiCCbHB/1f/slBHLa62Rz6IvMzd9NUuUQK8aG+8PN0iuvAvMUxuw/Dof4iJi7k9dkZcn9jYkz6DnxTo7SIp9/hQKC8EeVUDa8RwS/d3Zc1LwHEQfUwI5lnii6ue878UKelcM2m9aBD9MW0VhUCa5NwD7y71z5O4L3Q++bjFXncuHS5BRQLU2gWQ== Received: from DB8P191CA0010.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::20) by PA4PR07MB7504.eurprd07.prod.outlook.com (2603:10a6:102:c8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.14; Thu, 28 May 2026 21:03:45 +0000 Received: from DB1PEPF000509F8.eurprd02.prod.outlook.com (2603:10a6:10:130:cafe::57) by DB8P191CA0010.outlook.office365.com (2603:10a6:10:130::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Thu, 28 May 2026 21:03:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; pr=C Received: from oa.msg.ericsson.com (192.176.1.74) by DB1PEPF000509F8.mail.protection.outlook.com (10.167.242.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 28 May 2026 21:03:43 +0000 Received: from seroius18814.sero.gic.ericsson.se (153.88.142.248) by smtp-central.internal.ericsson.com (100.87.178.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 28 May 2026 23:03:43 +0200 Received: from seroius06448.sero.gic.ericsson.se (seroius06448.sero.gic.ericsson.se [10.117.92.228]) by seroius18814.sero.gic.ericsson.se (Postfix) with ESMTP id D8A6B4020B4A; Thu, 28 May 2026 23:03:42 +0200 (CEST) Received: by seroius06448.sero.gic.ericsson.se (Postfix, from userid 7434092) id C8CFB1005D6A; Thu, 28 May 2026 23:03:42 +0200 (CEST) From: Fidan Aliyeva To: , , , , , , CC: , , , Thomas Eckerman Subject: [PATCH net-next v3 1/3] mv88e6xxx: Add mv88e6352_serdes_get_lane Date: Thu, 28 May 2026 23:03:08 +0200 Message-ID: <20260528210310.1365858-2-fidan.aliyeva.ext@ericsson.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> References: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509F8:EE_|PA4PR07MB7504:EE_ X-MS-Office365-Filtering-Correlation-Id: 20524871-5869-4215-ebe8-08debcfc9a4d X-SMTP-Server: smtp-central.internal.ericsson.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: EZNjg+ILHUFMKqduv8a2I2h+kHqgZQpnKVFdujYHf0YfyctwTPV1sxhXnkIjLfvHMLUgH8brx7K0B3LseavRgJTnwCp6UB7p62gx7OUvwsplXqiwBSyJHNTKSjj2xKVTwaBkphEM9PlbijmMoRzXo+h4rsyjYB9zB7JKfLklDTYumcOcvIwfi+RFD8kuAh5H32C846LvelpPuIqSLBrZrrfkz3GE3+ofgsBNxx4Zrm40J33sL8VDSnMcdnvs4YywgplK9WYtVnzYhgBEBYCbSexPpf4IJ33EDq6x5e7Fw36UQ+lCJWGi8W4S0yas7VUHFp7eGNKCyEsBnkOFHdoRjqLQlXW5kS+Nd9MmjwOLAG1uz3dX8kIdGLKBr4/rtfbqeepPH8QBSoBUwYTlTeIeCnMRpFc8dQrDofODJcDiXd27w+0oZ9IUyrTeEkggjmTD2fgwIxnCMKzRTkjlHEaIJHj3/J+DVklkXhDlPtyTlIygbqui+62xKhcRt+9tZslu5fingoFbcqCEERi9sN5Oe1MSdGSQ3fabn/wmjnZo45KwHitCU0bdDK3wnhUsxVjsH3azNB/Lr69w2jx74QQIfiUqbg8bovXXogrKeBsuvZC+VDnLVzJN1cHmPc2QHaMTGmoZZoVbkQ0ZbVvKS6Tswg8aCYxHLRIys0MGvq8wjwnCrNV46lPOYhLAcvN7XctfdK5v6baSbKvvxYjfXZXHoRPCPD2KIyew7N5hLoOdMGs= X-Forefront-Antispam-Report: CIP:192.176.1.74;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:oa.msg.ericsson.com;PTR:office365.se.ericsson.net;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wUryXAhoGneo/eXa7/Blvrv3ZiWi0Nvq6AQyvxsUEsU+MkFWcK3IJi+uSEmF3oemq4B01eNEpN1HGYt1m6cMJsGpQwEwXW/o6O1heWqZLKV/YmZB1OTEiNFwcQlWkfJWvQAOr+UC8qn1HqWJox6icy+IeevC5ufOJ1Ko7vjVVmuFaUy+ZZidVPTEOFGoYNtBXLOUNX8lXm4DITjasCYST2zh6iiT3chchqPAlKNlkqTYUd7kppjUSV5UY3RDys9CLW8UYnQU30BOgovlzVJx2RGVPHaUZ9e6CBSh7AmCKooZUtNsVY57V74Q9lkfNdG/+Y6pqmtWvebqmIRMbPf48Wfr1NdFT01cqRDtA3FOjb1lPsQRUe4K02ESwHzwKEQzMir7ou0uMRko41F5H06vlNKfq7MTrplaqgpQ2uW70vsO7LvijBA8j61oJjcbQ4kn X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 21:03:43.9006 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20524871-5869-4215-ebe8-08debcfc9a4d X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f;Ip=[192.176.1.74];Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F8.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7504 Content-Type: text/plain; charset="utf-8" Changes: 1. Add mv88e6352_serdes_get_lane function which checks if the port supports SERDES by calling mv88e6352_g2_scratch_port_has_serdes. Then returns the address of the SERDES lane. 2. Add this function as .serdes_get_lane member to all the chip versions which use mv88e6352_pcs_init. Co-developed-by: Thomas Eckerman Signed-off-by: Thomas Eckerman Signed-off-by: Fidan Aliyeva Reviewed-by: Andrew Lunn --- drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++ drivers/net/dsa/mv88e6xxx/serdes.c | 11 +++++++++++ drivers/net/dsa/mv88e6xxx/serdes.h | 1 + 3 files changed, 16 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/c= hip.c index 63cdcce3d8c7..30c8f6e1b367 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -4673,6 +4673,7 @@ static const struct mv88e6xxx_ops mv88e6172_ops =3D { .vtu_loadpurge =3D mv88e6352_g1_vtu_loadpurge, .stu_getnext =3D mv88e6352_g1_stu_getnext, .stu_loadpurge =3D mv88e6352_g1_stu_loadpurge, + .serdes_get_lane =3D mv88e6352_serdes_get_lane, .serdes_get_regs_len =3D mv88e6352_serdes_get_regs_len, .serdes_get_regs =3D mv88e6352_serdes_get_regs, .gpio_ops =3D &mv88e6352_gpio_ops, @@ -4776,6 +4777,7 @@ static const struct mv88e6xxx_ops mv88e6176_ops =3D { .vtu_loadpurge =3D mv88e6352_g1_vtu_loadpurge, .stu_getnext =3D mv88e6352_g1_stu_getnext, .stu_loadpurge =3D mv88e6352_g1_stu_loadpurge, + .serdes_get_lane =3D mv88e6352_serdes_get_lane, .serdes_irq_mapping =3D mv88e6352_serdes_irq_mapping, .serdes_get_regs_len =3D mv88e6352_serdes_get_regs_len, .serdes_get_regs =3D mv88e6352_serdes_get_regs, @@ -5051,6 +5053,7 @@ static const struct mv88e6xxx_ops mv88e6240_ops =3D { .vtu_loadpurge =3D mv88e6352_g1_vtu_loadpurge, .stu_getnext =3D mv88e6352_g1_stu_getnext, .stu_loadpurge =3D mv88e6352_g1_stu_loadpurge, + .serdes_get_lane =3D mv88e6352_serdes_get_lane, .serdes_irq_mapping =3D mv88e6352_serdes_irq_mapping, .serdes_get_regs_len =3D mv88e6352_serdes_get_regs_len, .serdes_get_regs =3D mv88e6352_serdes_get_regs, @@ -5486,6 +5489,7 @@ static const struct mv88e6xxx_ops mv88e6352_ops =3D { .gpio_ops =3D &mv88e6352_gpio_ops, .avb_ops =3D &mv88e6352_avb_ops, .ptp_ops =3D &mv88e6352_ptp_ops, + .serdes_get_lane =3D mv88e6352_serdes_get_lane, .serdes_get_sset_count =3D mv88e6352_serdes_get_sset_count, .serdes_get_strings =3D mv88e6352_serdes_get_strings, .serdes_get_stats =3D mv88e6352_serdes_get_stats, diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx= /serdes.c index d3d3c121a32d..a23eb3d50b6e 100644 --- a/drivers/net/dsa/mv88e6xxx/serdes.c +++ b/drivers/net/dsa/mv88e6xxx/serdes.c @@ -102,6 +102,17 @@ int mv88e6xxx_pcs_decode_state(struct device *dev, u16= bmsr, u16 lpa, return 0; } +int mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) +{ + int has_serdes; + + has_serdes =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); + if (has_serdes =3D=3D 0) + return -ENODEV; + + return MV88E6352_ADDR_SERDES; +} + struct mv88e6352_serdes_hw_stat { char string[ETH_GSTRING_LEN]; int sizeof_stat; diff --git a/drivers/net/dsa/mv88e6xxx/serdes.h b/drivers/net/dsa/mv88e6xxx= /serdes.h index 17a3e85fabaa..21e050b328cc 100644 --- a/drivers/net/dsa/mv88e6xxx/serdes.h +++ b/drivers/net/dsa/mv88e6xxx/serdes.h @@ -115,6 +115,7 @@ int mv88e6xxx_pcs_decode_state(struct device *dev, u16 = bmsr, u16 lpa, u16 status, struct phylink_link_state *state); int mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); +int mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6393x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); -- 2.36.0 From nobody Mon Jun 8 14:37:25 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010010.outbound.protection.outlook.com [52.101.84.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83894351C02; Thu, 28 May 2026 21:03:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002237; cv=fail; b=BRnbVhHOQBy5OB5cGFZm/uMmutnGV12wjhsEzmU5Pf1yaX4rTUoKETUUTqFfNfSrNtdE4Q0OwGVcgUOVto150BddIP18DSVHusDw+WcHX5NNIpTuwpZRaEfJMEJCMxYnV7D5HNN2pYhdG9XvtWjc6Y6oY5suw+bpULQldzCSa8Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002237; c=relaxed/simple; bh=LlfJ+aT9jaN+amu7OnDI4qyOXw4b8SnijIg9/uJJvWo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PVaVVvDvSYQxod6RvNO3CaAhAmE2kQZ7OrihbovuXm7n/tFPnPwYySIaoOh9RUdNBQkjVeK/zhati5D8qV8alWgCw1IXlNczgOTxjgevOWA1kntJF0cBwWCKJMb0nJKD/iWY2MEXgDywB9lUNBAngksMcv7Ce86oawQXWFMBMUc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com; spf=pass smtp.mailfrom=ericsson.com; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b=vomtHsFz; arc=fail smtp.client-ip=52.101.84.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ericsson.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b="vomtHsFz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NSJ9fLaQmYmkRORsowaAH9YzmEoO/otrXM9OB8H2iS7fQkcb03WRdj3bLOunovxvaj//MxwYGnLf7oaPiGcRCJAA8LAHnIGOXQCZKJOvvlchOz0SH+IcN6KjfKUZM3yDMtBhqFQoUb2P+KX7Ye0gScyAFdRvY0t70JYmbzIMDq1poa1bSUk/OCxg3fD8h1jxXKs6SiSOwFgWNCEBwiao1mQuJBbfYTFV6MQ9shJW1QxnGjWx0gcDXcXSSvUqT7ylAqdyNDbNB2MWqXVkZ+D7L2RqDNg7eQG6MMSYUHFD3o+j+7WQMNfLJL7SlHrLhyJHkBR13iGK7kQ9RcGpZPwMLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=CbUAfyusoSUT9uPAyq/p6PrHrW5kzzmOyg1G7IjLHNY=; b=CQAkMeUE6sIu7HMjKROoiaCIlrjVcs2w1LBjf2IVpQe1+MuwWmveUboemf2RivIcjJfYIGOoz6QEq+URhbBPOrT11YQoIOCxtjsNRDPQEC/KwNJCW86HMTcy+PS2dKznjtlbKNyr8jhuSBIzJlgXa+ejuq9hEdDm9KeYC5HMelNAUyjmc5vcJLsW21PWimyOWNv9gFfww8ZkxrBTT8Kscr8TzJicrcQug5b6b2ybFztpbVQ1/i3r83m2fFspE/JRm/ezW0GX/fvgOsYaVi8U+3m2bQRLRiC2EgLlNWUdPK5kd+FMky1aF+y4G1XhfOg8tuLiA2Lt2M4lVbZ/11+clQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=davemloft.net smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CbUAfyusoSUT9uPAyq/p6PrHrW5kzzmOyg1G7IjLHNY=; b=vomtHsFzQlnxS4BTVQUyk1j9ZUDfNjKg8ukolqvJan6CP3Ghhfg+pO15rCzuB07qb9fHfoc8o8dONyponMw8p6gnNvDUPQaxduQRXagxx8D+qvbnBxfZj3jgriBIXHwbcrWRJJMB7VWHH1EpKSjINBMT1HLpalpSvDFeger7PILIMce/um5yrAHO4tabqezn+E1mcfCk4zG7tNGhewh9xrSZXsxjXHHiMxOtN+qRYzigkJor5brwDO1F+FqGLbGeFxhgyzrAYtnY5NBKL/0JXnthGoY17Ls8I8L9qEgntrMF53lL5WCnbPm2MiuLrwvMMkWNcbX4Fl4LE+5n00w+vA== Received: from DBBPR09CA0025.eurprd09.prod.outlook.com (2603:10a6:10:d4::13) by GVXPR07MB9918.eurprd07.prod.outlook.com (2603:10a6:150:11d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 21:03:49 +0000 Received: from DB5PEPF00014B8F.eurprd02.prod.outlook.com (2603:10a6:10:d4:cafe::4c) by DBBPR09CA0025.outlook.office365.com (2603:10a6:10:d4::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Thu, 28 May 2026 21:03:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; pr=C Received: from oa.msg.ericsson.com (192.176.1.74) by DB5PEPF00014B8F.mail.protection.outlook.com (10.167.8.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 28 May 2026 21:03:48 +0000 Received: from seroius18814.sero.gic.ericsson.se (153.88.142.248) by smtp-central.internal.ericsson.com (100.87.178.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 28 May 2026 23:03:47 +0200 Received: from seroius06448.sero.gic.ericsson.se (seroius06448.sero.gic.ericsson.se [10.117.92.228]) by seroius18814.sero.gic.ericsson.se (Postfix) with ESMTP id 69C7F4020B4A; Thu, 28 May 2026 23:03:46 +0200 (CEST) Received: by seroius06448.sero.gic.ericsson.se (Postfix, from userid 7434092) id 5B63D1005D6A; Thu, 28 May 2026 23:03:46 +0200 (CEST) From: Fidan Aliyeva To: , , , , , , CC: , , , Thomas Eckerman Subject: [PATCH net-next v3 2/3] mv88e6xxx: Refactor 6352's serdes functions Date: Thu, 28 May 2026 23:03:09 +0200 Message-ID: <20260528210310.1365858-3-fidan.aliyeva.ext@ericsson.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> References: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB5PEPF00014B8F:EE_|GVXPR07MB9918:EE_ X-MS-Office365-Filtering-Correlation-Id: b09ee3ff-d730-46d3-28f4-08debcfc9cee X-SMTP-Server: smtp-central.internal.ericsson.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|11063799006|6133799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: /IM8Gkov2keHLKg3HZ3NHcpqWBQtooa7zH2Uinxn1sdcZzlt9yfhgHPKuPMAOHbOiqTVvsBiy9FGOdNzy7YrYw3VwCparQPo0l/JbrZkKz18oFPLMNuvu2A5YOrZHsi+I+D+69TIYfriEuTl7xkx2BqpndTr/f61cjy190mAgIplJfI7g94cUfqWcB0DHRI8sa6WkwHWtQMXU7hHM3xK+200F40UQzMOzdacyJTd5p0vv3NseL/9Fq3Awew8Hn19EBDC3tUjoyw/JGjepPl93taa2kSIywggoEOO0s2L8rz+DJ9XJNcP7CH4F2dlSSm6u7Zaq4iAa0DSrrll4cmjOVPiOfc7vuHXioPFEaKnqvYuTDkADGucq6JwWCWO4hvwn3nfHez+u033JXUNu3cj9POJa/kTbhAVNrl77aMuZiUjfZ2GcNDE9w0s3Dhaiub3YzNC8fXRz4IEXQUuGQFmcWe8ahnJcjxilqwpdrl80mU/XF6bXodB3DmhGSZM9xRpXNmXQAdZ/nmXblDxXZITnNdiavXIVq5ygnOICd24AeFtYr3meb24/z2rL/7kuGVE4OsB+aBr9fHuEcYH2Sj5TDNnmYFCCwjU3dREmKJbf8CHZADPKIbtj1MRAWWuAwSqYQSbMzw2f+XUIDUDZjq9mrkSTethUL7UCQBqAKJ1PpIagxXdW082w6jyVZ4GDNP/yj6PLYCHlz42kFXFmeZsQ6K5/rN/SUKsjf6M+QBRSvs= X-Forefront-Antispam-Report: CIP:192.176.1.74;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:oa.msg.ericsson.com;PTR:office365.se.ericsson.net;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(11063799006)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vYf9dl+lLBF7ALvAx7mI5Qh1U4ttHmjMYo0OM/JbqcQ756mgTAft0as9m0Anq35V3QiCF9N+m//fBDH6tbl+77f3rg1Tjsdb+ISSAKTKJvsaTYjPwRORAoa2+9/cY2lWEemUKqb7UU0dak2Zr+iRSHwSgj8eBXHmdFQ3kJFvY9LDSScdNcKcTqgKETXgfotvuM51AThzwhYYyjQVuvKW+S8pChwtCsenVX6Ck5xcQ6iFcB/00nCOKZ9qot0Dzhlo0pgYscztuECtge5m2YoWBG/9FtzAmJp9iALRAP88cyIxScgHB408JNNRCSJWU6hDQPDYasJiK1agFTeZWR0zqp0e8XjbJKXfkEIlPCXmunmgU64PnNJvMf8l0YyvwNyKd5KYTZNYbifz/YxMm5J+g2Ia9M28VWG1yAk+asll+aWlAAPuaDFAOn44+waoTcho X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 21:03:48.3034 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b09ee3ff-d730-46d3-28f4-08debcfc9cee X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f;Ip=[192.176.1.74];Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B8F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR07MB9918 Content-Type: text/plain; charset="utf-8" Changes: 1. Replace serdes check by mv88e6352_g2_scratch_port_has_serdes in mv88e6352_pcs_init function by mv88e6xxx_serdes_get_lane function making it more generic. 2. Replace serdes checks in mv88e6352_serdes_get_* functions with mv88e6xxx_serdes_get_lane making them more generic. 3. Add lane argument to mv88e6352_serdes_read so it can be reused later for 6321. Co-developed-by: Thomas Eckerman Signed-off-by: Thomas Eckerman Signed-off-by: Fidan Aliyeva Reviewed-by: Andrew Lunn --- drivers/net/dsa/mv88e6xxx/pcs-6352.c | 10 +++--- drivers/net/dsa/mv88e6xxx/serdes.c | 53 +++++++++++++++------------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/pcs-6352.c b/drivers/net/dsa/mv88e6x= xx/pcs-6352.c index 308655d72d52..4228ae5bb9db 100644 --- a/drivers/net/dsa/mv88e6xxx/pcs-6352.c +++ b/drivers/net/dsa/mv88e6xxx/pcs-6352.c @@ -324,17 +324,17 @@ static int mv88e6352_pcs_init(struct mv88e6xxx_chip *= chip, int port) struct mii_bus *bus; struct device *dev; unsigned int irq; - int err; + int lane, err; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) - return err; + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) + return 0; irq =3D mv88e6xxx_serdes_irq_mapping(chip, port); bus =3D mv88e6xxx_default_mdio_bus(chip); dev =3D chip->dev; - mpcs =3D marvell_c22_pcs_alloc(dev, bus, MV88E6352_ADDR_SERDES); + mpcs =3D marvell_c22_pcs_alloc(dev, bus, lane); if (!mpcs) return -ENOMEM; diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx= /serdes.c index a23eb3d50b6e..48db9932b989 100644 --- a/drivers/net/dsa/mv88e6xxx/serdes.c +++ b/drivers/net/dsa/mv88e6xxx/serdes.c @@ -17,10 +17,10 @@ #include "port.h" #include "serdes.h" -static int mv88e6352_serdes_read(struct mv88e6xxx_chip *chip, int reg, - u16 *val) +static int mv88e6352_serdes_read(struct mv88e6xxx_chip *chip, int lane, + int reg, u16 *val) { - return mv88e6xxx_phy_page_read(chip, MV88E6352_ADDR_SERDES, + return mv88e6xxx_phy_page_read(chip, lane, MV88E6352_SERDES_PAGE_FIBER, reg, val); } @@ -126,11 +126,11 @@ static struct mv88e6352_serdes_hw_stat mv88e6352_serd= es_hw_stats[] =3D { int mv88e6352_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port) { - int err; + int lane =3D -ENODEV; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) - return err; + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) + return 0; return ARRAY_SIZE(mv88e6352_serdes_hw_stats); } @@ -139,11 +139,12 @@ int mv88e6352_serdes_get_strings(struct mv88e6xxx_chi= p *chip, int port, uint8_t **data) { struct mv88e6352_serdes_hw_stat *stat; - int err, i; + int lane =3D -ENODEV; + int i; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) - return err; + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) + return 0; for (i =3D 0; i < ARRAY_SIZE(mv88e6352_serdes_hw_stats); i++) { stat =3D &mv88e6352_serdes_hw_stats[i]; @@ -152,14 +153,14 @@ int mv88e6352_serdes_get_strings(struct mv88e6xxx_chi= p *chip, int port, return ARRAY_SIZE(mv88e6352_serdes_hw_stats); } -static uint64_t mv88e6352_serdes_get_stat(struct mv88e6xxx_chip *chip, +static uint64_t mv88e6352_serdes_get_stat(struct mv88e6xxx_chip *chip, int= lane, struct mv88e6352_serdes_hw_stat *stat) { u64 val =3D 0; u16 reg; int err; - err =3D mv88e6352_serdes_read(chip, stat->reg, ®); + err =3D mv88e6352_serdes_read(chip, lane, stat->reg, ®); if (err) { dev_err(chip->dev, "failed to read statistic\n"); return 0; @@ -168,7 +169,7 @@ static uint64_t mv88e6352_serdes_get_stat(struct mv88e6= xxx_chip *chip, val =3D reg; if (stat->sizeof_stat =3D=3D 32) { - err =3D mv88e6352_serdes_read(chip, stat->reg + 1, ®); + err =3D mv88e6352_serdes_read(chip, lane, stat->reg + 1, ®); if (err) { dev_err(chip->dev, "failed to read statistic\n"); return 0; @@ -184,11 +185,12 @@ size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_ch= ip *chip, int port, { struct mv88e6xxx_port *mv88e6xxx_port =3D &chip->ports[port]; struct mv88e6352_serdes_hw_stat *stat; - int i, err; + int lane =3D -ENODEV; u64 value; + int i; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) return 0; BUILD_BUG_ON(ARRAY_SIZE(mv88e6352_serdes_hw_stats) > @@ -196,7 +198,7 @@ size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_chip= *chip, int port, for (i =3D 0; i < ARRAY_SIZE(mv88e6352_serdes_hw_stats); i++) { stat =3D &mv88e6352_serdes_hw_stats[i]; - value =3D mv88e6352_serdes_get_stat(chip, stat); + value =3D mv88e6352_serdes_get_stat(chip, lane, stat); mv88e6xxx_port->serdes_stats[i] +=3D value; data[i] =3D mv88e6xxx_port->serdes_stats[i]; } @@ -211,28 +213,29 @@ unsigned int mv88e6352_serdes_irq_mapping(struct mv88= e6xxx_chip *chip, int port) int mv88e6352_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port) { - int err; + int lane =3D -ENODEV; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) - return err; + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) + return 0; return 32 * sizeof(u16); } void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void= *_p) { + int lane =3D -ENODEV; u16 *p =3D _p; u16 reg; int err; int i; - err =3D mv88e6352_g2_scratch_port_has_serdes(chip, port); - if (err <=3D 0) + lane =3D mv88e6xxx_serdes_get_lane(chip, port); + if (lane < 0) return; for (i =3D 0 ; i < 32; i++) { - err =3D mv88e6352_serdes_read(chip, i, ®); + err =3D mv88e6352_serdes_read(chip, lane, i, ®); if (!err) p[i] =3D reg; } -- 2.36.0 From nobody Mon Jun 8 14:37:25 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012047.outbound.protection.outlook.com [52.101.66.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EDAD318B9D; Thu, 28 May 2026 21:03:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002239; cv=fail; b=kqimHl3FNDaFMJrVvkd9JMjg5Uifyj/ctwK21OuntF7+nNSAjcpMwDRfYNUX592GHFqk48P0nS34IU5Obaf+zjnv5LyVdgaENh6kpV4bHK22pcJkknLqR8VvdydaLhvn6Jminubpkuwwt6+f/zbdEQB4GOhVsPJ4IQjB9f9Mano= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780002239; c=relaxed/simple; bh=nBAaUSpVm/m+5MwRv+AW6bEm23upR11wFN3l/u+drhA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BG6gl7n9WxzEK2TAb1ihL4bKQRgQNiAq4xH8trvytFhx0L44A0+AfczymOfSgbSFXUHaNvuAgFPMfqnaLw8GIzg63pd0M/Cx4w+Fk8SKRsddYBgMdpDjlFmWcqQ6mc1ww1UfD5yorb8blW1udFQ5OzTxrxyN3N7lin+YMAFjYU8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com; spf=pass smtp.mailfrom=ericsson.com; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b=FzsckexI; arc=fail smtp.client-ip=52.101.66.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ericsson.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ericsson.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ericsson.com header.i=@ericsson.com header.b="FzsckexI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fRFTPv9XtWFQb0sT/TKTSmPIbqVL6EU0Mfe9jHsPVPMkHMVsL01n9qB7U3vK61Ptonks75omkN/kcO7kb9jdKooyKhqECAuv8cm/LxfQFv97H/7PgAmGHg36bkcUMeHjPf24DYlFtxJJFWlJABL1z83X6YuF9EDjWtz1KBE+flIbcncKSI7CzXt3kHQcUIblHD0z8xaTTTV2e0wcpzs/d9Yv/iNrVtXMCGO2WGnSQELBtHjGeYa3JNeClIQUsCLzGd24l74tMwNVIOmSNEF8n9qP9sQck3xSdHQuFSL08/TjW56WsyqBhXryeIsk32a5hOPf5/ATyZmpn4uheweXCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=yRbReeqUNpdr3nxfHt30zxTGTckCgnySi7PIOpeX8/k=; b=g92YYc/CHWC/6QB6AGkHjCzPfoxbW/p7kuKst6McnCTu6gMMsns0R6/4Ngw3GnDC/acdYBbgifmGblXp4k428LqfVIkrO6LBvqIYdeOrNmsYlSwzS6cB1+plk5bWXjdIQGkdW9LWgqvvuOvIw77coa5ODIP0nJTRZx1MyB1WTtwbNkAhZlpy/JMghlR+Aa2/FbY9eK8lSVI7YxOD+MgmKclRGnbbVxnCdRBAdigf0LnZDBMovBoKiwapwTycosCT1oMUgRNCXCkmIgudUobALmyLW8TyClaA7rWq7iDiLBFc3MfgSPXnsIzkMpKNkiDAYLWjCPsHZZrzZPKnlMMvvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=davemloft.net smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yRbReeqUNpdr3nxfHt30zxTGTckCgnySi7PIOpeX8/k=; b=FzsckexILQy3QToLnvZCGI39nTetMlB6FP7m2J/Agt7MQh6SCLul0I5Bed70ayVaBcqpZt6VKhAbBI5YT7cLXN7R6vrsj7Ib7hL5CxV4pEsgaASIJ0Z+9Rr7dsZjQsLEv5HIMIaFbkOghGHT6FkmVQvN35HT2eBtE7M5b8hcaC5X7r5Gef5aOgo7KLFQ+FwUbfS45vKTD6j1hCR6q2aPHeLYSzRD2B+kUviv4nbRI7WKI5On9ehFaOHS6Am51c7aCjxrCBiVcPo4IWqNi0cPk+8tRx/nwGQLruQrdDXG5V/1LVt0QoxXKQBPjz61NUwRs0iqjpusXm3TPF32u5axoQ== Received: from DUZPR01CA0300.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b7::24) by VI0PR07MB10840.eurprd07.prod.outlook.com (2603:10a6:800:2d2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 21:03:52 +0000 Received: from DB1PEPF000509F4.eurprd02.prod.outlook.com (2603:10a6:10:4b7:cafe::71) by DUZPR01CA0300.outlook.office365.com (2603:10a6:10:4b7::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.14 via Frontend Transport; Thu, 28 May 2026 21:03:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; pr=C Received: from oa.msg.ericsson.com (192.176.1.74) by DB1PEPF000509F4.mail.protection.outlook.com (10.167.242.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 28 May 2026 21:03:51 +0000 Received: from seroius18814.sero.gic.ericsson.se (153.88.142.248) by smtp-central.internal.ericsson.com (100.87.178.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 28 May 2026 23:03:50 +0200 Received: from seroius06448.sero.gic.ericsson.se (seroius06448.sero.gic.ericsson.se [10.117.92.228]) by seroius18814.sero.gic.ericsson.se (Postfix) with ESMTP id 1DCBF4020B4A; Thu, 28 May 2026 23:03:50 +0200 (CEST) Received: by seroius06448.sero.gic.ericsson.se (Postfix, from userid 7434092) id 0B15E1005D6A; Thu, 28 May 2026 23:03:50 +0200 (CEST) From: Fidan Aliyeva To: , , , , , , CC: , , , Thomas Eckerman Subject: [PATCH net-next v3 3/3] mv88e6xxx: Add SERDES Support for mv88e6321 Date: Thu, 28 May 2026 23:03:10 +0200 Message-ID: <20260528210310.1365858-4-fidan.aliyeva.ext@ericsson.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> References: <20260528210310.1365858-1-fidan.aliyeva.ext@ericsson.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509F4:EE_|VI0PR07MB10840:EE_ X-MS-Office365-Filtering-Correlation-Id: e66e2164-cc44-423d-6a44-08debcfc9eae X-SMTP-Server: smtp-central.internal.ericsson.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|6133799003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: I5VmZoig35dSQo3vypQfBGOVpwlMUT+ViRt0Gr/ykPO5/GuxT2Jnd+LCJAoR+ZDaV8XZWKXuNljG3s5KJOF4OGfcfXw03ZHByfGRo/SJVNJCW6mRl9PvtxJVfePPil09GbToeyB5BZbqd2uic6Gzt9BZIDsLxGCUV3jlKwernhaemojKF0SGSjkky+te28qUQyPHoVgw23gTFNwZrw1B/JWbMtLprxggu4WBBYa+HRTyhp78Ya4acHLnrGvELwGRI2hYZh7dqARIHm9C3IpDeZOcH1x4lt4wZQn0Y9VG8fxlRKXhvQOnb6XFgOjWutZkoIbFt/oKhft+t4jli98DtDIr29uoDLN0+5Ant3Bnw5IP4yF9CybEJ0mRgKMQBNVUCmsyTPw7EixK6gfZhptbFGtlgmErotrfh771WNyT/FRwolsX35OoBwPFUymMrioNGceskAEXDeiDaaCDrypHnoQ8doPHwKZRRXM233nnzG2X46cgsL5PuExSX5YetgKI26wc1kwSGGl0uWsPZe3FalmR4BmJIY84S2l3vFtAdVl4+KQVd8rzBR1gDYJLEhAbpPGgr0c47AF8/RjHAeK5zTv7bjqbueLrxRVbVmhKur+1mbuj7KxjVmhIRv5dmE5yYaRRhGYuayubgE6Fquf8rLCKErdqQNHBzYAFANbd2anKNpF++Ee2Rfd8rnXp/SIkNv/Rq398rZptLV7jUHRjhL2M75cYRToUwDntLU4/WwY= X-Forefront-Antispam-Report: CIP:192.176.1.74;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:oa.msg.ericsson.com;PTR:office365.se.ericsson.net;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(6133799003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +NG3WoZuYs0KRQXfyeT588Z0Sxn/6MjlLX34OAqetBFItzJwG6ZkcwDH1eyL51+0aIG6BbGXjRyHvSEWp2kOLruzU09Ibgto5uujp1+zQjPjHFUxFCKmBIo87D6Lp/vdMUcQ+ZAzAQJDnnAnI1l/ccYlt+xniSpHstiD91/rWyxht03q3lunPgBHhlZvaF8Hj3J25Ow8j+PEIr1CGzgK7wYBaXi8ybm9YE8df1m1+R4hsx3UOWU4n7Pb+3JS6jz9MlacTmhfyqxEdEg/6UZxPvopiBdpjiEh9yuz/puwkH8RuIu2/xlumV5+uRnRp7pMQj74Fg0BXI/Wi/+v0Gh9IslGyDrWQ048b+pHMZ6K/CrfPkPhE+lla6u+Nkw6gMtXmRcDWG7w9UsTzxEfKnLhq2kpEQDkeHXzf7hKeX0YeyV4qgE+iw5zdGMEdJnSF1fb X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 21:03:51.2435 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e66e2164-cc44-423d-6a44-08debcfc9eae X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f;Ip=[192.176.1.74];Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F4.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR07MB10840 Content-Type: text/plain; charset="utf-8" Add serdes and pcs_ops functions for mv88e6321. In mv88e6321 2 ports support serdes functionality; port 0 and port 1. These ports are serdes-only ports. Changes: 1. Add a function support to return the lane address for the port based on cmode. 2. Reuse mv88e6352's serdes_get_regs* and pcs_init functions for mv88e6321. Tested on mv88e6321 switch port 0. Co-developed-by: Thomas Eckerman Signed-off-by: Thomas Eckerman Signed-off-by: Fidan Aliyeva Reviewed-by: Andrew Lunn --- drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++ drivers/net/dsa/mv88e6xxx/serdes.c | 18 ++++++++++++++++++ drivers/net/dsa/mv88e6xxx/serdes.h | 3 +++ 3 files changed, 25 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/c= hip.c index 30c8f6e1b367..6c48a99c3b7f 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -5270,10 +5270,14 @@ static const struct mv88e6xxx_ops mv88e6321_ops =3D= { .vtu_loadpurge =3D mv88e6352_g1_vtu_loadpurge, .stu_getnext =3D mv88e6352_g1_stu_getnext, .stu_loadpurge =3D mv88e6352_g1_stu_loadpurge, + .serdes_get_lane =3D mv88e6321_serdes_get_lane, + .serdes_get_regs_len =3D mv88e6352_serdes_get_regs_len, + .serdes_get_regs =3D mv88e6352_serdes_get_regs, .gpio_ops =3D &mv88e6352_gpio_ops, .avb_ops =3D &mv88e6352_avb_ops, .ptp_ops =3D &mv88e6352_ptp_ops, .phylink_get_caps =3D mv88e632x_phylink_get_caps, + .pcs_ops =3D &mv88e6352_pcs_ops, }; static const struct mv88e6xxx_ops mv88e6341_ops =3D { diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx= /serdes.c index 48db9932b989..4a394d47923e 100644 --- a/drivers/net/dsa/mv88e6xxx/serdes.c +++ b/drivers/net/dsa/mv88e6xxx/serdes.c @@ -241,6 +241,24 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *= chip, int port, void *_p) } } +int mv88e6321_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) +{ + int lane =3D -ENODEV; + u8 cmode; + + if (port !=3D 0 && port !=3D 1) + return lane; + + cmode =3D chip->ports[port].cmode; + + if (cmode =3D=3D MV88E6XXX_PORT_STS_CMODE_100BASEX || + cmode =3D=3D MV88E6XXX_PORT_STS_CMODE_1000BASEX || + cmode =3D=3D MV88E6XXX_PORT_STS_CMODE_SGMII) + lane =3D port + MV88E6321_PORT0_LANE; + + return lane; +} + int mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) { u8 cmode =3D chip->ports[port].cmode; diff --git a/drivers/net/dsa/mv88e6xxx/serdes.h b/drivers/net/dsa/mv88e6xxx= /serdes.h index 21e050b328cc..e8f254909d6b 100644 --- a/drivers/net/dsa/mv88e6xxx/serdes.h +++ b/drivers/net/dsa/mv88e6xxx/serdes.h @@ -14,6 +14,8 @@ struct phylink_link_state; +#define MV88E6321_PORT0_LANE 0x0c + #define MV88E6352_ADDR_SERDES 0x0f #define MV88E6352_SERDES_PAGE_FIBER 0x01 #define MV88E6352_SERDES_IRQ 0x0b @@ -114,6 +116,7 @@ struct phylink_link_state; int mv88e6xxx_pcs_decode_state(struct device *dev, u16 bmsr, u16 lpa, u16 status, struct phylink_link_state *state); +int mv88e6321_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); -- 2.36.0