firmware: arm_scpi: decrease Tx timeout to 20ms
authorSudeep Holla <sudeep.holla@arm.com>
Fri, 15 Jan 2016 11:57:38 +0000 (11:57 +0000)
committerSudeep Holla <sudeep.holla@arm.com>
Tue, 16 Feb 2016 09:26:27 +0000 (09:26 +0000)
commit3bdd884371b6fe68bb144aa4661d6a774a5417f1
treeb39317174aa1326f30db7ab73ccab9c67d4feddb
parentdd9a1d69ba90be7fe742c6234e6bd09706b7aaea
firmware: arm_scpi: decrease Tx timeout to 20ms

Currently we have Tx timeout of 50ms while Rx timeout of 20 ms. Tx state
machine is maintained by the mailbox framework and Rx by SCPI driver.

It is possible that before msg_submit call tx_prepare(because of other
message in the queue and the channel being active), wait for completion
in scpi_send_message times out and the buffers are freed. In that case
when Tx state machine timer goes off later, poll_txdone calls
scpi_tx_prepare on that message, which adds it to the rx_pending list,
corrupting link pointers.

This patch reduces the Tx timeout to 20ms and increases Rx timeout to
30ms to avoid the above mentioned issue.

Reported-by: Jon Medhurst (Tixy) <tixy@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scpi.c