usb: musb: Call atomic_notifier_call_chain when status is changed
authorPali Rohár <pali.rohar@gmail.com>
Wed, 18 Sep 2013 17:03:34 +0000 (19:03 +0200)
committerFelipe Balbi <balbi@ti.com>
Tue, 1 Oct 2013 14:31:14 +0000 (09:31 -0500)
More power supply drivers depends on vbus events and without it they not
working. Power supply drivers using usb_register_notifier, so to deliver
events it is needed to call atomic_notifier_call_chain.

So without atomic notifier power supply driver isp1704 not retrieving
vbus status and reporting bogus values to userspace and also to board
platform data functions. Without proper data charger drivers trying to
charge battery also when charger is disconnected or do not start charging
when wallcharger connects.

Atomic notifier in musb driver was used before v3.5 and was replaced with
omap mailbox. This patch adding atomic_notifier_call_chain call from
function omap_musb_set_mailbox.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/omap2430.c

index 59d2245db1c81ce228d7607aa1176e56bbfb9082..cefafdcbe3a62e33b11d6494a3f458ec1c825da7 100644 (file)
@@ -305,6 +305,9 @@ static void omap_musb_set_mailbox(struct omap2430_glue *glue)
        default:
                dev_dbg(dev, "ID float\n");
        }
+
+       atomic_notifier_call_chain(&musb->xceiv->notifier,
+                       musb->xceiv->last_event, NULL);
 }