On Tue, Nov 04, 2014 at 04:36:56PM -0600, tthayer@xxxxxxxxxxxxxxxxxxxxx wrote: > When speed_hz is not declared in a SPI transfer, the transfer speed is > not updated for the next read/write on /dev/spidevX.Y. The element Why is the behaviour of spidev relevant here, if there is a problem with spidev why is it being addressed in a specific driver? > spi_transfer->speed_hz is filled with spi->max_speed_hz. The test of > if (transfer->speed_hz != speed) doesn't work because the chip->speed_hz > matches transfer->speed_hz and the clock divider is not updated. In what way does the test "not work"? What should the test be doing and what is it actually doing? > + /* Always calculate the desired clock divider */ > + speed = transfer->speed_hz ? transfer->speed_hz : chip->speed_hz; Please avoid using the ternery operator standalone, write a normal if to help people read the code. Though in this case the core should always ensure that there is a speed set on each transfer so I'm not clear when this test would ever use anything other than transfer->speed_hz anyway.
Attachment:
signature.asc
Description: Digital signature