msm: bam_dmux: consolidate callback functions
Consolidate the multiple client callback function into a single callback
that is able to handle multiple event types. This minimizes API changes
for future event types.
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
diff --git a/drivers/usb/gadget/u_bam.c b/drivers/usb/gadget/u_bam.c
index e44b339..0c87e3e88 100644
--- a/drivers/usb/gadget/u_bam.c
+++ b/drivers/usb/gadget/u_bam.c
@@ -490,15 +490,25 @@
gbam_start_rx(port);
}
+static void gbam_notify(void *p, int event, unsigned long data)
+{
+ switch (event) {
+ case BAM_DMUX_RECEIVE:
+ gbam_data_recv_cb(p, (struct sk_buff *)(data));
+ break;
+ case BAM_DMUX_WRITE_DONE:
+ gbam_data_write_done(p, (struct sk_buff *)(data));
+ break;
+ }
+}
+
static void gbam_connect_work(struct work_struct *w)
{
struct gbam_port *port = container_of(w, struct gbam_port, connect_w);
struct bam_ch_info *d = &port->data_ch;
int ret;
- ret = msm_bam_dmux_open(d->id, port,
- gbam_data_recv_cb,
- gbam_data_write_done);
+ ret = msm_bam_dmux_open(d->id, port, gbam_notify);
if (ret) {
pr_err("%s: unable open bam ch:%d err:%d\n",
__func__, d->id, ret);