Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp2816396rda; Wed, 25 Oct 2023 13:11:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGKVjxKM0WKWS+7FTO15pxSpDX21RwF/OHJ+YYdheA6LQ3pR/OietklBlAQz8omSRKaXJ+S X-Received: by 2002:a05:690c:ec8:b0:5a7:af9d:53fd with SMTP id cs8-20020a05690c0ec800b005a7af9d53fdmr19515851ywb.9.1698264674719; Wed, 25 Oct 2023 13:11:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698264674; cv=none; d=google.com; s=arc-20160816; b=Bfrcm6ezoGnWsE2OXi1H5Jg184h+L0V+pN2Kx9S7VTiZ7dWW3vFqCXWXNkqKrpV7Z5 RQD/ofpR9kBphVhlVJ/Esk2BPLgcf4s6/x7e/D3N1RqBcpl2PfKHgBq1vJjFHSCO02bh zwGD/zzwYZ/uFwK/1JBAbffTnOHPPt87dGCFcCzCfT+SAiZQ0WzUNES0+gYWOGVC6Ia/ +kqAP/z5iJVEn+sLJ7ILJRFO3DSAN3dzJePfe3sALaWvuttpg7kk3xg6ScVwnsOf5ZBN YWqqFdApaI0BaChVHUhcTXn1ngvxfkvoaHx+4HkgV0PQSBQQ3Lx/dn2OZIxwy31VMGqT g5qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=IfXGAh3uvY6y1lOg+b6oSuDSQY8uiaUcJ4+SWhmbePc=; fh=HZos9zKaxR4goWYYnp1ww8vzQSz4j1/BKjy3jIeM6b0=; b=KRRR8sLx916Ej9YVf4EJI77q84QqiBohQv6cdo5mcaUM7pNZvhbqZVlWztDSBVf/Ht 2sMLZveRYGqygqnN5yxPhNi5CLOnHeT6lIlGA1w2EyGvpGb35WrhIC+UOlbb6E5lYvnq /NEoH6ZjzCAcBWsweWBIOk5t6JSALMptl6EtKrqj0dWzTIoOy8OFuU4Iabz5YsuBlnpM 01TdjgHAWMsWcMVUubK2eOHKTg+pm6AIORkBbmuw6HeaI4K4EampflkMpKoIkoOsMu/D wLkpDo4YWyZlEbg3tqObfBLy1jg5WXHI6FrmtqqlS6G+bwbI3tlCTvU20+fLVF8L72l+ ov9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IXobuwDD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id p7-20020a0dff07000000b005a7a78f4ff0si11693676ywf.364.2023.10.25.13.11.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 13:11:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IXobuwDD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 24650808690F; Wed, 25 Oct 2023 13:10:42 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229695AbjJYUK2 (ORCPT + 99 others); Wed, 25 Oct 2023 16:10:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54754 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbjJYUK1 (ORCPT ); Wed, 25 Oct 2023 16:10:27 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 359CCDC for ; Wed, 25 Oct 2023 13:10:25 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C3671C433C8; Wed, 25 Oct 2023 20:10:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1698264624; bh=W2ZtlC8h83hjoSYyz4fUnl72qO69z2zaIBKrCyxCmas=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=IXobuwDDWpPIpl4AGv2c5SE7hxUyUbECrQX3GJJk0nfdVMzKJMUgOH4sbX/qKdVyv 9Dcu7WtXFdjDy/FZYaULYAWZETMipyCvyRYNGFFX8xwMLsUCKJ0rFPScDcOX0E6xcs SVF4S8sYz77QDTgdkeUI9BFYOXEacv8eGXIGCLlk6wia3qtc3pPH5Dfc2HasEenD+j AF3B4PIFBmkf0g65ZlgJ98SB3A2W8KZAKgRCVJgee/hOb441boZQJN2m5HOhSQw1Pk qXhqILm7WzfTbaKJUEUIKKFLntVCL6b+S1gGywIhrbsPrqILWhOKv3k4TchDC26j7P NxO9TUDh0W0uw== Date: Wed, 25 Oct 2023 21:10:15 +0100 From: Simon Horman To: Oleksij Rempel Cc: "David S. Miller" , Andrew Lunn , Eric Dumazet , Florian Fainelli , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Woojung Huh , Arun Ramadoss , Conor Dooley , Krzysztof Kozlowski , Rob Herring , Florian Fainelli , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, "Russell King (Oracle)" , devicetree@vger.kernel.org Subject: Re: [PATCH net-next v7 4/9] net: dsa: microchip: ksz9477: add Wake on LAN support Message-ID: <20231025201015.GL57304@kernel.org> References: <20231023093343.2370248-1-o.rempel@pengutronix.de> <20231023093343.2370248-5-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231023093343.2370248-5-o.rempel@pengutronix.de> X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Wed, 25 Oct 2023 13:10:42 -0700 (PDT) On Mon, Oct 23, 2023 at 11:33:38AM +0200, Oleksij Rempel wrote: > Add WoL support for KSZ9477 family of switches. This code was tested on > KSZ8563 chip. > > KSZ9477 family of switches supports multiple PHY events: > - wake on Link Up > - wake on Energy Detect. > Since current UAPI can't differentiate between this PHY events, map all > of them to WAKE_PHY. > > Signed-off-by: Oleksij Rempel > Reviewed-by: Andrew Lunn > Reviewed-by: Florian Fainelli > --- > drivers/net/dsa/microchip/ksz9477.c | 100 +++++++++++++++++++++++++ > drivers/net/dsa/microchip/ksz9477.h | 4 + > drivers/net/dsa/microchip/ksz_common.c | 24 ++++++ > drivers/net/dsa/microchip/ksz_common.h | 4 + > 4 files changed, 132 insertions(+) > > diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c > index cde8ef33d029..036dfaddb32a 100644 > --- a/drivers/net/dsa/microchip/ksz9477.c > +++ b/drivers/net/dsa/microchip/ksz9477.c > @@ -56,6 +56,103 @@ int ksz9477_change_mtu(struct ksz_device *dev, int port, int mtu) > REG_SW_MTU_MASK, frame_size); > } > > +/** > + * ksz9477_handle_wake_reason - Handle wake reason on a specified port. > + * @dev: The device structure. > + * @port: The port number. > + * > + * This function reads the PME (Power Management Event) status register of a > + * specified port to determine the wake reason. If there is no wake event, it > + * returns early. Otherwise, it logs the wake reason which could be due to a > + * "Magic Packet", "Link Up", or "Energy Detect" event. The PME status register > + * is then cleared to acknowledge the handling of the wake event. > + * > + * Return: 0 on success, or an error code on failure. > + */ > +static int ksz9477_handle_wake_reason(struct ksz_device *dev, int port) > +{ > + u8 pme_status; > + int ret; > + > + ret = ksz_pread8(dev, port, REG_PORT_PME_STATUS, &pme_status); > + if (ret) > + return ret; > + > + if (!pme_status) > + return 0; > + > + dev_dbg(dev->dev, "Wake event on port %d due to:%s%s\n", port, > + pme_status & PME_WOL_LINKUP ? " \"Link Up\"" : "", > + pme_status & PME_WOL_ENERGY ? " \"Enery detect\"" : ""); nit: Energy > + > + return ksz_pwrite8(dev, port, REG_PORT_PME_STATUS, pme_status); > +} ...