From patchwork Mon May 21 13:28:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?TWljaGFsIFZva8OhxI0=?= X-Patchwork-Id: 917621 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="u1KXv4Gu"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40qKRN0hnQz9s32 for ; Mon, 21 May 2018 23:30:56 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752822AbeEUNax (ORCPT ); Mon, 21 May 2018 09:30:53 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36598 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751712AbeEUN3N (ORCPT ); Mon, 21 May 2018 09:29:13 -0400 Received: by mail-wr0-f195.google.com with SMTP id k5-v6so3931158wrn.3; Mon, 21 May 2018 06:29:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2PcRi1kOS2b0fFkDOrP2YFeaiGjU5ZE54ZcQ+VPSy0s=; b=u1KXv4Gu5lz8CFbUxecsuQ3N+PGVUhUg++1Lm3l5oXamAnHhpzUbghVhVAN2d3WiL9 Ir0va+SMNnzRoRJ/Tk4Lyi2TVmbTIoKp4Q6Uk1jrj1QNLi8M6FyRK/lsUKm1dyhWgU5D cggExVQXPSbX9BC1QkSmk/cOnNkpaMIHD7Wla9Vre1yOhdrZC13loJSW12PuDIZOZNgh OhDHoejsy9mdxhRiJRD4VGPOLBYlO6tRLLyZN8m/Bm/roxAXkrrwUNDRB1TeW8+W3tbl 3Wf+fkbr7MpR84YRA4/CL+SjM0V6c/+vWZmnyS8rd7nafCYtC1kiatAaQQP6I1NJF3Jw 8/5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2PcRi1kOS2b0fFkDOrP2YFeaiGjU5ZE54ZcQ+VPSy0s=; b=ECrP8RWWM5TPP78qrqtbjAOR3dDzRaU8O7qDzmdhdvpNX3fnXaxWzBTkYv2HFYMqn9 /aT1WoLvSdjp89VTM2glU4OqKGvKM71vkHDg3KWutDmGoo77LqsC0h4T2ol4BwmkU/km z72eijKBEZYfhu932rm+0Q2SHShSu9duKfTlhnC9RSfDUJsjE8KTh2lrKjY+eAW7IITp bDRQ7s9PGU58X9+0sHf/H9muMaSE4QYZwUUKHDyGPMOILXsPFl0wgKqKhrkeEpiH1ajI U5zooMMIKdZU1/FeBW5HoEkAwvZUgssy4HHSa/XC9+Jb39zSuo1zUQrYl5LM6EUMVsO/ nCkQ== X-Gm-Message-State: ALKqPwcvulKvHhCYDUMPhBLPP+Zapjn+vpMFkvE+8hYMaHkg+8mLBy11 vSG33D4AOLFYByWbeWW3ZEYhAv2E X-Google-Smtp-Source: AB8JxZo9VzKH2Uf4gY2rk9QomL2Qm+HSZIOEEAQWbFQaNdVDlBUS0yoPLizlN+U3BHFN0XZIbw3rbw== X-Received: by 2002:adf:82d6:: with SMTP id 80-v6mr5631868wrc.77.1526909351855; Mon, 21 May 2018 06:29:11 -0700 (PDT) Received: from iota-build.ysoft.local ([89.24.100.190]) by smtp.gmail.com with ESMTPSA id 32-v6sm2402899wrf.33.2018.05.21.06.29.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 21 May 2018 06:29:11 -0700 (PDT) From: "=?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?=" X-Google-Original-From: =?utf-8?b?TWljaGFsIFZva8OhxI0=?= To: netdev@vger.kernel.org, michal.vokac@ysoft.com Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, f.fainelli@gmail.com, vivien.didelot@savoirfairelinux.com, andrew@lunn.ch, mark.rutland@arm.com, robh+dt@kernel.org, davem@davemloft.net Subject: [PATCH net-next 4/7] net: dsa: qca8k: Force CPU port to its highest bandwidth Date: Mon, 21 May 2018 15:28:10 +0200 Message-Id: <1526909293-56377-5-git-send-email-michal.vokac@ysoft.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1526909293-56377-1-git-send-email-michal.vokac@ysoft.com> References: <1526909293-56377-1-git-send-email-michal.vokac@ysoft.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org By default autonegotiation is enabled to configure MAC on all ports. For the CPU port autonegotiation can not be used so we need to set some sensible defaults manually. This patch forces the default setting of the CPU port to 1000Mbps/full duplex which is the chip maximum capability. Also correct size of the bit field used to configure link speed. Signed-off-by: Michal Vokáč Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli --- drivers/net/dsa/qca8k.c | 6 +++++- drivers/net/dsa/qca8k.h | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 0d224f3..14a108b38 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -537,6 +537,7 @@ qca8k_setup(struct dsa_switch *ds) { struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; int ret, i, phy_mode = -1; + u32 mask; pr_debug("qca: setup\n"); @@ -564,7 +565,10 @@ qca8k_setup(struct dsa_switch *ds) if (ret < 0) return ret; - /* Enable CPU Port */ + /* Enable CPU Port, force it to maximum bandwidth and full-duplex */ + mask = QCA8K_PORT_STATUS_SPEED_1000 | QCA8K_PORT_STATUS_TXFLOW | + QCA8K_PORT_STATUS_RXFLOW | QCA8K_PORT_STATUS_DUPLEX; + qca8k_write(priv, QCA8K_REG_PORT_STATUS(QCA8K_CPU_PORT), mask); qca8k_reg_set(priv, QCA8K_REG_GLOBAL_FW_CTRL0, QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN); qca8k_port_set_status(priv, QCA8K_CPU_PORT, 1); diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index 1cf8a92..5bda165 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -51,8 +51,10 @@ #define QCA8K_GOL_MAC_ADDR0 0x60 #define QCA8K_GOL_MAC_ADDR1 0x64 #define QCA8K_REG_PORT_STATUS(_i) (0x07c + (_i) * 4) -#define QCA8K_PORT_STATUS_SPEED GENMASK(2, 0) -#define QCA8K_PORT_STATUS_SPEED_S 0 +#define QCA8K_PORT_STATUS_SPEED GENMASK(1, 0) +#define QCA8K_PORT_STATUS_SPEED_10 0 +#define QCA8K_PORT_STATUS_SPEED_100 0x1 +#define QCA8K_PORT_STATUS_SPEED_1000 0x2 #define QCA8K_PORT_STATUS_TXMAC BIT(2) #define QCA8K_PORT_STATUS_RXMAC BIT(3) #define QCA8K_PORT_STATUS_TXFLOW BIT(4)