From patchwork Wed Jun 21 09:54:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 111649 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp5031994vqr; Thu, 22 Jun 2023 05:34:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7pjqBBvaMuVjNj8EL2eWHMnP7Q53FGvKwEUo7UqfNDgpfSFe7yMphwaPo48CHRkc+IIsjz X-Received: by 2002:a05:6a20:a108:b0:116:fc1b:fa3b with SMTP id q8-20020a056a20a10800b00116fc1bfa3bmr15648178pzk.9.1687437287567; Thu, 22 Jun 2023 05:34:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687437287; cv=none; d=google.com; s=arc-20160816; b=OlPp+MSm7jm4V/gwraN0crEXFzWB/ott9Vzk4Ewibwini5hq+sPn0vG0Ut1mqnFjQz ovRbXH4NX1yjIv2dgbjb4scdW6nQcUXrVHqb960tc/Gzqjn918nX+gOOUUVcsg2LJdCj ExOp/wnES+Loao4U3so/TCvzQKjF44LdCnvoVPPG+L82wI9knN330D2TrjwGRx5demea KK6PJnqJDPrytHk60oF4WzMOQVWoPERWBABnY0R4sq1/G7pVdsg6a8tj+QCTcbfwLmBP fDiKf6e54JD5e6KkjybW6u67/ql1L51Kmv7OlT9xzTnJUMbnb1pDiotR8hd1LhkSLBa/ rFdQ== 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:to:from:dkim-signature; bh=LAhK5ptsDBv64jGlJql6+rkKJiLJ8n12yCAtGqe3FGM=; b=0Jop6Fu8ku7GugkTLW1c2ISgaVjkBdldtyI1xWMIzi/OzN15iu7zvBycdKhFWw7cpz ZhcRcprE65PdSXwJY66LOS57SVMszPN/COO40j2w36uyapci70NuFDq9DpZdRE9qVt5A NKrCAvMg1EN1DtiVv106tT/dCorOjF+WUp8phgH+j3O1X6NVit+IUzmbdZeoOmCOQJ86 2RLGN77QwKTJUFnr0rIPkWbm7DXq3wsqcJYBTf48cB7wJNRJ186xYA5uU4bKGCTdYZ5u RZY/OxZrXKcd1N3MQj5PGII/SxUX6DaXnRsjG7ghj6v2hmLtwhNKY7uDOczfnD+NpCje EdxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=aLeAta5J; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h185-20020a6253c2000000b006650ccb39e9si6181791pfb.294.2023.06.22.05.34.19; Thu, 22 Jun 2023 05:34:47 -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=20221208 header.b=aLeAta5J; 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 S229985AbjFVMJo (ORCPT + 99 others); Thu, 22 Jun 2023 08:09:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229468AbjFVMJn (ORCPT ); Thu, 22 Jun 2023 08:09:43 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 453CE171C; Thu, 22 Jun 2023 05:09:42 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fa70ec8d17so5614475e9.1; Thu, 22 Jun 2023 05:09:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687435781; x=1690027781; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=LAhK5ptsDBv64jGlJql6+rkKJiLJ8n12yCAtGqe3FGM=; b=aLeAta5Jy97A7BxULGxrE+pm6Crwgr/JVxvKHVrQ0gCCSAc6+UK+NCez7tCi9M++80 tAvs/H1xw7drVND1sl+uvWyeqE0nns1Kvv7Tcthg8x3n1cQUzKqhJv3vex6IA3RiF7b9 MRSAXxb607ONdUiLsLJ3J7MqK5dmdnK9w+4a07JLUgCvMDKq9TZ3257KzimmEc8bnTJ5 rkF2Fk/oYADEDRTGl3m57UGV9Z6emH5ZmGT7oKI2Fmg+rmk821WC4jfXOsOv7xZGqPD8 ZmmRRdOaf7L2axbizBq7GW+Q9GO2fYYgwx74/L9KK7uq9ragpFuqVR53SqEFUIvnlshX Y7AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687435781; x=1690027781; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LAhK5ptsDBv64jGlJql6+rkKJiLJ8n12yCAtGqe3FGM=; b=d/FVJlYCFw6EuD+T/sxQNtrn77Ir/hv7qlGMhn4yhIRuGEzw5AlSMMNNz7BBmT+poo 00HxstdbOq09f+hpXcyXoORPEz+ml1L8LfNjVTIW7PIc5AqcgDxcyGMiZEPEOcsTBV6x lj8vMDZ6wccouW3PaovJHr0n7Ga7hCPGzrlk6ViLK3DzH7SNpNVzJtnqSTu5U7I5CLxE rLo7Oue6QU5rypJE74orpmvmtSb9F6RGmFHjkwbaoyJ6FDxr1Fz72dxUgiqUaCcwpH0A YWWB75mSSENzDjLRyeWyI8gNVVZCSs7prXEgZaAqASHHUbfReQ64nWeI1oeYLMkekgX4 b2YQ== X-Gm-Message-State: AC+VfDwe9rLPp8aWJovHk/ONfpN13O6I8ZCpxM9bavIY9BLuIN3QlN+X 8E4tR/yo1vOEkbJqKyyAaIk= X-Received: by 2002:a05:600c:3657:b0:3f6:8ba:6ea2 with SMTP id y23-20020a05600c365700b003f608ba6ea2mr16872598wmq.15.1687435780387; Thu, 22 Jun 2023 05:09:40 -0700 (PDT) Received: from localhost.localdomain (93-34-93-173.ip49.fastwebnet.it. [93.34.93.173]) by smtp.googlemail.com with ESMTPSA id o6-20020a05600c378600b003f9c0a7c6bcsm3977773wmr.0.2023.06.22.05.09.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jun 2023 05:09:40 -0700 (PDT) From: Christian Marangi To: Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Christian Marangi , Pavel Machek , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [net-next PATCH] net: dsa: qca8k: add support for additional modes for netdev trigger Date: Wed, 21 Jun 2023 11:54:09 +0200 Message-Id: <20230621095409.25859-1-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_24_48, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769406241111601923?= X-GMAIL-MSGID: =?utf-8?q?1769406241111601923?= The QCA8K switch supports additional modes that can be handled in hardware for the LED netdev trigger. Add these additional modes to further support the Switch LEDs and offload more blink modes. Add additional modes: - link_10 - link_100 - link_1000 - half_duplex - full_duplex Signed-off-by: Christian Marangi Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli --- drivers/net/dsa/qca/qca8k-leds.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/net/dsa/qca/qca8k-leds.c b/drivers/net/dsa/qca/qca8k-leds.c index 6f02029b454b..1261e0bb21ef 100644 --- a/drivers/net/dsa/qca/qca8k-leds.c +++ b/drivers/net/dsa/qca/qca8k-leds.c @@ -68,6 +68,16 @@ qca8k_parse_netdev(unsigned long rules, u32 *offload_trigger) *offload_trigger |= QCA8K_LED_TX_BLINK_MASK; if (test_bit(TRIGGER_NETDEV_RX, &rules)) *offload_trigger |= QCA8K_LED_RX_BLINK_MASK; + if (test_bit(TRIGGER_NETDEV_LINK_10, &rules)) + *offload_trigger |= QCA8K_LED_LINK_10M_EN_MASK; + if (test_bit(TRIGGER_NETDEV_LINK_100, &rules)) + *offload_trigger |= QCA8K_LED_LINK_100M_EN_MASK; + if (test_bit(TRIGGER_NETDEV_LINK_1000, &rules)) + *offload_trigger |= QCA8K_LED_LINK_1000M_EN_MASK; + if (test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &rules)) + *offload_trigger |= QCA8K_LED_HALF_DUPLEX_MASK; + if (test_bit(TRIGGER_NETDEV_FULL_DUPLEX, &rules)) + *offload_trigger |= QCA8K_LED_FULL_DUPLEX_MASK; if (rules && !*offload_trigger) return -EOPNOTSUPP; @@ -322,6 +332,16 @@ qca8k_cled_hw_control_get(struct led_classdev *ldev, unsigned long *rules) set_bit(TRIGGER_NETDEV_TX, rules); if (val & QCA8K_LED_RX_BLINK_MASK) set_bit(TRIGGER_NETDEV_RX, rules); + if (val & QCA8K_LED_LINK_10M_EN_MASK) + set_bit(TRIGGER_NETDEV_LINK_10, rules); + if (val & QCA8K_LED_LINK_100M_EN_MASK) + set_bit(TRIGGER_NETDEV_LINK_100, rules); + if (val & QCA8K_LED_LINK_1000M_EN_MASK) + set_bit(TRIGGER_NETDEV_LINK_1000, rules); + if (val & QCA8K_LED_HALF_DUPLEX_MASK) + set_bit(TRIGGER_NETDEV_HALF_DUPLEX, rules); + if (val & QCA8K_LED_FULL_DUPLEX_MASK) + set_bit(TRIGGER_NETDEV_FULL_DUPLEX, rules); return 0; }