Received: by 2002:ac0:da4c:0:0:0:0:0 with SMTP id a12csp2335906imi; Sun, 24 Jul 2022 16:13:58 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vqdO3XQgfOIdGbHQaXltiMd/cbFKm1vC2J9sD2A5nlWwu13AO5DSUAoo3qlDkeYKtdMybC X-Received: by 2002:a17:90a:7c05:b0:1ee:e40c:589b with SMTP id v5-20020a17090a7c0500b001eee40c589bmr11467018pjf.78.1658704438204; Sun, 24 Jul 2022 16:13:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658704438; cv=none; d=google.com; s=arc-20160816; b=UlkRc2djsLY0ZouVv6Xjx7UfS4GX24jnb9oYqxTb4+mygweDK9wwEu3PBKji4zQ4R1 KemVVqOdbReW00Pjhd9FdRiG4e5F4y/2g31aIq0tbMzsjbC7sUrH2KdKAIsej024vS6L gphDHdhCAIVdihK0kP1DTpqUtUfccWWKM9LTBv8W9Uw3lvMPCn0GbuHrejLnf/zjUT2s Ft4g9Jo6D/P9LvzYWmxf43h45codsVRjiCAOe+pFRdvmW86gIvL9rc7Uecw5EXe0qwXO BQuIz+9at4lvItyKfAxS6bpz4b7S+oqiHzBmuw+GIuwzjcjaQAZXaMsI4ECE4gPT/+pM uZdQ== 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 :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=qstW+Qg+S9gNQTGK7khflNk1Z1N8MAj9afzYGf3Z1I0=; b=lGfilGtdOz8yzpCcmLg6Yv8iO3k4cR/UoxyC3aBP16uRPuyaLWV3ToEi367hnAJRBc F0w7twdioQhV4vgwRKXnsJJsip3Q2Gv4bUoO6N4jebSKiPf2fyKFUYa4FcvjhmzYtTFk VhUFQf/1vR4tslUvrlWMk54wREP8+Q9M8cPRlFqGRzvhgF4m1XBXZ3g5qvHMA0o4hbWB yeO/WnQ54bPodCgtp+A+Xri8NPAXApVzkpXxbQ+k+qypuRTxIO81wiR6jBF4SlszayDV bBfE6EhGtB29Q+EIYQ5jajyz7BqqFyVCO3ALjKLp22PZRHZkpXKHWlR5QfAC8OHu2vNs 8lZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FGQDkQe2; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j17-20020a63cf11000000b0040de29fae99si12199557pgg.540.2022.07.24.16.13.43; Sun, 24 Jul 2022 16:13:58 -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=@gmail.com header.s=20210112 header.b=FGQDkQe2; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232314AbiGXWvS (ORCPT + 99 others); Sun, 24 Jul 2022 18:51:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231980AbiGXWvJ (ORCPT ); Sun, 24 Jul 2022 18:51:09 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7BD9FB4B7; Sun, 24 Jul 2022 15:51:08 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id va17so17581533ejb.0; Sun, 24 Jul 2022 15:51:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=qstW+Qg+S9gNQTGK7khflNk1Z1N8MAj9afzYGf3Z1I0=; b=FGQDkQe2bg3I7wQsna+1SmBp7HtzdzZR3IuT+d1SyrWja96x9+rqfa2dRXHuO9jsY/ eEPc7xWmJxa5V33uCdG5R2Gvd2ufpx+IXAbCdlzpoVZUQmjzusOUMbq7BX88sbIJylCP ClMBfBBO/JCWYHXl7A4Z39cIuxfFTFjeCjJWNd1j4zmi9ii7FAfEAUpR8/n5WlM/KluR oTU8hgMUXUoipORsHz+S9cfbTVd7ehRqHwLcjVn0Imn8OYfoyZ8NtV0oWijKFpIte3KT 9UyNzH5EliELfon1uxH8oORLI68QxQgOJfDJiWBz+J5FwH2xPRdk6VFehqWL0C7fZLPw uUPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qstW+Qg+S9gNQTGK7khflNk1Z1N8MAj9afzYGf3Z1I0=; b=V2PIRPBexS9DPPz31B6MvpFn+uw3R3pEiAFXXlPXYDo+fcAJZbT169uqy0QNDdKcLF PMORCmw6DR/mifzm+5ikTtXRdVIbSfj3JiUht6viXkxkl1S+j5aTfvCBGW4sUa04DT4u zCJP1DQ9IAtehP2W2qgaX6QAKog/JKV1YlLz4Y2Ex9qjpAouaFPN9AdHP+M0fkcXQyX2 sO3ngZHTO5p1sY4gFRnG5BmzKMfoKILfBQyiyZEuKvyvRzcEPZJSCde3ouIFNOvKAx+n EoqND0fnHOfLb3LKuOAM4vP7iNuzri6db8UllqnzKZJFSINCJTsClwj3rHkbrCRFVbvY HZAA== X-Gm-Message-State: AJIora/3N7zwFoXIuQVn4vDV8VGCSjdxBOgGK86k9MOWlx1o5YehIf85 Vx9APU20rYODEnuBZKoIvQ0= X-Received: by 2002:a17:906:4fd6:b0:70c:9284:cc01 with SMTP id i22-20020a1709064fd600b0070c9284cc01mr7801221ejw.553.1658703066889; Sun, 24 Jul 2022 15:51:06 -0700 (PDT) Received: from localhost.localdomain (93-42-69-122.ip85.fastwebnet.it. [93.42.69.122]) by smtp.googlemail.com with ESMTPSA id nc19-20020a1709071c1300b00722d5b26ecesm4645238ejc.205.2022.07.24.15.51.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Jul 2022 15:51:06 -0700 (PDT) From: Christian Marangi To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Nathan Chancellor , Nick Desaulniers , Tom Rix , Jens Axboe , Greg Kroah-Hartman , Christian Marangi , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, llvm@lists.linux.dev Subject: [net-next PATCH v4 02/14] net: dsa: qca8k: make mib autocast feature optional Date: Sun, 24 Jul 2022 22:19:26 +0200 Message-Id: <20220724201938.17387-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220724201938.17387-1-ansuelsmth@gmail.com> References: <20220724201938.17387-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,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 Some switch may not support mib autocast feature and require the legacy way of reading the regs directly. Make the mib autocast feature optional and permit to declare support for it using match_data struct in a dedicated qca8k_info_ops struct. Signed-off-by: Christian Marangi --- drivers/net/dsa/qca/qca8k.c | 11 +++++++++-- drivers/net/dsa/qca/qca8k.h | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/qca/qca8k.c b/drivers/net/dsa/qca/qca8k.c index 212b284f9f73..5d3c3c95ef88 100644 --- a/drivers/net/dsa/qca/qca8k.c +++ b/drivers/net/dsa/qca/qca8k.c @@ -2104,8 +2104,8 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, u32 hi = 0; int ret; - if (priv->mgmt_master && - qca8k_get_ethtool_stats_eth(ds, port, data) > 0) + if (priv->mgmt_master && priv->info->ops->autocast_mib && + priv->info->ops->autocast_mib(ds, port, data) > 0) return; for (i = 0; i < priv->info->mib_count; i++) { @@ -3248,20 +3248,27 @@ static int qca8k_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(qca8k_pm_ops, qca8k_suspend, qca8k_resume); +static const struct qca8k_info_ops qca8xxx_ops = { + .autocast_mib = qca8k_get_ethtool_stats_eth, +}; + static const struct qca8k_match_data qca8327 = { .id = QCA8K_ID_QCA8327, .reduced_package = true, .mib_count = QCA8K_QCA832X_MIB_COUNT, + .ops = &qca8xxx_ops, }; static const struct qca8k_match_data qca8328 = { .id = QCA8K_ID_QCA8327, .mib_count = QCA8K_QCA832X_MIB_COUNT, + .ops = &qca8xxx_ops, }; static const struct qca8k_match_data qca833x = { .id = QCA8K_ID_QCA8337, .mib_count = QCA8K_QCA833X_MIB_COUNT, + .ops = &qca8xxx_ops, }; static const struct of_device_id qca8k_of_match[] = { diff --git a/drivers/net/dsa/qca/qca8k.h b/drivers/net/dsa/qca/qca8k.h index 0b990b46890a..377ce8c72914 100644 --- a/drivers/net/dsa/qca/qca8k.h +++ b/drivers/net/dsa/qca/qca8k.h @@ -324,10 +324,15 @@ enum qca8k_mid_cmd { QCA8K_MIB_CAST = 3, }; +struct qca8k_info_ops { + int (*autocast_mib)(struct dsa_switch *ds, int port, u64 *data); +}; + struct qca8k_match_data { u8 id; bool reduced_package; u8 mib_count; + const struct qca8k_info_ops *ops; }; enum { -- 2.36.1