19 Jul, 2020

1 commit


14 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().

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

    Signed-off-by: afzal mohammed
    Reviewed-by: Andrew Lunn
    Signed-off-by: Gregory CLEMENT

    afzal mohammed
     

21 May, 2019

1 commit


08 Apr, 2019

1 commit

  • clang warns about statically defined DMA masks from the DMA_BIT_MASK
    macro with length 64:

    arch/arm/plat-orion/common.c:625:29: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
    .coherent_dma_mask = DMA_BIT_MASK(64),
    ^~~~~~~~~~~~~~~~
    include/linux/dma-mapping.h:141:54: note: expanded from macro 'DMA_BIT_MASK'
    #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<
    Signed-off-by: Olof Johansson

    Arnd Bergmann
     

18 Jan, 2019

1 commit


03 Nov, 2018

1 commit

  • Testing randconfig builds found an instance of a VLA that was
    missed when determining that we have removed them all:

    arch/arm/plat-orion/mpp.c: In function 'orion_mpp_conf':
    arch/arm/plat-orion/mpp.c:31:2: error: ISO C90 forbids variable length array 'mpp_ctrl' [-Werror=vla]

    This one is fairly straightforward: we know what all three
    callers are, and the maximum length is not very long.

    Fixes: 68664695ae57 ("Makefile: Globally enable VLA warning")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Andrew Lunn
    Reviewed-by: Kees Cook
    Signed-off-by: Olof Johansson

    Arnd Bergmann
     

23 Feb, 2018

