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=-8.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,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 E0B15C43219 for ; Tue, 30 Apr 2019 22:11:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A03E620835 for ; Tue, 30 Apr 2019 22:11:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=lunn.ch header.i=@lunn.ch header.b="Crmz6DKh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727300AbfD3WLk (ORCPT ); Tue, 30 Apr 2019 18:11:40 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:50595 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726048AbfD3WLk (ORCPT ); Tue, 30 Apr 2019 18:11:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=L3nI06bt6NU6XReTGlpsW1p6d2nk8QaIeSVXpvRIt/w=; b=Crmz6DKho3BdK3jEfuihG+N1cR his7lQGQGiA3sQnqZYzqWrWAVU1hgqO0/y7X9+Zo9f3aUcX/4m1aSl/2noh7iMYIFbuYBczBbJv09 6ilUWxfmVTBIZBF4QrUxgrAaNV9KzxTB37cj1UDDw7HkHDuYD7NIndFnqPnafnBXYPBs=; Received: from andrew by vps0.lunn.ch with local (Exim 4.89) (envelope-from ) id 1hLavX-00055Q-BN; Wed, 01 May 2019 00:08:39 +0200 From: Andrew Lunn To: David Miller Cc: netdev , Vivien Didelot , Andrew Lunn Subject: [PATCH net-next 2/2] net: dsa :mv88e6xxx: Disable unused ports Date: Wed, 1 May 2019 00:08:31 +0200 Message-Id: <20190430220831.19505-3-andrew@lunn.ch> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190430220831.19505-1-andrew@lunn.ch> References: <20190430220831.19505-1-andrew@lunn.ch> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If the NO_CPU strap is set, the switch starts in 'dumb hub' mode, with all ports enable. Ports which are then actively used are reconfigured as required when the driver starts. However unused ports are left alone. Change this to disable them, and turn off any SERDES interface. This could save some power and so reduce the temperature a bit. Signed-off-by: Andrew Lunn --- drivers/net/dsa/mv88e6xxx/chip.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index dc891d83610e..46020fe1b5e7 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2599,8 +2599,18 @@ static int mv88e6xxx_setup(struct dsa_switch *ds) /* Setup Switch Port Registers */ for (i = 0; i < mv88e6xxx_num_ports(chip); i++) { - if (dsa_is_unused_port(ds, i)) + if (dsa_is_unused_port(ds, i)) { + err = mv88e6xxx_port_set_state(chip, i, + BR_STATE_DISABLED); + if (err) + goto unlock; + + err = mv88e6xxx_serdes_power(chip, i, false); + if (err) + goto unlock; + continue; + } err = mv88e6xxx_setup_port(chip, i); if (err) -- 2.20.1