Message ID | 20240529123647.1051160-1-mika.westerberg@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 985cfe501b74f214905ab4817acee0df24627268 |
Headers | show |
Series | thunderbolt: debugfs: Fix margin debugfs node creation condition | expand |
On Wed, May 29, 2024 at 03:36:47PM +0300, Mika Westerberg wrote: > From: Aapo Vienamo <aapo.vienamo@linux.intel.com> > > The margin debugfs node controls the "Enable Margin Test" field of the > lane margining operations. This field selects between either low or high > voltage margin values for voltage margin test or left or right timing > margin values for timing margin test. > > According to the USB4 specification, whether or not the "Enable Margin > Test" control applies, depends on the values of the "Independent > High/Low Voltage Margin" or "Independent Left/Right Timing Margin" > capability fields for voltage and timing margin tests respectively. The > pre-existing condition enabled the debugfs node also in the case where > both low/high or left/right margins are returned, which is incorrect. > This change only enables the debugfs node in question, if the specific > required capability values are met. > > Signed-off-by: Aapo Vienamo <aapo.vienamo@linux.intel.com> > Fixes: d0f1e0c2a699 ("thunderbolt: Add support for receiver lane margining") > Cc: stable@vger.kernel.org > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Applied to thunderbolt.git/fixes.
diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c index 193e9dfc983b..70b52aac3d97 100644 --- a/drivers/thunderbolt/debugfs.c +++ b/drivers/thunderbolt/debugfs.c @@ -943,8 +943,9 @@ static void margining_port_init(struct tb_port *port) debugfs_create_file("run", 0600, dir, port, &margining_run_fops); debugfs_create_file("results", 0600, dir, port, &margining_results_fops); debugfs_create_file("test", 0600, dir, port, &margining_test_fops); - if (independent_voltage_margins(usb4) || - (supports_time(usb4) && independent_time_margins(usb4))) + if (independent_voltage_margins(usb4) == USB4_MARGIN_CAP_0_VOLTAGE_HL || + (supports_time(usb4) && + independent_time_margins(usb4) == USB4_MARGIN_CAP_1_TIME_LR)) debugfs_create_file("margin", 0600, dir, port, &margining_margin_fops); }