1 commit

  • A section type mismatch warning shows up when building with LTO,
    since orion_ge00_mvmdio_bus_name was put in __initconst but not marked
    const itself:

    include/linux/of.h: In function 'spear_setup_of_timer':
    arch/arm/mach-spear/time.c:207:34: error: 'timer_of_match' causes a section type conflict with 'orion_ge00_mvmdio_bus_name'
    static const struct of_device_id timer_of_match[] __initconst = {
    ^
    arch/arm/plat-orion/common.c:475:32: note: 'orion_ge00_mvmdio_bus_name' was declared here
    static __initconst const char *orion_ge00_mvmdio_bus_name = "orion-mii";
    ^

    As pointed out by Andrew Lunn, it should in fact be 'const' but not
    '__initconst' because the string is never copied but may be accessed
    after the init sections are freed. To fix that, I get rid of the
    extra symbol and rewrite the initialization in a simpler way that
    assigns both the bus_id and modalias statically.

    I spotted another theoretical bug in the same place, where d->netdev[i]
    may be an out of bounds access, this can be fixed by moving the device
    assignment into the loop.

    Cc: stable@vger.kernel.org
    Reviewed-by: Andrew Lunn
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

30 Mar, 2017

1 commit

  • Board code cannot call mdiobus_register_board_info() when phylib
    or mdio_device is a loadable module:

    arch/arm/plat-orion/common.o: In function `orion_ge00_switch_init':
    :(.init.text+0x474): undefined reference to `mdiobus_register_board_info'

    I had a number of ideas for how this could be solved, but after the MDIO
    code got split out from PHYLIB it has gotten too hard, so I'm basically
    giving up, and only call the mdiobus_register_board_info() function
    if the MDIO layer is built-in to avoid the link error. This is similar
    to how we handle PHY registration on other ARM platforms.

    Fixes: 90eff9096c01 ("net: phy: Allow splitting MDIO bus/device support from PHYs")
    Fixes: 648ea0134069 ("net: phy: Allow pre-declaration of MDIO devices")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     

07 Feb, 2017

1 commit

  • Utilize the ability to pass board specific MDIO bus information towards a
    particular MDIO device thus allowing us to provide the per-port switch layout
    to the Marvell 88E6XXX switch driver.

    Since we would end-up with conflicting registration paths, do not register the
    "dsa" platform device anymore.

    Note that the MDIO devices registered by code in net/dsa/dsa2.c does not
    parse a dsa_platform_data, but directly take a dsa_chip_data (specific
    to a single switch chip), so we update the different call sites to pass
    this structure down to orion_ge00_switch_init().

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     

17 Oct, 2016

1 commit


14 Sep, 2016

3 commits

  • One of the last users of NO_IRQ on ARM is the switch initialization
    code on orion5x, which sometimes passes a GPIO based IRQ number.

    However, the driver doesn't actually use this number, and according
    to Andrew Lunn never will do it for non-DT based machines, so
    we can simply drop the irq argument.

    Simplifying it further, we can also drop the static platform_device
    and instead call platform_device_register_data(), which in turn
    lets us mark the platform_data structures as __initdata and slightly
    reduce the memory consumption.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     
  • For most devices, we know in advance whether they have an
    interrupt line or not, so we can avoid passing NO_IRQ and
    instead split fill_resources() into two interfaces, with
    only the new fill_resources_irq() function taking an irq
    argument, which it then can use unconditionally.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     
  • Out of the four ethernet devices on mv78xx0, only the first one
    has an error interrupt line, for the other ones we pass NO_IRQ
    and then ignore the argument.

    In order to get closer to complete remove of NO_IRQ, this simply
    drops the unused function arguments.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Andrew Lunn
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     

20 Mar, 2016

1 commit

  • Pull ARM updates from Russell King:
    "Another mixture of changes this time around:

    - Split XIP linker file from main linker file to make it more
    maintainable, and various XIP fixes, and clean up a resulting
    macro.

    - Decompressor cleanups from Masahiro Yamada

    - Avoid printing an error for a missing L2 cache

    - Remove some duplicated symbols in System.map, and move
    vectors/stubs back into kernel VMA

    - Various low priority fixes from Arnd

    - Updates to allow bus match functions to return negative errno
    values, touching some drivers and the driver core. Greg has acked
    these changes.

    - Virtualisation platform udpates form Jean-Philippe Brucker.

    - Security enhancements from Kees Cook

    - Rework some Kconfig dependencies and move PSCI idle management code
    out of arch/arm into drivers/firmware/psci.c

    - ARM DMA mapping updates, touching media, acked by Mauro.

    - Fix places in ARM code which should be using virt_to_idmap() so
    that Keystone2 can work.

    - Fix Marvell Tauros2 to work again with non-DT boots.

    - Provide a delay timer for ARM Orion platforms"

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (45 commits)
    ARM: 8546/1: dma-mapping: refactor to fix coherent+cma+gfp=0
    ARM: 8547/1: dma-mapping: store buffer information
    ARM: 8543/1: decompressor: rename suffix_y to compress-y
    ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile
    ARM: 8541/1: decompressor: drop redundant FORCE in Makefile
    ARM: 8540/1: decompressor: use clean-files instead of extra-y to clean files
    ARM: 8539/1: decompressor: drop more unneeded assignments to "targets"
    ARM: 8538/1: decompressor: drop unneeded assignments to "targets"
    ARM: 8532/1: uncompress: mark putc as inline
    ARM: 8531/1: turn init_new_context into an inline function
    ARM: 8530/1: remove VIRT_TO_BUS
    ARM: 8537/1: drop unused DEBUG_RODATA from XIP_KERNEL
    ARM: 8536/1: mm: hide __start_rodata_section_aligned for non-debug builds
    ARM: 8535/1: mm: DEBUG_RODATA makes no sense with XIP_KERNEL
    ARM: 8534/1: virt: fix hyp-stub build for pre-ARMv7 CPUs
    ARM: make the physical-relative calculation more obvious
    ARM: 8512/1: proc-v7.S: Adjust stack address when XIP_KERNEL
    ARM: 8411/1: Add default SPARSEMEM settings
    ARM: 8503/1: clk_register_clkdev: remove format string interface
    ARM: 8529/1: remove 'i' and 'zi' targets
    ...

    Linus Torvalds
     

19 Feb, 2016

1 commit


27 Jan, 2016

1 commit

  • Implement an ARM delay timer to be used for udelay() on orion legacy
    platforms. This allows us to skip the delay loop calibration at boot.

    It also means that udelay() will be unaffected by CPU frequency changes
    when cpufreq is enabled on these platforms.

    Tested-by: Russell King
    Acked-by: Andrew Lunn
    Signed-off-by: Russell King

    Russell King
     

08 Dec, 2015

2 commits

  • As a preparation for multiplatform support, this enables
    the MULTI_IRQ_HANDLER code unconditionally on dove and
    orion5x, and introduces the respective code on mv78xx0,
    which did not have it so far. The classic entry-macro.S
    files are removed as they are now obsolete.

    Signed-off-by: Arnd Bergmann
    Acked-by: Andrew Lunn
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     
  • The watchdog device node is created in plat-orion/common.c
    but depends on the bridge address that is platform specific,
    so as a preparation for orion multiplatform support, we
    move it out of the common code into orion5x and dove.

    At the moment, dove does not use the watchdog, so I'm marking
    the function as __maybe_unused for the moment. The compiler
    will be able to compile out the device definition this way,
    and we can easily add it later.

    Signed-off-by: Arnd Bergmann
    Acked-by: Andrew Lunn
    Signed-off-by: Gregory CLEMENT

    Arnd Bergmann
     

14 Oct, 2015

1 commit


06 Oct, 2015

1 commit

  • DSA expects the host_dev pointer to be the device structure associated
    with the MDIO bus controller driver. First commit breaking that was
    c3a07134e6aa ("mv643xx_eth: convert to use the Marvell Orion MDIO
    driver"), and then, it got completely under the radar for a while.

    Reported-by: Frans van de Wiel
    Fixes: c3a07134e6aa ("mv643xx_eth: convert to use the Marvell Orion MDIO driver")
    CC: stable@vger.kernel.org
    Signed-off-by: Florian Fainelli
    Signed-off-by: Gregory CLEMENT

    Florian Fainelli
     

16 Sep, 2015

1 commit

  • Most interrupt flow handlers do not use the irq argument. Those few
    which use it can retrieve the irq number from the irq descriptor.

    Remove the argument.

    Search and replace was done with coccinelle and some extra helper
    scripts around it. Thanks to Julia for her help!

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Jiang Liu

    Thomas Gleixner
     

05 Aug, 2015

1 commit

  • …p/tip into next/cleanup

    Merge "ARM: Interrupt cleanups and API change preparation" from Thomas
    Gleixner:

    The following patch series contains the following changes:

    - Consolidation of chained interrupt handler setup/removal

    - Switch to functions which avoid a redundant interrupt
    descriptor lookup

    - Preparation of interrupt flow handlers for the 'irq' argument
    removal

    * 'queue/irq/arm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    ARM/orion/gpio: Prepare gpio_irq_handler for irq argument removal
    ARM/pxa: Prepare balloon3_irq_handler for irq argument removal
    ARM/pxa: Prepare *_irq_handler for irq argument removal
    ARM/dove: Prepare pmu_irq_handler for irq argument removal
    ARM/sa1111: Prepare sa1111_irq_handler for irq argument removal
    ARM/locomo: Prepare locomo_handler for irq argument removal
    ARM, irq: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
    ARM/LPC32xx: Use irq_set_handler_locked()
    ARM/irq: Use access helper irq_data_get_affinity_mask()
    ARM/locomo: Consolidate chained IRQ handler install/remove
    ARM/orion: Consolidate chained IRQ handler install/remove

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

17 Jul, 2015

1 commit

  • Migrate orion driver to the new 'set-state' interface provided by
    clockevents core, the earlier 'set-mode' interface is marked obsolete
    now.

    This also enables us to implement callbacks for new states of clockevent
    devices, for example: ONESHOT_STOPPED.

    Cc: Jason Cooper
    Cc: Andrew Lunn
    Cc: Sebastian Hesselbarth
    Cc: Gregory Clement
    Signed-off-by: Viresh Kumar

    Viresh Kumar
     

13 Jul, 2015

3 commits

  • The irq argument of most interrupt flow handlers is unused or merily
    used instead of a local variable. The handlers which need the irq
    argument can retrieve the irq number from the irq descriptor.

    In this case the irq argument is shadowed by a local variable already,
    so just rename it.

    Search and update was done with coccinelle and the invaluable help of
    Julia Lawall.

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Jiang Liu
    Cc: Russell King
    Cc: linux-arm-kernel@lists.infradead.org

    Thomas Gleixner
     
  • Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we
    already have a pointer to corresponding irq_desc.

    Signed-off-by: Jiang Liu
    Cc: Russell King
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Thomas Gleixner

    Jiang Liu
     
  • Chained irq handlers usually set up handler data as well. We now have
    a function to set both under irq_desc->lock. Replace the two calls
    with one.

    Search and conversion was done with coccinelle.

    Reported-by: Russell King
    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Russell King
    Cc: linux-arm-kernel@lists.infradead.org

    Thomas Gleixner
     

06 May, 2015

1 commit


11 Dec, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "This time we have some more new material than we used to have during
    the last couple of development cycles.

    The most important part of it to me is the introduction of a unified
    interface for accessing device properties provided by platform
    firmware. It works with Device Trees and ACPI in a uniform way and
    drivers using it need not worry about where the properties come from
    as long as the platform firmware (either DT or ACPI) makes them
    available. It covers both devices and "bare" device node objects
    without struct device representation as that turns out to be necessary
    in some cases. This has been in the works for quite a few months (and
    development cycles) and has been approved by all of the relevant
    maintainers.

    On top of that, some drivers are switched over to the new interface
    (at25, leds-gpio, gpio_keys_polled) and some additional changes are
    made to the core GPIO subsystem to allow device drivers to manipulate
    GPIOs in the "canonical" way on platforms that provide GPIO
    information in their ACPI tables, but don't assign names to GPIO lines
    (in which case the driver needs to do that on the basis of what it
    knows about the device in question). That also has been approved by
    the GPIO core maintainers and the rfkill driver is now going to use
    it.

    Second is support for hardware P-states in the intel_pstate driver.
    It uses CPUID to detect whether or not the feature is supported by the
    processor in which case it will be enabled by default. However, it
    can be disabled entirely from the kernel command line if necessary.

    Next is support for a platform firmware interface based on ACPI
    operation regions used by the PMIC (Power Management Integrated
    Circuit) chips on the Intel Baytrail-T and Baytrail-T-CR platforms.
    That interface is used for manipulating power resources and for
    thermal management: sensor temperature reporting, trip point setting
    and so on.

    Also the ACPI core is now going to support the _DEP configuration
    information in a limited way. Basically, _DEP it supposed to reflect
    off-the-hierarchy dependencies between devices which may be very
    indirect, like when AML for one device accesses locations in an
    operation region handled by another device's driver (usually, the
    device depended on this way is a serial bus or GPIO controller). The
    support added this time is sufficient to make the ACPI battery driver
    work on Asus T100A, but it is general enough to be able to cover some
    other use cases in the future.

    Finally, we have a new cpufreq driver for the Loongson1B processor.

    In addition to the above, there are fixes and cleanups all over the
    place as usual and a traditional ACPICA update to a recent upstream
    release.

    As far as the fixes go, the ACPI LPSS (Low-power Subsystem) driver for
    Intel platforms should be able to handle power management of the DMA
    engine correctly, the cpufreq-dt driver should interact with the
    thermal subsystem in a better way and the ACPI backlight driver should
    handle some more corner cases, among other things.

    On top of the ACPICA update there are fixes for race conditions in the
    ACPICA's interrupt handling code which might lead to some random and
    strange looking failures on some systems.

    In the cleanups department the most visible part is the series of
    commits targeted at getting rid of the CONFIG_PM_RUNTIME configuration
    option. That was triggered by a discussion regarding the generic
    power domains code during which we realized that trying to support
    certain combinations of PM config options was painful and not really
    worth it, because nobody would use them in production anyway. For
    this reason, we decided to make CONFIG_PM_SLEEP select
    CONFIG_PM_RUNTIME and that lead to the conclusion that the latter
    became redundant and CONFIG_PM could be used instead of it. The
    material here makes that replacement in a major part of the tree, but
    there will be at least one more batch of that in the second part of
    the merge window.

    Specifics:

    - Support for retrieving device properties information from ACPI _DSD
    device configuration objects and a unified device properties
    interface for device drivers (and subsystems) on top of that. As
    stated above, this works with Device Trees and ACPI and allows
    device drivers to be written in a platform firmware (DT or ACPI)
    agnostic way. The at25, leds-gpio and gpio_keys_polled drivers are
    now going to use this new interface and the GPIO subsystem is
    additionally modified to allow device drivers to assign names to
    GPIO resources returned by ACPI _CRS objects (in case _DSD is not
    present or does not provide the expected data). The changes in
    this set are mostly from Mika Westerberg, Rafael J Wysocki, Aaron
    Lu, and Darren Hart with some fixes from others (Fabio Estevam,
    Geert Uytterhoeven).

    - Support for Hardware Managed Performance States (HWP) as described
    in Volume 3, section 14.4, of the Intel SDM in the intel_pstate
    driver. CPUID is used to detect whether or not the feature is
    supported by the processor. If supported, it will be enabled
    automatically unless the intel_pstate=no_hwp switch is present in
    the kernel command line. From Dirk Brandewie.

    - New Intel Broadwell-H ID for intel_pstate (Dirk Brandewie).

    - Support for firmware interface based on ACPI operation regions used
    by the PMIC chips on the Intel Baytrail-T and Baytrail-T-CR
    platforms for power resource control and thermal management (Aaron
    Lu).

    - Limited support for retrieving off-the-hierarchy dependencies
    between devices from ACPI _DEP device configuration objects and
    deferred probing support for the ACPI battery driver based on the
    _DEP information to make that driver work on Asus T100A (Lan
    Tianyu).

    - New cpufreq driver for the Loongson1B processor (Kelvin Cheung).

    - ACPICA update to upstream revision 20141107 which only affects
    tools (Bob Moore).

    - Fixes for race conditions in the ACPICA's interrupt handling code
    and in the ACPI code related to system suspend and resume (Lv Zheng
    and Rafael J Wysocki).

    - ACPI core fix for an RCU-related issue in the ioremap() regions
    management code that slowed down significantly after CPUs had been
    allowed to enter idle states even if they'd had RCU callbakcs
    queued and triggered some problems in certain proprietary graphics
    driver (and elsewhere). The fix replaces synchronize_rcu() in that
    code with synchronize_rcu_expedited() which makes the issue go
    away. From Konstantin Khlebnikov.

    - ACPI LPSS (Low-Power Subsystem) driver fix to handle power
    management of the DMA engine included into the LPSS correctly. The
    problem is that the DMA engine doesn't have ACPI PM support of its
    own and it simply is turned off when the last LPSS device having
    ACPI PM support goes into D3cold. To work around that, the PM
    domain used by the ACPI LPSS driver is redesigned so at least one
    device with ACPI PM support will be on as long as the DMA engine is
    in use. From Andy Shevchenko.

    - ACPI backlight driver fix to avoid using it on "Win8-compatible"
    systems where it doesn't work and where it was used by default by
    mistake (Aaron Lu).

    - Assorted minor ACPI core fixes and cleanups from Tomasz Nowicki,
    Sudeep Holla, Huang Rui, Hanjun Guo, Fabian Frederick, and Ashwin
    Chaugule (mostly related to the upcoming ARM64 support).

    - Intel RAPL (Running Average Power Limit) power capping driver fixes
    and improvements including new processor IDs (Jacob Pan).

    - Generic power domains modification to power up domains after
    attaching devices to them to meet the expectations of device
    drivers and bus types assuming devices to be accessible at probe
    time (Ulf Hansson).

    - Preliminary support for controlling device clocks from the generic
    power domains core code and modifications of the ARM/shmobile
    platform to use that feature (Ulf Hansson).

    - Assorted minor fixes and cleanups of the generic power domains core
    code (Ulf Hansson, Geert Uytterhoeven).

    - Assorted minor fixes and cleanups of the device clocks control code
    in the PM core (Geert Uytterhoeven, Grygorii Strashko).

    - Consolidation of device power management Kconfig options by making
    CONFIG_PM_SLEEP select CONFIG_PM_RUNTIME and removing the latter
    which is now redundant (Rafael J Wysocki and Kevin Hilman). That
    is the first batch of the changes needed for this purpose.

    - Core device runtime power management support code cleanup related
    to the execution of callbacks (Andrzej Hajda).

    - cpuidle ARM support improvements (Lorenzo Pieralisi).

    - cpuidle cleanup related to the CPUIDLE_FLAG_TIME_VALID flag and a
    new MAINTAINERS entry for ARM Exynos cpuidle (Daniel Lezcano and
    Bartlomiej Zolnierkiewicz).

    - New cpufreq driver callback (->ready) to be executed when the
    cpufreq core is ready to use a given policy object and cpufreq-dt
    driver modification to use that callback for cooling device
    registration (Viresh Kumar).

    - cpufreq core fixes and cleanups (Viresh Kumar, Vince Hsu, James
    Geboski, Tomeu Vizoso).

    - Assorted fixes and cleanups in the cpufreq-pcc, intel_pstate,
    cpufreq-dt, pxa2xx cpufreq drivers (Lenny Szubowicz, Ethan Zhao,
    Stefan Wahren, Petr Cvek).

    - OPP (Operating Performance Points) framework modification to allow
    OPPs to be removed too and update of a few cpufreq drivers
    (cpufreq-dt, exynos5440, imx6q, cpufreq) to remove OPPs (added
    during initialization) on driver removal (Viresh Kumar).

    - Hibernation core fixes and cleanups (Tina Ruchandani and Markus
    Elfring).

    - PM Kconfig fix related to CPU power management (Pankaj Dubey).

    - cpupower tool fix (Prarit Bhargava)"

    * tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (120 commits)
    i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
    dmaengine / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tools: cpupower: fix return checks for sysfs_get_idlestate_count()
    drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    e1000e / igb / PM: Eliminate CONFIG_PM_RUNTIME
    MMC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    MFD / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    media / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    input / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    leds: leds-gpio: Fix multiple instances registration without 'label' property
    iio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    i2c-hid / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hwrandom / exynos / PM: Use CONFIG_PM in #ifdef
    block / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    USB / PM: Drop CONFIG_PM_RUNTIME from the USB core
    PM: Merge the SET*_RUNTIME_PM_OPS() macros
    ...

    Linus Torvalds
     

09 Dec, 2014

1 commit

  • * device-properties:
    leds: leds-gpio: Fix multiple instances registration without 'label' property
    leds: leds-gpio: Fix legacy GPIO number case
    ACPI / property: Drop size_prop from acpi_dev_get_property_reference()
    leds: leds-gpio: Convert gpio_blink_set() to use GPIO descriptors
    ACPI / GPIO: Document ACPI GPIO mappings API
    net: rfkill: gpio: Add default GPIO driver mappings for ACPI
    ACPI / GPIO: Driver GPIO mappings for ACPI GPIOs
    input: gpio_keys_polled: Make use of device property API
    leds: leds-gpio: Make use of device property API
    gpio: Support for unified device properties interface
    Driver core: Unified interface for firmware node properties
    input: gpio_keys_polled: Add support for GPIO descriptors
    leds: leds-gpio: Add support for GPIO descriptors
    gpio: sch: Consolidate core and resume banks
    gpio / ACPI: Add support for _DSD device properties
    misc: at25: Make use of device property API
    ACPI: Allow drivers to match using Device Tree compatible property
    Driver core: Unified device properties interface for platform firmware
    ACPI: Add support for device specific properties

    Rafael J. Wysocki
     

26 Nov, 2014

1 commit

  • The commit "genirq: Generic chip: Change irq_reg_{readl,writel}
    arguments" modified the API. In the same tome the
    arch/arm/plat-orion/gpio.c file received a fix with the use of the old
    API: "ARM: orion: Fix for certain sequence of request_irq can cause
    irq storm". This commit fixes the use of the API.

    Signed-off-by: Gregory CLEMENT
    Acked-by: Olof Johansson
    Link: https://lkml.kernel.org/r/1416928752-24529-1-git-send-email-gregory.clement@free-electrons.com
    Signed-off-by: Jason Cooper

    Gregory CLEMENT
     

05 Nov, 2014

1 commit

  • Commit 21f2aae91e902aad ("leds: leds-gpio: Add support for GPIO
    descriptors") already converted most of the driver to use GPIO descriptors.
    What is still missing is the platform specific hook gpio_blink_set() and
    board files which pass legacy GPIO numbers to this driver in platform data.

    In this patch we handle the former and convert gpio_blink_set() to take
    GPIO descriptor instead. In order to do this we convert the existing four
    users to accept GPIO descriptor and translate it to legacy GPIO number in
    the platform code. This effectively "pushes" legacy GPIO number usage from
    the driver to platforms.

    Also add comment to the remaining block describing that it is legacy code
    path and we are getting rid of it eventually.

    Suggested-by: Linus Walleij
    Signed-off-by: Mika Westerberg
    Acked-by: Andrew Lunn
    Reviewed-by: Linus Walleij
    Acked-by: Alexandre Courbot
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     

02 Nov, 2014

1 commit

  • The problem is that hardware handled by arm/plat-orion/gpio.c,
    require ack for edge irq, and no ack for level irq.

    The code handle this issue, by two "struct irq_chip_type" per
    one "struct irq_chip_generic". For one "struct irq_chip_generic"
    irq_ack pointer is setted, for another it is NULL.

    But we have only one mask_cache per two "struct irq_chip_type".
    So if we
    1)unmask interrupt A for "edge type" trigger,
    2)unmask interrupt B for "level type" trigger,
    3)unmask interrupt C for "edge type",

    we, because of usage of generic irq_gc_mask_clr_bit/irq_gc_mask_set_bit,
    have hardware configured to trigger interrupt B on "edge type",
    because of shared mask_cache. But kernel think that B is "level type",
    so when interrupt B occur via "edge" reason, we don't ack it,
    and B triggered again and again.

    Signed-off-by: Evgeniy A. Dushistov
    Link: https://lkml.kernel.org/r/20140726155659.GA22977@fifteen
    Signed-off-by: Jason Cooper

    Evgeniy Dushistov
     

