[PATCH] gpib: use assign_bit() where applicable

Peng Fan (OSS) posted 1 patch 6 days, 8 hours ago
drivers/gpib/agilent_82357a/agilent_82357a.c | 35 ++++----------------
drivers/gpib/eastwood/fluke_gpib.c           |  6 ++--
drivers/gpib/fmh_gpib/fmh_gpib.c             | 30 ++++++-----------
drivers/gpib/gpio/gpib_bitbang.c             | 24 ++++----------
drivers/gpib/nec7210/nec7210.c               | 33 +++++-------------
drivers/gpib/tms9914/tms9914.c               | 27 ++++-----------
drivers/gpib/tnt4882/tnt4882_gpib.c          |  5 +--
7 files changed, 42 insertions(+), 118 deletions(-)
[PATCH] gpib: use assign_bit() where applicable
Posted by Peng Fan (OSS) 6 days, 8 hours ago
From: Peng Fan <peng.fan@nxp.com>

Convert open-coded if/else with set_bit/clear_bit and their
non-atomic __set_bit/__clear_bit variants to the assign_bit/__assign_bit
API.

Done with Coccinelle semantic patch and manual fixups.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/gpib/agilent_82357a/agilent_82357a.c | 35 ++++----------------
 drivers/gpib/eastwood/fluke_gpib.c           |  6 ++--
 drivers/gpib/fmh_gpib/fmh_gpib.c             | 30 ++++++-----------
 drivers/gpib/gpio/gpib_bitbang.c             | 24 ++++----------
 drivers/gpib/nec7210/nec7210.c               | 33 +++++-------------
 drivers/gpib/tms9914/tms9914.c               | 27 ++++-----------
 drivers/gpib/tnt4882/tnt4882_gpib.c          |  5 +--
 7 files changed, 42 insertions(+), 118 deletions(-)

