Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp895456rwl; Fri, 4 Nov 2022 07:35:17 -0700 (PDT) X-Google-Smtp-Source: AMsMyM79vgOWpV9b3oNHiHGAs3SltC4+99vT3bgmVhSjwjGnQCKK5ntJQ2uHw8rD6VGRbvQYKXpW X-Received: by 2002:a65:44c1:0:b0:428:ab8f:62dd with SMTP id g1-20020a6544c1000000b00428ab8f62ddmr30899741pgs.211.1667572516956; Fri, 04 Nov 2022 07:35:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667572516; cv=none; d=google.com; s=arc-20160816; b=RYjHQsL3cKOYo75G89reoMSHtBGBLrntCl2k5wuyck/zKB/CtjkNwWyK5E17WEt8FH I01qkkOm7lH8vNFotcjNRiWz9Yw/XzAd4Vpy0ZedA7eovMWcxqRxz5Wdsn+mBMA8DVsz aPkuVyiZ1NaEPLBQR++0pttpJ8HxQoHLiba6Z50c8YBI4hJDWwsCrKdKm2pLfOqlzG+q 6whIMVih5ceNmMqks9GEJNGA4fk9WEwRvlU4I3/6NhKxLrSc4ouELEN9BRdC4+UrHvkF s7IFApBE1bzzsl5nwuTEzJ9x8xwjdulCffMlTzNyFc0+j14AwJj9Tx95tA/pDyZ5kNuw wrJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=PsQlKPYQfd1lsrMTTMqhTFKxnTIDbHL7WVKQtA/KgN8=; b=DyhIIe7nYfJL8DHacVSGleEtyk5IawhW6YqYIKbUDhgjGZemhcLndf0v8nv5/dXF12 50GB3ZC3Bg4ZcWshivxCGEWc0NJ4dz4o1nHh/oeZ3xi1JM1pYL80NGg+gQJk7pncVcGX zaPp9J5euLGNv5MsAmowhti5/XcafLZxRndunLVs/gyGyRkCm9Fj3aS3idqXFTOMHUug yzcFUQH36DRob49AjRkuOf66jDbmMTSD2+9ouQem7qth9a4LIix3p8pZI+OfHrG/s015 uWktiCQ5LTaMAxDIFjk4r2oM9TLPJtQ3UhKVi6vvw1goQnuKWwMmLeVnvoKbrM3O3WBO LPqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=L9mkLbm7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k128-20020a633d86000000b0044d72a10ab0si4669021pga.342.2022.11.04.07.35.04; Fri, 04 Nov 2022 07:35:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=L9mkLbm7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232278AbiKDOaO (ORCPT + 96 others); Fri, 4 Nov 2022 10:30:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230193AbiKDO3r (ORCPT ); Fri, 4 Nov 2022 10:29:47 -0400 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::221]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0E123137C; Fri, 4 Nov 2022 07:27:52 -0700 (PDT) Received: (Authenticated sender: maxime.chevallier@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A0DA1240008; Fri, 4 Nov 2022 14:27:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1667572071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=PsQlKPYQfd1lsrMTTMqhTFKxnTIDbHL7WVKQtA/KgN8=; b=L9mkLbm7Z9wC2bgPxGW0ZerK3dxRi1jFqyeIZZISJ3W2iYL9zulYz3ye1NLyzdf+5sffGM tLLQECNpsYa6wRtFw/Weu4/dsAZxbGETRyL/6xchTW/D12MAaWFDPj1APnWP0w5t1jNyan vmJNb7phEdlxQjW9N74pcPjJUEw6IkJPfpogXeDi0OUJeYh01eGHqawxdRYqPJTlMI6hmn tQSqV0WpfYFfPU0Upopw99FoB88QtEP0upxswL5zIq41WpanOImtAaDcPSNxDvm/wX5nnX L5v2rHsdrlYFGiQ0XNtOhGmB7RkflNU3nhcyrny3cFL4C8tEH5Grgmbxw+RNdw== From: Maxime Chevallier To: davem@davemloft.net, Rob Herring , Krzysztof Kozlowski Cc: Maxime Chevallier , Jakub Kicinski , Eric Dumazet , Paolo Abeni , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, thomas.petazzoni@bootlin.com, Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King , linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Luka Perkov , Robert Marko , Andy Gross , Bjorn Andersson , Konrad Dybcio Subject: [PATCH net-next v7 0/5] net: ipqess: introduce Qualcomm IPQESS driver Date: Fri, 4 Nov 2022 15:27:41 +0100 Message-Id: <20221104142746.350468-1-maxime.chevallier@bootlin.com> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello everyone, This is the 7th iteration on the IPQESS driver, that includes a new DSA tagger to let the MAC convey the tag to the switch through an out-of-band medium, here using DMA descriptors. Notables changes on V7 : - Fixed sparse warnings - Fixed a typo in the bindings - Added missing maintainers in CC Notables changes on V6 : - Cleanup unused helpers and fields in the tagger - Cleanup ordering in various files - Added more documentation on the tagger - Fixed the CHANGEUPPER caching - Cleanups in the IPQESS driver Thanks Andrew, Vlad and Krzysztof for the reviews ! Notables changes on V5 : - Fix caching of CHANGEUPPER events - Use a skb extension-based tagger - Rename the binding file - Some cleanups in the ipqess driver itself Notables changes on V4 : - Cache the uses_dsa info from CHANGEUPPER events - Use better string handling helpers for ethtool stats - rename ethtool callbacks - Fix a binding typo Notables changes on V3 : - Took into account Russell's review on the ioctl handler and the mac capabilities that were missing - Took Andrew's reviews into account by reworking the napi rx loop, some stray "inline" keywords, and useless warnings - Took Vlad's reviews into account by reworking a few macros - Took Christophe's review into account by removing extra GFP_ZERO - Took Rob's review into account by simplifying the binding Notables changes on V2 : - Put the DSA tag in the skb itself instead of using skb->shinfo - Fixed the initialisation sequence based on Andrew's comments - Reworked the error paths in the init sequence - Add support for the clock and reset lines on that controller - Fixed and updated the binding The driver itself is pretty straightforward, but has lived out-of-tree for a while. I've done my best to clean-up some outdated API calls, but some might remain. This controller is somewhat special, since it's part of the IPQ4019 SoC which also includes an QCA8K switch, and uses the IPQESS controller for the CPU port. The switch is so tightly intergrated with the MAC that it is connected to the MAC using an internal link (hence the fact that we only support PHY_INTERFACE_MODE_INTERNAL), and this has some consequences on the DSA side. The tagging for the switch isn't done inband as most switch do, but out-of-band, the DSA tag being included in the DMA descriptor. This series includes a new out-of-band tagger that uses skb extensions to convey the tag between the tagger and the MAC driver. Thanks to the Sartura folks who worked on a base version of this driver, and provided test hardware. Best regards, Maxime Chevallier Maxime Chevallier (5): net: dt-bindings: Introduce the Qualcomm IPQESS Ethernet controller net: ipqess: introduce the Qualcomm IPQESS driver net: dsa: add out-of-band tagging protocol net: ipqess: Add out-of-band DSA tagging support ARM: dts: qcom: ipq4019: Add description for the IPQESS Ethernet controller .../bindings/net/qcom,ipq4019-ess-edma.yaml | 94 ++ Documentation/networking/dsa/dsa.rst | 13 +- MAINTAINERS | 8 + arch/arm/boot/dts/qcom-ipq4019.dtsi | 44 + drivers/net/ethernet/qualcomm/Kconfig | 12 + drivers/net/ethernet/qualcomm/Makefile | 2 + drivers/net/ethernet/qualcomm/ipqess/Makefile | 8 + drivers/net/ethernet/qualcomm/ipqess/ipqess.c | 1308 +++++++++++++++++ drivers/net/ethernet/qualcomm/ipqess/ipqess.h | 522 +++++++ .../ethernet/qualcomm/ipqess/ipqess_ethtool.c | 164 +++ include/linux/dsa/oob.h | 16 + include/linux/skbuff.h | 3 + include/net/dsa.h | 2 + net/core/skbuff.c | 10 + net/dsa/Kconfig | 9 + net/dsa/Makefile | 1 + net/dsa/tag_oob.c | 48 + 17 files changed, 2263 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/net/qcom,ipq4019-ess-edma.yaml create mode 100644 drivers/net/ethernet/qualcomm/ipqess/Makefile create mode 100644 drivers/net/ethernet/qualcomm/ipqess/ipqess.c create mode 100644 drivers/net/ethernet/qualcomm/ipqess/ipqess.h create mode 100644 drivers/net/ethernet/qualcomm/ipqess/ipqess_ethtool.c create mode 100644 include/linux/dsa/oob.h create mode 100644 net/dsa/tag_oob.c -- 2.37.3