16 Sep, 2014

1 commit

  • This change makes it so that instead of passing and storing a mii_bus we
    instead pass and store a host_dev. From there we can test to determine the
    exact type of device, and can verify it is the correct device for our switch.

    So for example it would be possible to pass a device pointer from a pci_dev
    and instead of checking for a PHY ID we could check for a vendor and/or device
    ID.

    Signed-off-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Alexander Duyck
     

27 Apr, 2014

3 commits

  • Following the move to pure DT-based probing of the GPIO controllers on
    Orion5x, some code in plat-orion/orion-gpio.c can be removed as it is
    no longer used.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Sebastian Hesselbarth
    Link: https://lkml.kernel.org/r/1398202002-28530-39-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • Following the move of the Orion5x Device Tree support to use
    irqchip_init() for the interrupt controller probing, the
    plat-orion/irq.c code for DT-probing of the interrupt controller is no
    longer necessary, so we can get rid of it.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Sebastian Hesselbarth
    Link: https://lkml.kernel.org/r/1398202002-28530-38-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • Moving to the Device Tree implies having CONFIG_MULTI_IRQ_HANDLER
    enabled, even for non-DT platforms (if we want both DT and non-DT
    platforms to be supported in a single kernel).

    However, the common CONFIG_MULTI_IRQ_HANDLER handler for non-DT
    platforms in plat-orion/irq.c doesn't match the needs of
    Orion5x. Also, it doesn't make much sense for orion_irq_init() to
    register the multi-IRQ handler: orion_irq_init() is called once for
    each IRQ cause/mask tuple, while the multi-IRQ handler only needs to
    be registered once.

    To solve this problem, we move the multi-IRQ handle in per-platform
    code: mach-kirkwood/irq.c and mach-dove/irq.c. The Orion5x variant
    will be introduced in a followup commit. Of course, this code will
    ultimately be completely removed once all boards are converted to the
    Device Tree.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Sebastian Hesselbarth
    Link: https://lkml.kernel.org/r/1398202002-28530-23-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     

