lkml.org 
[lkml]   [2014]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16 140/357] usb: dwc3: core: fix order of PM runtime calls
    Date
    3.16-stable review patch.  If anyone has any objections, please let me know.

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

    From: Felipe Balbi <balbi@ti.com>

    commit fed33afce0eda44a46ae24d93aec1b5198c0bac4 upstream.

    Currently, we disable pm_runtime before all register
    accesses are done, this is dangerous and might lead
    to abort exceptions due to the driver trying to access
    a register which is clocked by a clock which was long
    gated.

    Fix that by moving pm_runtime_put_sync() and pm_runtime_disable()
    as the last thing we do before returning from our ->remove()
    method.

    Fixes: 72246da (usb: Introduce DesignWare USB3 DRD Driver)
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/dwc3/core.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/usb/dwc3/core.c
    +++ b/drivers/usb/dwc3/core.c
    @@ -791,15 +791,15 @@ static int dwc3_remove(struct platform_d
    phy_power_off(dwc->usb2_generic_phy);
    phy_power_off(dwc->usb3_generic_phy);

    - pm_runtime_put_sync(&pdev->dev);
    - pm_runtime_disable(&pdev->dev);
    -
    dwc3_debugfs_exit(dwc);
    dwc3_core_exit_mode(dwc);
    dwc3_event_buffers_cleanup(dwc);
    dwc3_free_event_buffers(dwc);
    dwc3_core_exit(dwc);

    + pm_runtime_put_sync(&pdev->dev);
    + pm_runtime_disable(&pdev->dev);
    +
    return 0;
    }




    \
     
     \ /
      Last update: 2014-10-04 03:21    [W:2.042 / U:0.616 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site