Received: by 10.192.165.148 with SMTP id m20csp54314imm; Wed, 9 May 2018 08:41:37 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrenN1nuzgchlktEUwaYuhFfL7ZqD2YkIRpfqlE9F5xyC54tMv/VEReCy0w5sAz5YIPh32w X-Received: by 10.98.248.12 with SMTP id d12mr1010567pfh.159.1525880497153; Wed, 09 May 2018 08:41:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525880497; cv=none; d=google.com; s=arc-20160816; b=ZYY+Aa/+yJvezjM3DiGdlno8vF3KOZTEm5FBTd3MRMbayjhGjLavVTGkdfsfsb60bj RwZVjlC5ZwoPl575frBGADvVlaHjw3nm7ScDFPo+i5l2/GIMEVTic+mgcWxeQfge2LEj KYyAd3BrPqsuig6d6cSYTOm88qlDbkJobobb8QhatdxtHewoXLcPIX119rI2AwceOm0r SAhrG7RxbqIk6AW2oXZ7hq0dKNMgrZEN7dPUo+qBOtAx/YKMdKqONNoxZoaiYFG+5VaB KMqWjMKXFAAXJ9ZFRje0CBLerR6ZRqtjmihXw8MjfzTVkroNSlBuuOdgNlesOATPuLTp Y9jQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=YImO4iTR/7VGdC2Yb/lo+Zeghy6NnpaX1jCDopKxvBI=; b=bOzRzpKsaNoHlab1SB7302lKmks33/U4Gn28QgbRzLGUHo8i1VniGGU9cPlOgOY6Cs 0G4fZ4gjvbzYdkhhyXXRgarme+ltGHJtmTyTxSt5kKouZixDxy8OkJM8SnTHFpYIcqru qo8BmM9zgzNaSPK+sm+yeU98uCOH2NAUO4GYBkzgvSSgQrtQShQO/zP3Rz88Md3AmPw6 RAGyS+WyBa3XbKVKB/YXNIc6claBG7Leh5EpKQj8JsrUH6AZYwDvegPeLanrkCQ0W9r1 /CCpJ5r/ZQ3/zS9+Cey0jloxjHwJEsfHV/OIxVhuC5bgreSeggyr2WnZYkANtwP6is6P dp2Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s88si26864948pfa.339.2018.05.09.08.41.22; Wed, 09 May 2018 08:41:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965109AbeEIPju (ORCPT + 99 others); Wed, 9 May 2018 11:39:50 -0400 Received: from mail.savoirfairelinux.com ([208.88.110.44]:36132 "EHLO mail.savoirfairelinux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935362AbeEIPjs (ORCPT ); Wed, 9 May 2018 11:39:48 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id EEACC9C33F6; Wed, 9 May 2018 11:39:46 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ztj2mQ-r6h-k; Wed, 9 May 2018 11:39:46 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 5DF649C3415; Wed, 9 May 2018 11:39:46 -0400 (EDT) X-Virus-Scanned: amavisd-new at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id D0ixez8znP1E; Wed, 9 May 2018 11:39:46 -0400 (EDT) Received: from weeman.mtl.sfl (unknown [192.168.49.104]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 37AC79C33F6; Wed, 9 May 2018 11:39:46 -0400 (EDT) From: Vivien Didelot To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, Vivien Didelot , davem@davemloft.net, andrew@lunn.ch, f.fainelli@gmail.com Subject: [PATCH net-next 2/3] net: dsa: mv88e6xxx: set device number Date: Wed, 9 May 2018 11:38:50 -0400 Message-Id: <20180509153851.10207-3-vivien.didelot@savoirfairelinux.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180509153851.10207-1-vivien.didelot@savoirfairelinux.com> References: <20180509153851.10207-1-vivien.didelot@savoirfairelinux.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All Marvell switches supported by mv88e6xxx have to set their device number in the Global Control 2 register. Extract this in a read then write function, called from the device mapping setup code. Signed-off-by: Vivien Didelot --- drivers/net/dsa/mv88e6xxx/chip.c | 11 ++++------- drivers/net/dsa/mv88e6xxx/global1.c | 7 +++++++ drivers/net/dsa/mv88e6xxx/global1.h | 3 +++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 04453440a139..b4e27f9fd3af 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -1053,6 +1053,10 @@ static int mv88e6xxx_devmap_setup(struct mv88e6xxx_chip *chip) return err; } + err = mv88e6xxx_g1_set_device_number(chip, chip->ds->index); + if (err) + return err; + return 0; } @@ -2160,15 +2164,8 @@ static int mv88e6xxx_set_ageing_time(struct dsa_switch *ds, static int mv88e6xxx_g1_setup(struct mv88e6xxx_chip *chip) { - struct dsa_switch *ds = chip->ds; int err; - /* Disable remote management, and set the switch's DSA device number. */ - err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_CTL2, - (ds->index & 0x1f)); - if (err) - return err; - /* Configure the IP ToS mapping registers. */ err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_IP_PRI_0, 0x0000); if (err) diff --git a/drivers/net/dsa/mv88e6xxx/global1.c b/drivers/net/dsa/mv88e6xxx/global1.c index 6eb4eca7ca5b..89c6330c53eb 100644 --- a/drivers/net/dsa/mv88e6xxx/global1.c +++ b/drivers/net/dsa/mv88e6xxx/global1.c @@ -389,6 +389,13 @@ int mv88e6390_g1_stats_set_histogram(struct mv88e6xxx_chip *chip) return err; } +int mv88e6xxx_g1_set_device_number(struct mv88e6xxx_chip *chip, int index) +{ + return mv88e6xxx_g1_ctl2_mask(chip, + MV88E6XXX_G1_CTL2_DEVICE_NUMBER_MASK, + index); +} + /* Offset 0x1d: Statistics Operation 2 */ int mv88e6xxx_g1_stats_wait(struct mv88e6xxx_chip *chip) diff --git a/drivers/net/dsa/mv88e6xxx/global1.h b/drivers/net/dsa/mv88e6xxx/global1.h index bcbb8046ad63..8b043e813761 100644 --- a/drivers/net/dsa/mv88e6xxx/global1.h +++ b/drivers/net/dsa/mv88e6xxx/global1.h @@ -207,6 +207,7 @@ #define MV88E6185_G1_CTL2_CASCADE_PORT_MASK 0xf000 #define MV88E6185_G1_CTL2_CASCADE_PORT_NONE 0xe000 #define MV88E6185_G1_CTL2_CASCADE_PORT_MULTI 0xf000 +#define MV88E6XXX_G1_CTL2_DEVICE_NUMBER_MASK 0x001f /* Offset 0x1D: Stats Operation Register */ #define MV88E6XXX_G1_STATS_OP 0x1d @@ -256,6 +257,8 @@ int mv88e6390_g1_mgmt_rsvd2cpu(struct mv88e6xxx_chip *chip); int mv88e6185_g1_set_cascade_port(struct mv88e6xxx_chip *chip, int port); +int mv88e6xxx_g1_set_device_number(struct mv88e6xxx_chip *chip, int index); + int mv88e6xxx_g1_atu_set_learn2all(struct mv88e6xxx_chip *chip, bool learn2all); int mv88e6xxx_g1_atu_set_age_time(struct mv88e6xxx_chip *chip, unsigned int msecs); -- 2.17.0