06 Apr, 2014

1 commit

  • Pull ARM SoC driver changes from Arnd Bergmann:
    "These changes are mostly for ARM specific device drivers that either
    don't have an upstream maintainer, or that had the maintainer ask us
    to pick up the changes to avoid conflicts.

    A large chunk of this are clock drivers (bcm281xx, exynos, versatile,
    shmobile), aside from that, reset controllers for STi as well as a
    large rework of the Marvell Orion/EBU watchdog driver are notable"

    * tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits)
    Revert "dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac."
    Revert "net: stmmac: Add SOCFPGA glue driver"
    ARM: shmobile: r8a7791: Fix SCIFA3-5 clocks
    ARM: STi: Add reset controller support to mach-sti Kconfig
    drivers: reset: stih416: add softreset controller
    drivers: reset: stih415: add softreset controller
    drivers: reset: Reset controller driver for STiH416
    drivers: reset: Reset controller driver for STiH415
    drivers: reset: STi SoC system configuration reset controller support
    dts: socfpga: Add sysmgr node so the gmac can use to reference
    dts: socfpga: Add support for SD/MMC on the SOCFPGA platform
    reset: Add optional resets and stubs
    ARM: shmobile: r7s72100: fix bus clock calculation
    Power: Reset: Generalize qnap-poweroff to work on Synology devices.
    dts: socfpga: Update clock entry to support multiple parents
    ARM: socfpga: Update socfpga_defconfig
    dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac.
    net: stmmac: Add SOCFPGA glue driver
    watchdog: orion_wdt: Use %pa to print 'phys_addr_t'
    drivers: cci: Export CCI PMU revision
    ...

    Linus Torvalds
     

