Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758428AbcK3RLX (ORCPT ); Wed, 30 Nov 2016 12:11:23 -0500 Received: from mail-by2nam01on0083.outbound.protection.outlook.com ([104.47.34.83]:12544 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753679AbcK3RLQ (ORCPT ); Wed, 30 Nov 2016 12:11:16 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; Message-ID: <583F082F.1010701@caviumnetworks.com> Date: Wed, 30 Nov 2016 09:11:11 -0800 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: , Bjorn Helgaas CC: , Andy Lutomirski , Shawn Lin , David Daney Subject: Ping: [PATCH] PCI/ASPM: Don't retrain link if ASPM not possible. References: <1479421501-31029-1-git-send-email-ddaney.cavm@gmail.com> In-Reply-To: <1479421501-31029-1-git-send-email-ddaney.cavm@gmail.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: BY2PR07CA046.namprd07.prod.outlook.com (10.141.251.21) To SN1PR07MB2143.namprd07.prod.outlook.com (10.164.47.13) X-MS-Office365-Filtering-Correlation-Id: 56331d1d-c637-4a39-2192-08d41943e439 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2143; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;3:kMPijbpoZTO9LsD8Yf/EH9jc+FISj7PBynGlPxukHmQPn3sFbT4Gg+5W+eMEIsWVB/rnhTlRHvRrZiEvRBieoi0qQIX0TDjYkiVgKzMDQHLo6Ved1c7wpzEyx7a8oFb3FdgO+ZGYSESh6L3HLtz69+2olQ08+EAOXMslJjXd+UZYiOUpMGca4uUkTWUNWktNDIDHxY7/ZsdPhfUgKge6fOUu7yRGquviiVBcmrX0wyexqPfSYGJu7A4+OPjuvRv09oMtJJfKEYCXI0CTcbbVHw== X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;25:wNuIbaTc0A29HnEkNOMQt6W84Zi7eg+ZtGhFjZz9r9S0FI8E1rOw3Jl6Ik7v+ISGYXws/AyWVbFncsXWHXiUZDWsazSKQHkBXd3vN6odcADNANUjgF1AnCrflKZCywnw6PV8+jcDbcEPDG0wbLNNhS8E4fm1XGeH+qHXTwOVGdhxlLkEznYkndt18VTMzfKSH8JRI+sfKiMvVIzIOR4A8KU4mAt4MmxwNzzYctRooC4sFJcCsyKlH16Dk34iL6rQR4seK+g5cmf2ANyGiifhKfmbqdYp12b4zAOrDfqxTHOQMCvVWufohnHdCSZsaJOY2mnG7WCovrNHZCPZJshmUltSH5KzwuT5tBlrQ/6+OdI9OojEX1oLekERiT9dr7KMTz7STwy66e/r3Zt6unwU9McD71CYinGG6y0e88A+GQpdnJTicEGE/DV8TOEOKgnHZxowtKij7xKSXjt1oKdK/Z02haazTej7IBROKqqPMXx5NffNcK0Ik2/BMN7yHSUupUR1VSaGVIUL+QESvYwQYkY4C8EShDbnRKAoTPA3YJynzrg+fV/Q7Vaz4JJM8Jx921e6/p4GISF7djoKKQIyXvUfdYWEHtXo9j89QJJiS71YscvQx4O70LcTttddmpFRsS6CSdJY48WTWnRHEaPRG6r71GTGHPgnyjOUrk0raLE9Vw9YIo6ggX7uxl/w70TyrK7lHzosyb9qKECEu2aceHtlk2yXdUq3lQKH+zWAiy54CnJ2npbaiI8YmSPYab1EvfI6YTvPYCaIWf2ndwBK2Zf9vVpd9+wxlZaF1u2PEA8= X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;31:qEDZMJoaEw8CwGnKe8piw0v6oZXdQWlCRfDMlzaGCk+dcPjLIp6hewFgY4teUC9dBQ72bafK6AGzUDsO4MeJ6vrtF797VxCSXWcoS6NZi2763OP/ou2FfNlit0DjWTxQowrNJvuybnUQekDLUoQWKHhtL6CIoO8xxI85I70wVaTisND5QbQG+xnUVZy5oGxqhTPhMxHGnp3cyDFFU3kiAN7XurqlOf3GAwfi5Q+UmlbyRFc/P7RNvPO453OOxqC0hzCWL5CAphtcX7kstD9MzvS1LGqtfjsvMPH73vsd12Y=;20:m/VM2UtnKfdOJZsnMb7CSGRxy6pu2xOAeugZ8kvXRQwtoHXLmGXRqA/nxtSTENrg2FRTGN/bFgBtwwH6ATbdMX//h9n/i965H4BhBjnjmQLeVDr83e18y9L/hNRyQf9bCct7+/OPZ9B95h5H79Ck3oW/QzaHYeW+nNJ4Kwhseb8u8FeVHlwr16lC+wSfWEIe0RuuTNABrcZupDPdnDPRaRhCtOC8xu9N4aOtLSwAxK29wz1V0V27kz6cSy8Xv3tEN0NdSoToy38ebS9GeRt4Sod5FeOHikS8/JL9UksGT4kH0Ei4Fy06/bpzeyAo9ZvfKf9REJcf/JkuyDb/BaB0KCdFshtAnoAIWl/y43HugqDqw7cn/DOyfURiOB77jkFeGgtj7bUyFl5UDUyNHKbBCVkCefWs4uAkaV4kVRMOkNVAEeLaLu9uReMKl9AX71kVqgb8fiyUDIz9kTdEC+xndPc5N+ajjcdSfHa/a+XRlS/2BhnPQVH1gpvN/EGJ7wE8hVd0V2EGeuyqg6nABzGsufjJwpy2ECTKjypZK0flFEOfpCE5d09OasafiF4sOe0ME900VSwYswzlIM0L3tJw1KfnoolAaxSdLvOtg+Y3mnc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:SN1PR07MB2143;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2143; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;4:8et0XUHOMb8d4xDtT9L8d69kb1+pXsBUcYkiKeev63ZC4wSBukTtw1Y2auiL/x+odNxUE1MRZa/kFtdnu3K/Ly9BXlPhwINuAQis+r9xa98pv1jYjokKMQ6KijGtZRDntbLfaYTDjTWRqbqMc5ResE82C5Qeie6mhc8bKa3xj2LL2MBBhxYqR0knMlyKfE6gY1WuA88GhxghXJHyDjKotU8gYn8vZ3qLVvKoQe76u3jEust5ygFcR4td4gXMKWvnm57gUCCJRaGJME2uviBkSNYuD+M4W0P0P/z5r2qhF3GiRmbRQ+Q/wvzHeivPTO6jESgYVYzxTgRG8BO8WpFUKDDwgtHvhDlNkRV9m67xiaLH5+EXjMGEsydeDIMpBZrJdbfqFJ/orpCsI2rsS5dBRxkNk82I422M21xM6lOs3gqW4RjlO8Xq/cU8/enB0rBWBlYhx1aDSx8VB3a6Pa/eHUoKzHJelKq9NBPujWQI5wjho+i09KNmUrcaWYKLFToveuq0DETOBQYIxadC3scGYwRM5dRJmDh4Vhb0vapqRl1bGPC1Kjgbk3zVInP0WIY1+0qM/obyPwpAUTGrMu92rA== X-Forefront-PRVS: 0142F22657 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(189002)(199003)(377454003)(97736004)(4001350100001)(2906002)(4326007)(101416001)(2950100002)(53416004)(6116002)(5001770100001)(68736007)(42882006)(42186005)(105586002)(81166006)(230700001)(69596002)(3846002)(59896002)(81156014)(106356001)(33656002)(6666003)(36756003)(31430400001)(38730400001)(4001430100002)(5660300001)(65806001)(65956001)(80316001)(8676002)(83506001)(189998001)(50466002)(66066001)(39410400001)(65816999)(47776003)(50986999)(64126003)(7736002)(92566002)(107886002)(39450400002)(733004)(6486002)(7846002)(23756003)(305945005)(76176999)(54356999)(87266999)(3076002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR07MB2143;H:dl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;SN1PR07MB2143;23:Ap7zLJtWZ38JUHn2vZSnoMLasgc+BViN+zwPg6C?= =?iso-8859-1?Q?TWBTZuN06Hd1CdstzI+ntsq5RmjE7Ir2ZD5x/bZI7ZzTT7G8dLhb5DeE9D?= =?iso-8859-1?Q?Z7Ca5dwmq1Tl6vA/RMxAiVX98n/rcAQonSoVPV5gTSuC9a26hcYejF6afG?= =?iso-8859-1?Q?ytzG1HUR33hMyicnwCcdDYib3RRWekoucxFbzwYxOIIuTEWJCNNT1cK5qO?= =?iso-8859-1?Q?JKcbzTav66vlMNWPqwnjj1jeNV4e3pmcEFfFj4x5vgUxa41ndkGJGcvivp?= =?iso-8859-1?Q?AdEfQCzPWlaUG7K6OidvAA8uBm6p86trNI6RoO9hWcJQ2rzw0esqTe3DYd?= =?iso-8859-1?Q?oYH4hISlTSVg8afAvperzbuzugVNd5rMS3bZ95gSuecPJESV6nw9e+5Z3P?= =?iso-8859-1?Q?aVyGKQht64AxofO4Gon/A9ypgFffZ8bpW9a2H3NPJKFo1vC/0UXUqpvMXF?= =?iso-8859-1?Q?i1ybz0BtLkpdljTVVAyd3jtmUpjM2ZwSErFLKlSgf2vBAnlOzMoc+8/OB4?= =?iso-8859-1?Q?y3YgmuJ1B3P9ZBmzo30uqklE3KnrR0Z1BF9462GLr/YWgqfnS0xOMX9p+n?= =?iso-8859-1?Q?HrG9ghon0v6RRjjFpQ1UQLqK1RFRF+5WL/ct21Lc8oMoYCA7WbGXgFKCTz?= =?iso-8859-1?Q?LWQENBHpsiIVH7e/rUwJlPw3g6Prjff+dNcq/GkSXb79fvQcJFV8x4mDqA?= =?iso-8859-1?Q?z6I+iumQNymZNeFTVIacx4muqg4IyQZ4sv0zTdOs2nMm3FSeoYD9mIFpjs?= =?iso-8859-1?Q?Z1LFD5pCuyNzhrhar79RWAapX3pbSSZH4olAJtaTt4rB9BBP+80VL1AhKB?= =?iso-8859-1?Q?a06twrESJ0CSFKjpuZS3BOiU7B/npExXabtn7AGtg0yMdpDpEcLKY9ZH63?= =?iso-8859-1?Q?oxa8vYx2ISYLqkxtLrFl10su+1lq89ziyCeGws3CXd4dWUqTBDDyrDLhiy?= =?iso-8859-1?Q?9nMklAStBlkgTQA6BlRKy9OP0euachbOsbr3ZFVToOVL2gqEwBzyVT41d9?= =?iso-8859-1?Q?ojIHxwNNrwqKFMp0Xj59kgsDbz5zCzRo3SSdWuG1h4Kb19XdfVcuIRuWwg?= =?iso-8859-1?Q?HfNgSlDeYfc/Kihn+2kg+X92ZTHNDzGt2jGtrL29Q8h6F20joNJTO4HUMP?= =?iso-8859-1?Q?nH6cfn4yzqtODn6fUf955828bG3CafVkJOOCzJN50IUoK1KWH2QiaAY/di?= =?iso-8859-1?Q?U4DinzpKJtzZW24QB8pt3owiW0e3VixmdkCtTNcxu1uD7FFcMhg/jm0Krs?= =?iso-8859-1?Q?5G+znFRJVu4SsfvjNBG2DPRoGv6+ft3puNz+UeuedcEr4s98H7+y2fAx20?= =?iso-8859-1?Q?qldsbvrkrNfrKXVJnlvUiK9F+V/V86sYUffjxTE8oGAzuxGuBcwHMpXxh7?= =?iso-8859-1?Q?FilR4Ewd072KllkMV2O/4UAlN/ZekF7Nsc/Sxp4nfwUObA4A3WtzhblWxO?= =?iso-8859-1?Q?svWL6flCQW50Rp+zQkHh8j8lQWWXtzAxzfJDI9egEZS1zdeVmMYcZzR3PF?= =?iso-8859-1?Q?5bjoFiqx6ZN3TRxJuiJk=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;6:RUPXRfkHlv/vvk7ld2jA+qHHvhaOSGCa5KbQRX1r8QbnYGjzmrqivAQd9JnwjRSSCmoRaNdrnGVF2k/gexS1m7CDQ9pVkxJ2PWsqFW4np4whKyhlXfuNru8BYNE+ZjkbOnYqrBJMed5nFPIHO/5ByhAehaevz44L/nEchOeOec2CUavJjL+DSa/pyC4fj5TklPzSEzqQOBs+W+OKxR50VwNPg+5JUJt2t8baun3w5BQfNVLplgPi+Jie13PNv3+zFe0vgwsT8W0Vqoi/uvf4AmmsbjHnu2boNCps7czMD5sA2C8hC2zrQV4oRKiIfNAB+t+IOY8ff2VsMlPyf3X4V2d1ebwDra00j7mfhcRhVKxbEgnrYNBaM/55hbO3xXaQpb/6TL7YAPMZee+mtl39Hh6xzdnIXR5iPHz74Yzpi5nJ5fZt0AxC9JghGobrvxsKIjg4dsGtbZEl3oY/Abpb5w==;5:8OxxVmsrwcYj9Q3TW27aLlhgknHPOfyQdAQIm/MtOWwnRp0MwzPVmRB0vTz7XYGunp7QlZofc0JmDgPvLYCFKrgqyxPLQ8HTvTFaZe0i9YDyYt2Jz/WzetpHR9+01Yixwe2y0ok0KJVrF++7GDMmCM6uuNhNyuD2V6zY7mM7Mmw=;24:mnZBfK0mJuvJYPhS8DDwbkw0lTy3tl4Md7ApxyvOBdvdhb545ldcmgeCOgi1MgwWC5GH1tm2Fs0OEii9cvWMteXo6WQovhofbEnU+ZDTrmU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2143;7:uXhKYQ+w0S9wjQgjOtO93/beRZB0F4THd4XkbOFv6hVjQWsqQzastKB9/1aRi8lPRvrfS7V448CAfC9O7hKYyRjVFugRRqbi+dyb3A0keJGMk88OStWPmqBEtxNdLSs7IHY49FpEmMcuJ5DDZCf/i6jyLOAI7prm6aeK1GEFBILdNYMLXQJjZaER/Lmk0iRgV4O1P6xnqRL9VJa/GEiMTfLDTsdhLfQz3R2qC7jNLSWXeoVCI1SJoS0phlk7Xmyl8VaufKURyxIG709dgoSFqKSWlBAYFwVE2tVCNIjdq0F8/F7XfGde4mchi2scTDm/zP17YnWKSx8IfnaLcMsd9PqTpx0aJqeaozyw1Vj/lqIN+aQg1zMFEAxMGLOiqgkrXTtLMQ1RJ8u63lO6Q5FNX6K71BaLpE/o2Z+a79Fmi6H/JLgzry+5vt+As8Iz1tD7gEd0ne/AcXlEpawxFFZi3w== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2016 17:11:14.5552 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2143 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1935 Lines: 61 On 11/17/2016 02:25 PM, David Daney wrote: > From: David Daney > > Some (defective) PCIe devices are not able to reliably do link > retraining. > > Check to see if ASPM is possible between link partners before > configuring common clocking, and doing the resulting link retraining. > If ASPM is not possible, there is no reason to risk losing access to a > device due to an unnecessary link retraining. > Hi Bjorn, It has been a couple of weeks since I originally sent this, and I wanted to know if you have had a chance to look at it. If possible, it would be nice to consider for the approaching merge window. Thanks, David Daney > Signed-off-by: David Daney > --- > drivers/pci/pcie/aspm.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c > index 0ec649d..d6667db 100644 > --- a/drivers/pci/pcie/aspm.c > +++ b/drivers/pci/pcie/aspm.c > @@ -351,12 +351,26 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist) > return; > } > > + /* Get upstream/downstream components' register state */ > + pcie_get_aspm_reg(parent, &upreg); > + child = list_entry(linkbus->devices.next, struct pci_dev, bus_list); > + pcie_get_aspm_reg(child, &dwreg); > + > + /* > + * If ASPM not supported, don't mess with the clocks and link, > + * bail out now. > + */ > + if (!(upreg.support & dwreg.support)) > + return; > + > /* Configure common clock before checking latencies */ > pcie_aspm_configure_common_clock(link); > > - /* Get upstream/downstream components' register state */ > + /* > + * Re-read upstream/downstream components' register state > + * after clock configuration > + */ > pcie_get_aspm_reg(parent, &upreg); > - child = list_entry(linkbus->devices.next, struct pci_dev, bus_list); > pcie_get_aspm_reg(child, &dwreg); > > /* >