From patchwork Sun Jun 28 21:15:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1318670 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=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; 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.a=rsa-sha256 header.s=20161025 header.b=mHoOQp/g; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49w3Ns5vBZz9sRk for ; Mon, 29 Jun 2020 07:17:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726432AbgF1VRW (ORCPT ); Sun, 28 Jun 2020 17:17:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726080AbgF1VRW (ORCPT ); Sun, 28 Jun 2020 17:17:22 -0400 Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D837AC03E979 for ; Sun, 28 Jun 2020 14:17:21 -0700 (PDT) Received: by mail-ed1-x543.google.com with SMTP id d16so4567874edz.12 for ; Sun, 28 Jun 2020 14:17:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=lgTkJrZYnYucEuzzaY+tYoplgI4Vt+hvydnAhKPINxk=; b=mHoOQp/gwPep7YU/Rjh2u2dpFcXMJv6pjdPvjLooo/pMtInSZIqwpgc7TCHO8mrNIw icaLUSjgMnKjSijYnL7fHXfQzc6scmn6AixkP7FxVEGewo1wVEEY2XYuTeT2dBWI/Vy0 zTY3MTmdkW2anlQB9NS93mdJsHkx3khPuipQN5lLgYscAPcGxM/UOqbqnmw1gkuBraGy ef/qQLbe22mYsAk7rEfmdvPLkZI7EeP1LG9Nrk1tpgLPs9Wg75KTxsDPeSzh7lrE3Ha4 ks8246k+j27IsNDymx5GkPnuDXGSFvkuGM62DckaPSSi8oScKKXOtdQSxSDQlFyeEErY KrNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=lgTkJrZYnYucEuzzaY+tYoplgI4Vt+hvydnAhKPINxk=; b=gxVrK8An64Kog/BMoIhydAAhDrgTf1pNCob1lRMWc9VMiKQ0B8lBwZWedWdrH6+8nf FK4nSnz9Vit7i+Cg63yBYU+imZ8o2U2dBWNslZN3OClNGSxGu6izrmdBmWj9Foipyumf 8l3O2p6Hct5g2T3AJvLk2Fto+ThydCmV9V6kpPbBda1M9ck4hUfcFh5cqeElknMTzSeJ qSf0ZNEgitdfNmZOb/2yYZPwq0JFa7H/wZvITfixVwZwoUXnu0Zx4C9iP3g+Y4kKCepS yULFDdqH/auUAX3h6Ivi64xJX1W3Qlz9nEeSBjet6+TMpiP/2J2HFOLBSCD3baCjN1Fd Tpyw== X-Gm-Message-State: AOAM530uD9Dpx5wXtZzf9VSUmab6gSmpdDJ1u+1dry1pmyM1/fMS5/5G 4fsqS5yOkOgbOKDdkD28Se3/MoRS X-Google-Smtp-Source: ABdhPJx4HkWJODXXT1QzdhWlbpGg59CZWIfb0yGCV728gwHXkskZfz/2s8HcTmD7PGXallvLUTKMXw== X-Received: by 2002:a05:6402:13d0:: with SMTP id a16mr14353403edx.269.1593379040300; Sun, 28 Jun 2020 14:17:20 -0700 (PDT) Received: from ?IPv6:2003:ea:8f23:5700:ed55:9d81:4812:8269? (p200300ea8f235700ed559d8148128269.dip0.t-ipconnect.de. [2003:ea:8f23:5700:ed55:9d81:4812:8269]) by smtp.googlemail.com with ESMTPSA id b17sm1395025ejc.82.2020.06.28.14.17.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Jun 2020 14:17:19 -0700 (PDT) Subject: [PATCH net-next 1/2] r8169: merge handling of RTL8101e and RTL8100e From: Heiner Kallweit To: Realtek linux nic maintainers , Jakub Kicinski , David Miller Cc: "netdev@vger.kernel.org" References: <29ba5d31-9a0f-05c4-1472-5b15330f6408@gmail.com> Message-ID: Date: Sun, 28 Jun 2020 23:15:45 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <29ba5d31-9a0f-05c4-1472-5b15330f6408@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Chip versions 13, 14, 15 are treated the same by the driver, therefore let's merge them. Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.h | 2 -- drivers/net/ethernet/realtek/r8169_main.c | 10 +++------- drivers/net/ethernet/realtek/r8169_phy_config.c | 2 -- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.h b/drivers/net/ethernet/realtek/r8169.h index 22a6a057b..afefdec9d 100644 --- a/drivers/net/ethernet/realtek/r8169.h +++ b/drivers/net/ethernet/realtek/r8169.h @@ -25,8 +25,6 @@ enum mac_version { RTL_GIGA_MAC_VER_11, RTL_GIGA_MAC_VER_12, RTL_GIGA_MAC_VER_13, - RTL_GIGA_MAC_VER_14, - RTL_GIGA_MAC_VER_15, RTL_GIGA_MAC_VER_16, RTL_GIGA_MAC_VER_17, RTL_GIGA_MAC_VER_18, diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 226205099..124827b19 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -105,9 +105,7 @@ static const struct { [RTL_GIGA_MAC_VER_10] = {"RTL8101e" }, [RTL_GIGA_MAC_VER_11] = {"RTL8168b/8111b" }, [RTL_GIGA_MAC_VER_12] = {"RTL8168b/8111b" }, - [RTL_GIGA_MAC_VER_13] = {"RTL8101e" }, - [RTL_GIGA_MAC_VER_14] = {"RTL8100e" }, - [RTL_GIGA_MAC_VER_15] = {"RTL8100e" }, + [RTL_GIGA_MAC_VER_13] = {"RTL8101e/RTL8100e" }, [RTL_GIGA_MAC_VER_16] = {"RTL8101e" }, [RTL_GIGA_MAC_VER_17] = {"RTL8168b/8111b" }, [RTL_GIGA_MAC_VER_18] = {"RTL8168cp/8111cp" }, @@ -2009,8 +2007,8 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii) { 0x7c8, 0x248, RTL_GIGA_MAC_VER_09 }, { 0x7c8, 0x340, RTL_GIGA_MAC_VER_16 }, /* FIXME: where did these entries come from ? -- FR */ - { 0xfc8, 0x388, RTL_GIGA_MAC_VER_15 }, - { 0xfc8, 0x308, RTL_GIGA_MAC_VER_14 }, + { 0xfc8, 0x388, RTL_GIGA_MAC_VER_13 }, + { 0xfc8, 0x308, RTL_GIGA_MAC_VER_13 }, /* 8110 family. */ { 0xfc8, 0x980, RTL_GIGA_MAC_VER_06 }, @@ -3616,8 +3614,6 @@ static void rtl_hw_config(struct rtl8169_private *tp) [RTL_GIGA_MAC_VER_11] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_12] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_13] = NULL, - [RTL_GIGA_MAC_VER_14] = NULL, - [RTL_GIGA_MAC_VER_15] = NULL, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_18] = rtl_hw_start_8168cp_1, diff --git a/drivers/net/ethernet/realtek/r8169_phy_config.c b/drivers/net/ethernet/realtek/r8169_phy_config.c index 0cf4893e5..a0c2b3330 100644 --- a/drivers/net/ethernet/realtek/r8169_phy_config.c +++ b/drivers/net/ethernet/realtek/r8169_phy_config.c @@ -1261,8 +1261,6 @@ void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev, [RTL_GIGA_MAC_VER_11] = rtl8168bb_hw_phy_config, [RTL_GIGA_MAC_VER_12] = rtl8168bef_hw_phy_config, [RTL_GIGA_MAC_VER_13] = NULL, - [RTL_GIGA_MAC_VER_14] = NULL, - [RTL_GIGA_MAC_VER_15] = NULL, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl8168bef_hw_phy_config, [RTL_GIGA_MAC_VER_18] = rtl8168cp_1_hw_phy_config, From patchwork Sun Jun 28 21:17:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1318671 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=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; 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.a=rsa-sha256 header.s=20161025 header.b=j196CY01; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49w3Nt1hYdz9sSF for ; Mon, 29 Jun 2020 07:17:34 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726481AbgF1VRY (ORCPT ); Sun, 28 Jun 2020 17:17:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726080AbgF1VRX (ORCPT ); Sun, 28 Jun 2020 17:17:23 -0400 Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E96C3C03E979 for ; Sun, 28 Jun 2020 14:17:22 -0700 (PDT) Received: by mail-ed1-x542.google.com with SMTP id z17so11207082edr.9 for ; Sun, 28 Jun 2020 14:17:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=hlbOd+AjXA9mOzFzttUmdXl4dBFDkqXVFgg6QaCE2Vg=; b=j196CY01MoyqRuL8wrAL3MS3ApBdvLVPAS/iOZbjBGw7QKT+EYdXhNNBWHQGpHysA7 vkEFHFpG6kD5bKm4OW8s6olcqFavvmgG65dRpdiRGHP7gUzo5yg5WCdqLCq9HBo7uzmI xnPFdIIpJpv92W40fjmK0rzFU6TwWp5A9SDSq9Fflt9lmn0j6S6TNR03c2WGnfYz72XF SM0b1rTOag9cYtwLC+4Uw1/Am7zBh8T9/lBdH9WLqsdk8Nt4s9M5mF67WsgSmQkXUGVk cxvlulp6VWDFd526vqZQmNwbaRRR8PjnhikMxmSpsmIvLlOLs6aj7AVMrrZCRVmn7nn2 iyrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=hlbOd+AjXA9mOzFzttUmdXl4dBFDkqXVFgg6QaCE2Vg=; b=eB6LdJQ6MCQ9OoximFcSCgfbsFTIdOhCv88ZxgcogNA2333h/gHguuiA8TQPEVi4tU oPXgA2Hovswo1PPR5j9tlJCGtgN+mWiBCpNH2K/5q2GTOvrvcxxQJIoZp+ZEBSwMox2c wFkg8snKAwO88Kx0aFdGyjG1yJT2fhoyk8yKfU9zeE2RTgU3uxHDKKdRv7I0ef8hJ985 NGaMzCtY1BysgNik5sBAz6ycfTsqB47aGzL5jrmrJCiI/tqJZk3Uxw88kHv07uERWqst qRAjuYZF/jN3WW6vU3Dxp3MMky55p8DVTRcKZhzUPFOgZwlckZ5iSOaCSQ3YDWpLPIQp j/rg== X-Gm-Message-State: AOAM532yoiiDm9hz/DEPp3Zc9lF1wfuFO662la9vRBP1Nw1CR67ntK/t jN9JvKzJXUwdvLF96cqcjxDtBrRZ X-Google-Smtp-Source: ABdhPJyfbKKEXD8zXeLXyTDW9TWEQHBuHhfMV/drKL4mj+R1ad7FzpcA7sTAvHes27xSLjR1G5TJmQ== X-Received: by 2002:a50:9b18:: with SMTP id o24mr14654433edi.335.1593379041377; Sun, 28 Jun 2020 14:17:21 -0700 (PDT) Received: from ?IPv6:2003:ea:8f23:5700:ed55:9d81:4812:8269? (p200300ea8f235700ed559d8148128269.dip0.t-ipconnect.de. [2003:ea:8f23:5700:ed55:9d81:4812:8269]) by smtp.googlemail.com with ESMTPSA id m22sm23367115ejb.47.2020.06.28.14.17.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Jun 2020 14:17:21 -0700 (PDT) Subject: [PATCH net-next 2/2] r8169: sync support for RTL8401 with vendor driver From: Heiner Kallweit To: Realtek linux nic maintainers , Jakub Kicinski , David Miller Cc: "netdev@vger.kernel.org" References: <29ba5d31-9a0f-05c4-1472-5b15330f6408@gmail.com> Message-ID: Date: Sun, 28 Jun 2020 23:17:07 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <29ba5d31-9a0f-05c4-1472-5b15330f6408@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org So far RTL8401 was treated like a RTL8101e, means we relied on the BIOS to configure MAC and PHY properly. Make RTL8401 a separate chip version and copy MAC / PHY config from r8101 vendor driver. Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.h | 1 + drivers/net/ethernet/realtek/r8169_main.c | 18 ++++++++++++++++-- .../net/ethernet/realtek/r8169_phy_config.c | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.h b/drivers/net/ethernet/realtek/r8169.h index afefdec9d..422a8e5a8 100644 --- a/drivers/net/ethernet/realtek/r8169.h +++ b/drivers/net/ethernet/realtek/r8169.h @@ -25,6 +25,7 @@ enum mac_version { RTL_GIGA_MAC_VER_11, RTL_GIGA_MAC_VER_12, RTL_GIGA_MAC_VER_13, + RTL_GIGA_MAC_VER_14, RTL_GIGA_MAC_VER_16, RTL_GIGA_MAC_VER_17, RTL_GIGA_MAC_VER_18, diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 124827b19..07a33af1f 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -106,6 +106,7 @@ static const struct { [RTL_GIGA_MAC_VER_11] = {"RTL8168b/8111b" }, [RTL_GIGA_MAC_VER_12] = {"RTL8168b/8111b" }, [RTL_GIGA_MAC_VER_13] = {"RTL8101e/RTL8100e" }, + [RTL_GIGA_MAC_VER_14] = {"RTL8401" }, [RTL_GIGA_MAC_VER_16] = {"RTL8101e" }, [RTL_GIGA_MAC_VER_17] = {"RTL8168b/8111b" }, [RTL_GIGA_MAC_VER_18] = {"RTL8168cp/8111cp" }, @@ -1999,8 +2000,7 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii) { 0x7cf, 0x348, RTL_GIGA_MAC_VER_07 }, { 0x7cf, 0x248, RTL_GIGA_MAC_VER_07 }, { 0x7cf, 0x340, RTL_GIGA_MAC_VER_13 }, - /* RTL8401, reportedly works if treated as RTL8101e */ - { 0x7cf, 0x240, RTL_GIGA_MAC_VER_13 }, + { 0x7cf, 0x240, RTL_GIGA_MAC_VER_14 }, { 0x7cf, 0x343, RTL_GIGA_MAC_VER_10 }, { 0x7cf, 0x342, RTL_GIGA_MAC_VER_16 }, { 0x7c8, 0x348, RTL_GIGA_MAC_VER_09 }, @@ -3401,6 +3401,19 @@ static void rtl_hw_start_8102e_3(struct rtl8169_private *tp) rtl_ephy_write(tp, 0x03, 0xc2f9); } +static void rtl_hw_start_8401(struct rtl8169_private *tp) +{ + static const struct ephy_info e_info_8401[] = { + { 0x01, 0xffff, 0x6fe5 }, + { 0x03, 0xffff, 0x0599 }, + { 0x06, 0xffff, 0xaf25 }, + { 0x07, 0xffff, 0x8e68 }, + }; + + rtl_ephy_init(tp, e_info_8401); + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); +} + static void rtl_hw_start_8105e_1(struct rtl8169_private *tp) { static const struct ephy_info e_info_8105e_1[] = { @@ -3614,6 +3627,7 @@ static void rtl_hw_config(struct rtl8169_private *tp) [RTL_GIGA_MAC_VER_11] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_12] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_13] = NULL, + [RTL_GIGA_MAC_VER_14] = rtl_hw_start_8401, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl_hw_start_8168b, [RTL_GIGA_MAC_VER_18] = rtl_hw_start_8168cp_1, diff --git a/drivers/net/ethernet/realtek/r8169_phy_config.c b/drivers/net/ethernet/realtek/r8169_phy_config.c index a0c2b3330..bc8bf48bd 100644 --- a/drivers/net/ethernet/realtek/r8169_phy_config.c +++ b/drivers/net/ethernet/realtek/r8169_phy_config.c @@ -1091,6 +1091,13 @@ static void rtl8102e_hw_phy_config(struct rtl8169_private *tp, rtl_writephy_batch(phydev, phy_reg_init); } +static void rtl8401_hw_phy_config(struct rtl8169_private *tp, + struct phy_device *phydev) +{ + phy_set_bits(phydev, 0x11, BIT(12)); + phy_modify_paged(phydev, 0x0002, 0x0f, 0x0000, 0x0003); +} + static void rtl8105e_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev) { @@ -1261,6 +1268,7 @@ void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev, [RTL_GIGA_MAC_VER_11] = rtl8168bb_hw_phy_config, [RTL_GIGA_MAC_VER_12] = rtl8168bef_hw_phy_config, [RTL_GIGA_MAC_VER_13] = NULL, + [RTL_GIGA_MAC_VER_14] = rtl8401_hw_phy_config, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl8168bef_hw_phy_config, [RTL_GIGA_MAC_VER_18] = rtl8168cp_1_hw_phy_config,