lkml.org 
[lkml]   [2015]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.3 097/125] usb: chipidea: otg: gadget module load and unload support
    Date
    4.3-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Li Jun <B47624@freescale.com>

    commit 85da852df66e5e0d3aba761b0fece7c958ff0685 upstream.

    This patch is to support load and unload gadget driver in full OTG mode.

    Signed-off-by: Li Jun <jun.li@freescale.com>
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Tested-by: Jiada Wang <jiada_wang@mentor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/chipidea/udc.c | 17 +++++++++++++++++
    1 file changed, 17 insertions(+)

    --- a/drivers/usb/chipidea/udc.c
    +++ b/drivers/usb/chipidea/udc.c
    @@ -1751,6 +1751,22 @@ static int ci_udc_start(struct usb_gadge
    return retval;
    }

    +static void ci_udc_stop_for_otg_fsm(struct ci_hdrc *ci)
    +{
    + if (!ci_otg_is_fsm_mode(ci))
    + return;
    +
    + mutex_lock(&ci->fsm.lock);
    + if (ci->fsm.otg->state == OTG_STATE_A_PERIPHERAL) {
    + ci->fsm.a_bidl_adis_tmout = 1;
    + ci_hdrc_otg_fsm_start(ci);
    + } else if (ci->fsm.otg->state == OTG_STATE_B_PERIPHERAL) {
    + ci->fsm.protocol = PROTO_UNDEF;
    + ci->fsm.otg->state = OTG_STATE_UNDEFINED;
    + }
    + mutex_unlock(&ci->fsm.lock);
    +}
    +
    /**
    * ci_udc_stop: unregister a gadget driver
    */
    @@ -1775,6 +1791,7 @@ static int ci_udc_stop(struct usb_gadget
    ci->driver = NULL;
    spin_unlock_irqrestore(&ci->lock, flags);

    + ci_udc_stop_for_otg_fsm(ci);
    return 0;
    }




    \
     
     \ /
      Last update: 2015-12-07 16:41    [W:4.034 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site