mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
thunderbolt: debugfs: Use FIELD_GET()
Use the FIELD_GET() macro instead of open coding the masks and shifts. This makes the code more compact and improves readability as it avoids the need to wrap excessively long lines. Signed-off-by: Aapo Vienamo <aapo.vienamo@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
ff6ab055e0
commit
49056c95df
@ -7,6 +7,7 @@
|
||||
* Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
*/
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/uaccess.h>
|
||||
@ -436,8 +437,7 @@ static bool both_lanes(const struct tb_margining *margining)
|
||||
static unsigned int
|
||||
independent_voltage_margins(const struct tb_margining *margining)
|
||||
{
|
||||
return (margining->caps[0] & USB4_MARGIN_CAP_0_VOLTAGE_INDP_MASK) >>
|
||||
USB4_MARGIN_CAP_0_VOLTAGE_INDP_SHIFT;
|
||||
return FIELD_GET(USB4_MARGIN_CAP_0_VOLTAGE_INDP_MASK, margining->caps[0]);
|
||||
}
|
||||
|
||||
static bool supports_time(const struct tb_margining *margining)
|
||||
@ -449,8 +449,7 @@ static bool supports_time(const struct tb_margining *margining)
|
||||
static unsigned int
|
||||
independent_time_margins(const struct tb_margining *margining)
|
||||
{
|
||||
return (margining->caps[1] & USB4_MARGIN_CAP_1_TIME_INDP_MASK) >>
|
||||
USB4_MARGIN_CAP_1_TIME_INDP_SHIFT;
|
||||
return FIELD_GET(USB4_MARGIN_CAP_1_TIME_INDP_MASK, margining->caps[1]);
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@ -845,7 +844,7 @@ static void voltage_margin_show(struct seq_file *s,
|
||||
{
|
||||
unsigned int tmp, voltage;
|
||||
|
||||
tmp = val & USB4_MARGIN_HW_RES_1_MARGIN_MASK;
|
||||
tmp = FIELD_GET(USB4_MARGIN_HW_RES_1_MARGIN_MASK, val);
|
||||
voltage = tmp * margining->max_voltage_offset / margining->voltage_steps;
|
||||
seq_printf(s, "%u mV (%u)", voltage, tmp);
|
||||
if (val & USB4_MARGIN_HW_RES_1_EXCEEDS)
|
||||
@ -858,7 +857,7 @@ static void time_margin_show(struct seq_file *s,
|
||||
{
|
||||
unsigned int tmp, interval;
|
||||
|
||||
tmp = val & USB4_MARGIN_HW_RES_1_MARGIN_MASK;
|
||||
tmp = FIELD_GET(USB4_MARGIN_HW_RES_1_MARGIN_MASK, val);
|
||||
interval = tmp * margining->max_time_offset / margining->time_steps;
|
||||
seq_printf(s, "%u mUI (%u)", interval, tmp);
|
||||
if (val & USB4_MARGIN_HW_RES_1_EXCEEDS)
|
||||
@ -1085,19 +1084,15 @@ static struct tb_margining *margining_alloc(struct tb_port *port,
|
||||
if (supports_software(margining))
|
||||
margining->software = true;
|
||||
|
||||
val = (margining->caps[0] & USB4_MARGIN_CAP_0_VOLTAGE_STEPS_MASK) >>
|
||||
USB4_MARGIN_CAP_0_VOLTAGE_STEPS_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_0_VOLTAGE_STEPS_MASK, margining->caps[0]);
|
||||
margining->voltage_steps = val;
|
||||
val = (margining->caps[0] & USB4_MARGIN_CAP_0_MAX_VOLTAGE_OFFSET_MASK) >>
|
||||
USB4_MARGIN_CAP_0_MAX_VOLTAGE_OFFSET_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_0_MAX_VOLTAGE_OFFSET_MASK, margining->caps[0]);
|
||||
margining->max_voltage_offset = 74 + val * 2;
|
||||
|
||||
if (supports_time(margining)) {
|
||||
val = (margining->caps[1] & USB4_MARGIN_CAP_1_TIME_STEPS_MASK) >>
|
||||
USB4_MARGIN_CAP_1_TIME_STEPS_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_1_TIME_STEPS_MASK, margining->caps[1]);
|
||||
margining->time_steps = val;
|
||||
val = (margining->caps[1] & USB4_MARGIN_CAP_1_TIME_OFFSET_MASK) >>
|
||||
USB4_MARGIN_CAP_1_TIME_OFFSET_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_1_TIME_OFFSET_MASK, margining->caps[1]);
|
||||
/*
|
||||
* Store it as mUI (milli Unit Interval) because we want
|
||||
* to keep it as integer.
|
||||
@ -1107,11 +1102,9 @@ static struct tb_margining *margining_alloc(struct tb_port *port,
|
||||
|
||||
dir = debugfs_create_dir("margining", parent);
|
||||
if (supports_hardware(margining)) {
|
||||
val = (margining->caps[1] & USB4_MARGIN_CAP_1_MIN_BER_MASK) >>
|
||||
USB4_MARGIN_CAP_1_MIN_BER_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_1_MIN_BER_MASK, margining->caps[1]);
|
||||
margining->min_ber_level = val;
|
||||
val = (margining->caps[1] & USB4_MARGIN_CAP_1_MAX_BER_MASK) >>
|
||||
USB4_MARGIN_CAP_1_MAX_BER_SHIFT;
|
||||
val = FIELD_GET(USB4_MARGIN_CAP_1_MAX_BER_MASK, margining->caps[1]);
|
||||
margining->max_ber_level = val;
|
||||
|
||||
/* Set the default to minimum */
|
||||
|
@ -51,30 +51,21 @@ enum usb4_sb_opcode {
|
||||
#define USB4_MARGIN_CAP_0_MODES_SW BIT(1)
|
||||
#define USB4_MARGIN_CAP_0_2_LANES BIT(2)
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_INDP_MASK GENMASK(4, 3)
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_INDP_SHIFT 3
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_MIN 0x0
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_HL 0x1
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_BOTH 0x2
|
||||
#define USB4_MARGIN_CAP_0_TIME BIT(5)
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_STEPS_MASK GENMASK(12, 6)
|
||||
#define USB4_MARGIN_CAP_0_VOLTAGE_STEPS_SHIFT 6
|
||||
#define USB4_MARGIN_CAP_0_MAX_VOLTAGE_OFFSET_MASK GENMASK(18, 13)
|
||||
#define USB4_MARGIN_CAP_0_MAX_VOLTAGE_OFFSET_SHIFT 13
|
||||
#define USB4_MARGIN_CAP_1_TIME_DESTR BIT(8)
|
||||
#define USB4_MARGIN_CAP_1_TIME_INDP_MASK GENMASK(10, 9)
|
||||
#define USB4_MARGIN_CAP_1_TIME_INDP_SHIFT 9
|
||||
#define USB4_MARGIN_CAP_1_TIME_MIN 0x0
|
||||
#define USB4_MARGIN_CAP_1_TIME_LR 0x1
|
||||
#define USB4_MARGIN_CAP_1_TIME_BOTH 0x2
|
||||
#define USB4_MARGIN_CAP_1_TIME_STEPS_MASK GENMASK(15, 11)
|
||||
#define USB4_MARGIN_CAP_1_TIME_STEPS_SHIFT 11
|
||||
#define USB4_MARGIN_CAP_1_TIME_OFFSET_MASK GENMASK(20, 16)
|
||||
#define USB4_MARGIN_CAP_1_TIME_OFFSET_SHIFT 16
|
||||
#define USB4_MARGIN_CAP_1_MIN_BER_MASK GENMASK(25, 21)
|
||||
#define USB4_MARGIN_CAP_1_MIN_BER_SHIFT 21
|
||||
#define USB4_MARGIN_CAP_1_MAX_BER_MASK GENMASK(30, 26)
|
||||
#define USB4_MARGIN_CAP_1_MAX_BER_SHIFT 26
|
||||
#define USB4_MARGIN_CAP_1_MAX_BER_SHIFT 26
|
||||
|
||||
/* USB4_SB_OPCODE_RUN_HW_LANE_MARGINING */
|
||||
#define USB4_MARGIN_HW_TIME BIT(3)
|
||||
|
Loading…
Reference in New Issue
Block a user