>From 9ae3a6d460f46062ff05f9f73c3e2373305e7f4f Mon Sep 17 00:00:00 2001 From: Hao Wu <[email protected]> Date: Thu, 30 Sep 2010 13:43:55 +0100 Subject: [PATCH] usb: langwell_udc: add HighSpeed/FullSpeed events notification to transceiver.
It adds notification to otg transceiver driver for HighSpeed/FullSpeed This change mainly to support battery charging current negotiation for CDP case. USB OTG Transceiver driver will notify EM (battery driver) to Max charging current according to different Speed Mode (HS/FS). Signed-off-by: Hao Wu <[email protected]> Signed-off-by: Alan Cox <[email protected]> --- drivers/usb/gadget/langwell_udc.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c index 09e1984..e01fc2b 100644 --- a/drivers/usb/gadget/langwell_udc.c +++ b/drivers/usb/gadget/langwell_udc.c @@ -2663,8 +2663,9 @@ done: /* port change detect interrupt handler */ static void handle_port_change(struct langwell_udc *dev) { - u32 portsc1, devlc; - u32 speed; + u32 portsc1, devlc; + u32 speed; + unsigned long event = 0; dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); @@ -2683,12 +2684,15 @@ static void handle_port_change(struct langwell_udc *dev) switch (speed) { case LPM_SPEED_HIGH: dev->gadget.speed = USB_SPEED_HIGH; + event = MID_OTG_NOTIFY_CLIENTHS; break; case LPM_SPEED_FULL: dev->gadget.speed = USB_SPEED_FULL; + event = MID_OTG_NOTIFY_CLIENTFS; break; case LPM_SPEED_LOW: dev->gadget.speed = USB_SPEED_LOW; + event = MID_OTG_NOTIFY_CLIENTFS; break; default: dev->gadget.speed = USB_SPEED_UNKNOWN; @@ -2697,6 +2701,10 @@ static void handle_port_change(struct langwell_udc *dev) dev_vdbg(&dev->pdev->dev, "speed = %d, dev->gadget.speed = %d\n", speed, dev->gadget.speed); + + if (event && dev->iotg) + atomic_notifier_call_chain(&dev->iotg->iotg_notifier, + event, dev->iotg); } /* LPM L0 to L1 */ @@ -2800,6 +2808,10 @@ static void handle_usb_reset(struct langwell_udc *dev) dev->usb_state = USB_STATE_ATTACHED; } + if (dev->iotg) + atomic_notifier_call_chain(&dev->iotg->iotg_notifier, + MID_OTG_NOTIFY_CLIENTFS, dev->iotg); + dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__); } -- 1.6.0.3
0003-usb-langwell_udc-add-HighSpeed-FullSpeed-events-no.patch
Description: 0003-usb-langwell_udc-add-HighSpeed-FullSpeed-events-no.patch
_______________________________________________ Meego-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
