lkml.org 
[lkml]   [2013]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 64/83] usb: musb: davinci: fix resources passed to MUSB driver for DM6467
    Date
    3.12-stable review patch.  If anyone has any objections, please let me know.

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

    From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

    commit ea78201e2e08f8a91e30100c4c4a908b5cf295fc upstream.

    After commit 09fc7d22b024692b2fe8a943b246de1af307132b (usb: musb: fix incorrect
    usage of resource pointer), CPPI DMA driver on DaVinci DM6467 can't detect its
    dedicated IRQ and so the MUSB IRQ is erroneously used instead. This is because
    only 2 resources are passed to the MUSB driver from the DaVinci glue layer, so
    fix this by always copying 3 resources (it's safe since a placeholder for the
    3rd resource is always there) and passing 'pdev->num_resources' instead of the
    size of musb_resources[] to platform_device_add_resources().

    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


    ---
    drivers/usb/musb/davinci.c | 11 ++++++++++-
    1 file changed, 10 insertions(+), 1 deletion(-)

    --- a/drivers/usb/musb/davinci.c
    +++ b/drivers/usb/musb/davinci.c
    @@ -509,7 +509,7 @@ static u64 davinci_dmamask = DMA_BIT_MAS

    static int davinci_probe(struct platform_device *pdev)
    {
    - struct resource musb_resources[2];
    + struct resource musb_resources[3];
    struct musb_hdrc_platform_data *pdata = dev_get_platdata(&pdev->dev);
    struct platform_device *musb;
    struct davinci_glue *glue;
    @@ -567,6 +567,15 @@ static int davinci_probe(struct platform
    musb_resources[1].end = pdev->resource[1].end;
    musb_resources[1].flags = pdev->resource[1].flags;

    + /*
    + * For DM6467 3 resources are passed. A placeholder for the 3rd
    + * resource is always there, so it's safe to always copy it...
    + */
    + musb_resources[2].name = pdev->resource[2].name;
    + musb_resources[2].start = pdev->resource[2].start;
    + musb_resources[2].end = pdev->resource[2].end;
    + musb_resources[2].flags = pdev->resource[2].flags;
    +
    ret = platform_device_add_resources(musb, musb_resources,
    ARRAY_SIZE(musb_resources));
    if (ret) {



    \
     
     \ /
      Last update: 2013-12-07 01:21    [W:3.417 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site