summaryrefslogtreecommitdiff
path: root/include/linux/mailbox_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mailbox_client.h')
-rw-r--r--include/linux/mailbox_client.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/mailbox_client.h b/include/linux/mailbox_client.h
index 65229a45590f..67e28f47cef6 100644
--- a/include/linux/mailbox_client.h
+++ b/include/linux/mailbox_client.h
@@ -21,6 +21,8 @@ struct mbox_chan;
* @knows_txdone: If the client could run the TX state machine. Usually
* if the client receives some ACK packet for transmission.
* Unused if the controller already has TX_Done/RTR IRQ.
+ * defer_startup: If set, the channel is not started immediately when
+ * created.
* @rx_callback: Atomic callback to provide client the data received
* @tx_prepare: Atomic callback to ask client to prepare the payload
* before initiating the transmission if required.
@@ -31,6 +33,7 @@ struct mbox_client {
bool tx_block;
unsigned long tx_tout;
bool knows_txdone;
+ bool defer_startup;
void (*rx_callback)(struct mbox_client *cl, void *mssg);
void (*tx_prepare)(struct mbox_client *cl, void *mssg);
@@ -40,6 +43,7 @@ struct mbox_client {
struct mbox_chan *mbox_request_channel_byname(struct mbox_client *cl,
const char *name);
struct mbox_chan *mbox_request_channel(struct mbox_client *cl, int index);
+int mbox_start_channel(struct mbox_chan *chan);
int mbox_send_message(struct mbox_chan *chan, void *mssg);
int mbox_flush(struct mbox_chan *chan, unsigned long timeout);
void mbox_client_txdone(struct mbox_chan *chan, int r); /* atomic */