03 Sep, 2016

1 commit


29 Aug, 2016

3 commits


08 Aug, 2016

1 commit

  • A recent commit (inadvertently?) changed how failed probe of a gpmc
    child node was handled. Instead of proceeding with setting up any other
    children as before, a single error now aborts the whole process.

    This change broke networking on some Overo boards due to probe failing
    for an unrelated nand node. This second issue should obviously be
    fixed, but let's restore the old behaviour of allowing child-node
    probe to fail to avoid further similar breakage on other systems.

    Fixes: d2d00862dfbb ("memory: omap-gpmc: Support general purpose input
    for WAITPINs")

    Cc: stable@vger.kernel.org # v4.7+
    Signed-off-by: Johan Hovold
    Signed-off-by: Roger Quadros

    Johan Hovold
     

02 Aug, 2016

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for ARM SoCs.

    A slew of changes this release cycle. The reset driver tree, that we
    merge through arm-soc for historical reasons, is also sizable this
    time around.

    Among the changes:

    - clps711x: Treewide changes to compatible strings, merged here for simplicity.
    - Qualcomm: SCM firmware driver cleanups, move to platform driver
    - ux500: Major cleanups, removal of old mach-specific infrastructure.
    - Atmel external bus memory driver
    - Move of brcmstb platform to the rest of bcm
    - PMC driver updates for tegra, various fixes and improvements
    - Samsung platform driver updates to support 64-bit Exynos platforms
    - Reset controller cleanups moving to devm_reset_controller_register() APIs
    - Reset controller driver for Amlogic Meson
    - Reset controller driver for Hisilicon hi6220
    - ARM SCPI power domain support"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
    ARM: ux500: consolidate base platform files
    ARM: ux500: move soc_id driver to drivers/soc
    ARM: ux500: call ux500_setup_id later
    ARM: ux500: consolidate soc_device code in id.c
    ARM: ux500: remove cpu_is_u* helpers
    ARM: ux500: use CLK_OF_DECLARE()
    ARM: ux500: move l2x0 init to .init_irq
    mfd: db8500 stop passing around platform data
    ASoC: ab8500-codec: remove platform data based probe
    ARM: ux500: move ab8500_regulator_plat_data into driver
    ARM: ux500: remove unused regulator data
    soc: raspberrypi-power: add CONFIG_OF dependency
    firmware: scpi: add CONFIG_OF dependency
    video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
    input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
    pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
    serial: clps711x: Changing the compatibility string to match with the smallest supported chip
    irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
    clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
    clk: clps711x: Changing the compatibility string to match with the smallest supported chip
    ...

    Linus Torvalds
     

31 Jul, 2016

1 commit

  • Pull DeviceTree updates from Rob Herring:

    - remove most of_platform_populate() calls in arch code. Now the DT
    core code calls it in the default case and platforms only need to
    call it if they have special needs

    - use pr_fmt on all the DT core print statements

    - CoreSight binding doc improvements to block name descriptions

    - add dt_to_config script which can parse dts files and list
    corresponding kernel config options

    - fix memory leak hit with a PowerMac DT

    - correct a bunch of STMicro compatible strings to use the correct
    vendor prefix

    - fix DA9052 PMIC binding doc to match what is actually used in dts
    files

    * tag 'devicetree-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (35 commits)
    documentation: da9052: Update regulator bindings names to match DA9052/53 DTS expectations
    xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"
    xtensa: Fix build error due to missing include file
    MIPS: ath79: Add missing include file
    Fix spelling errors in Documentation/devicetree
    ARM: dts: fix STMicroelectronics compatible strings
    powerpc/dts: fix STMicroelectronics compatible strings
    Documentation: dt: i2c: use correct STMicroelectronics vendor prefix
    scripts/dtc: dt_to_config - kernel config options for a devicetree
    of: fdt: mark unflattened tree as detached
    of: overlay: add resolver error prints
    coresight: document binding acronyms
    Documentation/devicetree: document cavium-pip rx-delay/tx-delay properties
    of: use pr_fmt prefix for all console printing
    of/irq: Mark initialised interrupt controllers as populated
    of: fix memory leak related to safe_name()
    Revert "of/platform: export of_default_bus_match_table"
    of: unittest: use of_platform_default_populate() to populate default bus
    memory: omap-gpmc: use of_platform_default_populate() to populate default bus
    bus: uniphier-system-bus: use of_platform_default_populate() to populate default bus
    ...

    Linus Torvalds
     

24 Jun, 2016

1 commit


17 Jun, 2016

2 commits

  • The gpio related functions were mistakenly built only if CONFIG_OF
    is defined. They are needed even otherwise and will cause build
    failures if CONFIG_OF is not defined. Move the gpio functions
    outside #ifdef CONFIG_OF.

    Fixes: d2d00862dfbb ("memory: omap-gpmc: Support general purpose input for WAITPINs")

    Signed-off-by: Roger Quadros

    Roger Quadros
     
  • The Kconfig currently controlling compilation of this code is:

    drivers/memory/Kconfig:config OMAP_GPMC
    drivers/memory/Kconfig: bool

    ...meaning that it currently is not being built as a module by anyone.

    Lets remove the modular code that is essentially orphaned, so that
    when reading the driver there is no doubt it is builtin-only.

    Since module_init was not in use by this code, the init ordering
    remains unchanged with this commit.

    Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

    We don't replace module.h with init.h since the file already has that.

    Cc: Roger Quadros
    Cc: Tony Lindgren
    Cc: linux-omap@vger.kernel.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

16 Jun, 2016

1 commit

  • In the omap gpmc driver it can be noticed that GPMC_CONFIG4_OEEXTRADELAY
    is overwritten by the WEEXTRADELAY value from the device tree and
    GPMC_CONFIG4_WEEXTRADELAY is not updated by the value from the device
    tree.

    As a consequence, the memory accesses cannot be configured properly when
    the extra delay are needed for OE and WE.

    Fix the update of GPMC_CONFIG4_WEEXTRADELAY with the value from the
    device tree file and prevents GPMC_CONFIG4_OEXTRADELAY
    being overwritten by the WEXTRADELAY value from the device tree.

    Cc: stable@vger.kernel.org
    Signed-off-by: Ocquidant, Sebastien
    Signed-off-by: Roger Quadros

    Ocquidant, Sebastien
     

20 Apr, 2016

1 commit


15 Apr, 2016

9 commits


08 Feb, 2016

1 commit

  • In order to support extended timings parameters on hardware supporting the
    "AAD" mode like the AM335x or DM816x, add these entries into the GPMC driver
    if the hardware is capable.

    Tested on DM816x and AM335x.

    Signed-off-by: Neil Armstrong
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Neil Armstrong
     

13 Oct, 2015

1 commit


02 Sep, 2015

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "New or improved SoC support:

    - add support for Atmel's SAMA5D2 SoC
    - add support for Freescale i.MX6UL
    - improved support for TI's DM814x platform
    - misc fixes and improvements for RockChip platforms
    - Marvell MVEBU suspend/resume support

    A few driver changes that ideally would belong in the drivers branch
    are also here (acked by appropriate maintainers):

    - power key input driver for Freescale platforms (svns)
    - RTC driver updates for Freescale platforms (svns/mxc)
    - clk fixes for TI DM814/816X

    + a bunch of other changes for various platforms"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
    ARM: rockchip: pm: Fix PTR_ERR() argument
    ARM: imx: mach-imx6ul: Fix allmodconfig build
    clk: ti: fix for definition movement
    ARM: uniphier: drop v7_invalidate_l1 call at secondary entry
    memory: kill off set_irq_flags usage
    rtc: snvs: select option REGMAP_MMIO
    ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE
    ARM: BCM: Enable ARM erratum 798181 for BRCMSTB
    ARM: OMAP2+: Fix power domain operations regression caused by 81xx
    ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend
    ARM: rockchip: set correct stabilization thresholds in suspend
    ARM: rockchip: rename osc_switch_to_32k variable
    ARM: imx6ul: add fec MAC refrence clock and phy fixup init
    ARM: imx6ul: add fec bits to GPR syscon definition
    rtc: mxc: add support of device tree
    dt-binding: document the binding for mxc rtc
    rtc: mxc: use a second rtc clock
    ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of irq_set_wake callback
    soc: mediatek: Fix SCPSYS compilation
    ARM: at91/soc: add basic support for new sama5d2 SoC
    ...

    Linus Torvalds
     

13 Aug, 2015

1 commit

  • set_irq_flags is ARM specific with custom flags which have genirq
    equivalents. Convert drivers to use the genirq interfaces directly, so we
    can kill off set_irq_flags. The translation of flags is as follows:

    IRQF_VALID -> !IRQ_NOREQUEST
    IRQF_PROBE -> !IRQ_NOPROBE
    IRQF_NOAUTOEN -> IRQ_NOAUTOEN

    For IRQs managed by an irqdomain, the irqdomain core code handles clearing
    and setting IRQ_NOREQUEST already, so there is no need to do this in
    .map() functions and we can simply remove the set_irq_flags calls. Some
    users also set IRQ_NOPROBE and this has been maintained although it is not
    clear that is really needed. There appears to be a great deal of blind
    copy and paste of this code.

    Signed-off-by: Rob Herring
    Acked-by: Roger Quadros
    Cc: linux-omap@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Rob Herring
     

12 Aug, 2015

1 commit

  • If for some reason the GPMC device hasn't been probed yet, gpmc_base is
    going to be NULL. Because there's no context yet to be saved, just turn
    these functions into no-ops until that device gets probed.

    Unable to handle kernel NULL pointer dereference at virtual address 00000010
    pgd = c0204000
    [00000010] *pgd=00000000
    Internal error: Oops: 5 [#1] SMP ARM
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc5-next-20150804-05947-g23f38fe8eda9 #1
    Hardware name: Generic OMAP3-GP (Flattened Device Tree)
    task: c0e623e8 ti: c0e5c000 task.ti: c0e5c000
    PC is at omap3_gpmc_save_context+0x8/0xc4
    LR is at omap_sram_idle+0x154/0x23c
    pc : [] lr : [] psr: 60000193
    sp : c0e5df40 ip : c0f92a80 fp : c0999eb0
    r10: c0e57364 r9 : c0e66f14 r8 : 00000003
    r7 : 00000000 r6 : 00000003 r5 : 00000000 r4 : c0f5f174
    r3 : c0fa4fe8 r2 : 00000000 r1 : 00000000 r0 : fa200280
    Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 10c5387d Table: 80204019 DAC: 00000015
    Process swapper/0 (pid: 0, stack limit = 0xc0e5c220)
    Stack: (0xc0e5df40 to 0xc0e5e000)
    df40: 00000000 c0e66ef8 c0f5f1a4 00000000 00000003 c02333a4 c3813822 00000000
    df60: 00000000 c0e5a5c8 cfb8a5d0 c07f0c44 0e4f1d7e 00000000 00000000 00000000
    df80: c3813822 00000000 cfb8a5d0 c0e5e4e4 cfb8a5d0 c0e66f14 c0e5a5c8 c0e5e54c
    dfa0: c0e5e544 c0e57364 c0999eb0 c0277758 000000fa c0f5d000 00000000 c0d61c18
    dfc0: ffffffff ffffffff 00000000 c0d61674 00000000 c0df7a48 00000000 c0f5d5d4
    dfe0: c0e5e4c0 c0df7a44 c0e634f8 80204059 00000000 8020807c 00000000 00000000
    [] (omap3_gpmc_save_context) from [] (omap_sram_idle+0x154/0x23c)
    [] (omap_sram_idle) from [] (omap3_enter_idle_bm+0xec/0x1a8)
    [] (omap3_enter_idle_bm) from [] (cpuidle_enter_state+0xbc/0x284)
    [] (cpuidle_enter_state) from [] (cpu_startup_entry+0x174/0x24c)
    [] (cpu_startup_entry) from [] (start_kernel+0x358/0x3c0)
    [] (start_kernel) from [] (0x8020807c)
    Code: c0ccace8 c0ccacc0 e59f30b4 e5932000 (e5921010)

    Signed-off-by: Tomeu Vizoso
    Suggested-by: Javier Martinez Canillas
    Reviewed-by: Javier Martinez Canillas
    Acked-by: Roger Quadros
    [tony@atomide.com: updated description as suggested by Javier]
    Signed-off-by: Tony Lindgren

    Tomeu Vizoso
     

06 Jul, 2015

1 commit


02 Jun, 2015

2 commits

  • We support decoding the bootloader values if DEBUG is defined.
    But we also need to change the struct omap_hwmod flags to have
    HWMOD_INIT_NO_RESET to avoid the GPMC being reset during the
    boot. Otherwise just the default timings will be displayed
    instead of the bootloader configured timings.

    This also allows us to clean up the various GPMC related
    hwmod flags. For debugging, we only need HWMOD_INIT_NO_RESET,
    and HWMOD_INIT_NO_IDLE is not needed.

    Cc: Brian Hutchinson
    Cc: Paul Walmsley
    Cc: Roger Quadros
    Signed-off-by: Tony Lindgren
    Signed-off-by: Paul Walmsley

    Tony Lindgren
     
  • We currently artificially limit the parsing of GPMC connected
    devices based on the device name. Let's stop doing that, it's
    confusing as adding devices to .dts files with using normal
    names like fpga and usb will currently cause them to not probe.

    Cc: Roger Quadros
    Reported-by: Brian Hutchinson
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

06 Mar, 2015

8 commits

  • GPMC_CONFIG1_i parameters CLKACTIVATIONTIME and WAITMONITORINGTIME
    have reserved values.
    Raise an error if calculated timings try to program reserved values.

    GPMC_CONFIG1_i ATTACHEDDEVICEPAGELENGTH and DEVICESIZE were already checked
    when parsing the DT.

    Explicitly comment invalid values on gpmc_cs_show_timings for
    -CLKACTIVATIONTIME
    -WAITMONITORINGTIME
    -DEVICESIZE
    -ATTACHEDDEVICEPAGELENGTH

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • The WAITMONITORINGTIME is expressed as a number of GPMC_CLK clock cycles,
    even though the access is defined as asynchronous, and no GPMC_CLK clock
    is provided to the external device. Still, GPMCFCLKDIVIDER is used as a divider
    for the GPMC clock, so it must be programmed to define the
    correct WAITMONITORINGTIME delay.

    This patch correctly computes WAITMONITORINGTIME in GPMC_CLK cycles instead of GPMC_FCLK cycles,
    both during programming (gpmc_cs_set_timings) and during retrieval (gpmc_cs_show_timings).

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • The WAITMONITORINGTIME is expressed as a number of GPMC_CLK clock cycles,
    even though the access is defined as asynchronous, and no GPMC_CLK clock
    is provided to the external device. Still, GPMCFCLKDIVIDER is used as a divider
    for the GPMC clock, so it must be programmed to define the
    correct WAITMONITORINGTIME delay.

    Calculate GPMCFCLKDIVIDER independent of gpmc,sync-clk-ps in DT for
    pure asynchronous accesses, i.e. both read and write asynchronous.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • The WAITMONITORINGTIME is expressed as a number of GPMC_CLK clock cycles,
    even though the access is defined as asynchronous, and no GPMC_CLK clock
    is provided to the external device. Still, GPMCFCLKDIVIDER is used as a divider
    for the GPMC clock, so it must be programmed to define the
    correct WAITMONITORINGTIME delay.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • DTS output was formatted to require additional work when copy-pasting into DTS.
    Nano-second timings were replaced with interval of values that produce the same
    number of clock ticks.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • GPMC debug output is aligned to 10 characters for field names.
    However, some fields have bigger names, screwing up the alignment.
    Consequently, alignment was changed to longest field name (17 chars) for now.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • This patch adds support for spawning buses as children of the GPMC.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     
  • OMAP2+ GPMC driver undefines DEBUG, which makes it unnecessarily
    hard to turn DEBUG on. Remove the offending lines.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     

25 Feb, 2015

2 commits

  • Fix sparse warning:
    warning: symbol 'gpmc_cs_get_name' was not declared. Should it be static?

    Signed-off-by: Semen Protsenko
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Semen Protsenko
     
  • Some GPMC_CONFIG7 register bits marked as "RESERVED", means they
    shouldn't be overwritten. A typical approach to handle such bits called
    "Read-Modify-Write". Writing procedure used in gpmc_cs_set_memconf()
    utilizes RMW technique, but implemented incorrectly. Due to obvious typo
    in code read register value is being rewritten by another value, which
    leads to loss of read RESERVED bits. This patch fixes this.

    While at it, replace magic numbers with named constants to improve code
    readability.

    Signed-off-by: Semen Protsenko
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Semen Protsenko
     

15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds