lkml.org 
[lkml]   [2018]   [Oct]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 152/228] usb: musb: dsps: do not disable CPPI41 irq in driver teardown
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

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

    From: Bin Liu <b-liu@ti.com>

    commit 783f3b4e9ec50491c21746e7e05ec6c39c21f563 upstream.

    TI AM335x CPPI 4.1 module uses a single register bit for CPPI interrupts
    in both musb controllers. So disabling the CPPI irq in one musb driver
    breaks the other musb module.

    Since musb is already disabled before tearing down dma controller in
    musb_remove(), it is safe to not disable CPPI irq in
    musb_dma_controller_destroy().

    Fixes: 255348289f71 ("usb: musb: dsps: Manage CPPI 4.1 DMA interrupt in DSPS")
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/musb/musb_dsps.c | 12 +-----------
    1 file changed, 1 insertion(+), 11 deletions(-)

    --- a/drivers/usb/musb/musb_dsps.c
    +++ b/drivers/usb/musb/musb_dsps.c
    @@ -658,16 +658,6 @@ dsps_dma_controller_create(struct musb *
    return controller;
    }

    -static void dsps_dma_controller_destroy(struct dma_controller *c)
    -{
    - struct musb *musb = c->musb;
    - struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
    - void __iomem *usbss_base = glue->usbss_base;
    -
    - musb_writel(usbss_base, USBSS_IRQ_CLEARR, USBSS_IRQ_PD_COMP);
    - cppi41_dma_controller_destroy(c);
    -}
    -
    #ifdef CONFIG_PM_SLEEP
    static void dsps_dma_controller_suspend(struct dsps_glue *glue)
    {
    @@ -697,7 +687,7 @@ static struct musb_platform_ops dsps_ops

    #ifdef CONFIG_USB_TI_CPPI41_DMA
    .dma_init = dsps_dma_controller_create,
    - .dma_exit = dsps_dma_controller_destroy,
    + .dma_exit = cppi41_dma_controller_destroy,
    #endif
    .enable = dsps_musb_enable,
    .disable = dsps_musb_disable,

    \
     
     \ /
      Last update: 2018-10-02 16:04    [W:7.173 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site