From patchwork Fri Dec 14 16:48:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013637 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc4B0CPXz9s4s for ; Sat, 15 Dec 2018 03:50:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730078AbeLNQud (ORCPT ); Fri, 14 Dec 2018 11:50:33 -0500 Received: from mout.gmx.net ([212.227.15.15]:51213 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729706AbeLNQu2 (ORCPT ); Fri, 14 Dec 2018 11:50:28 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LhOSG-1hBKHI10BE-00mXcJ; Fri, 14 Dec 2018 17:49:12 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 1/8] net: dsa: adding fields for holding information about upstream-port Date: Fri, 14 Dec 2018 17:48:40 +0100 Message-Id: <20181214164847.4851-2-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:ovUUBPJLPAQf2zRMjVDF1oSgXzC70FRGtdEio7Ezn9WL4B1MIlH Z0Eg+hZpJPIUECikF90RaaDoQwEsAin8BBze8SPu17MNCpEJ90FLYmqEo/Bau67RnxafXo3 VJtpsFw0AfQ8FgWxHMyqR2Jys1VTRoYzBMaypV1oWKVj+37R8HwKB8GJnxATcf/dA7HmI9W F50kYkudX0Dty+TPqhVWA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:UlXG/Ngdy00=:uhdWXesbzQELWQreF5vAb4 Df9DiwzWRQyxm9AFshZtP3qHOi+JZbAhJNUIydKU4F4VGZqVyXPGOo3JcS0C9+7Q0OUMFckuB x0gxVi4Zs52C3JLNM5P4/ETtBc8Zt8XOHE6IkUme+Tqd5DcUFlGqsWyPSX5K6iVi55iyW7UZU CIpe7oI0QfU15HKSoFWHjhdtnpWijOQ2Z/2VA5iZx9yGjuP4XwCF7LRsOP38W6gWCEiwLJd9i cB80l7fCYCxfy0/OAytrAlPztGBnigc9FkLkDpQtG2vlImm8XWOvXT/bkM8jRkygnXoUB23Bb ryI/T788aGilNQ+E9H76Z4m+YSK80csem2dtB1SQqYyR7CKYZmoA62FPrKEgdsqch8my+LCzv scIittNHyZb3ojAGLUrtWipwpQ2PlRDj6wSOOs5NiOAHoRismCAkfudUHHy4MGbu8TCoRZi03 pwGUCoulpndqpt1DQN6xQO0DAT1VmXG7t1W9ytvxJZmQT8oePArLa+wcH5viEwEAt4PLMz+Fb XqUzlvcAGN5E2awvlSyfj6yC+AT6I39qMbDmjkBIomYAZgTaIXUCgQ62G71BJftXVsKR3FB0P CrUHNwssieh9HkPeimK7vDiDBk10IIpPIoel9StvUmXd0gO2uuSD07UJRFbVHERXMkl7Qq9Sk 66+JtHmSkg+9ZHNut1Z/4Q5QhfUnzkfsUpbyc3hRBRX8m+2qD8kDMQIYnfhlakXv6NWQ0QF8C jgirftkVunZl5kiA3Oi0Bz31+ekkW25P657uFtue+oWNbDmxjCD54DaVFtBISV5OkouCBPmv4 xgT6rRAgNcfehQrX7uAHsSPo1jtazYfkG/RTGuncsI06RmO+dlJZrGNLR7SKB7zeXUKgmWjjV D76+fWKuU7tt9+XiOmmKg9Gu+x0gkvVH1UR5ih1a5Fuzgshhja/r+aZaAbPQiY Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org for multiple cpu-Ports aech port needs storing the the cpu-port to be used this Patch adds the needed fields for this based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0033-dsa-multi-cpu.patch Signed-off-by: Frank Wunderlich --- include/net/dsa.h | 4 ++++ net/dsa/dsa_priv.h | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/include/net/dsa.h b/include/net/dsa.h index 23690c44e167..3efa81e08993 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -203,6 +203,10 @@ struct dsa_port { struct net_device *bridge_dev; struct devlink_port devlink_port; struct phylink *pl; + + struct net_device *ethernet; + int upstream; + /* * Original copy of the master netdev ethtool_ops */ diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h index 9e4fd04ab53c..cc0cd7675117 100644 --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h @@ -81,6 +81,8 @@ struct dsa_slave_priv { /* TC context */ struct list_head mall_tc_list; + + struct net_device *master; }; /* dsa.c */ @@ -188,7 +190,10 @@ static inline struct net_device * dsa_slave_to_master(const struct net_device *dev) { struct dsa_port *dp = dsa_slave_to_port(dev); + struct dsa_slave_priv *p = netdev_priv(dev); + if (p->master) + return p->master; return dp->cpu_dp->master; } From patchwork Fri Dec 14 16:48:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013632 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc416jSyz9s4s for ; Sat, 15 Dec 2018 03:50:25 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729895AbeLNQuY (ORCPT ); Fri, 14 Dec 2018 11:50:24 -0500 Received: from mout.gmx.net ([212.227.15.18]:44455 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729551AbeLNQuY (ORCPT ); Fri, 14 Dec 2018 11:50:24 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LiDnn-1hAUvr2Chf-00nMYy; Fri, 14 Dec 2018 17:49:12 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 2/8] net: dsa: add helper functions Date: Fri, 14 Dec 2018 17:48:41 +0100 Message-Id: <20181214164847.4851-3-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:8Y/ysQdttt6vSxa2xsYkPMW3601sKcRiBd9NtuKZEK+iwZfpbBd F3uz3d40RnfxDRhC7wFHBONNxLPk0H2YByh9cGbgfrpyP9MBgDXyQW+m4HRMHOtHW+s0Ppj b4O0wDafSK0GkkMg9ZN4SbmFaj1FE9aEkjHhvy075X/b/xhGbCAMpBcV8sENXVgqdtW2LdL 8LiGkRwdmudQm93KeKmAw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:8+OtX6gulfg=:FrnDYBRqk3gqmVd/sng5ow o09uGT+dlh1AO+W35asgGluREoFtoqK7o46hy8l8sMC/ef6bj6R0lvRpMG/bQVxWNbmlMtwBl RYZOe1l6WKs9SoFEymccRweX6vsPXxlfoUThypvIameGeJ+kyp6y0SzL6JNOb8zdmZwalg7Mh NwIbcMWhXuOLCtqPsfyvtfeXr8uWEFbzmHcyyx6N0z/LUQ7uSwYnpHecg4ChK+qCcA9IPnYO8 4Fc8oiV6DtdmJ/vWXsgHaldQryjzg2Busel4TahZDEVtomxatoQSBKUTDx51jHYWlTFcdNmg1 fED+XQNPNusk+csqpnHf2dzg/AYN7Ow5ol2HY9ed0l4rURpEB3AvwsOaLi28nsGcvc/R4/0hq tNkncK0mZHyA32T7IPSRkm77il6FwwyRE9NZ7hI2LfRjMAOKjskxrawef31vWrCzJygtmuUhy Tuiu6/yOT0JWQ0zTqcMtTEfcSJjhNsNpy5zxkQgVmT4/WK2HZD+nrMV7JINHOT6lksanrFL8i /DyH5Z3DdmnVPFGvEBQFUPRxFXRkWQhsin5yHkXLrvIaJArwZ5qTZkoduN7oFlFpwcEaHiMuK tM2KtNuMFoRkiwLT5VYhP1Qizcx7d6gB7G0tzh8MV/dJ7iR6aBFTvjBg/Ar+NhgE3JRud6qJX DA+0okYwzr5dG5xTT1Xjmbc+GYLDXCUkc8+dY1D50AMRcAEwHmtUAuwbjofD00jkh4LTfTXkG T2vfT9QbCcph2nuqVoZloRHA+UlO1cA7LSwf4ncUitcoXu9xjamaq+B9SocRoNQkOvQy5JMUU lbYEheRch7GRVvzcvTZ9rZI1lIGVcA4e+bMGghYQdbMYiTCYtsBEzwOERPyRaooJt9cJnd1pt +uwX7VHKs8m27VOX+kP3bOpLB7L7Kx8i3lg9EesDKNKdaYzEvPJUCNkC7WbAzo Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org for using mutliple cpu-Ports 3 additional functions are defined to read dts-option (dsa_user_parse) and check if current port is a upstream-port (dsa_port_upstream_port, dsa_is_upstream_port) based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0033-dsa-multi-cpu.patch Signed-off-by: Frank Wunderlich --- include/net/dsa.h | 18 ++++++++++++++++++ net/dsa/dsa2.c | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/net/dsa.h b/include/net/dsa.h index 3efa81e08993..612942ac56de 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -319,6 +319,12 @@ static inline unsigned int dsa_towards_port(struct dsa_switch *ds, int device, return ds->rtable[device]; } + +static inline bool dsa_is_upstream_port(struct dsa_switch *ds, int p) +{ + return dsa_is_cpu_port(ds, p) || dsa_is_dsa_port(ds, p); +} + /* Return the local port used to reach the dedicated CPU port */ static inline unsigned int dsa_upstream_port(struct dsa_switch *ds, int port) { @@ -331,6 +337,18 @@ static inline unsigned int dsa_upstream_port(struct dsa_switch *ds, int port) return dsa_towards_port(ds, cpu_dp->ds->index, cpu_dp->index); } +static inline u8 dsa_port_upstream_port(struct dsa_switch *ds, int port) +{ + /* + * If this port has a specific upstream cpu port, use it, + * otherwise use the switch default. + */ + if (ds->ports[port].upstream) + return ds->ports[port].upstream; + else + return dsa_upstream_port(ds, port); +} + typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid, bool is_static, void *data); struct dsa_switch_ops { diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index a1917025e155..b7c6da2f1f08 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -255,6 +255,24 @@ static void dsa_tree_teardown_default_cpu(struct dsa_switch_tree *dst) dst->cpu_dp = NULL; } +static int dsa_user_parse(struct dsa_port *port, u32 index, + struct dsa_switch *ds) +{ + struct device_node *cpu_port; + const unsigned int *cpu_port_reg; + int cpu_port_index; + + cpu_port = of_parse_phandle(port->dn, "default_cpu", 0); + if (cpu_port) { + cpu_port_reg = of_get_property(cpu_port, "reg", NULL); + if (!cpu_port_reg) + return -EINVAL; + cpu_port_index = be32_to_cpup(cpu_port_reg); + ds->ports[index].upstream = cpu_port_index; + } + return 0; +} + static int dsa_port_setup(struct dsa_port *dp) { struct dsa_switch *ds = dp->ds; From patchwork Fri Dec 14 16:48:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013631 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc3q6f08z9sB5 for ; Sat, 15 Dec 2018 03:50:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729793AbeLNQuN (ORCPT ); Fri, 14 Dec 2018 11:50:13 -0500 Received: from mout.gmx.net ([212.227.15.18]:43775 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729670AbeLNQuM (ORCPT ); Fri, 14 Dec 2018 11:50:12 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MI5JG-1gaaCk3TRe-003uXl; Fri, 14 Dec 2018 17:49:13 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 3/8] net: dsa: adding handling of second CPU-Port Date: Fri, 14 Dec 2018 17:48:42 +0100 Message-Id: <20181214164847.4851-4-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:2S9q7pROCez+K0fN+z5NnnFToli31OS89Q/sWYu7SjtvgQWbvw8 H3N90r712vWcv5Q5hnkXiTtcPx7I/K5wNMMvaWhas9LJod+5pOi967HbLFvnDPyCxlrCcEa qTVqSKRiNqyz8/d6QwREDvPl5HqBuIi+kTWJ9TV/47PkN83sJjhJaP4+Slrh0uFRjBcyNcy PjJwYw3r7dFX5GMO75TfQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:gjTr5APVCp8=:9WniiXfAqsFIN7XZ8hSWzt hbEzyoM6CKRHm1A3gZ+0TvGifV4l4Xv+BlpYYV6NHwfur13m5i+5/aL8pIZ+WPjf+RZ3IoGGu fbN1XFDucUerM7jbMK9MPsKj+R7H3QRxok9YaN1AuMOW2NK8jpIek1+ZYNOfYv2+h6E+d+Jry 8H9MLQjxq6bMUwmy1Y2eoQdrn+jSCso1U1YCx8AA68fw9eTfcWQkvYBmY3Y4dk1TB+TI8Tv1n /UGEWewvp9KDfOUZlFKMhy8kD1H0k/7nfrzX7dknykNBf/avc/2n6XnlJl99mqOOad6bL72yt yl+gHTOUpSVw75WHYKJHQ/cBGtnqnUSm8syJhYKtZtGFbuf1+INE05Ai2mEekQuPZDglOEZYs mpm09XCe1eG3azKnRzEl7ZwifzKwFEapPzTqDfL346npgC4hqKQRvDyNVMap49X7V1bNNl1nt bLPrNOHrRgClNj6/oY8A7JfITafSg6hG3SGz/g3Imdyo42jt2bK4Fz7PAj/MhsX+lrqBZ/QIr cDZXdVMfAgkBvC/7H1DSzIuYBvDgMgssR5DOiwramNfVcbJB9GUdzMDBzHaqRrB+AJHyf3YwS QltHZ9saE8LnKmPyY25ubXr+/ZTHRQ9+/mZ0OpFFIq/cZSxNgpNHWYvHqMI3yFfEKZie/RrpG /s5FvuIXM86ED7Rmp2sqs1QCiTJKrWmhRubbUegJqrpmBO+oVY5eTrByS4zLFbqpfwu6OUu++ Xh/p60h7o9pqwkXni54kG/qhGTkuhf0t9mEozRDr8HK5U1wokvzdWv2z4822HpLgrdT6kvsiC Y04CvDPpJSiyGxk6QZ5CsXHxpdrd872tXWM+BBaaMKhtDi6MQZw3tsZDBz790UDYtssWw/Ok5 qpNmrBnB6LM5HYcKdi3QAk/QVTTeJNXs2HJfvJt+jMLshhS+pLRCtEXHVTmfwu Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org this patch adds the core-functionality of multiple cpu-ports currently it uses definition in dts to make connection between cpu and user-port based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0033-dsa-multi-cpu.patch Signed-off-by: Frank Wunderlich --- net/dsa/dsa2.c | 18 ++++++++++++++++++ net/dsa/slave.c | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index b7c6da2f1f08..8f64535fd2a0 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -303,6 +303,8 @@ static int dsa_port_setup(struct dsa_port *dp) ds->index, dp->index); return err; } + if (dp->master) + dp->master->dsa_ptr = dp; break; case DSA_PORT_TYPE_DSA: /* dp->index is used now as port_number. However @@ -323,12 +325,17 @@ static int dsa_port_setup(struct dsa_port *dp) devlink_port_attrs_set(&dp->devlink_port, DEVLINK_PORT_FLAVOUR_PHYSICAL, dp->index, false, 0); + err = dsa_user_parse(dp, dp->index, ds); + if (err) + return err; + err = dsa_slave_create(dp); if (err) dev_err(ds->dev, "failed to create slave for port %d.%d\n", ds->index, dp->index); else devlink_port_type_eth_set(&dp->devlink_port, dp->slave); + break; } @@ -344,6 +351,14 @@ static void dsa_port_teardown(struct dsa_port *dp) case DSA_PORT_TYPE_UNUSED: break; case DSA_PORT_TYPE_CPU: + dsa_port_link_unregister_of(dp); + if (dp->master) + dp->master->dsa_ptr = NULL; + if (dp->ethernet) { + dev_put(dp->ethernet); + dp->ethernet = NULL; + } + break; case DSA_PORT_TYPE_DSA: dsa_port_link_unregister_of(dp); break; @@ -598,6 +613,9 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master) dp->master = master; dp->dst = dst; + dev_hold(master); + ds->ports[dp->index].ethernet = master; + return 0; } diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 7d0c19e7edcf..f0fdb9e5d05f 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1312,11 +1312,11 @@ static void dsa_slave_notify(struct net_device *dev, unsigned long val) int dsa_slave_create(struct dsa_port *port) { const struct dsa_port *cpu_dp = port->cpu_dp; - struct net_device *master = cpu_dp->master; struct dsa_switch *ds = port->ds; const char *name = port->name; struct net_device *slave_dev; struct dsa_slave_priv *p; + struct net_device *master = ds->ports[port->upstream].ethernet; int ret; if (!ds->num_tx_queues) @@ -1355,6 +1355,7 @@ int dsa_slave_create(struct dsa_port *port) p->dp = port; INIT_LIST_HEAD(&p->mall_tc_list); p->xmit = cpu_dp->tag_ops->xmit; + p->master = master; port->slave = slave_dev; netif_carrier_off(slave_dev); From patchwork Fri Dec 14 16:48:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013635 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc4747M8z9s4s for ; Sat, 15 Dec 2018 03:50:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730062AbeLNQu2 (ORCPT ); Fri, 14 Dec 2018 11:50:28 -0500 Received: from mout.gmx.net ([212.227.15.19]:39207 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730001AbeLNQu0 (ORCPT ); Fri, 14 Dec 2018 11:50:26 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MQ2zr-1gSbSU1h1n-005GO0; Fri, 14 Dec 2018 17:49:13 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 4/8] net: dsa: add support for GMAC2 wired to ext Date: Fri, 14 Dec 2018 17:48:43 +0100 Message-Id: <20181214164847.4851-5-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:YFCEhwlPFO+v0hZAMxyoP4y4wefwlCFqhd4FFfD2m6wQ8OdgmXR Auf8Gtj/gDts3KUTy2X8lUW+iP5b6FozEVsIrqb1Gw8zo5nWMjeN7zCDUe8bq52FSst2JcD IN5/Riurb3PPhUHCvmmwJmzTQa54V/vPFgJ8DvR9HwGy3Sbo9RQlTzhB/2jSsjx0qPWcO8X 3QCkAYQCMa07I2cvX22fg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:ukrsHG5FiUk=:YXonn5z50hoShUpxNvSEFa rtOC3n4DHD1XlruSQ7aHOdrMUAmjT/hQFrQBnHPwMaQ8CqHPlAeIvb2QefwuQk9TauZSH/tKp QwjFPPCfR6ln5wCzqZlUuRt9RdPZpyQHnGtr9q1qdOwEGPB/XZlrp8IYU6f8kiE69tnIpFw/N Vjz0p/hLK6lX88hHu0vf4VcHFDl49WnIkgd+6g8U2oM8+0BnGT5jQjMVMqNbRyZ4p31fI3na4 gafEsXJRfxU7wvY+XC9xlY+QATEMqKBClMqdLeX+ZQL34moN9Hw+oc55OwzM9VNb5FAsattrk 9IECPwVDjiKGMdX7ab2H1ELNXZ13ZgNo/QD+cC9dI4JJzQPmB1Z+NB6C8x2zXSn5vV8GGMWht MfuRe5Cnlc2CJ1DCm9ArFm85Q7VWKof4Y4VKb0NAbwa7JtMU/nKS4asnGlh5Mo+mIDOWPoXjY VRxYHoDqVLQ7BI4I98PY//tcBwU6VTdE3PpZcWcv9zP7o7z2I0f+AjfabrZubW/WGjy/feFOq FYVnEIhM9HZLu6hr9HKPUiJEODV4VSvG241xuL1w3fFnJfcZ8kxBcT4c/AXQ3Wu40EcBP4auM sUMqA1zKjxUpeN94f+yShF9BLk4gjsCtkbQpcELBql6wrWdFVZCYK3DFJHu78azQQfF/DV9HO sP5BEV3kc7nGtr25jEasHLV8OYPEnWtNcjNIg9miR6OZAyDPgxkpF3rSd+iAIofoUB0WNEnIy AZWgtVyAiMeSOVU53fgeSxDdYXEhM4mWgyw3jmk51PMJaxXovOf/M9KXUVMcHidJcw9k6UyWt D3zdYPnFXx2cq9x5+h9JUtOygl59ajQutUXfiQlCxKbXl2ecZu7kOE1soV5xGEHsoC6skt/f8 RQaxmZ0ufmN9Hz6GDt2ANKJ7cNZlJUuvtFvRCYHxuZk5r1xgV7ifpXzXs3fIeK Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org cpu-ports of mt7530 need some special flags to be set based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0032-net-dsa-mediatek-add-support-for-GMAC2-wired-to-ext-.patch Signed-off-by: Frank Wunderlich --- drivers/net/dsa/mt7530.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index a5de9bffe5be..a6a15a063e3e 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -1277,6 +1277,11 @@ mt7530_setup(struct dsa_switch *ds) val = mt7530_read(priv, MT7530_MHWTRAP); val &= ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS; val |= MHWTRAP_MANUAL; + if (!dsa_is_cpu_port(ds, 5)) { + val |= MHWTRAP_P5_DIS; + val |= MHWTRAP_P5_MAC_SEL; + val |= MHWTRAP_P5_RGMII_MODE; + } mt7530_write(priv, MT7530_MHWTRAP, val); /* Enable and reset MIB counters */ From patchwork Fri Dec 14 16:48:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013630 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc3p5cwrz9s4s for ; Sat, 15 Dec 2018 03:50:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729804AbeLNQuN (ORCPT ); Fri, 14 Dec 2018 11:50:13 -0500 Received: from mout.gmx.net ([212.227.15.18]:56073 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729706AbeLNQuM (ORCPT ); Fri, 14 Dec 2018 11:50:12 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MCtql-1gfr0U3055-009e6C; Fri, 14 Dec 2018 17:49:13 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 5/8] net: dsa: dsa multi cpu (mt7530.c) Date: Fri, 14 Dec 2018 17:48:44 +0100 Message-Id: <20181214164847.4851-6-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:rOldRIXQjk6Jj4M4ljadTmh8ugrQIzZTHXwLF9aMCm5Jw8yVH9/ hzYWKph7N/KdheyxbO9GEu8ozYNyBSELqcPUvr12XxZ7X17y7oBMK9xUu7DAnaaQvIlHrxk SCBKcmgAh6gjAsvIuGpPrfU5Zrmg4IbPTALZrl9yRjhPLpPzlMDnETeB44yOhBg/M660K3Z KX7LxJ3xUku096d4+8TQg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:pBd8BR1Jh78=:VXoSGHUfZpWDMNswW0TGAz g2Ix7HiwRxnvo4RGQ0ilmFgyU2DA+SS9QszyQ9s9iuX3kfLoQvGFFjkMVA1ABAUZTGHGQ+zCS V1xEcORBUDeBMIxj4Gsp/VyYWBG5V5B1bc79iTszmNz+H/Ig+BQ+eRaZY8Zxf8TBkz0tCq/86 cfnpPUwqmZ5xcFxOvks6WV3F7/lb70wwbAV9rhsiw1VwT4JqjKon0NWr+vqRwPAsZoAWTz3Gk 5lnTdiTKvAHak0/e0WIU6+G6EYfq5L9mgk0a6vC4mEjncl4UjyySOvOWJkt4ulOBTUjTV9EbT KQX4ot28GpXWLmEsIbtI7qJ6FONh3FzTizGdAxJHwy9nDrqeOR31QckaD2ZeoEtUY6K3LYF+t dbIYacPmCDMCB0bbdUPimNBjRr7fbkdsHdMpKwG0yzhOPXqowK8oBhcK0sGqrQXwy+jRT4Pfu +Mhai1is+3nUvISQAUXuoCCX24mxItstS7FsCABQY+gcwv8MwoJUhofkca64teRjw4NeRdMF2 ircMa9ar73CddSDVfXG8DbiV6eJGmG9ePEToUgvttC4n0LBoLmp9apycd3geQDsIjcQeAI77E Y/UW+NOI3YMZbE+ZSXhPT2IKBR+hvMtjE3GPLMd+GnxUF7Ji6eDwMkzKNCjH9EagIDutDbo1I RD9Kj0/m11oLOG638w4oufy6UvZTut8klyNC0NN5aSXoOuqnor3ct9ccJdPAJur5A//GZmXE7 sjL9vGq79zVwB3YKhbpqInju179mWVNPgqUWROP43pYUyDYT4Dt3IJVk6y+KPjr2sWqqX372m vBzGK2rU1DvHx1ghWAVUIIkdym0gk4FOiNeLqiINUk3M5hwwh8joR/AF0aB2Jf+QthHQ39o+z GxGIgzAuy1AkJVhJP86QhRGILY2Cf5AvoGXhCUo8LtmGleQ5jEpUmBSLL/YvX5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org implementing changes to mt7530 switch driver for supporting multiple (2) cpu-ports based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0033-dsa-multi-cpu.patch Signed-off-by: Frank Wunderlich --- drivers/net/dsa/mt7530.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index a6a15a063e3e..441320d4d779 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -674,6 +674,9 @@ static int mt7530_cpu_port_enable(struct mt7530_priv *priv, int port) { + u8 port_mask = 0; + int i; + /* Enable Mediatek header mode on the cpu port */ mt7530_write(priv, MT7530_PVC_P(port), PORT_SPEC_TAG); @@ -690,8 +693,14 @@ mt7530_cpu_port_enable(struct mt7530_priv *priv, /* CPU port gets connected to all user ports of * the switch */ + + for (i = 0; i < MT7530_NUM_PORTS; i++) + if ((priv->ds->ports[port].type == DSA_PORT_TYPE_USER) && + (dsa_port_upstream_port(priv->ds, i) == port)) + port_mask |= BIT(i); + mt7530_write(priv, MT7530_PCR_P(port), - PCR_MATRIX(dsa_user_ports(priv->ds))); + PCR_MATRIX(port_mask)); return 0; } @@ -701,6 +710,7 @@ mt7530_port_enable(struct dsa_switch *ds, int port, struct phy_device *phy) { struct mt7530_priv *priv = ds->priv; + u8 upstream = dsa_port_upstream_port(ds, port); mutex_lock(&priv->reg_mutex); @@ -711,7 +721,7 @@ mt7530_port_enable(struct dsa_switch *ds, int port, * restore the port matrix if the port is the member of a certain * bridge. */ - priv->ports[port].pm |= PCR_MATRIX(BIT(MT7530_CPU_PORT)); + priv->ports[port].pm |= PCR_MATRIX(BIT(upstream)); priv->ports[port].enable = true; mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, priv->ports[port].pm); @@ -774,7 +784,8 @@ mt7530_port_bridge_join(struct dsa_switch *ds, int port, struct net_device *bridge) { struct mt7530_priv *priv = ds->priv; - u32 port_bitmap = BIT(MT7530_CPU_PORT); + u8 upstream = dsa_port_upstream_port(ds, port); + u32 port_bitmap = BIT(upstream); int i; mutex_lock(&priv->reg_mutex); @@ -875,6 +886,7 @@ mt7530_port_bridge_leave(struct dsa_switch *ds, int port, struct net_device *bridge) { struct mt7530_priv *priv = ds->priv; + u8 upstream = dsa_port_upstream_port(ds, port); int i; mutex_lock(&priv->reg_mutex); @@ -902,8 +914,8 @@ mt7530_port_bridge_leave(struct dsa_switch *ds, int port, */ if (priv->ports[port].enable) mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, - PCR_MATRIX(BIT(MT7530_CPU_PORT))); - priv->ports[port].pm = PCR_MATRIX(BIT(MT7530_CPU_PORT)); + PCR_MATRIX(BIT(upstream))); + priv->ports[port].pm = PCR_MATRIX(BIT(upstream)); mt7530_port_set_vlan_unaware(ds, port); @@ -1194,15 +1206,7 @@ mt7530_port_vlan_del(struct dsa_switch *ds, int port, static enum dsa_tag_protocol mtk_get_tag_protocol(struct dsa_switch *ds, int port) { - struct mt7530_priv *priv = ds->priv; - - if (port != MT7530_CPU_PORT) { - dev_warn(priv->dev, - "port not matched with tagging CPU port\n"); - return DSA_TAG_PROTO_NONE; - } else { - return DSA_TAG_PROTO_MTK; - } + return DSA_TAG_PROTO_MTK; } static int @@ -1275,7 +1279,7 @@ mt7530_setup(struct dsa_switch *ds) /* Enable Port 6 only; P5 as GMAC5 which currently is not supported */ val = mt7530_read(priv, MT7530_MHWTRAP); - val &= ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS; + val &= ~MHWTRAP_P5_DIS & ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS; val |= MHWTRAP_MANUAL; if (!dsa_is_cpu_port(ds, 5)) { val |= MHWTRAP_P5_DIS; From patchwork Fri Dec 14 16:48:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013638 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc4C6GcTz9s4s for ; Sat, 15 Dec 2018 03:50:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729939AbeLNQuZ (ORCPT ); Fri, 14 Dec 2018 11:50:25 -0500 Received: from mout.gmx.net ([212.227.15.18]:58569 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729823AbeLNQuZ (ORCPT ); Fri, 14 Dec 2018 11:50:25 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M5Lmp-1hMTtl0LdP-00zZMi; Fri, 14 Dec 2018 17:49:14 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 6/8] net: dsa: tell GDMA when we are turning on the special tag Date: Fri, 14 Dec 2018 17:48:45 +0100 Message-Id: <20181214164847.4851-7-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:JPDICO2Ts0bLANIY8dEuEZS+Re/fdWEsbIzEDXIrVROzYLpn19k 4DrDEDPUiGZlPqXsh3XpPVP8fq7PdmE/61RlO91WMyVOQWhJctIqWZ+LkD2gHuvA+xFOoWx ZQpzyC76cBdzuWCdjByjSdSLTK2OM0I8YMoM9Km6ccphCLeDaL97Ae5Jr4hp+/SHKJMx+EZ w920l0L63Or3BItEXiC9Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:X8bwpFtINFA=:lj9EVAIELlw3VMjmDsXCbc rINd8IwJC6LaCN4L4+BRfat89P5lN/zHxqgyRS1BABs+jxpJK3F3tvBgTx/PsfEAKJ6Nxct5a UnjIE0dnrlVhNP4MXTqsJ3Ne0vgY5FyxCY7bjZ4L4zehsoCpsHgU8d+9tBjuKjhvu6Sak+Q9Q 50SCdO0alP9w7J26IDVyKfP9dKFTh+db/+jz2cGB1F7mf7H3T/wvtDIj/TnETJoV5lKSadPgB aAXQfc8p8QRAVSnadTVMS9dq42ck/3OVpQksvEolbB1e3FOFfV0PVa5qH2wUpuPZIiKvqpKiC goApqBTrNNnNkYDvmeF5uul7hflEiwlFavTUHKwqsBjS350xTfcHQTewnEFWg/O1vcC7JuTdp 0ajtkC4zQgnaxxG9LL0PIrjlI/KHeT1XY6CCR4UoQpBCCt84POmeIyT52Gj+Y5YIvawNcQ7Au JXuisfTJWj9530WOhEyn04J8z1HSvlgUrSfFSAH/U1PG0z6NPjjJRfvJrNzxmY5g04ggBbEw3 bTa1ekechRpgqt/5rfP0ehTiOehN9fobBEU338oQ8gX7ku5hP1sdR3LXkbWrl44qLR3+LSCVV BYHphmBUbFlQqR4bTlB88DBZvoC3jG3uNPgoDQ41J8gN7lC4Je+cce8BRzPDwc4mHa1mh8VxB iMoLiQOUSA+UB2H58iUW1ISSpKYULB9mTZlvD6cRX8mKrEJ8aY9PEaImlHA3HE3YTum5ZGfKF EMUS93sXIXNfj6m+1vTANeByyqRAT6/4Au2QGutL0S2Znur3WbZO7XVj1NhEtnQOoOBu1V+rS lFILe2QKalH1fvmhg0HmbnTDihkD0CyVsnaTAUQUxLl76aDog95rLCFl8YAibti6PZtH8vRv5 XEmphIP2M2bhwa4HgheitgOFgQrccgrUOsmTeZXnmFsFinINIMpUzaaxDQh0B5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Enabling this bit will make the RX DMA descriptor enable the SP bit for all ingress traffic inside the return descriptor. The PPE needs this to know that a SP is present. based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0044-net-next-dsa-mediatek-tell-GDMA-when-we-are-turning-.patch Signed-off-by: Frank Wunderlich --- drivers/net/dsa/mt7530.c | 6 ++++++ drivers/net/dsa/mt7530.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 441320d4d779..83669f53cb36 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -681,6 +681,12 @@ mt7530_cpu_port_enable(struct mt7530_priv *priv, mt7530_write(priv, MT7530_PVC_P(port), PORT_SPEC_TAG); + /* Enable Mediatek header mode on the GMAC that the cpu port + * connects to + */ + regmap_write_bits(priv->ethernet, MTK_GDMA_FWD_CFG(port), + GDMA_SPEC_TAG, GDMA_SPEC_TAG); + /* Setup the MAC by default for the cpu port */ mt7530_write(priv, MT7530_PMCR_P(port), PMCR_CPUP_LINK); diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index d9b407a22a58..310f2536175b 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -23,6 +23,10 @@ #define TRGMII_BASE(x) (0x10000 + (x)) +/* Registers for GDMA configuration access */ +#define MTK_GDMA_FWD_CFG(x) (0x500 + (x * 0x1000)) +#define GDMA_SPEC_TAG BIT(24) + /* Registers to ethsys access */ #define ETHSYS_CLKCFG0 0x2c #define ETHSYS_TRGMII_CLK_SEL362_5 BIT(11) From patchwork Fri Dec 14 16:48:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013634 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc4627Zwz9s4s for ; Sat, 15 Dec 2018 03:50:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730069AbeLNQu3 (ORCPT ); Fri, 14 Dec 2018 11:50:29 -0500 Received: from mout.gmx.net ([212.227.15.19]:46083 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729805AbeLNQu0 (ORCPT ); Fri, 14 Dec 2018 11:50:26 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M86PB-1hJkLL1hPV-00viY6; Fri, 14 Dec 2018 17:49:14 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 7/8] net: dsa: mt7530 add linking to mdio Date: Fri, 14 Dec 2018 17:48:46 +0100 Message-Id: <20181214164847.4851-8-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:DOg1IJMsyfHMnSc57Is3TycfnVBOJ/ngDHbLOmqfCCqJAG3DtzI FwtTqvcJU3Me3W1L5faGamJuTfFx2UX9aQvo2csN7Ki1XVRGLaY+B/NisubaWMe8A+PZma5 NinlqtJ1kdzlygRpjJ2Z4RjmZS3Xa88MCOZUnr+3mFRet9MGpuymA1T+mDrgTBn3s6tdtzB KQSIuU5uYWOGOSlYJXcLw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:PsMuGbhx1hg=:rQZyjmPaUa6p67BCvOa7sh dKs4AYI/FNR+E02kveLGgNUcsIgyc/Nft4BOUzvdUbTTNlXP2gvoeApHOhPfQ9FCQ3PpOLKBb o7Nitt1+DtkVsd+t/HO3KibTXEm4V6v8qOmhmITCf6xh5N5RVBP9tZgcu/PK73rSy/nK7nTN3 Hf05c5EfEi+OWYl+Su3D63d6XO2BKu1xlqq+/fpbsLntkM1K/RE2TgpWUXrTekjLaGDvYqcAr VjGEAseDXDf0vZzfboCuEb0QK47XJIFmFE1q5rnl0DUKnhr4f87TK7H5hqDY4NQsZm/p+G9Z1 Ia2sQWbbzNYX/LkYxSPnjnDjiLASlqdVPp40fxKeet6ybb6uIrQ9+u6Zd9hQjH0a4wQdDiRgc Hj06rA++QvIX/3nvuCDBNXiqHvyA4oSHGovwomKAfuSA5evWqxwhzWqN1EH0iAoK8ldmrJqns zMkcpg5YnY4otj/76aDSZb5C9hemyabqFSU62C0rVEunif1fjq/nCZakl1ulSetHwLxzo/Mdq 7rBt91QWCebrIJpmwjgDmLbMLv5CXeIoTaY37+XFk/unR/A1U255eLhEaa8uBl0B2deX4bqvf OsThUTcwEh4VgyMTtG2Ge0qBMhfgwCuS9B7mF3gWWN/r1fNTyh29zw68Dddp3RFtsqusgU4Rv q+5czRbN3U/+CwHuRnEewdnU3nDPzL/32nOnWENio6CL6hf5w6U0FoD8rkHnTAnLLI4HF/jZp YPAjN/Xz9VfTrnA+M0ANFteBQ264duFZxjl+vhhnfLHRwafW1aFZ+fFBnkwQcp7JO8YEUBDgh PKQCTFM5sVLsM9HoO23YYbsE0fmhEnfMi68TpaFjhOGO2wls1ZY2S5dJXReSdb0EDonE2AbIu mDVzt1DK8jDNt+8OFQS4u/EGvmvd2qEznqKsqqO9d3mg06wXlD6yNTlB8kwHL/ Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org switch (7530) needs to to be linked to mdio-bus based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch Signed-off-by: Frank Wunderlich --- drivers/net/dsa/mt7530.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 83669f53cb36..e529bc334459 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -1345,7 +1345,7 @@ static int mt7530_probe(struct mdio_device *mdiodev) { struct mt7530_priv *priv; - struct device_node *dn; + struct device_node *dn, *mdio; dn = mdiodev->dev.of_node; @@ -1392,8 +1392,14 @@ mt7530_probe(struct mdio_device *mdiodev) return PTR_ERR(priv->reset); } } + mdio = of_get_parent(dn); + if (!mdio) + return -EINVAL; + + priv->bus = of_mdio_find_bus(mdio); + if (!priv->bus) + return -EPROBE_DEFER; - priv->bus = mdiodev->bus; priv->dev = &mdiodev->dev; priv->ds->priv = priv; priv->ds->ops = &mt7530_switch_ops; From patchwork Fri Dec 14 16:48:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1013633 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43Gc4322fmz9s4s for ; Sat, 15 Dec 2018 03:50:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730011AbeLNQu0 (ORCPT ); Fri, 14 Dec 2018 11:50:26 -0500 Received: from mout.gmx.net ([212.227.15.19]:33785 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729706AbeLNQuY (ORCPT ); Fri, 14 Dec 2018 11:50:24 -0500 Received: from localhost.localdomain ([91.14.94.237]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LoE4f-1h4PJb2wBN-00gG5y; Fri, 14 Dec 2018 17:49:14 +0100 From: Frank Wunderlich To: Matthias Brugger , netdev@vger.kernel.org, Sean Wang , Andrew Lunn , linux-mediatek@lists.infradead.org Cc: Frank Wunderlich Subject: [PATCH 8/8] net: dsa: changes to dts Date: Fri, 14 Dec 2018 17:48:47 +0100 Message-Id: <20181214164847.4851-9-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181214164847.4851-1-frank-w@public-files.de> References: <20181214164847.4851-1-frank-w@public-files.de> X-Provags-ID: V03:K1:G2Z2G1q5nnvg/w0zv+b3rquTEOeAbnRszZkwSrpw9eN1leR5ZD9 aseofOWWaIUSemoeYgVs13Yb1Ul85ZPz1zQjwhCjLoZ2ZxtsJQsTKPhtcqG/xJmihnb7Yel 1NmZitIJvZakaeVhrFQowIQ0IthsLGvVk6sWge8BW5fuzucbjekCHd3Yfrbjz5XyzMD6GTC v+rNR/lcLdjLQsMhijlbg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:v0W8zvsJUPE=:eguXkXPuchvlKhvc6ATOgX 5ohu+4IoyUXfmo55PcYNugsaLEJIDLif8wYGdxuGxY90jL6lGYnC+6xAbuzemD8/3VJwqxtVu XXii6V6dpi2BLWbEf3KO5xHsv1cl7o564MhCjsWlxddcg6rDMQYpfUElePSpeWD8QXiBMrLjj /t98xNkz9VW8RpQiteMblXF1C45AOBIyeBgNVZxVhRQpdt5+WL0eY3zlk/7THQkc4UUlTbo1w q5UDBqvdf0r8/db6FgXEjHg3zBuCBwpSX+BX6XYyVr+f2dKgxv4J9oQ46IbrkTf7+fD3rOOCI nioRJKL6QH1ky+lm3LERgD5obg9MGTsDz28Olnvo5cG3ldfqg+uRiHtQZqFFbteWi6uZ0Sb3N 4yZ9/Mfx5AqBxALGZQ9vfJWI5FwsJAeWRtX0OVUb0HXYMiw5ASqad0VXtaaST5IIElAlI+meF 6t7IIbeapd/Uz24H5oe8LCdK05UKL2NYZ7HfF/oEmo6k36JnDOm7bbeyK41rgFrEBVYNA+E47 RYMb3sE21v9l4EKBWS4bYEiLlmR9nWyLyGYOUzIzaY1AH00OGD4VugyZupZ/Nn/87kGxZ7Lfd l7jvF62Bg2bd6TOoy/L6yLLO2BG6eSeReCZrdv+ZlhGkIbGZgw9gCClaf1v94j0EwzCzsDNQN pcM+GjZN6JWv3ZI+adFZimYnZJw8NOzjJwX87qhBmd0l4Y9dnPspFJ1ireIRaq2NHSyZKEVC0 94LgRNM76wtp/O/wgLAa0oebBHYx9l6Gs2ykyfCexGsQesQU/pyCh4s5lAKPodbyUO+xK7ANa DCAIhcBI2YkCrUGytdHx4+nIU4SEDRBIaOTCDFhmjbI6sMQp5ib+Ve6OgEJfYNL7Fh3DGeUx7 CBmEnEF4qJuNbeZZikQkg7gPPVhb4ygUpZaHwdtCHcLUGi8TxoTlU9lNAOhBm8 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org --- arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts index 2b760f90f38c..64f3da148dbb 100644 --- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts +++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts @@ -143,6 +143,18 @@ }; }; + gmac1: mac@1 { + compatible = "mediatek,eth-mac"; + reg = <1>; + phy-mode = "trgmii"; + + fixed-link { + speed = <1000>; + full-duplex; + pause; + }; + }; + mdio: mdio-bus { #address-cells = <1>; #size-cells = <0>; @@ -161,29 +173,44 @@ port@0 { reg = <0>; label = "wan"; + default_cpu = <&cpu_port1>; }; port@1 { reg = <1>; label = "lan0"; + default_cpu = <&cpu_port0>; }; port@2 { reg = <2>; label = "lan1"; + default_cpu = <&cpu_port0>; }; port@3 { reg = <3>; label = "lan2"; + default_cpu = <&cpu_port0>; }; port@4 { reg = <4>; label = "lan3"; + default_cpu = <&cpu_port0>; }; - port@6 { + cpu_port1: port@5 { + reg = <5>; + label = "cpu"; + ethernet = <&gmac1>; + phy-mode = "trgmii"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + cpu_port0: port@6 { reg = <6>; label = "cpu"; ethernet = <&gmac0>;