From patchwork Tue Apr 5 14:22:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Morales Vega X-Patchwork-Id: 606490 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (caladan.dune.hu [78.24.191.180]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qfWJv6lQRz9t0r for ; Wed, 6 Apr 2016 00:22:23 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=samknows-com.20150623.gappssmtp.com header.i=@samknows-com.20150623.gappssmtp.com header.b=WDHNgDfk; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 529F0B91873; Tue, 5 Apr 2016 16:22:13 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: ** X-Spam-Status: No, score=2.4 required=5.0 tests=RDNS_NONE,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Tue, 5 Apr 2016 16:22:13 +0200 (CEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id AD1DCB91870 for ; Tue, 5 Apr 2016 16:22:11 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .samknows. - helo: .mail-wm0-f47.google. - helo-domain: .google.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -7 Received: from mail-wm0-f47.google.com (unknown [74.125.82.47]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Tue, 5 Apr 2016 16:22:09 +0200 (CEST) Received: by mail-wm0-f47.google.com with SMTP id 127so26349350wmu.1 for ; Tue, 05 Apr 2016 07:22:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samknows-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=CWEbtSdRF+awtiEgSW0ojp7GbcM1aA0yuExkSWUgaso=; b=WDHNgDfko9ScbITTXAM6V5P08ulcpB7AVrX01a0CRtwQG3sha2tt4nC7CPCLd68gKc HmQv0T7GwWVX/YVXpHjOuITansKQYaWmzVyrNAZbUw2cy9WmVzCHiS3cf+mnymyydUkJ 7oXBkDiEiHp/wAQoRKqOGI4Xt7UI494a9f4uKExdhLqR7677ABqsb5pB7STGcPkZSZVd q4ekfLEkSrYBCqDV+7VRtxYqKqdSuI1TTtEkdsjx/p3Ad+bqPsrPge0QVC0NPrZwjF+H BjThb6I5nauN2VPqI5WBl8uYJbQUcvrS4O3yZrSCfffxjfosgJy0MstSo9STblvPTr5Z SuPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=CWEbtSdRF+awtiEgSW0ojp7GbcM1aA0yuExkSWUgaso=; b=OWW90xU9C9Ttyp7tc6lRiG0qXW07ze1zAlzuGKN61FhUoslVeelElAt54rC9pH6cJC 751BytjfN1K2AwUjjDWSlSmgRe7HmCsjr9Kv1zuE+EwAZgytWDDNve2Od/H8QYgqyx5K HOkMNiDanKIedaIJaMpozpcWdz70+rZELJ1Tw695tahouHvJMzW+UmgPqGArXXNUb54s AEZdf8s8FTBUbjNIVq+XvLK+WJFVeUyyrlPS2ZQ6dB4OIm0eUfizAM1IVBcidVfAwjFm UoXHjcLftv+2XMtvcjwbk+vjWt/zxOklNjjMmyfpF2/h/pPCI1UpO2uKjFvCVlxRSaKW YzUA== X-Gm-Message-State: AD7BkJJX1+6+rrN7j7iM92ht+H1onZn1rJDi5niv8F3grplnHvgo1PeSyzSo4Fk9ZSOZEW37 X-Received: by 10.28.153.203 with SMTP id b194mr12705187wme.3.1459866129447; Tue, 05 Apr 2016 07:22:09 -0700 (PDT) Received: from nbs2.samknows (5751e334.skybroadband.com. [87.81.227.52]) by smtp.gmail.com with ESMTPSA id av3sm34978880wjc.44.2016.04.05.07.22.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 05 Apr 2016 07:22:09 -0700 (PDT) From: Cristian Morales Vega To: John Crispin Date: Tue, 5 Apr 2016 15:22:04 +0100 Message-Id: <1459866124-17771-1-git-send-email-cristian@samknows.com> X-Mailer: git-send-email 2.6.3 Subject: [OpenWrt-Devel] [PATCH] ramips: mt7621: add support for disabling flow control X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: openwrt-devel@lists.openwrt.org MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Signed-off-by: Cristian Morales Vega --- ...diatek-add-swconfig-driver-for-gsw_mt762x.patch | 54 +++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch index bbad8cc..d056551 100644 --- a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch +++ b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch @@ -28,7 +28,7 @@ Signed-off-by: John Crispin obj-$(CONFIG_NET_MEDIATEK_SOC) += mtk-eth-soc.o --- /dev/null +++ b/drivers/net/ethernet/mediatek/mt7530.c -@@ -0,0 +1,804 @@ +@@ -0,0 +1,856 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License @@ -709,6 +709,50 @@ Signed-off-by: John Crispin + return 0; +} + ++static int mt7621_sw_get_port_fc(struct switch_dev *dev, ++ const struct switch_attr *attr, ++ struct switch_val *val) ++{ ++ u32 reg; ++ struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev); ++ ++ if (val->port_vlan >= MT7530_NUM_PORTS) ++ return -EINVAL; ++ ++ reg = mdiobus_read(priv->bus, val->port_vlan, 4); ++ reg &= BIT(10); ++ ++ val->value.i = reg ? 1 : 0; ++ ++ return 0; ++} ++ ++static int mt7621_sw_set_port_fc(struct switch_dev *dev, ++ const struct switch_attr *attr, ++ struct switch_val *val) ++{ ++ u32 reg; ++ struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev); ++ ++ if (val->port_vlan >= MT7530_NUM_PORTS) ++ return -EINVAL; ++ ++ reg = mdiobus_read(priv->bus, val->port_vlan, 4); ++ if(val->value.i) { ++ reg |= BIT(10); ++ } else { ++ reg &= ~BIT(10); ++ } ++ mdiobus_write(priv->bus, val->port_vlan, 4, reg); ++ ++ /* Restart auto-negotiation */ ++ reg = mdiobus_read(priv->bus, val->port_vlan, 0); ++ reg |= BIT(9); ++ mdiobus_write(priv->bus, val->port_vlan, 0, reg); ++ ++ return 0; ++} ++ +static const struct switch_attr mt7621_port[] = { + { + .type = SWITCH_TYPE_STRING, @@ -717,6 +761,14 @@ Signed-off-by: John Crispin + .get = mt7621_sw_get_port_mib, + .set = NULL, + }, ++ { ++ .type = SWITCH_TYPE_INT, ++ .name = "flow_ctl", ++ .description = "Flow Control", ++ .get = mt7621_sw_get_port_fc, ++ .set = mt7621_sw_set_port_fc, ++ .max = 1, ++ }, +}; + +static const struct switch_attr mt7530_port[] = {