From patchwork Wed Sep 13 16:47:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philip Cox X-Patchwork-Id: 1833665 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Rm5zy5zV9z1yh0 for ; Thu, 14 Sep 2023 02:50:38 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1qgT4N-00037f-SM; Wed, 13 Sep 2023 16:50:27 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1qgT4E-00036e-0j for kernel-team@lists.ubuntu.com; Wed, 13 Sep 2023 16:50:19 +0000 Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id BA6F13F639 for ; Wed, 13 Sep 2023 16:50:17 +0000 (UTC) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-6491907dba4so419226d6.1 for ; Wed, 13 Sep 2023 09:50:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694623815; x=1695228615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Nmt2dZBHgN32ZiZdMwL6P/1LwoWUCb6ugxAy0p82AGI=; b=WvePMDQiGdawON5e95AveREFG2jGBA7EjsohwOkKCTlK+5bQa+yj4fE4NwVodcVKfw lDecK5A52s2F0dSh45d83WvvJZv4huzkeY6sFu0rVN3SjPave/EYGB65HJMbPun9P+NU BmXykt0GXveSocOcUPoUM/5Q95re3lufUfb/rQwq+DBW8Z0cODoobaFZWWh8h6TXNCtB cXh2SfvPB5IwsBpyFo7s6nnLAgrZ35JkJ6Ple0MprIr6YNYyp8GtrAgC/2sm/7dxK/Q9 O8UHJDYBXsBxL8kBdJ+twrBGceYiFsgsiNXyuW8ZCQ7LCRrf5Tj9cG6PDaYF7AvFJZBN nRww== X-Gm-Message-State: AOJu0YxW+U8p5Xjw1O/nqGUNYcfue1IvaTIOb/vm6dgbZ+cZAj+0Xnz1 IvkaLYn3fHjybb2ngZZD6GLBzfHkrfFUq1rCReHi5mSorspI92FNEd8d7Qdgz8hw1Ec2SV/0tZG 5x5dRVpfQZDjFuNV/betykxs02TFMCvHbPqi13el6rLyvrWgYsw== X-Received: by 2002:a05:6214:518b:b0:63d:580:9c68 with SMTP id kl11-20020a056214518b00b0063d05809c68mr6753707qvb.32.1694623815677; Wed, 13 Sep 2023 09:50:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFps5GVX94oALjucpX3D6lR5VjctZ8qxcIviB2Rq66k9/+g1QkjcMJAFj637sIA7EKDxroIJA== X-Received: by 2002:a05:6214:518b:b0:63d:580:9c68 with SMTP id kl11-20020a056214518b00b0063d05809c68mr6753688qvb.32.1694623815400; Wed, 13 Sep 2023 09:50:15 -0700 (PDT) Received: from cox.conference (69-196-154-44.dsl.teksavvy.com. [69.196.154.44]) by smtp.gmail.com with ESMTPSA id i3-20020ad44103000000b00655e2d0c268sm2988547qvp.15.2023.09.13.09.50.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 09:50:13 -0700 (PDT) From: Philip Cox To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/1] Revert "igc: Disable PTM sequences when interface goes down" Date: Wed, 13 Sep 2023 12:47:36 -0400 Message-Id: <20230913164736.2684780-2-philip.cox@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230913164736.2684780-1-philip.cox@canonical.com> References: <20230913164736.2684780-1-philip.cox@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/2035361 This reverts commit c4dc67fc3e38fb2fd877674b21d972392ae0852a. commit c4dc67fc3e38fb2fd877674b21d972392ae0852a Author: Aravindhan Gunasekaran Date: Fri Apr 21 13:20:10 2023 -0400 igc: Disable PTM sequences when interface goes down BugLink: https://bugs.launchpad.net/bugs/2019222 Kernel hangs or reboots reported in some boards with a combination of interface up/down or reset. It turns out that this occurs due to Foxville bus master disabling when PTM sequences remain enabled. We do not need to always enable PTM in the reset sequence as igc_ptp_reset is also called during interface down. This caused PTM sequences be enabled but Foxville tries to disable bus mastering before going through controller reset. This patch disables PCIe PTM when interface goes down. Signed-off-by: Aravindhan Gunasekaran (back-ported from https://github.com/intel/linux-intel-quilt/tree/mainline-tracking-v5.19-linux-221019T120731Z/patches/0001-igc-Disable-PTM-sequences-when-interface-goes-down.tsn [context changes]) Signed-off-by: Philip Cox Acked-by: Jian Hui Lee Acked-by: Tim Gardner Signed-off-by: Philip Cox Acked-by: Thadeu Lima de Souza Cascardo --- drivers/net/ethernet/intel/igc/igc_ptp.c | 50 ++++++++++-------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/intel/igc/igc_ptp.c b/drivers/net/ethernet/intel/igc/igc_ptp.c index 993d339205ed..b1b93e9a4399 100644 --- a/drivers/net/ethernet/intel/igc/igc_ptp.c +++ b/drivers/net/ethernet/intel/igc/igc_ptp.c @@ -1109,30 +1109,6 @@ static void igc_ptp_time_restore(struct igc_adapter *adapter) igc_ptp_write_i225(adapter, &ts); } -static void igc_ptm_start(struct igc_adapter *adapter) -{ - struct igc_hw *hw = &adapter->hw; - u32 cycle_ctrl, ctrl; - - wr32(IGC_PCIE_DIG_DELAY, IGC_PCIE_DIG_DELAY_DEFAULT); - wr32(IGC_PCIE_PHY_DELAY, IGC_PCIE_PHY_DELAY_DEFAULT); - - cycle_ctrl = IGC_PTM_CYCLE_CTRL_CYC_TIME(IGC_PTM_CYC_TIME_DEFAULT); - - wr32(IGC_PTM_CYCLE_CTRL, cycle_ctrl); - - ctrl = IGC_PTM_CTRL_EN | - IGC_PTM_CTRL_START_NOW | - IGC_PTM_CTRL_SHRT_CYC(IGC_PTM_SHORT_CYC_DEFAULT) | - IGC_PTM_CTRL_PTM_TO(IGC_PTM_TIMEOUT_DEFAULT) | - IGC_PTM_CTRL_TRIG; - - wr32(IGC_PTM_CTRL, ctrl); - - /* Force the first cycle to run. */ - wr32(IGC_PTM_STAT, IGC_PTM_STAT_VALID); -} - static void igc_ptm_stop(struct igc_adapter *adapter) { struct igc_hw *hw = &adapter->hw; @@ -1166,8 +1142,10 @@ void igc_ptp_suspend(struct igc_adapter *adapter) spin_unlock(&adapter->ptp_tx_lock); - if (pci_device_is_present(adapter->pdev)) + if (pci_device_is_present(adapter->pdev)) { igc_ptp_time_save(adapter); + igc_ptm_stop(adapter); + } } /** @@ -1196,6 +1174,7 @@ void igc_ptp_stop(struct igc_adapter *adapter) void igc_ptp_reset(struct igc_adapter *adapter) { struct igc_hw *hw = &adapter->hw; + u32 cycle_ctrl, ctrl; unsigned long flags; u32 timadj; @@ -1220,10 +1199,23 @@ void igc_ptp_reset(struct igc_adapter *adapter) if (!igc_is_crosststamp_supported(adapter)) break; - if (!test_bit(__IGC_DOWN, &adapter->state)) - igc_ptm_start(adapter); - else - igc_ptm_stop(adapter); + wr32(IGC_PCIE_DIG_DELAY, IGC_PCIE_DIG_DELAY_DEFAULT); + wr32(IGC_PCIE_PHY_DELAY, IGC_PCIE_PHY_DELAY_DEFAULT); + + cycle_ctrl = IGC_PTM_CYCLE_CTRL_CYC_TIME(IGC_PTM_CYC_TIME_DEFAULT); + + wr32(IGC_PTM_CYCLE_CTRL, cycle_ctrl); + + ctrl = IGC_PTM_CTRL_EN | + IGC_PTM_CTRL_START_NOW | + IGC_PTM_CTRL_SHRT_CYC(IGC_PTM_SHORT_CYC_DEFAULT) | + IGC_PTM_CTRL_PTM_TO(IGC_PTM_TIMEOUT_DEFAULT) | + IGC_PTM_CTRL_TRIG; + + wr32(IGC_PTM_CTRL, ctrl); + + /* Force the first cycle to run. */ + wr32(IGC_PTM_STAT, IGC_PTM_STAT_VALID); break; default: