31 Jul, 2019

1 commit

  • We don't need dev_err() messages when platform_get_irq() fails now that
    platform_get_irq() prints an error message itself when something goes
    wrong. Let's remove these prints with a simple semantic patch.

    //
    @@
    expression ret;
    struct platform_device *E;
    @@

    ret =
    (
    platform_get_irq(E, ...)
    |
    platform_get_irq_byname(E, ...)
    );

    if ( \( ret < 0 \| ret

    While we're here, remove braces on if statements that only have one
    statement (manually).

    Cc: Vinod Koul
    Cc: Dan Williams
    Cc: dmaengine@vger.kernel.org
    Cc: Greg Kroah-Hartman
    Signed-off-by: Stephen Boyd
    Link: https://lore.kernel.org/r/20190730181557.90391-11-swboyd@chromium.org
    Signed-off-by: Vinod Koul

    Stephen Boyd
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

24 Apr, 2017

1 commit

  • The "pchans_used" field is an unsigned long array.

    for_each_clear_bit_from() expects an unsigned long pointer,
    not an array address.

    $ make C=2 drivers/dma/sun4i-dma.o
    CHECK drivers/dma/sun4i-dma.c
    drivers/dma/sun4i-dma.c:241:9: warning: incorrect type in argument 1 (different base types)
    drivers/dma/sun4i-dma.c:241:9: expected unsigned long const *p
    drivers/dma/sun4i-dma.c:241:9: got unsigned long ( * )[1]

    Signed-off-by: Marc Gonzalez
    Acked-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Marc Gonzalez
     

28 May, 2016

1 commit

  • Most users of IS_ERR_VALUE() in the kernel are wrong, as they
    pass an 'int' into a function that takes an 'unsigned long'
    argument. This happens to work because the type is sign-extended
    on 64-bit architectures before it gets converted into an
    unsigned type.

    However, anything that passes an 'unsigned short' or 'unsigned int'
    argument into IS_ERR_VALUE() is guaranteed to be broken, as are
    8-bit integers and types that are wider than 'unsigned long'.

    Andrzej Hajda has already fixed a lot of the worst abusers that
    were causing actual bugs, but it would be nice to prevent any
    users that are not passing 'unsigned long' arguments.

    This patch changes all users of IS_ERR_VALUE() that I could find
    on 32-bit ARM randconfig builds and x86 allmodconfig. For the
    moment, this doesn't change the definition of IS_ERR_VALUE()
    because there are probably still architecture specific users
    elsewhere.

    Almost all the warnings I got are for files that are better off
    using 'if (err)' or 'if (err < 0)'.
    The only legitimate user I could find that we get a warning for
    is the (32-bit only) freescale fman driver, so I did not remove
    the IS_ERR_VALUE() there but changed the type to 'unsigned long'.
    For 9pfs, I just worked around one user whose calling conventions
    are so obscure that I did not dare change the behavior.

    I was using this definition for testing:

    #define IS_ERR_VALUE(x) ((unsigned long*)NULL == (typeof (x)*)NULL && \
    unlikely((unsigned long long)(x) >= (unsigned long long)(typeof(x))-MAX_ERRNO))

    which ends up making all 16-bit or wider types work correctly with
    the most plausible interpretation of what IS_ERR_VALUE() was supposed
    to return according to its users, but also causes a compile-time
    warning for any users that do not pass an 'unsigned long' argument.

    I suggested this approach earlier this year, but back then we ended
    up deciding to just fix the users that are obviously broken. After
    the initial warning that caused me to get involved in the discussion
    (fs/gfs2/dir.c) showed up again in the mainline kernel, Linus
    asked me to send the whole thing again.

    [ Updated the 9p parts as per Al Viro - Linus ]

    Signed-off-by: Arnd Bergmann
    Cc: Andrzej Hajda
    Cc: Andrew Morton
    Link: https://lkml.org/lkml/2016/1/7/363
    Link: https://lkml.org/lkml/2016/5/27/486
    Acked-by: Srinivas Kandagatla # For nvmem part
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

03 Mar, 2016

1 commit

  • MODULE_DEVICE_TABLE() is missing, so the module isn't auto-loading on
    supported systems. This commit adds the missing line so it loads
    automatically when building it as a module and running on a system
    with the early sunxi DMA engine.

    Signed-off-by: Emilio López
    Reviewed-by: Javier Martinez Canillas
    Signed-off-by: Vinod Koul

    Emilio López
     

30 Sep, 2015

1 commit

  • Currently, sun4i_dma_free_contract iterates over lists and frees memory
    as it goes through them, causing reads to recently freed memory to
    be performed. Fix this by using the safe version of the iterator, so
    freed memory is not referenced at all.

    Reported-by: Dan Carpenter
    Signed-off-by: Emilio López
    Acked-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Emilio López
     

20 Aug, 2015

1 commit

  • This patch adds support for the DMA engine present on Allwinner A10,
    A13, A10S and A20 SoCs. This engine has two kinds of channels: normal
    and dedicated. The main difference is in the mode of operation;
    while a single normal channel may be operating at any given time,
    dedicated channels may operate simultaneously provided there is no
    overlap of source or destination.

    Hardware documentation can be found on A10 User Manual (section 12), A13
    User Manual (section 14) and A20 User Manual (section 1.12)

    Signed-off-by: Emilio López
    Signed-off-by: Hans de Goede
    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Emilio López