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.