diff --git a/drivers/gpib/agilent_82357a/agilent_82357a.c b/drivers/gpib/agilent_82357a/agilent_82357a.c
index 2468a471d175..6346d98fcfb2 100644
--- a/drivers/gpib/agilent_82357a/agilent_82357a.c
+++ b/drivers/gpib/agilent_82357a/agilent_82357a.c
@@ -865,10 +865,7 @@ static unsigned int agilent_82357a_update_status(struct gpib_board *board,
 		return -ENODEV;
 	usb_dev = interface_to_usbdev(a_priv->bus_interface);
 	board->status &= ~clear_mask;
-	if (a_priv->is_cic)
-		set_bit(CIC_NUM, &board->status);
-	else
-		clear_bit(CIC_NUM, &board->status);
+	assign_bit(CIC_NUM, &board->status, a_priv->is_cic);
 	address_status.address = ADSR;
 	retval = agilent_82357a_read_registers(a_priv, &address_status, 1, 0);
 	if (retval) {
@@ -877,29 +874,14 @@ static unsigned int agilent_82357a_update_status(struct gpib_board *board,
 		return board->status;
 	}
 	// check for remote/local
-	if (address_status.value & HR_REM)
-		set_bit(REM_NUM, &board->status);
-	else
-		clear_bit(REM_NUM, &board->status);
+	assign_bit(REM_NUM, &board->status, address_status.value & HR_REM);
 	// check for lockout
-	if (address_status.value & HR_LLO)
-		set_bit(LOK_NUM, &board->status);
-	else
-		clear_bit(LOK_NUM, &board->status);
+	assign_bit(LOK_NUM, &board->status, address_status.value & HR_LLO);
 	// check for ATN
-	if (address_status.value & HR_ATN)
-		set_bit(ATN_NUM, &board->status);
-	else
-		clear_bit(ATN_NUM, &board->status);
+	assign_bit(ATN_NUM, &board->status, address_status.value & HR_ATN);
 	// check for talker/listener addressed
-	if (address_status.value & HR_TA)
-		set_bit(TACS_NUM, &board->status);
-	else
-		clear_bit(TACS_NUM, &board->status);
-	if (address_status.value & HR_LA)
-		set_bit(LACS_NUM, &board->status);
-	else
-		clear_bit(LACS_NUM, &board->status);
+	assign_bit(TACS_NUM, &board->status, address_status.value & HR_TA);
+	assign_bit(LACS_NUM, &board->status, address_status.value & HR_LA);
 
 	bus_status.address = BSR;
 	retval = agilent_82357a_read_registers(a_priv, &bus_status, 1, 0);
@@ -908,10 +890,7 @@ static unsigned int agilent_82357a_update_status(struct gpib_board *board,
 			dev_err(&usb_dev->dev, "read_registers() returned error\n");
 		return board->status;
 	}
-	if (bus_status.value & BSR_SRQ_BIT)
-		set_bit(SRQI_NUM, &board->status);
-	else
-		clear_bit(SRQI_NUM, &board->status);
+	assign_bit(SRQI_NUM, &board->status, bus_status.value & BSR_SRQ_BIT);
 
 	return board->status;
 }
diff --git a/drivers/gpib/eastwood/fluke_gpib.c b/drivers/gpib/eastwood/fluke_gpib.c
index 1363f0a1f570..a868def73d5f 100644
--- a/drivers/gpib/eastwood/fluke_gpib.c
+++ b/drivers/gpib/eastwood/fluke_gpib.c
@@ -824,10 +824,8 @@ irqreturn_t fluke_gpib_internal_interrupt(struct gpib_board *board)
 		retval = IRQ_HANDLED;
 
 	if (read_byte(nec_priv, ADR0) & DATA_IN_STATUS)	{
-		if (test_bit(RFD_HOLDOFF_BN, &nec_priv->state))
-			set_bit(READ_READY_BN, &nec_priv->state);
-		else
-			clear_bit(READ_READY_BN, &nec_priv->state);
+		assign_bit(READ_READY_BN, &nec_priv->state,
+			   test_bit(RFD_HOLDOFF_BN, &nec_priv->state));
 	}
 
 	if (retval == IRQ_HANDLED)
diff --git a/drivers/gpib/fmh_gpib/fmh_gpib.c b/drivers/gpib/fmh_gpib/fmh_gpib.c
index 5e10e9353fed..640cfed84a40 100644
--- a/drivers/gpib/fmh_gpib/fmh_gpib.c
+++ b/drivers/gpib/fmh_gpib/fmh_gpib.c
@@ -1165,25 +1165,17 @@ irqreturn_t fmh_gpib_internal_interrupt(struct gpib_board *board)
 
 	ext_status_1 = read_byte(nec_priv, EXT_STATUS_1_REG);
 
-	if (ext_status_1 & DATA_IN_STATUS_BIT)
-		set_bit(READ_READY_BN, &nec_priv->state);
-	else
-		clear_bit(READ_READY_BN, &nec_priv->state);
-
-	if (ext_status_1 & DATA_OUT_STATUS_BIT)
-		set_bit(WRITE_READY_BN, &nec_priv->state);
-	else
-		clear_bit(WRITE_READY_BN, &nec_priv->state);
-
-	if (ext_status_1 & COMMAND_OUT_STATUS_BIT)
-		set_bit(COMMAND_READY_BN, &nec_priv->state);
-	else
-		clear_bit(COMMAND_READY_BN, &nec_priv->state);
-
-	if (ext_status_1 & RFD_HOLDOFF_STATUS_BIT)
-		set_bit(RFD_HOLDOFF_BN, &nec_priv->state);
-	else
-		clear_bit(RFD_HOLDOFF_BN, &nec_priv->state);
+	assign_bit(READ_READY_BN, &nec_priv->state,
+		   ext_status_1 & DATA_IN_STATUS_BIT);
+
+	assign_bit(WRITE_READY_BN, &nec_priv->state,
+		   ext_status_1 & DATA_OUT_STATUS_BIT);
+
+	assign_bit(COMMAND_READY_BN, &nec_priv->state,
+		   ext_status_1 & COMMAND_OUT_STATUS_BIT);
+
+	assign_bit(RFD_HOLDOFF_BN, &nec_priv->state,
+		   ext_status_1 & RFD_HOLDOFF_STATUS_BIT);
 
 	if (ext_status_1 & END_STATUS_BIT) {
 		/*
diff --git a/drivers/gpib/gpio/gpib_bitbang.c b/drivers/gpib/gpio/gpib_bitbang.c
index 34d14b94a0b8..933bf8dd7207 100644
--- a/drivers/gpib/gpio/gpib_bitbang.c
+++ b/drivers/gpib/gpio/gpib_bitbang.c
@@ -949,25 +949,13 @@ static unsigned int bb_update_status(struct gpib_board *board, unsigned int clea
 
 	board->status &= ~clear_mask;
 
-	if (gpiod_get_value(SRQ))	       /* SRQ asserted low */
-		clear_bit(SRQI_NUM, &board->status);
-	else
-		set_bit(SRQI_NUM, &board->status);
-	if (gpiod_get_value(_ATN))			/* ATN asserted low */
-		clear_bit(ATN_NUM, &board->status);
-	else
-		set_bit(ATN_NUM, &board->status);
-	if (priv->talker_state == talker_active ||
-	    priv->talker_state == talker_addressed)
-		set_bit(TACS_NUM, &board->status);
-	else
-		clear_bit(TACS_NUM, &board->status);
+	assign_bit(SRQI_NUM, &board->status, !gpiod_get_value(SRQ));
+	assign_bit(ATN_NUM, &board->status, !gpiod_get_value(_ATN));
+	assign_bit(TACS_NUM, &board->status,
+		   priv->talker_state == talker_active || priv->talker_state == talker_addressed);
 
-	if (priv->listener_state == listener_active ||
-	    priv->listener_state == listener_addressed)
-		set_bit(LACS_NUM, &board->status);
-	else
-		clear_bit(LACS_NUM, &board->status);
+	assign_bit(LACS_NUM, &board->status,
+		   priv->listener_state == listener_active || priv->listener_state == listener_addressed);
 
 	dbg_printk(2, "0x%lx mask 0x%x\n", board->status, clear_mask);
 
diff --git a/drivers/gpib/nec7210/nec7210.c b/drivers/gpib/nec7210/nec7210.c
index f15d38dfa4cc..d9d99a2469a3 100644
--- a/drivers/gpib/nec7210/nec7210.c
+++ b/drivers/gpib/nec7210/nec7210.c
@@ -177,26 +177,15 @@ unsigned int nec7210_update_status_nolock(struct gpib_board *board, struct nec72
 		return 0;
 
 	address_status_bits = read_byte(priv, ADSR);
-	if (address_status_bits & HR_CIC)
-		set_bit(CIC_NUM, &board->status);
-	else
-		clear_bit(CIC_NUM, &board->status);
+	assign_bit(CIC_NUM, &board->status, address_status_bits & HR_CIC);
 	// check for talker/listener addressed
 	update_talker_state(priv, address_status_bits);
-	if (priv->talker_state == talker_active || priv->talker_state == talker_addressed)
-		set_bit(TACS_NUM, &board->status);
-	else
-		clear_bit(TACS_NUM, &board->status);
+	assign_bit(TACS_NUM, &board->status,
+		   priv->talker_state == talker_active || priv->talker_state == talker_addressed);
 	update_listener_state(priv, address_status_bits);
-	if (priv->listener_state == listener_active ||
-	    priv->listener_state == listener_addressed)
-		set_bit(LACS_NUM, &board->status);
-	else
-		clear_bit(LACS_NUM, &board->status);
-	if (address_status_bits & HR_NATN)
-		clear_bit(ATN_NUM, &board->status);
-	else
-		set_bit(ATN_NUM, &board->status);
+	assign_bit(LACS_NUM, &board->status,
+		   priv->listener_state == listener_active || priv->listener_state == listener_addressed);
+	assign_bit(ATN_NUM, &board->status, !(address_status_bits & HR_NATN));
 	spoll_status = nec7210_serial_poll_status(board, priv);
 	if (priv->srq_pending && (spoll_status & request_service_bit) == 0) {
 		priv->srq_pending = 0;
@@ -861,18 +850,12 @@ irqreturn_t nec7210_interrupt_have_status(struct gpib_board *board,
 
 	// change in lockout status
 	if (status2 & HR_LOKC) {
-		if (status2 & HR_LOK)
-			set_bit(LOK_NUM, &board->status);
-		else
-			clear_bit(LOK_NUM, &board->status);
+		assign_bit(LOK_NUM, &board->status, status2 & HR_LOK);
 	}
 
 	// change in remote status
 	if (status2 & HR_REMC) {
-		if (status2 & HR_REM)
-			set_bit(REM_NUM, &board->status);
-		else
-			clear_bit(REM_NUM, &board->status);
+		assign_bit(REM_NUM, &board->status, status2 & HR_REM);
 	}
 
 	// record reception of END
diff --git a/drivers/gpib/tms9914/tms9914.c b/drivers/gpib/tms9914/tms9914.c
index 1411297e6217..1e658e6f5e00 100644
--- a/drivers/gpib/tms9914/tms9914.c
+++ b/drivers/gpib/tms9914/tms9914.c
@@ -356,32 +356,19 @@ static unsigned int update_status_nolock(struct gpib_board *board, struct tms991
 	address_status = read_byte(priv, ADSR);
 
 	// check for remote/local
-	if (address_status & HR_REM)
-		set_bit(REM_NUM, &board->status);
-	else
-		clear_bit(REM_NUM, &board->status);
+	assign_bit(REM_NUM, &board->status, address_status & HR_REM);
 	// check for lockout
-	if (address_status & HR_LLO)
-		set_bit(LOK_NUM, &board->status);
-	else
-		clear_bit(LOK_NUM, &board->status);
+	assign_bit(LOK_NUM, &board->status, address_status & HR_LLO);
 	// check for ATN
-	if (address_status & HR_ATN)
-		set_bit(ATN_NUM, &board->status);
-	else
-		clear_bit(ATN_NUM, &board->status);
+	assign_bit(ATN_NUM, &board->status, address_status & HR_ATN);
 	// check for talker/listener addressed
 	update_talker_state(priv, address_status);
-	if (priv->talker_state == talker_active || priv->talker_state == talker_addressed)
-		set_bit(TACS_NUM, &board->status);
-	else
-		clear_bit(TACS_NUM, &board->status);
+	assign_bit(TACS_NUM, &board->status,
+		   priv->talker_state == talker_active || priv->talker_state == talker_addressed);
 
 	update_listener_state(priv, address_status);
-	if (priv->listener_state == listener_active || priv->listener_state == listener_addressed)
-		set_bit(LACS_NUM, &board->status);
-	else
-		clear_bit(LACS_NUM, &board->status);
+	assign_bit(LACS_NUM, &board->status,
+		   priv->listener_state == listener_active || priv->listener_state == listener_addressed);
 	// Check for SRQI - not reset elsewhere except in autospoll
 	if (board->status & SRQI) {
 		bsr_bits = read_byte(priv, BSR);
diff --git a/drivers/gpib/tnt4882/tnt4882_gpib.c b/drivers/gpib/tnt4882/tnt4882_gpib.c
index 3cd13f637ed4..f40a7977af1c 100644
--- a/drivers/gpib/tnt4882/tnt4882_gpib.c
+++ b/drivers/gpib/tnt4882/tnt4882_gpib.c
@@ -701,10 +701,7 @@ static unsigned int tnt4882_update_status(struct gpib_board *board, unsigned int
 	nec7210_update_status_nolock(board, &priv->nec7210_priv);
 	/* set / clear SRQ state since it is not cleared by interrupt */
 	line_status = tnt_readb(priv, BSR);
-	if (line_status & BCSR_SRQ_BIT)
-		set_bit(SRQI_NUM, &board->status);
-	else
-		clear_bit(SRQI_NUM, &board->status);
+	assign_bit(SRQI_NUM, &board->status, line_status & BCSR_SRQ_BIT);
 	spin_unlock_irqrestore(&board->spinlock, flags);
 	return board->status;
 }
-- 
2.51.0