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

Commit 1a8dabf8 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'spi/topic/core' into spi-next

parents 07216b55 323117ab
Loading
Loading
Loading
Loading
+26 −32
Original line number Original line Diff line number Diff line
@@ -979,6 +979,30 @@ extern int spi_sync_locked(struct spi_device *spi, struct spi_message *message);
extern int spi_bus_lock(struct spi_master *master);
extern int spi_bus_lock(struct spi_master *master);
extern int spi_bus_unlock(struct spi_master *master);
extern int spi_bus_unlock(struct spi_master *master);


/**
 * spi_sync_transfer - synchronous SPI data transfer
 * @spi: device with which data will be exchanged
 * @xfers: An array of spi_transfers
 * @num_xfers: Number of items in the xfer array
 * Context: can sleep
 *
 * Does a synchronous SPI data transfer of the given spi_transfer array.
 *
 * For more specific semantics see spi_sync().
 *
 * Return: Return: zero on success, else a negative error code.
 */
static inline int
spi_sync_transfer(struct spi_device *spi, struct spi_transfer *xfers,
	unsigned int num_xfers)
{
	struct spi_message msg;

	spi_message_init_with_transfers(&msg, xfers, num_xfers);

	return spi_sync(spi, &msg);
}

/**
/**
 * spi_write - SPI synchronous write
 * spi_write - SPI synchronous write
 * @spi: device to which data will be written
 * @spi: device to which data will be written
@@ -998,11 +1022,8 @@ spi_write(struct spi_device *spi, const void *buf, size_t len)
			.tx_buf		= buf,
			.tx_buf		= buf,
			.len		= len,
			.len		= len,
		};
		};
	struct spi_message	m;


	spi_message_init(&m);
	return spi_sync_transfer(spi, &t, 1);
	spi_message_add_tail(&t, &m);
	return spi_sync(spi, &m);
}
}


/**
/**
@@ -1024,35 +1045,8 @@ spi_read(struct spi_device *spi, void *buf, size_t len)
			.rx_buf		= buf,
			.rx_buf		= buf,
			.len		= len,
			.len		= len,
		};
		};
	struct spi_message	m;


	spi_message_init(&m);
	return spi_sync_transfer(spi, &t, 1);
	spi_message_add_tail(&t, &m);
	return spi_sync(spi, &m);
}

/**
 * spi_sync_transfer - synchronous SPI data transfer
 * @spi: device with which data will be exchanged
 * @xfers: An array of spi_transfers
 * @num_xfers: Number of items in the xfer array
 * Context: can sleep
 *
 * Does a synchronous SPI data transfer of the given spi_transfer array.
 *
 * For more specific semantics see spi_sync().
 *
 * Return: Return: zero on success, else a negative error code.
 */
static inline int
spi_sync_transfer(struct spi_device *spi, struct spi_transfer *xfers,
	unsigned int num_xfers)
{
	struct spi_message msg;

	spi_message_init_with_transfers(&msg, xfers, num_xfers);

	return spi_sync(spi, &msg);
}
}


/* this copies txbuf and rxbuf data; for small transfers only! */
/* this copies txbuf and rxbuf data; for small transfers only! */