greybus: host: provide "generic" apbridge output calls

Provide a new function, gb_hd_output() to send data to the apbridge.
This is useful for the camera and audio drivers that need to do this
type of messaging.

The camera driver is converted to use this new function, the audio
driver can use it when it gets merged later.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Tested-by: Mark Greer <mgreer@animalcreek.com>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
diff --git a/drivers/staging/greybus/hd.h b/drivers/staging/greybus/hd.h
index d828129..e11359b 100644
--- a/drivers/staging/greybus/hd.h
+++ b/drivers/staging/greybus/hd.h
@@ -23,6 +23,8 @@
 	void (*message_cancel)(struct gb_message *message);
 	int (*latency_tag_enable)(struct gb_host_device *hd, u16 cport_id);
 	int (*latency_tag_disable)(struct gb_host_device *hd, u16 cport_id);
+	int (*output)(struct gb_host_device *hd, void *req, u16 size, u8 cmd,
+		      bool async);
 };
 
 struct gb_host_device {
@@ -53,6 +55,8 @@
 int gb_hd_add(struct gb_host_device *hd);
 void gb_hd_del(struct gb_host_device *hd);
 void gb_hd_put(struct gb_host_device *hd);
+int gb_hd_output(struct gb_host_device *hd, void *req, u16 size, u8 cmd,
+		 bool in_irq);
 
 int gb_hd_init(void);
 void gb_hd_exit(void);