23 Feb, 2014

1 commit

  • With the gradual move to DT, kirkwood has become a lot less dependent
    on plat-orion. cache-feroceon-l2.h is the last dependency. Move it out
    so we can drop plat-orion when building DT only kirkwood boards.

    Signed-off-by: Andrew Lunn
    Acked-by: Arnd Bergmann
    Tested-by: Jason Gunthorpe
    Signed-off-by: Jason Cooper

    Andrew Lunn
     

22 Feb, 2014

1 commit

  • In order to support other SoC, it's required to distinguish
    the 'control' timer register, from the 'rstout' register
    that enables system reset on watchdog expiration.

    To prevent a compatibility break, this commit adds a fallback
    to a hardcoded RSTOUT address.

    Reviewed-by: Guenter Roeck
    Tested-by: Sebastian Hesselbarth
    Tested-by: Willy Tarreau
    Signed-off-by: Ezequiel Garcia
    Acked-by: Wim Van Sebroeck
    Tested-By: Jason Gunthorpe
    Signed-off-by: Jason Cooper

    Ezequiel Garcia
     

01 Feb, 2014

1 commit

  • mvebu fixes for v3.13 (incremental #2)

    - allow building and booting DT and non-DT plat-orion SoCs
    - catch proper return value for kirkwood_pm_init()
    - properly check return of of_iomap to solve boot hangs (mirabox, others)
    - remove a compile warning on Armada 370 with non-SMP.

    * tag 'mvebu-fixes-3.13-2' of git://git.infradead.org/linux-mvebu:
    ARM: mvebu: fix compilation warning on Armada 370 (i.e. non-SMP)
    ARM: mvebu: Fix kernel hang in mvebu_soc_id_init() when of_iomap failed
    ARM: kirkwood: kirkwood_pm_init() should return void
    ARM: orion: provide C-style interrupt handler for MULTI_IRQ_HANDLER

    Signed-off-by: Olof Johansson

    Olof Johansson