On Wed, Dec 12, 2018 at 09:31:25PM +0200, Timo Alho wrote: > As a preparatory change to refactor bpmp driver to support other than > t186/t194 chip generations, reword and slightly refactor some of the > functions to better match with what is actually happening in the > wire-level protocol. > > The communication with bpmp is essentially a Remote Procedure Call > consisting of "request" and "response". Either side (BPMP or CPU) can > initiate the communication. The state machine for communication > consists of following steps (from Linux point of view): > > Linux initiating the call: > 1) check that channel is free to transmit a request (is_req_channel_free) > 2) copy request message payload to shared location > 3) post the request in channel (post_req) > 4) notify BPMP that channel state has been update (ring_doorbell) *updated*