The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 0/2] spi: axiado: cond_no_effect and kernel-doc fixes
@ 2026-07-13  6:08 Babanpreet Singh
  2026-07-13  6:08 ` [PATCH 1/2] spi: axiado: merge identical if/else branches in ax_transfer_one() Babanpreet Singh
  2026-07-13  6:08 ` [PATCH 2/2] spi: axiado: fix kernel-doc comments Babanpreet Singh
  0 siblings, 2 replies; 3+ messages in thread
From: Babanpreet Singh @ 2026-07-13  6:08 UTC (permalink / raw)
  To: Mark Brown
  Cc: Vladimir Moravcevic, Tzu-Hao Wei, Swark Yang, Prasad Bolisetty,
	Karthikeyan Mitran, kernel test robot, Julia Lawall, linux-spi,
	linux-arm-kernel, linux-kernel, Babanpreet Singh

Two small cleanups for the Axiado SPI driver, both defects present
since the driver was added in e75a6b00ad79 ("spi: axiado: Add driver
for Axiado SPI DB controller").

Patch 1 addresses the coccinelle cond_no_effect warning reported by
the kernel test robot on 2026-07-12 [1]: the RX-only/full-duplex
else-if arm and the trailing else arm in ax_transfer_one() have
identical bodies, so the second condition has no effect. The arms are
merged; no functional change (on x86_64/gcc 14, only
ax_transfer_one()'s object code changes, dropping the dead condition
evaluation).

Patch 2 fixes the kernel-doc comments in the driver: a copy-pasted
function name on ax_spi_get_rx_byte_for_irq(), a /** block with no
identifier line on ax_spi_process_rx_and_finalize(), and stale/missing
member documentation on struct ax_spi. This silences the driver's two
W=1 kernel-doc warnings plus five more visible when kernel-doc is run
on the header directly.

Both patches are against spi/for-next; they are independent of each
other except for touching the same file.

[1] https://lore.kernel.org/r/202607121827.djB0zLAj-lkp@intel.com/

Babanpreet Singh (2):
  spi: axiado: merge identical if/else branches in ax_transfer_one()
  spi: axiado: fix kernel-doc comments

 drivers/spi/spi-axiado.c | 20 ++++++++++----------
 drivers/spi/spi-axiado.h |  5 +++--
 2 files changed, 13 insertions(+), 12 deletions(-)


base-commit: 5f1b513690edf51727e6928b97705b6437f9a98e
-- 
2.43.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] spi: axiado: merge identical if/else branches in ax_transfer_one()
  2026-07-13  6:08 [PATCH 0/2] spi: axiado: cond_no_effect and kernel-doc fixes Babanpreet Singh
@ 2026-07-13  6:08 ` Babanpreet Singh
  2026-07-13  6:08 ` [PATCH 2/2] spi: axiado: fix kernel-doc comments Babanpreet Singh
  1 sibling, 0 replies; 3+ messages in thread
From: Babanpreet Singh @ 2026-07-13  6:08 UTC (permalink / raw)
  To: Mark Brown
  Cc: Vladimir Moravcevic, Tzu-Hao Wei, Swark Yang, Prasad Bolisetty,
	Karthikeyan Mitran, kernel test robot, Julia Lawall, linux-spi,
	linux-arm-kernel, linux-kernel, Babanpreet Singh

The else-if arm taken for RX-only and full-duplex transfers and the
trailing else arm in the RX bookkeeping setup of ax_transfer_one()
have identical bodies, so the second condition has no effect:

  drivers/spi/spi-axiado.c:433:8-10: WARNING: possible condition with
  no effect (if == else)

The trailing else arm (neither TX nor RX buffer) is also unreachable:
the SPI core only calls the ->transfer_one() callback for transfers
that carry at least one buffer, see spi_transfer_one_message().

Merge the two arms into a single else branch and fold their comments.
No functional change. The redundant condition has been present since
the driver was added in commit e75a6b00ad79 ("spi: axiado: Add driver
for Axiado SPI DB controller").

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@inria.fr>
Closes: https://lore.kernel.org/r/202607121827.djB0zLAj-lkp@intel.com/
Assisted-by: Claude:claude-fable-5 [coccinelle]
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
 drivers/spi/spi-axiado.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/spi/spi-axiado.c b/drivers/spi/spi-axiado.c
index 649f149617ce..c4bc7a50d6c9 100644
--- a/drivers/spi/spi-axiado.c
+++ b/drivers/spi/spi-axiado.c
@@ -430,15 +430,11 @@ static int ax_transfer_one(struct spi_controller *ctlr,
 		/* TX mode: discard all received data */
 		xspi->rx_discard = transfer->len;
 		xspi->rx_copy_remaining = 0;
-	} else if ((!transfer->tx_buf && transfer->rx_buf) ||
-		   (transfer->tx_buf && transfer->rx_buf)) {
-		/* RX mode: generate clock by filling TX FIFO with dummy bytes
-		 * Full-duplex mode: generate clock by filling TX FIFO
-		 */
-		xspi->rx_discard = 0;
-		xspi->rx_copy_remaining = transfer->len;
 	} else {
-		/* No TX and RX */
+		/* RX-only or full-duplex mode: copy received data, with the
+		 * clock generated by filling the TX FIFO (with dummy bytes
+		 * in RX-only mode)
+		 */
 		xspi->rx_discard = 0;
 		xspi->rx_copy_remaining = transfer->len;
 	}

