From patchwork Sat Jan 19 20:49:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1028052 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="Sd+lK9Ea"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43hqkr3NNTz9sCs for ; Sun, 20 Jan 2019 07:52:36 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729449AbfASUwe (ORCPT ); Sat, 19 Jan 2019 15:52:34 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:55013 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726773AbfASUwd (ORCPT ); Sat, 19 Jan 2019 15:52:33 -0500 Received: by mail-wm1-f68.google.com with SMTP id a62so7499718wmh.4 for ; Sat, 19 Jan 2019 12:52:31 -0800 (PST) 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=HO0kCYrk2bzFK806QV5X5/VuhYCV25CLC6/Bp75fy1g=; b=Sd+lK9Eaj//RwJk/yWr8FjIg2432Z0n7ivm2f5xvNoEEEITY1omCCRDqdOOpDArY0y dSxCI/+bXq3mXZFAw1SYSwxB7ueMJ3NSxRs9vK9oP0E7fVCgmaZQTFSgEKzaDdFkSmXD YkRj4tEWXlAXgF+N67RKJMjhr6lqZf7xT+MQJyOHs7prM+nPfFyux0VKPM7pt6Z2ILbP FF4j7uG52LFTY4pLqXv5+99DKts2F/ZWFwu0F60NDht5NY6AHHnT+ory+Qsdfb5M1S6C HCi1HT50C9+a9RctYS9Kn9mTXPAtRkI2VCddSeHxgNguuhVdEW42S7hATrkOGXyINjx/ yXog== 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=HO0kCYrk2bzFK806QV5X5/VuhYCV25CLC6/Bp75fy1g=; b=smHeSJvohCTrA+N2lRbvbm5H/VCWReLY3N1h89Lv2iS/2Ze+6Yf377m04wK6dh7BJZ MmCBG31p9KW7shTfpHOmLI2GWJyD+/mTbmH8YnGUnVAziDyySOtS7EaFWPtfxOVmQCgy l0adzJ5dRDgvweiaq8vHYIPoHOV29/v7R4ilJLPjS4m/V++9NbqnYLEHoNVg9mKzxkyU q6CsmyXDsQLbAB3tESmy22haphFYGuJSTGWu/6svGY43pvp13C4tYUHG1WBdt23vdcRL Yyto9pu5jywZIhIzV9GRAFtcWqXJZcxMyqkcAZxG9gXttqwSKU+0h8oc+kjjGRq4syKp PXNQ== X-Gm-Message-State: AJcUukfRl/5kYhqWWOQHQMBcJtUcrB9DqdFm1UGnQaha/bkZ1abKA+dZ 9sNS/ZRt3kbJMg1kUrny2Czgvjw1 X-Google-Smtp-Source: ALg8bN5Ye6LkrtkKsnapXK7DKAc83Mw3JcxaryU1U1E0MLiIUNfptpmYda5AvR1yXHS4+KLZRxpw/g== X-Received: by 2002:a1c:8f95:: with SMTP id r143mr18767552wmd.65.1547931150872; Sat, 19 Jan 2019 12:52:30 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:e877:8d0c:cdf0:81fd? (p200300EA8BF1E200E8778D0CCDF081FD.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:e877:8d0c:cdf0:81fd]) by smtp.googlemail.com with ESMTPSA id c12sm80626443wrs.82.2019.01.19.12.52.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Jan 2019 12:52:30 -0800 (PST) Subject: [PATCH net-next 5/8] r8169: add helpers for locking / unlocking the config registers From: Heiner Kallweit To: David Miller , Realtek linux nic maintainers Cc: "netdev@vger.kernel.org" References: <87f4c590-49ff-c3c8-9b64-4cd146e18ac6@gmail.com> Message-ID: <02bdc43b-5618-403b-a3f1-2582c2a7ffc6@gmail.com> Date: Sat, 19 Jan 2019 21:49:51 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <87f4c590-49ff-c3c8-9b64-4cd146e18ac6@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add helpers for locking / unlocking the config registers. Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.c | 34 ++++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 0bd07be8f..48b5d7051 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -745,6 +745,16 @@ static void rtl_unlock_work(struct rtl8169_private *tp) mutex_unlock(&tp->wk.mutex); } +static void rtl_lock_config_regs(struct rtl8169_private *tp) +{ + RTL_W8(tp, Cfg9346, Cfg9346_Lock); +} + +static void rtl_unlock_config_regs(struct rtl8169_private *tp) +{ + RTL_W8(tp, Cfg9346, Cfg9346_Unlock); +} + static void rtl_tx_performance_tweak(struct rtl8169_private *tp, u16 force) { pcie_capability_clear_and_set_word(tp->pci_dev, PCI_EXP_DEVCTL, @@ -1426,7 +1436,7 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts) }; u8 options; - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); switch (tp->mac_version) { case RTL_GIGA_MAC_VER_34 ... RTL_GIGA_MAC_VER_38: @@ -1474,7 +1484,7 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts) break; } - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); device_set_wakeup_enable(tp_to_dev(tp), wolopts); } @@ -4006,7 +4016,7 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr) { rtl_lock_work(tp); - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); RTL_W32(tp, MAC4, addr[4] | addr[5] << 8); RTL_R32(tp, MAC4); @@ -4017,7 +4027,7 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr) if (tp->mac_version == RTL_GIGA_MAC_VER_34) rtl_rar_exgmac_set(tp, addr); - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); rtl_unlock_work(tp); } @@ -4229,18 +4239,18 @@ static void rtl8169_init_ring_indexes(struct rtl8169_private *tp) static void rtl_hw_jumbo_enable(struct rtl8169_private *tp) { if (tp->jumbo_ops.enable) { - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); tp->jumbo_ops.enable(tp); - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); } } static void rtl_hw_jumbo_disable(struct rtl8169_private *tp) { if (tp->jumbo_ops.disable) { - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); tp->jumbo_ops.disable(tp); - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); } } @@ -4561,13 +4571,13 @@ static void rtl_set_rx_mode(struct net_device *dev) static void rtl_hw_start(struct rtl8169_private *tp) { - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); tp->hw_start(tp); rtl_set_rx_max_size(tp); rtl_set_rx_tx_desc_registers(tp); - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); /* Initially a 10 us delay. Turned it into a PCI commit. - FR */ RTL_R8(tp, IntrMask); @@ -6976,9 +6986,9 @@ static int rtl_alloc_irq(struct rtl8169_private *tp) unsigned int flags; if (tp->mac_version <= RTL_GIGA_MAC_VER_06) { - RTL_W8(tp, Cfg9346, Cfg9346_Unlock); + rtl_unlock_config_regs(tp); RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable); - RTL_W8(tp, Cfg9346, Cfg9346_Lock); + rtl_lock_config_regs(tp); flags = PCI_IRQ_LEGACY; } else { flags = PCI_IRQ_ALL_TYPES;