]> git.karo-electronics.de Git - karo-tx-linux.git/commit
greybus: timesync: Fix transitions to the INACTIVE state
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Thu, 16 Jun 2016 12:42:15 +0000 (13:42 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 16 Jun 2016 16:07:41 +0000 (09:07 -0700)
commit0cc3bc6930d02ff5083b7b7bc18ca53299bb383a
tree9266994b6945584f484c6f427b3837d4d8de856b
parentc9e8f893eeef4f0e2d10333aed2d175e50a56dab
greybus: timesync: Fix transitions to the INACTIVE state

Analysing a backtrace associated with the current EHCI runtime suspend code
has highlighted several places where its perfectly valid to make a
transition to GB_TIMESYNC_STATE_INACTIVE when not already in the
GB_TIMESYNC_STATE_INIT state, for example failure to issue a TimeSync
enable command to the SVC can and should legitimately call
gb_timesync_teardown() - at this point the state will be
GB_TIMESYNC_STATE_WAIT_SVC and it's legitimate and desirable to transition
to the INACTIVE state in this case. This patch fixes by removing the
restrictive and incorrect restriction on the transition to INACTIVE only
being valid when state == GB_TIMESYNC_STATE_INIT.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Tested-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/timesync.c