From patchwork Sun Mar 27 01:59:40 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivien Didelot X-Patchwork-Id: 602233 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qXgH650sGz9t0s for ; Sun, 27 Mar 2016 13:00:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754773AbcC0CAT (ORCPT ); Sat, 26 Mar 2016 22:00:19 -0400 Received: from mail.savoirfairelinux.com ([208.88.110.44]:51462 "EHLO mail.savoirfairelinux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754739AbcC0CAN (ORCPT ); Sat, 26 Mar 2016 22:00:13 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id DF194620C43; Sat, 26 Mar 2016 22:00:12 -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 QPRxsK-ob8em; Sat, 26 Mar 2016 22:00:09 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 12FE4620C48; Sat, 26 Mar 2016 22:00:09 -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 t6jlxPTl-Dcn; Sat, 26 Mar 2016 22:00:08 -0400 (EDT) Received: from ketchup.brouepubbrouhaha.publique (modemcable082.225-70-69.static.videotron.ca [69.70.225.82]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 5BE2F620C43; Sat, 26 Mar 2016 22:00:07 -0400 (EDT) From: Vivien Didelot To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" , Andrew Lunn , Patrick Uiterwijk , Guenter Roeck , Vivien Didelot Subject: [PATCH net-next 4/7] net: dsa: mv88e6xxx: fix ATU FID access for 6185 Date: Sat, 26 Mar 2016 21:59:40 -0400 Message-Id: <1459043983-12088-5-git-send-email-vivien.didelot@savoirfairelinux.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1459043983-12088-1-git-send-email-vivien.didelot@savoirfairelinux.com> References: <1459043983-12088-1-git-send-email-vivien.didelot@savoirfairelinux.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The 6185 family does not have a ATU FID register. It splits it in the ATU Control register and the ATU Operation. Add 6185 support for FID (a.k.a. DBNum) in ATU commands. Signed-off-by: Vivien Didelot --- drivers/net/dsa/mv88e6xxx.c | 14 ++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c index df3f219..4b3c466 100644 --- a/drivers/net/dsa/mv88e6xxx.c +++ b/drivers/net/dsa/mv88e6xxx.c @@ -961,6 +961,20 @@ static int _mv88e6xxx_atu_cmd(struct dsa_switch *ds, u16 fid, u16 cmd) ret = _mv88e6xxx_reg_write(ds, REG_GLOBAL, GLOBAL_ATU_FID, fid); if (ret < 0) return ret; + } else if (mv88e6xxx_6185_family(ds)) { + /* ATU DBNum[7:4] are located in ATU Control 15:12 */ + ret = _mv88e6xxx_reg_read(ds, REG_GLOBAL, GLOBAL_ATU_CONTROL); + if (ret < 0) + return ret; + + ret = _mv88e6xxx_reg_write(ds, REG_GLOBAL, GLOBAL_ATU_CONTROL, + (ret & 0xfff) | + ((fid << 8) & 0xf000)); + if (ret < 0) + return ret; + + /* ATU DBNum[3:0] are located in ATU Operation 3:0 */ + cmd |= fid & 0xf; } else { return -EOPNOTSUPP; } diff --git a/drivers/net/dsa/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx.h index febab76..94d3cb3 100644 --- a/drivers/net/dsa/mv88e6xxx.h +++ b/drivers/net/dsa/mv88e6xxx.h @@ -366,7 +366,7 @@ struct mv88e6xxx_switch_id { }; struct mv88e6xxx_atu_entry { - u16 fid; + u16 fid; /* 8-bit DBNum in 88E6185 family */ u8 state; bool trunk; u16 portv_trunkid;