SPI, _sz fields in struct spi_command

Aleksandr Rybalko ray at freebsd.org
Wed Feb 20 12:21:22 UTC 2013


Hello ARM and MIPS hackers!

Sorry for cross-post, but we have supported SPI devices on both
platforms (and seems no others).

Anyone know any reasons to keep both TX and RX _sz fields with same
values?

sys/dev/flash/at45d.c
static int
at45d_get_mfg_info(device_t dev, uint8_t *resp)
{
	...
	cmd.tx_cmd_sz = cmd.rx_cmd_sz = 5;
	...
}

or sys/dev/flash/mx25l.c
static int
mx25l_read(device_t dev, off_t offset, caddr_t data, off_t count)
{
	...
	cmd.tx_cmd_sz = 5;
	cmd.rx_cmd_sz = 5;
	...
}

That always require second but unused buffer or writable tx buffer. And
not all controllers able to TX with RX same time. (at least rt305x
can't). So if nobody have any objections, I will update drivers (SPI
controllers and SPI attached devices) to set unused _sz field to zero.
IIRC, I will require help with AT91 controller update, at least with
testing.

Thanks.

WBW
-- 
Aleksandr Rybalko <ray at freebsd.org>


More information about the freebsd-arm mailing list