base-commit: 5f1b513690edf51727e6928b97705b6437f9a98e
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] spi: axiado: fix kernel-doc comments
  2026-07-13  6:08 [PATCH 0/2] spi: axiado: cond_no_effect and kernel-doc fixes Babanpreet Singh
  2026-07-13  6:08 ` [PATCH 1/2] spi: axiado: merge identical if/else branches in ax_transfer_one() Babanpreet Singh
@ 2026-07-13  6:08 ` Babanpreet Singh
  1 sibling, 0 replies; 3+ messages in thread
From: Babanpreet Singh @ 2026-07-13  6:08 UTC (permalink / raw)
  To: Mark Brown
  Cc: Vladimir Moravcevic, Tzu-Hao Wei, Swark Yang, Prasad Bolisetty,
	Karthikeyan Mitran, kernel test robot, Julia Lawall, linux-spi,
	linux-arm-kernel, linux-kernel, Babanpreet Singh

Running kernel-doc -Wall on the driver reports 7 warnings, all present
since the driver was added in commit e75a6b00ad79 ("spi: axiado: Add
driver for Axiado SPI DB controller"). Two are in spi-axiado.c and
also show up in W=1 builds of drivers/spi:

  Warning: drivers/spi/spi-axiado.c:226 expecting prototype for
  ax_spi_get_rx_byte(). Prototype was for ax_spi_get_rx_byte_for_irq()
  instead
  Warning: drivers/spi/spi-axiado.c:248 This comment starts with
  '/**', but isn't a kernel-doc comment. Refer to
  Documentation/doc-guide/kernel-doc.rst

The other five are for struct ax_spi in spi-axiado.h, seen when
kernel-doc is invoked on the header directly (headers are not scanned
by the build-time kernel-doc checks):

  Warning: drivers/spi/spi-axiado.h:130 Excess struct member 'rxbuf'
  description in 'ax_spi'
  Warning: drivers/spi/spi-axiado.h:130 Excess struct member 'txbuf'
  description in 'ax_spi'
  Warning: drivers/spi/spi-axiado.h:130 struct member 'clk_rate' not
  described in 'ax_spi'
  Warning: drivers/spi/spi-axiado.h:130 struct member 'rx_buf' not
  described in 'ax_spi'
  Warning: drivers/spi/spi-axiado.h:130 struct member 'tx_buf' not
  described in 'ax_spi'

Fix the three underlying defects:

 - The comment on ax_spi_get_rx_byte_for_irq() carries the name of
   ax_spi_get_rx_byte(), from which it was evidently copied when the
   IRQ variant was split out; fix the function name.

 - The comment on ax_spi_process_rx_and_finalize() is opened with the
   kernel-doc /** marker but has no identifier line; turn it into
   proper kernel-doc (identifier line, @ctlr, Return:) since it
   already describes the behavior and the return value.

 - The struct ax_spi comment documents @txbuf and @rxbuf while the
   members are named tx_buf and rx_buf, and does not document
   clk_rate; fix the member names and describe clk_rate.

No functional change.

Assisted-by: Claude:claude-fable-5 [kernel-doc]
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
 drivers/spi/spi-axiado.c | 8 ++++++--
 drivers/spi/spi-axiado.h | 5 +++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-axiado.c b/drivers/spi/spi-axiado.c
index c4bc7a50d6c9..25561aa9f76f 100644
--- a/drivers/spi/spi-axiado.c
+++ b/drivers/spi/spi-axiado.c
@@ -213,7 +213,7 @@ static void ax_spi_fill_tx_fifo(struct ax_spi *xspi)
 }
 
 /**
- * ax_spi_get_rx_byte - Gets a byte from the RX FIFO buffer
+ * ax_spi_get_rx_byte_for_irq - Gets a byte from the RX FIFO buffer
  * @xspi: Controller private data (struct ax_spi *)
  *
  * This function handles the logic of extracting bytes from the 32-bit RX FIFO.
@@ -246,9 +246,13 @@ static u8 ax_spi_get_rx_byte_for_irq(struct ax_spi *xspi)
 }
 
 /**
+ * ax_spi_process_rx_and_finalize - Process RX bytes and check for completion
+ * @ctlr:	Pointer to spi_controller structure
+ *
  * Helper function to process received bytes and check for transfer completion.
  * This avoids code duplication and centralizes the completion logic.
- * Returns true if the transfer was finalized.
+ *
+ * Return: true if the transfer was finalized.
  */
 static bool ax_spi_process_rx_and_finalize(struct spi_controller *ctlr)
 {
diff --git a/drivers/spi/spi-axiado.h b/drivers/spi/spi-axiado.h
index 6cf0e5bf5879..d24d31c3a446 100644
--- a/drivers/spi/spi-axiado.h
+++ b/drivers/spi/spi-axiado.h
@@ -98,9 +98,10 @@
  * @regs:					Virtual address of the SPI controller registers
  * @ref_clk:					Pointer to the peripheral clock
  * @pclk:					Pointer to the APB clock
+ * @clk_rate:					Reference clock rate in Hz
  * @speed_hz:					Current SPI bus clock speed in Hz
- * @txbuf:					Pointer	to the TX buffer
- * @rxbuf:					Pointer to the RX buffer
+ * @tx_buf:					Pointer	to the TX buffer
+ * @rx_buf:					Pointer to the RX buffer
  * @tx_bytes:					Number of bytes left to transfer
  * @rx_bytes:					Number of bytes requested
  * @tx_fifo_depth:				Depth of the TX FIFO
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-07-13  6:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-13  6:08 [PATCH 0/2] spi: axiado: cond_no_effect and kernel-doc fixes Babanpreet Singh
2026-07-13  6:08 ` [PATCH 1/2] spi: axiado: merge identical if/else branches in ax_transfer_one() Babanpreet Singh
2026-07-13  6:08 ` [PATCH 2/2] spi: axiado: fix kernel-doc comments Babanpreet Singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox