diff mbox series

thunderbolt: debugfs: Use FIELD_GET()

Message ID 20240617100100.1628147-1-mika.westerberg@linux.intel.com
State New
Headers show
Series thunderbolt: debugfs: Use FIELD_GET() | expand

Commit Message

Mika Westerberg June 17, 2024, 10:01 a.m. UTC
From: Aapo Vienamo <aapo.vienamo@linux.intel.com>

Use the FIELD_GET() macro instead of open coding the masks and shifts.
This makes the code more compact and improves readability as the this
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>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/thunderbolt/debugfs.c | 29 +++++++++++------------------
 drivers/thunderbolt/sb_regs.h |  9 ---------
 2 files changed, 11 insertions(+), 27 deletions(-)

Comments

Yehezkel Bernat June 18, 2024, 3:11 p.m. UTC | #1
On Mon, Jun 17, 2024 at 1:01 PM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> From: Aapo Vienamo <aapo.vienamo@linux.intel.com>
>
> Use the FIELD_GET() macro instead of open coding the masks and shifts.
> This makes the code more compact and improves readability as the this

the this => this, probably?

> avoids the need to wrap excessively long lines.
>

Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com>
Mika Westerberg June 19, 2024, 4:41 a.m. UTC | #2
On Tue, Jun 18, 2024 at 06:11:51PM +0300, Yehezkel Bernat wrote:
> On Mon, Jun 17, 2024 at 1:01 PM Mika Westerberg
> <mika.westerberg@linux.intel.com> wrote:
> >
> > From: Aapo Vienamo <aapo.vienamo@linux.intel.com>
> >
> > Use the FIELD_GET() macro instead of open coding the masks and shifts.
> > This makes the code more compact and improves readability as the this
> 
> the this => this, probably?
>
> > avoids the need to wrap excessively long lines.
> >
> 
> Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com>

Fixed the typo and applied to thunderbolt.git/next with your tag,
thanks!
diff mbox series

Patch

diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c
index c2a735421609..11185cc1db92 100644
--- a/drivers/thunderbolt/debugfs.c
+++ b/drivers/thunderbolt/debugfs.c
@@ -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 */
diff --git a/drivers/thunderbolt/sb_regs.h b/drivers/thunderbolt/sb_regs.h
index a29ef3c19422..2a88edfc97b2 100644
--- a/drivers/thunderbolt/sb_regs.h
+++ b/drivers/thunderbolt/sb_regs.h
@@ -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)