Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f79cc88e authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

spi: octeon: Convert to use bits_per_word_mask



Since commit 543bb255 "spi: add ability to validate xfer->bits_per_word in SPI
core", the driver can set bits_per_word_mask for the master then the SPI core
will reject transfers that attempt to use an unsupported bits_per_word value.
So we can remove octeon_spi_validate_bpw() and let SPI core handle the checking.

Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent a35c6bea
Loading
Loading
Loading
Loading
+1 −27
Original line number Diff line number Diff line
@@ -161,19 +161,6 @@ static int octeon_spi_do_transfer(struct octeon_spi *p,
	return xfer->len;
}

static int octeon_spi_validate_bpw(struct spi_device *spi, u32 speed)
{
	switch (speed) {
	case 8:
		break;
	default:
		dev_err(&spi->dev, "Error: %d bits per word not supported\n",
			speed);
		return -EINVAL;
	}
	return 0;
}

static int octeon_spi_transfer_one_message(struct spi_master *master,
					   struct spi_message *msg)
{
@@ -191,15 +178,6 @@ static int octeon_spi_transfer_one_message(struct spi_master *master,
		goto err;
	}

	list_for_each_entry(xfer, &msg->transfers, transfer_list) {
		if (xfer->bits_per_word) {
			status = octeon_spi_validate_bpw(msg->spi,
							 xfer->bits_per_word);
			if (status)
				goto err;
		}
	}

	list_for_each_entry(xfer, &msg->transfers, transfer_list) {
		bool last_xfer = &xfer->transfer_list == msg->transfers.prev;
		int r = octeon_spi_do_transfer(p, msg, xfer, last_xfer);
@@ -231,14 +209,9 @@ static struct octeon_spi_setup *octeon_spi_new_setup(struct spi_device *spi)

static int octeon_spi_setup(struct spi_device *spi)
{
	int r;
	struct octeon_spi_setup *new_setup;
	struct octeon_spi_setup *old_setup = spi_get_ctldata(spi);

	r = octeon_spi_validate_bpw(spi, spi->bits_per_word);
	if (r)
		return r;

	new_setup = octeon_spi_new_setup(spi);
	if (!new_setup)
		return -ENOMEM;
@@ -296,6 +269,7 @@ static int octeon_spi_probe(struct platform_device *pdev)
	master->setup = octeon_spi_setup;
	master->cleanup = octeon_spi_cleanup;
	master->transfer_one_message = octeon_spi_transfer_one_message;
	master->bits_per_word_mask = SPI_BPW_MASK(8);

	master->dev.of_node = pdev->dev.of_node;
	err = spi_register_master(master);