From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8272C4338F for ; Tue, 24 Aug 2021 12:02:12 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5CC3361262 for ; Tue, 24 Aug 2021 12:02:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5CC3361262 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8505082EE0; Tue, 24 Aug 2021 14:01:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="jmzrJMxP"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 291EF82EA1; Tue, 24 Aug 2021 14:01:13 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02on0616.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe07::616]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7C2DE82DBA for ; Tue, 24 Aug 2021 14:01:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=vladimir.oltean@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bH4JqDZlxmr3fVpF/67ZeWvbJ0KUx1G0CaABsYfcf+NLTgFfHRPHjgJp06xxMxTbgt8TqkHKFQMYHOPFSdefE0AtcXl5OYBWt3tas6y0XU955tskyMXGzE4lUbsCiJfcTpEhBOEfipr3FRWM3xA2UFVKMDEB5A9w4UX/O/vV7Ru1CxWuxysmEgi5oVgd8yRfKcNqbNBo57ccrWT7L6JUX/mvDeGB8mOBk8AnMAszeML9WTR1H7DC5oybI09IPLw3krB+2CBE+uxSGCeXdIxl+lyajXRTRyzYoypFrb3EIk6SZXXV+Xs++x1mwA+lz9/gFpU6YN7+8eZmAWmcGS2oOw== 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-SenderADCheck; bh=PAVUnVuVUxjsTeFZzVO75nycimkRNkB+DFDE42C+zOA=; b=NpEsXhy6eY9pcSRgX9eOw+6QpNWfnvC7iViRc1BKmk9Ox9PvcAK5WCxFbQ5z37M0/Whs2QC1pAp9QOqfMhmK2XiEpyHrOZ6uNs4A2/Cu9H5s9uMYd0bEPMOnKzvx6oFSsdqsDYd02g/eQZ2If3XST0SH8fRqcRqyhpae1yO7t/hmIFVwQO78MpBBlOLjxloTclA50XyXyaVlRvrHcj9+KuTls9YXrju348qbiUBSBYurNBK6+/tBF9IO7C8dUs+rlexM0v9JYce6pbfR/afApJCxZrb7p87uUb0kajPaebVXA0lXjcUeuNysDEvo0b02rtSjbC+OBzR/gcY46B+KvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PAVUnVuVUxjsTeFZzVO75nycimkRNkB+DFDE42C+zOA=; b=jmzrJMxPfgs7MPrs/nqi6iMIPynNoOFE9s5bRxPOJURURRYYBfv6RbSRX7Lso58ZjZJE1YVr7st/VdoqmY0niX9xzAnNiw8cbeBHaF1oP9kqYh5588LPKYizXAXhRSpmbvpcYM2sLPjopIh4Wky5wooLJ5cdFdLJFnrD3OJnB6w= Authentication-Results: ni.com; dkim=none (message not signed) header.d=none;ni.com; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VE1PR04MB7374.eurprd04.prod.outlook.com (2603:10a6:800:1ac::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Tue, 24 Aug 2021 12:01:01 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::109:1995:3e6b:5bd0]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::109:1995:3e6b:5bd0%2]) with mapi id 15.20.4436.025; Tue, 24 Aug 2021 12:01:01 +0000 From: Vladimir Oltean To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Claudiu Manoil , Michael Walle , Priyanka Jain Subject: [PATCH v2 4/6] net: dsa: introduce a .port_probe() method in struct dsa_ops Date: Tue, 24 Aug 2021 15:00:41 +0300 Message-Id: <20210824120043.3823931-5-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210824120043.3823931-1-vladimir.oltean@nxp.com> References: <20210824120043.3823931-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: PR3P192CA0010.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::15) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (188.25.144.60) by PR3P192CA0010.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17 via Frontend Transport; Tue, 24 Aug 2021 12:01:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9e8a04e-9ef4-4c30-3a2a-08d966f6d7a6 X-MS-TrafficTypeDiagnostic: VE1PR04MB7374: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PjzU08MlpZnZfNC3QeneOTF1Q56GIGSzalorAdhkMWYLUERHSbUl1loDURmEtSasHX363dU7cMHSXyAkI7qB3PDoKDEnQdtVQrnpl3i9xBgvgAcEilfS05vAXyBYDTFeFjdWyScpRhGR3bfByRSG9l2ubcrjJd1SvCoGEnpkhtX2bMBKbYIzCUsMJIU0M9vxNUaZoTZEiNAu2OEhUN4jTmlbmHzEoF5+2htCHnvleTnxHSH7ZCNUZXPnX1vzBT07qihHfqRhiWY5R7j8YW29olAhB6+FiuT08oWlFhE0NM+89U9+FOxxJwVJSYuY6lH3Z1r+Cg3DaM7evke2aVmUP/5B4ffL0GrtL6FmcS/g2b7DhPwJSYJ8aS1KYPzzMSrRIpdryu6vNSlz3483mgtBvNlupX61Q7bFazSMHZIPLyKs4jVfBIUCojIxRJWVnXx4Svzflk8Avljh9RpdAOahPOpAsEfAD/nd/xxhOx/mGe4bnV9Bj0+sG4Q4u6Cs/Eh88z4/CSp+Zn+s6ymT9aEFP1XynEb5IGxX9LqfRtE+DcxdYxl3XDjSrUJDVlgVF/SeHTkeyEFURxq+HN3Cz/Gd3SKk8US4nHeM0ycSIjgT77UaCDQJpKrA80wUMWY9EZm3v+E9vYyNkDtNQD9IJdGkkAR5/+PV0+Quw/JH5SHEr8jLHURm9UrNkoKvXuTCw8MQME96UuPO+7CqrWFLoWLTH0eX/sWV5XE+6E/3acfsifg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5136.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(396003)(376002)(39850400004)(346002)(110136005)(8936002)(54906003)(316002)(956004)(2906002)(6512007)(6506007)(83380400001)(36756003)(44832011)(478600001)(4326008)(2616005)(66946007)(66556008)(1076003)(6486002)(66476007)(86362001)(6666004)(186003)(38100700002)(38350700002)(26005)(8676002)(5660300002)(52116002)(142923001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?987h6IcdLeL0UO9OCrnmG7Dbt+nSxQzzbUl7TGZp2n4vz2LWR5DMCEKnAD3z?= =?us-ascii?Q?hXBQavRT18wd24cw+2usiv5U7ECGfExtsd2Ov/9rwJ5oF5Y6GxTZdUBMELWV?= =?us-ascii?Q?Su6lmYLlTtZPRMmc6Kpf3jios9kZf+f2a3TyYYk8fSF/9GJJUgl/6Ko0dthd?= =?us-ascii?Q?3aa13FJogZdJvk9LfqZaCCWnfw04avITzY6ul9JO3kd/lZg1qxmTneoSJfaI?= =?us-ascii?Q?ET9ZP+apLkCU+pQjBcm0hOHoESpk/nAPw18nlr/H3FGmrFTayVovPacZVsUY?= =?us-ascii?Q?hnc6H2Yz0oDUtXHa1AoP1F/7g65/NYTrs+/+Ki9Uq4gbr2MSHG1+27DTHsMT?= =?us-ascii?Q?LBrvtU1fOS74VqsascATAepuXMxAE2wl7jD2Izz1rKrUBMlJqYYwvh23gbSJ?= =?us-ascii?Q?ktTDTX76GN6CAP4d3Z/udAAq4znKt/gaAvyaYwUPjRkp6w3auW7QlfvJmatY?= =?us-ascii?Q?f+khaoDpKRGt1Roh+o/E6CzoWw2GbobuoMAaNvaj8Z+SlhfyAj04hPi8Ksmb?= =?us-ascii?Q?GYbLzRdZtU3VyLkyc518bEaNVql+YU0l51vdiPWbgfJnsW54ew+e9lINJYfF?= =?us-ascii?Q?kFyrp8Lmk32q0a8u0svNOI4wzliol41WHjFTxHy1WD0yDwlngioVEHcul9wy?= =?us-ascii?Q?1AedAiMIQgO2uFl5y4lvdjo/9dMubITFqiMJIJosabP+zhpf7d3wAwwCSQIm?= =?us-ascii?Q?cyGnS3GdpaHNwdSXWqJ08Zn8G3Me6Ixv5MiDmPJ+bi0nwW+CQ4RayEh1bH6h?= =?us-ascii?Q?q58JJ8cziSPy1jathX26sQGxKQK7PlXRFNGFiBrmMVfoMTcRMIXqNGZNBotp?= =?us-ascii?Q?sTH29ww5tzpqQ5upBDhOxdtGQI2OgiMU2zomeFQscEl5+j0mPvEaD4j0ruBn?= =?us-ascii?Q?vM4EdQdAdwQ1Px4HKY9/j5QhhoTSy+8jCno861dY18E4Oy3ZeOgVMTbqvX6k?= =?us-ascii?Q?5hx8K9ZYXsLgd76j65xMNMfxJse9Qsuo3m3TMWURT+qgC2H+BqwzSTyNDdJm?= =?us-ascii?Q?RMjN0ICwpA88+GUL8gABSpGQjceq/9BGXgeC16mULMBOaQkdtAxWUfR6NKRN?= =?us-ascii?Q?/Cg2luX0Bg9aifraEby9r3jMF0vzIvUhoCv25s36qqMbL+OwngTUmZA5XAzf?= =?us-ascii?Q?keBnc8o89j6k4pukz+m6Y0ATDsxsgH+5PphxwMpxnV5Oq5u2bM/6OPkeu8il?= =?us-ascii?Q?ptyyxNk4FoZr281O5KvUGR02T+r/6lE8gFxuaSNii23Yx7Y0iANzB2cO9fK6?= =?us-ascii?Q?broC0iX2vOF0or5Ex4ddGhpQXNXVylOqRxoGSBTUXBpR9LCaAgIC2rkeWceX?= =?us-ascii?Q?zvnLPfiNV92MJvmAG26AR21l?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9e8a04e-9ef4-4c30-3a2a-08d966f6d7a6 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2021 12:01:01.7078 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RaLbi/JmtwMmmsfXlD14OTUnQ3KWXQjsRUyEVoT7x7h1fkmwFVR1KLx0nC1RJmuAZVal/QiBwPVJYM/t2IQnhw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7374 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Some drivers might want to execute code for each port at probe time, as opposed to executing code just-in-time for the port selected for networking. To cater to that use case, introduce a .port_probe() callback method into the DSA switch operations which is called for each available port, at the end of dsa_port_probe(). Signed-off-by: Vladimir Oltean Reviewed-by: Ramon Fried Tested-by: Michael Walle --- include/net/dsa.h | 5 ++++- net/dsa-uclass.c | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/net/dsa.h b/include/net/dsa.h index 0f31a908c9d1..ab2a9dfbea2d 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -57,7 +57,8 @@ /** * struct dsa_ops - DSA operations * - * @port_enable: Initialize a switch port for I/O. + * @port_probe: Initialize a switch port. + * @port_enable: Enable I/O for a port. * @port_disable: Disable I/O for a port. * @xmit: Insert the DSA tag for transmission. * DSA drivers receive a copy of the packet with headroom and @@ -69,6 +70,8 @@ * master including any additional headers. */ struct dsa_ops { + int (*port_probe)(struct udevice *dev, int port, + struct phy_device *phy); int (*port_enable)(struct udevice *dev, int port, struct phy_device *phy); void (*port_disable)(struct udevice *dev, int port, diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c index dbd8558b6486..9b8ae1e82b92 100644 --- a/net/dsa-uclass.c +++ b/net/dsa-uclass.c @@ -270,6 +270,7 @@ static void dsa_port_set_hwaddr(struct udevice *pdev, struct udevice *master) static int dsa_port_probe(struct udevice *pdev) { struct udevice *dev = dev_get_parent(pdev); + struct dsa_ops *ops = dsa_get_ops(dev); struct dsa_port_pdata *port_pdata; struct dsa_priv *dsa_priv; struct udevice *master; @@ -299,6 +300,13 @@ static int dsa_port_probe(struct udevice *pdev) dsa_port_set_hwaddr(pdev, master); + if (ops->port_probe) { + err = ops->port_probe(dev, port_pdata->index, + port_pdata->phy); + if (err) + return err; + } + return 0; } -- 2.25.1