Hi,
On Tue, Nov 14, 2017 at 6:43 AM, Jon Hunter jonathanh@nvidia.com wrote:
On the Tegra124 Nyan-Big chromebook the very first SPI message sent to the EC is failing.
The Tegra SPI driver configures the SPI chip-selects to be active-high by default (and always has for many years). The EC SPI requires an active-low chip-select and so the Tegra chip-select is reconfigured to be active-low when the EC SPI driver calls spi_setup(). The problem is that if the first SPI message to the EC is sent too soon after reconfiguring the SPI chip-select, it fails.
The EC SPI driver prevents back-to-back SPI messages being sent too soon by keeping track of the time the last transfer was sent via the variable 'last_transfer_ns'. To prevent the very first transfer being sent too soon, initialise the 'last_transfer_ns' variable after calling spi_setup() and before sending the first SPI message.
Signed-off-by: Jon Hunter jonathanh@nvidia.com Reviewed-by: Brian Norris briannorris@chromium.org
Changes since V1:
- Added stable-tag and Brian's reviewed-by.
Looks like this issue has been around for several Linux releases now and it just depends on timing if this issue is seen or not and so there is no specific commit this fixes. However, would be good to include for v4.15.
drivers/mfd/cros_ec_spi.c | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Douglas Anderson dianders@chromium.org