17 Nov, 2020

1 commit


12 Oct, 2020

1 commit


06 Oct, 2020

2 commits


22 Sep, 2020

2 commits


13 May, 2020

1 commit


07 May, 2020

1 commit

  • Convert the various /* fallthrough */ comments to the pseudo-keyword
    fallthrough;

    Done via script:
    https://lore.kernel.org/lkml/b56602fcf79f849e733e7b521bb0e17895d390fa.1582230379.git.joe@perches.com/

    Signed-off-by: Liangliang Huang
    Reviewed-by: Huacai Chen
    Signed-off-by: Thomas Bogendoerfer

    Liangliang Huang
     

20 Apr, 2020

1 commit

  • IOremap changes caused following build error:

    arch/mips/alchemy/common/setup.c:99:9: error: implicit declaration of function
    +‘remap_pfn_range’; did you mean ‘io_remap_pfn_range’?
    +[-Werror=implicit-function-declaration]

    Fixed my including linux/mm.h

    Fixes: d399157283fb ("MIPS: cleanup fixup_bigphys_addr handling")
    Signed-off-by: Thomas Bogendoerfer

    Thomas Bogendoerfer
     

19 Apr, 2020

1 commit

  • fixup_bigphys_addr is only provided by the alchemy platform. Remove
    all the stubs, and ensure we only call it if it is actually implemented.

    Also don't bother implementing io_remap_pfn_range if we don't have to,
    and move the remaining implementation to alchemy platform code.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Thomas Bogendoerfer

    Christoph Hellwig
     

05 Mar, 2020

