[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ce73f41a-b529-726f-ee4e-9d0e0cee3320@linux.intel.com>
Date: Fri, 16 Feb 2024 15:28:40 +0200 (EET)
From: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
To: "Maciej W. Rozycki" <macro@...am.me.uk>
cc: Bjorn Helgaas <bhelgaas@...gle.com>, linux-pci@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>,
Mika Westerberg <mika.westerberg@...ux.intel.com>
Subject: Re: [PATCH 1/1] PCI: Cleanup link activation wait logic
On Fri, 2 Feb 2024, Maciej W. Rozycki wrote:
> On Fri, 2 Feb 2024, Ilpo Järvinen wrote:
>
> > 1. Change pcie_failed_link_retrain() to return true only if link was
> > retrained successfully due to the Target Speed quirk. If there is no
> > LBMS set, return false instead of true because no retraining was
> > even attempted. This seems correct considering expectations of both
> > callers of pcie_failed_link_retrain().
>
> You change the logic here in that the second conditional isn't run if the
> first has not. This is wrong, unclamping is not supposed to rely on LBMS.
> It is supposed to be always run and any failure has to be reported too, as
> a retraining error.
Now that (I think) I fully understand the intent of the second
condition/block one additional question occurred to me.
How is the 2nd condition even supposed to work in the current place when
firmware has pre-arranged the 2.5GT/s resctriction? Wouldn't the link come
up fine in that case and the quirk code is not called at all since the
link came up successfully?
Yet another thing in this quirk code I don't like is how it can leaves the
target speed to 2.5GT/s when the quirk fails to get the link working
(which actually does happen in the disconnection cases because DLLLA won't
be set so the target speed will not be restored).
--
i.
Powered by blists - more mailing lists