Re: [PATCH 2/3] spi: spi-qpic-snand: add quad mode support

Mark Brown <[email protected]> Wed, 29 Jul 2026 15:46:43 +0100
Newsgroups org.kernel.vger.linux-spi,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Thu, Jul 16, 2026 at 10:57:46AM +0530, Md Sadre Alam wrote:
> Add support for quad (x4) transfer mode in the QPIC SPI NAND driver.
> The controller supports both single (x1) and quad (x4) SPI transfers,
> but the driver currently operates only in x1 mode.

> @@ -1025,12 +1040,16 @@ static int qcom_spi_cmd_mapping(struct qcom_nand_controller *snandc, u32 opcode,
>  		*cmd = SPINAND_WRITE_EN;
>  		break;
>  	case SPINAND_PROGRAM_EXECUTE:
> -		*cmd = (PAGE_ACC | LAST_PAGE | SPI_TRANSFER_MODE_x1 |
> -				SPI_WP | SPI_HOLD | OP_PROGRAM_PAGE);
> +		if (snandc->qspi->quad_mode)
> +			*cmd = (PAGE_ACC | LAST_PAGE | transfer_mode |
> +					SPI_WP | SPI_HOLD | OP_PROGRAM_PAGE);

This succeeds but does not initialize cmd, previously we'd accept and
use x1.

> @@ -1042,6 +1061,15 @@ static int qcom_spi_cmd_mapping(struct qcom_nand_controller *snandc, u32 opcode,
>  static int qcom_spi_read_page(struct qcom_nand_controller *snandc,
>  			      const struct spi_mem_op *op)
>  {
> +	int ret;
> +	u32 cmd;
> +	/* Call mapping once again to update the quad mode based on
> +	 * buswidth
> +	 */
> +	ret = qcom_spi_cmd_mapping(snandc, op, &cmd);
> +	if (ret < 0)
> +		return ret;
> +
>  	if (snandc->qspi->page_rw && snandc->qspi->raw_rw)
>  		return qcom_spi_read_page_raw(snandc, op);

We never reference cmd in the rest of the function, either we didn't
need to do the mapping or there's a missing update.
signature.asc (application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmpqElIACgkQJNaLcl1U
h9CmHQf9HBuWlN/o1161Wt82N1kmGc0KPYhi1HBn3t1mNF+rPZBQFFDqDvryHxg8
WavezWBqC9gK6lSoneByJmQbqh/x1iqjq5h6dEY9TbcvZb0mvU9cEegHQfjA7oX7
vCBKgIxULgxMLXkPg+QgGnDs4oU8+6dvex26we1c/w9uyS4JypHPKZ5sJXXmhkdJ
5TOukLcQwVHooTQr75iqKAe1ZhKCmiawo2gveF6r5hZzxyRlLUQi+bWACcx94k5f
Z1yeqcfn+ftUiHjA420AwA0Akpqq7NBodsMc2pZCEeFVvHqzm2ZrEu7KlQsZo4cc
VGLci+XXaWzd8YPXjmPe9C98KFsNXw==
=06hb
-----END PGP SIGNATURE-----