1 commit

  • request_irq() is preferred over setup_irq(). Invocations of setup_irq()
    occur after memory allocators are ready.

    Per tglx[1], setup_irq() existed in olden days when allocators were not
    ready by the time early interrupts were initialized.

    Hence replace setup_irq() by request_irq().

    remove_irq() has been replaced by free_irq() as well.

    There were build error's during previous version, couple of which was
    reported by kbuild test robot of which one was reported
    by Thomas Bogendoerfer as well. There were a
    few more issues including build errors, those also have been fixed.

    [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos

    Signed-off-by: afzal mohammed
    Signed-off-by: Thomas Bogendoerfer

    afzal mohammed
     

31 May, 2019

2 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can distribute it and or modify it
    under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope it will be useful but without any warranty
    without even the implied warranty of merchantability or fitness for
    a particular purpose see the gnu general public license for more
    details you should have received a copy of the gnu general public
    license along with this program if not write to the free software
    foundation inc 59 temple place suite 330 boston ma 02111 1307 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

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

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Steve Winslow
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190528170026.531157061@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • 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 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 this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    51 franklin st fifth floor boston ma 02110 1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

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

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

    Thomas Gleixner
     

21 May, 2019

2 commits

  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have EXPORT_.*_SYMBOL_GPL inside which was used in the
    initial scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

20 May, 2019

1 commit

  • Pull a few more MIPS updates from Paul Burton:
    "Some SGI IP27 specific PCI rework and a batch of fixes:

    - A build fix for BMIPS5000 configurations with
    CONFIG_HW_PERF_EVENTS=y, which also neatly removes some #ifdefery.

    - A fix to report supported ISAs correctly on older Ingenic SoCs
    which incorrectly indicate MIPSr2 support in their cop0 Config
    register.

    - Some PCI modernization for SGI IP27 systems as part of ongoing work
    to support some other SGI systems.

    - A fix allowing use of appended DTB files with generic kernels.

    - DMA mask fixes for SGI IP22 & Alchemy systems"

    * tag 'mips_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MIPS: Alchemy: add DMA masks for on-chip ethernet
    MIPS: SGI-IP22: provide missing dma_mask/coherent_dma_mask
    generic: fix appended dtb support
    MIPS: SGI-IP27: abstract chipset irq from bridge
    MIPS: SGI-IP27: use generic PCI driver
    MIPS: Fix Ingenic SoCs sometimes reporting wrong ISA
    MIPS: perf: Fix build with CONFIG_CPU_BMIPS5000 enabled

    Linus Torvalds
     

16 May, 2019

1 commit


27 Apr, 2019

1 commit

  • This flag was historically used to indicate that a clk is a "basic" type
    of clk like a mux, divider, gate, etc. This never turned out to be very
    useful though because it was hard to cleanly split "basic" clks from
    other clks in a system. This one flag was a way for type introspection
    and it just didn't scale. If anything, it was used by the TI clk driver
    to indicate that a clk_hw wasn't contained in the SoC specific clk
    structure. We can get rid of this define now that TI is finding those
    clks a different way.

    Cc: Tero Kristo
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: James Hogan
    Cc:
    Cc: Thierry Reding
    Cc: Kevin Hilman
    Cc:
    Cc:
    Acked-by: Thierry Reding
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     

06 Jan, 2019

1 commit

  • Pull MIPS fixes from Paul Burton:
    "A few early MIPS fixes for 4.21:

    - The Broadcom BCM63xx platform sees a fix for resetting the BCM6368
    ethernet switch, and the removal of a platform device we've never
    had a driver for.

    - The Alchemy platform sees a few fixes for bitrot that occurred
    within the past few cycles.

    - We now enable vectored interrupt support for the MediaTek MT7620
    SoC, which makes sense since they're supported by the SoC but in
    this case also works around a bug relating to the location of
    exception vectors when using a recent version of U-Boot.

    - The atomic64_fetch_*_relaxed() family of functions see a fix for a
    regression in MIPS64 kernels since v4.19.

    - Cavium Octeon III CN7xxx systems will now disable their RGMII
    interfaces rather than attempt to enable them & warn about the lack
    of support for doing so, as they did since initial CN7xxx ethernet
    support was added in v4.7.

    - The Microsemi/Microchip MSCC SoCs gain a MAINTAINERS entry.

    - .mailmap now provides consistency for Dengcheng Zhu's name &
    current email address"

    * tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
    MIPS: Fix a R10000_LLSC_WAR logic in atomic.h
    MIPS: BCM63XX: drop unused and broken DSP platform device
    mailmap: Update name spelling and email for Dengcheng Zhu
    MIPS: ralink: Select CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8
    MAINTAINERS: Add a maintainer for MSCC MIPS SoCs
    MIPS: Alchemy: update dma masks for devboard devices
    MIPS: Alchemy: update cpu-feature-overrides
    MIPS: Alchemy: drop DB1000 IrDA support bits
    MIPS: alchemy: cpu_all_mask is forbidden for clock event devices
    MIPS: BCM63XX: fix switch core reset on BCM6368

    Linus Torvalds
     

02 Jan, 2019

1 commit

  • Pull watchdog updates from Wim Van Sebroeck:
    - add TQ-Systems TQMX86 watchdog driver
    - add Qualcomm PM8916 watchdog driver
    - w83627hf_wdt: add quirk for Inves system
    - renesas_wdt: several improvements and document r8a774c0 support
    - mena21_wdt, mtx-1: Convert to use GPIO descriptor
    - bcm281xx, ie6xx_wdt: convert to DEFINE_SHOW_ATTRIBUTE
    - documentation: add PM usage and kernel-api: don't reference removed functions
    - update bindings for MT7629 SoC
    - several small fixes

    * tag 'linux-watchdog-4.21-rc1' of git://www.linux-watchdog.org/linux-watchdog: (22 commits)
    watchdog: tqmx86: Add watchdog driver for the IO controller
    dt-bindings: watchdog: renesas-wdt: Document r8a774c0 support
    watchdog: docs: kernel-api: don't reference removed functions
    watchdog: add documentation for PM usage
    watchdog: mtx-1: Convert to use GPIO descriptor
    watchdog: mena21_wdt: Convert to GPIO descriptors
    dt-bindings: watchdog: Add Qualcomm PM8916 watchdog
    watchdog: Add pm8916 watchdog driver
    dt-bindings: watchdog: update bindings for MT7629 SoC
    watchdog: renesas_wdt: don't keep timer value during suspend/resume
    watchdog: ie6xx_wdt: convert to DEFINE_SHOW_ATTRIBUTE
    watchdog: bcm281xx: convert to DEFINE_SHOW_ATTRIBUTE
    watchdog: asm9260_wdt: make array mode_name static, shrinks object size
    watchdog/hpwdt: Update driver version.
    watchdog/hpwdt: Do not claim unsupported hardware
    watchdog/hpwdt: Exclude via blacklist
    Watchdog: remove outdated comment
    watchdog: w83627hf_wdt: Add quirk for Inves system
    watchdog: cpwd: add of_node_put()
    watchdog: renesas_wdt: don't set divider while watchdog is running
    ...

    Linus Torvalds
     

24 Dec, 2018

1 commit

  • This converts the MTX-1 driver to grab a GPIO descriptor
    associated with the device instead of using a resource with
    a global GPIO number. Augment the driver and the boardfile.

    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: James Hogan
    Cc: linux-mips@linux-mips.org
    Cc: Florian Fainelli
    Reviewed-by: Florian Fainelli
    Signed-off-by: Linus Walleij
    Acked-by: Paul Burton
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Linus Walleij
     

23 Dec, 2018

3 commits


23 Nov, 2018

1 commit

  • There is no good reason to duplicate the PCI menu in every architecture.
    Instead provide a selectable HAVE_PCI symbol that indicates availability
    of PCI support, and a FORCE_PCI symbol to for PCI on and the handle the
    rest in drivers/pci.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Palmer Dabbelt
    Acked-by: Max Filippov
    Acked-by: Thomas Gleixner
    Acked-by: Bjorn Helgaas
    Acked-by: Geert Uytterhoeven
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     

03 Oct, 2018

3 commits

  • platform_nand_xxx definitions are just used by the plat_nand driver.
    Let's move those definitions out of the core/driver-agnostic rawnand.h
    header.

    Signed-off-by: Boris Brezillon
    Signed-off-by: Miquel Raynal

    Boris Brezillon
     
  • We regularly have new NAND controller drivers that are making use of
    fields/hooks that we want to get rid of but can't because of all the
    legacy drivers that we might break if we do.

    So, instead of removing those fields/hooks, let's move them to a
    sub-struct which is clearly documented as deprecated.

    We start with the ->IO_ADDR_{R,W] fields.

    Signed-off-by: Boris Brezillon
    Signed-off-by: Miquel Raynal

    Boris Brezillon
     
  • Let's make the raw NAND API consistent by patching all helpers and
    hooks to take a nand_chip object instead of an mtd_info one or
    remove the mtd_info object when both are passed.

    In order to do that, we first need to update the platform_nand_ctrl
    hooks to take a nand_chip object instead of an mtd_info.

    We add temporary plat_nand_xxx() wrappers to the do the mtd -> chip
    conversion, but those will be dropped when patching nand_chip hooks to
    take a nand_chip object.

    Signed-off-by: Boris Brezillon
    Reviewed-by: Alexander Sverdlin
    Acked-by: Alexander Sverdlin
    Acked-by: Robert Jarzmik
    Acked-by: Krzysztof Halasa
    Acked-by: Paul Burton
    Signed-off-by: Miquel Raynal

    Boris Brezillon
     

18 Jul, 2018

1 commit

  • prom_putchar() is used centrally in early printk infrastructure therefore
    at least MIPS should agree on the function return type.

    [paul.burton@mips.com:
    - Include linux/types.h in asm/setup.h to gain the bool typedef before
    we start include asm/setup.h elsewhere.
    - Include asm/setup.h in all files that use or define prom_putchar().
    - Also standardise on signed rather than unsigned char argument.]

    Signed-off-by: Alexander Sverdlin
    Signed-off-by: Paul Burton
    Patchwork: https://patchwork.linux-mips.org/patch/19842/
    Cc: linux-mips@linux-mips.org
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: Jonas Gorski
    Cc: Florian Fainelli
    Cc: Kate Stewart
    Cc: Philippe Ombredanne

    Alexander Sverdlin
     

14 Jun, 2018

1 commit

  • Pull i2c updates from Wolfram Sang:

    - mainly feature additions to drivers (stm32f7, qup, xlp9xx, mlxcpld, ...)

    - conversion to use the i2c_8bit_addr_from_msg macro consistently

    - move includes to platform_data

    - core updates to allow the (still in review) I3C subsystem to connect

    - and the regular share of smaller driver updates

    * 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (68 commits)
    i2c: qup: fix building without CONFIG_ACPI
    i2c: tegra: Remove suspend-resume
    i2c: imx-lpi2c: Switch to SPDX identifier
    i2c: mxs: Switch to SPDX identifier
    i2c: busses: make use of i2c_8bit_addr_from_msg
    i2c: algos: make use of i2c_8bit_addr_from_msg
    i2c: rcar: document R8A77980 bindings
    i2c: qup: Add command-line parameter to override SCL frequency
    i2c: qup: Correct duty cycle for FM and FM+
    i2c: qup: Add support for Fast Mode Plus
    i2c: qup: add probe path for Centriq ACPI devices
    i2c: robotfuzz-osif: drop pointless test
    i2c: robotfuzz-osif: remove pointless local variable
    i2c: rk3x: Don't print visible virtual mapping MMIO address
    i2c: opal: don't check number of messages in the driver
    i2c: ibm_iic: don't check number of messages in the driver
    i2c: imx: Switch to SPDX identifier
    i2c: mux: pca954x: merge calls to of_match_device and of_device_get_match_data
    i2c: mux: demux-pinctrl: use proper parent device for demux adapter
    i2c: mux: improve error message for failed symlink
    ...

    Linus Torvalds
     

13 Jun, 2018

2 commits

  • The kzalloc() function has a 2-factor argument form, kcalloc(). This
    patch replaces cases of:

    kzalloc(a * b, gfp)

    with:
    kcalloc(a * b, gfp)

    as well as handling cases of:

    kzalloc(a * b * c, gfp)

    with:

    kzalloc(array3_size(a, b, c), gfp)

    as it's slightly less ugly than:

    kzalloc_array(array_size(a, b), c, gfp)

    This does, however, attempt to ignore constant size factors like:

    kzalloc(4 * 1024, gfp)

    though any constants defined via macros get caught up in the conversion.

    Any factors with a sizeof() of "unsigned char", "char", and "u8" were
    dropped, since they're redundant.

    The Coccinelle script used for this was:

    // Fix redundant parens around sizeof().
    @@
    type TYPE;
    expression THING, E;
    @@

    (
    kzalloc(
    - (sizeof(TYPE)) * E
    + sizeof(TYPE) * E
    , ...)
    |
    kzalloc(
    - (sizeof(THING)) * E
    + sizeof(THING) * E
    , ...)
    )

    // Drop single-byte sizes and redundant parens.
    @@
    expression COUNT;
    typedef u8;
    typedef __u8;
    @@

    (
    kzalloc(
    - sizeof(u8) * (COUNT)
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(__u8) * (COUNT)
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(char) * (COUNT)
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(unsigned char) * (COUNT)
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(u8) * COUNT
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(__u8) * COUNT
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(char) * COUNT
    + COUNT
    , ...)
    |
    kzalloc(
    - sizeof(unsigned char) * COUNT
    + COUNT
    , ...)
    )

    // 2-factor product with sizeof(type/expression) and identifier or constant.
    @@
    type TYPE;
    expression THING;
    identifier COUNT_ID;
    constant COUNT_CONST;
    @@

    (
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * (COUNT_ID)
    + COUNT_ID, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * COUNT_ID
    + COUNT_ID, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * (COUNT_CONST)
    + COUNT_CONST, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * COUNT_CONST
    + COUNT_CONST, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * (COUNT_ID)
    + COUNT_ID, sizeof(THING)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * COUNT_ID
    + COUNT_ID, sizeof(THING)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * (COUNT_CONST)
    + COUNT_CONST, sizeof(THING)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * COUNT_CONST
    + COUNT_CONST, sizeof(THING)
    , ...)
    )

    // 2-factor product, only identifiers.
    @@
    identifier SIZE, COUNT;
    @@

    - kzalloc
    + kcalloc
    (
    - SIZE * COUNT
    + COUNT, SIZE
    , ...)

    // 3-factor product with 1 sizeof(type) or sizeof(expression), with
    // redundant parens removed.
    @@
    expression THING;
    identifier STRIDE, COUNT;
    type TYPE;
    @@

    (
    kzalloc(
    - sizeof(TYPE) * (COUNT) * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE) * (COUNT) * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE) * COUNT * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE) * COUNT * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kzalloc(
    - sizeof(THING) * (COUNT) * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kzalloc(
    - sizeof(THING) * (COUNT) * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kzalloc(
    - sizeof(THING) * COUNT * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kzalloc(
    - sizeof(THING) * COUNT * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    )

    // 3-factor product with 2 sizeof(variable), with redundant parens removed.
    @@
    expression THING1, THING2;
    identifier COUNT;
    type TYPE1, TYPE2;
    @@

    (
    kzalloc(
    - sizeof(TYPE1) * sizeof(TYPE2) * COUNT
    + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
    , ...)
    |
    kzalloc(
    - sizeof(THING1) * sizeof(THING2) * COUNT
    + array3_size(COUNT, sizeof(THING1), sizeof(THING2))
    , ...)
    |
    kzalloc(
    - sizeof(THING1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(THING1), sizeof(THING2))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE1) * sizeof(THING2) * COUNT
    + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
    , ...)
    |
    kzalloc(
    - sizeof(TYPE1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
    , ...)
    )

    // 3-factor product, only identifiers, with redundant parens removed.
    @@
    identifier STRIDE, SIZE, COUNT;
    @@

    (
    kzalloc(
    - (COUNT) * STRIDE * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - COUNT * (STRIDE) * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - COUNT * STRIDE * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - (COUNT) * (STRIDE) * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - COUNT * (STRIDE) * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - (COUNT) * STRIDE * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - (COUNT) * (STRIDE) * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kzalloc(
    - COUNT * STRIDE * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    )

    // Any remaining multi-factor products, first at least 3-factor products,
    // when they're not all constants...
    @@
    expression E1, E2, E3;
    constant C1, C2, C3;
    @@

    (
    kzalloc(C1 * C2 * C3, ...)
    |
    kzalloc(
    - (E1) * E2 * E3
    + array3_size(E1, E2, E3)
    , ...)
    |
    kzalloc(
    - (E1) * (E2) * E3
    + array3_size(E1, E2, E3)
    , ...)
    |
    kzalloc(
    - (E1) * (E2) * (E3)
    + array3_size(E1, E2, E3)
    , ...)
    |
    kzalloc(
    - E1 * E2 * E3
    + array3_size(E1, E2, E3)
    , ...)
    )

    // And then all remaining 2 factors products when they're not all constants,
    // keeping sizeof() as the second factor argument.
    @@
    expression THING, E1, E2;
    type TYPE;
    constant C1, C2, C3;
    @@

    (
    kzalloc(sizeof(THING) * C2, ...)
    |
    kzalloc(sizeof(TYPE) * C2, ...)
    |
    kzalloc(C1 * C2 * C3, ...)
    |
    kzalloc(C1 * C2, ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * (E2)
    + E2, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(TYPE) * E2
    + E2, sizeof(TYPE)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * (E2)
    + E2, sizeof(THING)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - sizeof(THING) * E2
    + E2, sizeof(THING)
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - (E1) * E2
    + E1, E2
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - (E1) * (E2)
    + E1, E2
    , ...)
    |
    - kzalloc
    + kcalloc
    (
    - E1 * E2
    + E1, E2
    , ...)
    )

    Signed-off-by: Kees Cook

    Kees Cook
     
  • The kmalloc() function has a 2-factor argument form, kmalloc_array(). This
    patch replaces cases of:

    kmalloc(a * b, gfp)

    with:
    kmalloc_array(a * b, gfp)

    as well as handling cases of:

    kmalloc(a * b * c, gfp)

    with:

    kmalloc(array3_size(a, b, c), gfp)

    as it's slightly less ugly than:

    kmalloc_array(array_size(a, b), c, gfp)

    This does, however, attempt to ignore constant size factors like:

    kmalloc(4 * 1024, gfp)

    though any constants defined via macros get caught up in the conversion.

    Any factors with a sizeof() of "unsigned char", "char", and "u8" were
    dropped, since they're redundant.

    The tools/ directory was manually excluded, since it has its own
    implementation of kmalloc().

    The Coccinelle script used for this was:

    // Fix redundant parens around sizeof().
    @@
    type TYPE;
    expression THING, E;
    @@

    (
    kmalloc(
    - (sizeof(TYPE)) * E
    + sizeof(TYPE) * E
    , ...)
    |
    kmalloc(
    - (sizeof(THING)) * E
    + sizeof(THING) * E
    , ...)
    )

    // Drop single-byte sizes and redundant parens.
    @@
    expression COUNT;
    typedef u8;
    typedef __u8;
    @@

    (
    kmalloc(
    - sizeof(u8) * (COUNT)
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(__u8) * (COUNT)
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(char) * (COUNT)
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(unsigned char) * (COUNT)
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(u8) * COUNT
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(__u8) * COUNT
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(char) * COUNT
    + COUNT
    , ...)
    |
    kmalloc(
    - sizeof(unsigned char) * COUNT
    + COUNT
    , ...)
    )

    // 2-factor product with sizeof(type/expression) and identifier or constant.
    @@
    type TYPE;
    expression THING;
    identifier COUNT_ID;
    constant COUNT_CONST;
    @@

    (
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * (COUNT_ID)
    + COUNT_ID, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * COUNT_ID
    + COUNT_ID, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * (COUNT_CONST)
    + COUNT_CONST, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * COUNT_CONST
    + COUNT_CONST, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * (COUNT_ID)
    + COUNT_ID, sizeof(THING)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * COUNT_ID
    + COUNT_ID, sizeof(THING)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * (COUNT_CONST)
    + COUNT_CONST, sizeof(THING)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * COUNT_CONST
    + COUNT_CONST, sizeof(THING)
    , ...)
    )

    // 2-factor product, only identifiers.
    @@
    identifier SIZE, COUNT;
    @@

    - kmalloc
    + kmalloc_array
    (
    - SIZE * COUNT
    + COUNT, SIZE
    , ...)

    // 3-factor product with 1 sizeof(type) or sizeof(expression), with
    // redundant parens removed.
    @@
    expression THING;
    identifier STRIDE, COUNT;
    type TYPE;
    @@

    (
    kmalloc(
    - sizeof(TYPE) * (COUNT) * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE) * (COUNT) * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE) * COUNT * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE) * COUNT * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(TYPE))
    , ...)
    |
    kmalloc(
    - sizeof(THING) * (COUNT) * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kmalloc(
    - sizeof(THING) * (COUNT) * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kmalloc(
    - sizeof(THING) * COUNT * (STRIDE)
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    |
    kmalloc(
    - sizeof(THING) * COUNT * STRIDE
    + array3_size(COUNT, STRIDE, sizeof(THING))
    , ...)
    )

    // 3-factor product with 2 sizeof(variable), with redundant parens removed.
    @@
    expression THING1, THING2;
    identifier COUNT;
    type TYPE1, TYPE2;
    @@

    (
    kmalloc(
    - sizeof(TYPE1) * sizeof(TYPE2) * COUNT
    + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
    , ...)
    |
    kmalloc(
    - sizeof(THING1) * sizeof(THING2) * COUNT
    + array3_size(COUNT, sizeof(THING1), sizeof(THING2))
    , ...)
    |
    kmalloc(
    - sizeof(THING1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(THING1), sizeof(THING2))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE1) * sizeof(THING2) * COUNT
    + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
    , ...)
    |
    kmalloc(
    - sizeof(TYPE1) * sizeof(THING2) * (COUNT)
    + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
    , ...)
    )

    // 3-factor product, only identifiers, with redundant parens removed.
    @@
    identifier STRIDE, SIZE, COUNT;
    @@

    (
    kmalloc(
    - (COUNT) * STRIDE * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - COUNT * (STRIDE) * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - COUNT * STRIDE * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - (COUNT) * (STRIDE) * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - COUNT * (STRIDE) * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - (COUNT) * STRIDE * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - (COUNT) * (STRIDE) * (SIZE)
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    |
    kmalloc(
    - COUNT * STRIDE * SIZE
    + array3_size(COUNT, STRIDE, SIZE)
    , ...)
    )

    // Any remaining multi-factor products, first at least 3-factor products,
    // when they're not all constants...
    @@
    expression E1, E2, E3;
    constant C1, C2, C3;
    @@

    (
    kmalloc(C1 * C2 * C3, ...)
    |
    kmalloc(
    - (E1) * E2 * E3
    + array3_size(E1, E2, E3)
    , ...)
    |
    kmalloc(
    - (E1) * (E2) * E3
    + array3_size(E1, E2, E3)
    , ...)
    |
    kmalloc(
    - (E1) * (E2) * (E3)
    + array3_size(E1, E2, E3)
    , ...)
    |
    kmalloc(
    - E1 * E2 * E3
    + array3_size(E1, E2, E3)
    , ...)
    )

    // And then all remaining 2 factors products when they're not all constants,
    // keeping sizeof() as the second factor argument.
    @@
    expression THING, E1, E2;
    type TYPE;
    constant C1, C2, C3;
    @@

    (
    kmalloc(sizeof(THING) * C2, ...)
    |
    kmalloc(sizeof(TYPE) * C2, ...)
    |
    kmalloc(C1 * C2 * C3, ...)
    |
    kmalloc(C1 * C2, ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * (E2)
    + E2, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(TYPE) * E2
    + E2, sizeof(TYPE)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * (E2)
    + E2, sizeof(THING)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - sizeof(THING) * E2
    + E2, sizeof(THING)
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - (E1) * E2
    + E1, E2
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - (E1) * (E2)
    + E1, E2
    , ...)
    |
    - kmalloc
    + kmalloc_array
    (
    - E1 * E2
    + E1, E2
    , ...)
    )

    Signed-off-by: Kees Cook

    Kees Cook
     

17 May, 2018

1 commit

  • This header only contains platform_data. Move it to the proper directory.

    Signed-off-by: Wolfram Sang
    Acked-by: Tony Lindgren
    Acked-by: Lee Jones
    Acked-by: Robert Jarzmik
    Acked-by: Mauro Carvalho Chehab
    Acked-by: James Hogan
    Acked-by: Greg Ungerer

    Wolfram Sang
     

11 Apr, 2018

1 commit

  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.17. Rough overview:

    (1) generic platform: Add support for Microsemi Ocelot SoCs

    (2) crypto: Add CRC32 and CRC32C HW acceleration module

    (3) Various cleanups and misc improvements

    More detailed summary:

    Miscellaneous:
    - hang more efficiently on halt/powerdown/restart
    - pm-cps: Block system suspend when a JTAG probe is present
    - expand make help text for generic defconfigs
    - refactor handling of legacy defconfigs
    - determine the entry point from the ELF file header to fix microMIPS
    for certain toolchains
    - introduce isa-rev.h for MIPS_ISA_REV and use to simplify other code

    Minor cleanups:
    - DTS: boston/ci20: Unit name cleanups and correction
    - kdump: Make the default for PHYSICAL_START always 64-bit
    - constify gpio_led in Alchemy, AR7, and TXX9
    - silence a couple of W=1 warnings
    - remove duplicate includes

    Platform support:
    Generic platform:
    - add support for Microsemi Ocelot
    - dt-bindings: Add vendor prefix for Microsemi Corporation
    - dt-bindings: Add bindings for Microsemi SoCs
    - add ocelot SoC & PCB123 board DTS files
    - MAINTAINERS: Add entry for Microsemi MIPS SoCs
    - enable crc32-mips on r6 configs

    ath79:
    - fix AR724X_PLL_REG_PCIE_CONFIG offset

    BCM47xx:
    - firmware: Use mac_pton() for MAC address parsing
    - add Luxul XAP1500/XWR1750 WiFi LEDs
    - use standard reset button for Luxul XWR-1750

    BMIPS:
    - enable CONFIG_BRCMSTB_PM in bmips_stb_defconfig for build coverage
    - add STB PM, wake-up timer, watchdog DT nodes

    Octeon:
    - drop '.' after newlines in printk calls

    ralink:
    - pci-mt7621: Enable PCIe on MT7688"

    * tag 'mips_4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (37 commits)
    MIPS: BCM47XX: Use standard reset button for Luxul XWR-1750
    MIPS: BCM47XX: Add Luxul XAP1500/XWR1750 WiFi LEDs
    MIPS: Make the default for PHYSICAL_START always 64-bit
    MIPS: Use the entry point from the ELF file header
    MAINTAINERS: Add entry for Microsemi MIPS SoCs
    MIPS: generic: Add support for Microsemi Ocelot
    MIPS: mscc: Add ocelot PCB123 device tree
    MIPS: mscc: Add ocelot dtsi
    dt-bindings: mips: Add bindings for Microsemi SoCs
    dt-bindings: Add vendor prefix for Microsemi Corporation
    MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
    MIPS: pci-mt7620: Enable PCIe on MT7688
    MIPS: pm-cps: Block system suspend when a JTAG probe is present
    MIPS: VDSO: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: BPF: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: cpu-features.h: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: Introduce isa-rev.h to define MIPS_ISA_REV
    MIPS: Hang more efficiently on halt/powerdown/restart
    FIRMWARE: bcm47xx_nvram: Replace mac address parsing
    MIPS: BMIPS: Add Broadcom STB watchdog nodes
    ...

    Linus Torvalds
     

19 Feb, 2018

1 commit

  • gpio_leds are not supposed to change at runtime. struct
    gpio_led_platform_data contains a const struct gpio_led pointer since
    v2.6.39, so mark the gpio_led structures const too.

    Signed-off-by: Arvind Yadav
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/18006/
    [jhogan@kernel.org: improve commit message]
    Signed-off-by: James Hogan

    Arvind Yadav
     

15 Feb, 2018

1 commit

  • This converts the bit-banged GPIO SPI driver to looking up and
    using GPIO descriptors to get a handle on GPIO lines for SCK,
    MOSI, MISO and all CS lines.

    All existing board files are converted in one go to keep it all
    consistent. With these conversions I rarely find any interrim
    steps that makes any sense.

    Device tree probing and GPIO handling should work like before
    also after this patch.

    For board files, we stop using controller data to pass the GPIO
    line for chip select, instead we pass this as a GPIO descriptor
    lookup like everything else.

    In some s3c24xx machines the names of the SPI devices were set to
    "spi-gpio" rather than "spi_gpio" which can never have worked, I
    fixed it working (I guess) as part of this patch set. Sometimes
    I wonder how this code got upstream in the first place, it
    obviously is not tested.

    mach-s3c64xx/mach-smartq.c has the same problem and additionally
    defines the *same* GPIO line for MOSI and MISO which is not going
    to be accepted by gpiolib. As the lines were number 1,2,2 I assumed
    it was a typo and use lines 1,2,3. A comment gives awat that line 0
    is chip select though no actual SPI device is provided for the LCD
    supposed to be on this bit-banged SPI bus. I left it intact instead
    of just deleting the bus though.

    Kill off board file code that try to initialize the SPI lines
    to the same values that they will later be set by the spi_gpio
    driver anyways. Given the huge number of weird things in these
    board files I do not think this code is very tested or put in
    with much afterthought anyways.

    In order to assert that we do not get performance regressions on
    this crucial bing-banged driver, a ran a script like this dumping the
    Ilitek ILI9322 regmap 10000 times (it has no caching obviously) on
    an otherwise idle system in two iterations before and after the
    patches:

    #!/bin/sh
    for run in `seq 10000`
    do
    cat /debug/regmap/spi0.0/registers > /dev/null
    done

    Before the patch:

    time test.sh
    real 3m 41.03s
    user 0m 29.41s
    sys 3m 7.22s

    time test.sh
    real 3m 44.24s
    user 0m 32.31s
    sys 3m 7.60s

    After the patch:

    time test.sh
    real 3m 41.32s
    user 0m 28.92s
    sys 3m 8.08s

    time test.sh
    real 3m 39.92s
    user 0m 30.20s
    sys 3m 5.56s

    So any performance differences seems to be in the error margin.

    Signed-off-by: Linus Walleij
    Acked-by: Olof Johansson
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Mark Brown

    Linus Walleij
     

16 Nov, 2017

1 commit

  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.15.

    Fixes:
    - ralink: Fix MT7620 PCI build issues (4.5)
    - Disable cmpxchg64() and HAVE_VIRT_CPU_ACCOUNTING_GEN for 32-bit SMP
    (4.1)
    - Fix MIPS64 FP save/restore on 32-bit kernels (4.0)
    - ptrace: Pick up ptrace/seccomp changed syscall numbers (3.19)
    - ralink: Fix MT7628 pinmux (3.19)
    - BCM47XX: Fix LED inversion on WRT54GSv1 (3.17)
    - Fix n32 core dumping as o32 since regset support (3.13)
    - ralink: Drop obsolete USB_ARCH_HAS_HCD select

    Build system:
    - Default to "generic" (multiplatform) system type instead of IP22
    - Use generic little endian MIPS32 r2 configuration as default
    defconfig instead of ip22_defconfig

    FPU emulation:
    - Fix exception generation for certain R6 FPU instructions

    SMP:
    - Allow __cpu_number_map to be larger than NR_CPUS for sparse CPU id
    spaces

    Miscellaneous:
    - Add iomem resource for kernel bss section for kexec/kdump
    - Atomics: Nudge writes on bit unlock
    - DT files: Standardise "ok" -> "okay"

    Minor cleanups:
    - Define virt_to_pfn()
    - Make thread_saved_pc static
    - Simplify 32-bit sign extension in __read_64bit_c0_split()
    - DMA: Use vma_pages() helper
    - FPU emulation: Replace unsigned with unsigned int
    - MM: Removed unused lastpfn
    - Alchemy: Make clk_ops const
    - Lasat: Use setup_timer() helper
    - ralink: Use BIT() in MT7620 PCI driver

    Platform support:

    BMIPS:
    - Enable HARDIRQS_SW_RESEND

    Broadcom BCM63XX:
    - Add clkdev lookup support
    - Update clk driver, UART driver, DTs to handle named refclk from DTs
    - Split apart various clocks to more closely match hardware
    - Add ethernet clocks

    Cavium Octeon:
    - Remove usage of cvmx_wait() in favour of __delay()

    ImgTec Pistachio:
    - DT: Drop deprecated dwmmc num-slots property

    Ingenic JZ4780:
    - Add NFS root to Ci20 defconfig
    - Add watchdog to Ci20 DT & defconfig, and allow building of watchdog
    driver with this SoC

    Generic (multiplatform):
    - Migrate xilfpga (MIPSfpga) platform to the generic platform

    Lantiq xway:
    - Fix ASC0/ASC1 clocks"

    * tag 'mips_4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (46 commits)
    MIPS: Add iomem resource for kernel bss section.
    MIPS: cmpxchg64() and HAVE_VIRT_CPU_ACCOUNTING_GEN don't work for 32-bit SMP
    MIPS: BMIPS: Enable HARDIRQS_SW_RESEND
    MIPS: pci: Make use of the BIT() macro inside the mt7620 driver
    MIPS: pci: Remove KERN_WARN instance inside the mt7620 driver
    MIPS: pci: Remove duplicate define in mt7620 driver
    MIPS: ralink: Fix typo in mt7628 pinmux function
    MIPS: ralink: Fix MT7628 pinmux
    MIPS: Fix odd fp register warnings with MIPS64r2
    watchdog: jz4780: Allow selection of jz4740-wdt driver
    MIPS/ptrace: Update syscall nr on register changes
    MIPS/ptrace: Pick up ptrace/seccomp changed syscalls
    MIPS: Fix an n32 core file generation regset support regression
    MIPS: Fix MIPS64 FP save/restore on 32-bit kernels
    MIPS: page.h: Define virt_to_pfn()
    MIPS: Xilfpga: Switch to using generic defconfigs
    MIPS: generic: Add support for MIPSfpga
    MIPS: Set defconfig target to a generic system for 32r2el
    MIPS: Kconfig: Set default MIPS system type as generic
    MIPS: DTS: Remove num-slots from Pistachio SoC
    ...

    Linus Torvalds
     

15 Nov, 2017

1 commit

  • Pull i2c updates from Wolfram Sang:
    "This contains two bigger than usual tree-wide changes this time. They
    all have proper acks, caused no merge conflicts in linux-next where
    they have been for a while. They are namely:

    - to-gpiod conversion of the i2c-gpio driver and its users (touching
    arch/* and drivers/mfd/*)

    - adding a sbs-manager based on I2C core updates to SMBus alerts
    (touching drivers/power/*)

    Other notable changes:

    - i2c_boardinfo can now carry a dev_name to be used when the device
    is created. This is because some devices in ACPI world need fixed
    names to find the regulators.

    - the designware driver got a long discussed overhaul of its PM
    handling. img-scb and davinci got PM support, too.

    - at24 driver has way better OF support. And it has a new maintainer.
    Thanks Bartosz for stepping up!

    The rest is regular driver updates and fixes"

    * 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (55 commits)
    ARM: sa1100: simpad: Correct I2C GPIO offsets
    i2c: aspeed: Deassert reset in probe
    eeprom: at24: Add OF device ID table
    MAINTAINERS: new maintainer for AT24 driver
    i2c: nuc900: remove platform_data, too
    i2c: thunderx: Remove duplicate NULL check
    i2c: taos-evm: Remove duplicate NULL check
    i2c: Make i2c_unregister_device() NULL-aware
    i2c: xgene-slimpro: Support v2
    i2c: mpc: remove useless variable initialization
    i2c: omap: Trigger bus recovery in lockup case
    i2c: gpio: Add support for named gpios in DT
    dt-bindings: i2c: i2c-gpio: Add support for named gpios
    i2c: gpio: Local vars in probe
    i2c: gpio: Augment all boardfiles to use open drain
    i2c: gpio: Enforce open drain through gpiolib
    gpio: Make it possible for consumers to enforce open drain
    i2c: gpio: Convert to use descriptors
    power: supply: sbs-message: fix some code style issues
    power: supply: sbs-battery: remove unchecked return var
    ...

    Linus Torvalds
     

08 Nov, 2017

1 commit

  • Make these const as they are only stored in the "const " ops field of a
    clk_init_data structure.

    Structure found using Coccinelle and changes done by hand.

    Signed-off-by: Bhumika Goyal
    Cc: julia.lawall@lip6.fr
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/17374/
    Signed-off-by: Ralf Baechle
    Signed-off-by: James Hogan

    Bhumika Goyal