10 Jan, 2012

1 commit

  • New feature development

    This adds support for new features, and contains stuff from most
    platforms. A number of these patches could have fit into other
    branches, too, but were small enough not to cause too much
    confusion here.

    * tag 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    mfd/db8500-prcmu: remove support for early silicon revisions
    ARM: ux500: fix the smp_twd clock calculation
    ARM: ux500: remove support for early silicon revisions
    ARM: ux500: update register files
    ARM: ux500: register DB5500 PMU dynamically
    ARM: ux500: update ASIC detection for U5500
    ARM: ux500: support DB8520
    ARM: picoxcell: implement watchdog restart
    ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C
    ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP4
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
    ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3
    ARM: Orion: Remove address map info from all platform data structures
    ARM: Orion: Get address map from plat-orion instead of via platform_data
    ARM: Orion: mbus_dram_info consolidation
    ARM: Orion: Consolidate the address map setup
    ARM: Kirkwood: Add configuration for MPP12 as GPIO
    ARM: Kirkwood: Recognize A1 revision of 6282 chip
    ARM: ux500: update the MOP500 GPIO assignments
    ...

    Linus Torvalds
     

05 Jan, 2012

4 commits


20 Dec, 2011

1 commit


19 Dec, 2011

1 commit

  • sched_clock() is yet another blocker on the road to the single
    image. This patch implements an idea by Russell King:

    http://www.spinics.net/lists/linux-omap/msg49561.html

    Instead of asking the platform to implement both sched_clock()
    itself and the rollover callback, simply register a read()
    function, and let the ARM code care about sched_clock() itself,
    the conversion to ns and the rollover. sched_clock() uses
    this read() function as an indirection to the platform code.
    If the platform doesn't provide a read(), the code falls back
    to the jiffy counter (just like the default sched_clock).

    This allow some simplifications and possibly some footprint gain
    when multiple platforms are compiled in. Among the drawbacks,
    the removal of the *_fixed_sched_clock optimization which could
    negatively impact some platforms (sa1100, tegra, versatile
    and omap).

    Tested on 11MPCore, OMAP4 and Tegra.

    Cc: Imre Kaloz
    Cc: Eric Miao
    Cc: Colin Cross
    Cc: Erik Gilling
    Cc: Olof Johansson
    Cc: Sascha Hauer
    Cc: Alessandro Rubini
    Cc: STEricsson
    Cc: Lennert Buytenhek
    Cc: Ben Dooks
    Tested-by: Jamie Iles
    Tested-by: Tony Lindgren
    Tested-by: Kyungmin Park
    Acked-by: Linus Walleij
    Acked-by: Nicolas Pitre
    Acked-by: Krzysztof Halasa
    Acked-by: Kukjin Kim
    Signed-off-by: Marc Zyngier
    Signed-off-by: Russell King

    Marc Zyngier
     

09 Dec, 2011

3 commits

  • DPLL1 reprogramming to a different rate is actually blocked inside
    omap1_select_table_rate(). However, it is already forced at boot, for
    boards which boot at unusable clock rates, and this seems to work
    correctly.

    OTOH, we now have a fine, run time performed clock selection algorithm
    implemented, which prevents less powerfull SoCs from being overclocked
    unintentionally.

    Allow reprogramming of dpll1 by default, and use it for switching to the
    higest supported clock rate with all boards, including those already
    booting at a usable rate of 60 MHz or above.

    Created against linux-omap/master tip as of Thu Dec 1,
    commit f83c2a8cbb59981722d1ab610c79adfd034a2667. Requires the just
    submitted patch "ARM: OMAP1: Move dpll1 rates selection from config to
    runtime" to prevent from unintentional overclocking. Tested on Amstrad
    Delta.

    Signed-off-by: Janusz Krzysztofik
    Signed-off-by: Tony Lindgren

    Janusz Krzysztofik
     
  • According to comments in omap1_select_table_rate(), reprogramming dpll1
    is tricky, and should always be done from SRAM.

    While being at it, move OMAP730 special case handling inside
    omap_sram_reprogram_clock().

    Created on top of version 2 of the series "ARM: OMAP1: Fix dpll1
    reprogramming related issues", which it depends on.
    Tested on Amstrad Delta.

    Signed-off-by: Janusz Krzysztofik
    Signed-off-by: Tony Lindgren

    Janusz Krzysztofik
     
  • For still better multi-OMAP1 support, expand omap1_rate_table with flags
    for different SoC types and match them while selecting clock rates. The
    idea is stolen from current omap24xx clock rate selection algorithm.

    Since clkdev platform flag definitions are reused here, those had to be
    expanded with one extra entry for OMAP1710 subtype, as this is the only
    SoC for which we allow selection of the highest, 216 MHz rate.

    Once done, remove no longer needed clock rate configure time options.

    Tested on Amstrad Delta.

    Signed-off-by: Janusz Krzysztofik
    [tony@atomide.com: updated comments]
    Signed-off-by: Tony Lindgren

    Janusz Krzysztofik
     

06 Dec, 2011

3 commits


02 Dec, 2011

2 commits

  • Use the exact value found in omap1_rate_table, otherwise I have been
    experiencing issues with correct timekeeping on my Amstrad Delta.

    Signed-off-by: Janusz Krzysztofik
    [tony@atomide.com: removed comment referencing a development branch]
    Signed-off-by: Tony Lindgren

    Janusz Krzysztofik
     
  • Commit e9b7086b80c4d9e354f4edc9e280ae85a60df408 (ARM: OMAP: Fix
    reprogramming of dpll1 rate) fixed a regression for systems that
    did not rely on bootloader set rates.

    However, it also introduced a new problem where the rates selected
    in .config would not take affect as omap1_select_table_rate
    currently refuses to reprogram DPLL1 if it's already initialized.

    This was not a problem earlier, as the reprogramming was done
    earlier with ck_dpll1_p->rate uninitialized.

    Fix this by forcing the reprogramming on systems booting at rates
    below 60MHz. Note that the long term fix is to make the rates
    SoC specific later on.

    Thanks for Janusz Krzysztofik for figuring
    this one out.

    Reported-by: Janusz Krzysztofik
    Acked-by: Janusz Krzysztofik
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

27 Nov, 2011

1 commit


19 Nov, 2011

1 commit


18 Nov, 2011

1 commit

  • As suggested by Russell King - ARM Linux ,
    there's no need to keep local prototypes in non-local headers.

    Add mach-omap1/common.h and mach-omap2/common.h and move the
    local prototypes there from plat/common.h and mach/omap4-common.h.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Russell King

    Tony Lindgren
     

12 Nov, 2011

1 commit

  • Commit a66cb3454f220f49f900646ebdc76cb943319eb7 (ARM: OMAP: Map SRAM
    later on with ioremap_exec()) moved the SRAM init to happen later
    to remove a dependency to early SoC detection for map_io.

    This broke booting on some boards not using Kconfig option for
    OMAP_CLOCKS_SET_BY_BOOTLOADER as the dpll1 reprogramming would
    cause the following error:

    kernel BUG at arch/arm/plat-omap/sram.c:226!
    Internal error: Oops - undefined instruction: 0 [#1] PREEMPT
    Modules linked in:

    CPU: 0 Not tainted (3.2.0-rc1-e3 #9)
    PC is at omap_sram_reprogram_clock+0x28/0x30
    LR is at omap1_select_table_rate+0x88/0xb4
    pc : [] lr : [] psr: 600000d3
    sp : c035bf10 ip : c035bf20 fp : c035bf1c
    r10: c035bfd4 r9 : 54029252 r8 : c03f8120
    r7 : c0362b50 r6 : 00b71b00 r5 : c03873cc r4 : c0362b40
    r3 : 00000000 r2 : c0362b40 r1 : 0000010a r0 : 00002cb0
    Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
    Control: 0000317f Table: 10004000 DAC: 00000017
    Process swapper (pid: 0, stack limit = 0xc035a270)
    Stack: (0xc035bf10 to 0xc035c000)
    bf00: c035bf3c c035bf20 c0019f54 c001b0ac
    bf20: 00001000 00002cb3 00000004 c035ed4c c035bf74 c035bf40 c033ea24 c0019edc
    bf40: c02f526c 00000002 00000015 bc058c9b 93111a16 c035335c 02000000 c035ed4c
    bf60: c035ed4c c03f8120 c035bf84 c035bf78 c00194c4 c033e8ec c035bfc4 c035bf88
    bf80: c033bc24 c00194a0 c035bf90 c035bf98 00000000 00000000 00000000 00000000
    bfa0: 00000001 00000000 c0354678 c035ece4 10004000 103532f4 c035bff4 c035bfc8
    bfc0: c0338574 c033b598 00000000 00000000 00000000 c035467c 0000317d c035c03c
    bfe0: c0354678 c035ece4 00000000 c035bff8 10008040 c0338508 00000000 00000000
    Backtrace:
    [] (omap_sram_reprogram_clock+0x0/0x30) from [] (omap1_select_table_rate+0x88/0xb4)
    [] (omap1_select_table_rate+0x0/0xb4) from [] (omap1_clk_init+0x148/0x334)
    r7:c035ed4c r6:00000004 r5:00002cb3 r4:00001000
    [] (omap1_clk_init+0x0/0x334) from [] (omap1_init_early+0x34/0x48)
    r8:c03f8120 r7:c035ed4c r6:c035ed4c r5:02000000 r4:c035335c
    [] (omap1_init_early+0x0/0x48) from [] (setup_arch+0x69c/0x79c)
    [] (setup_arch+0x0/0x79c) from [] (start_kernel+0x7c/0x2f4)
    [] (start_kernel+0x0/0x2f4) from [] (0x10008040)
    r7:c035ece4 r6:c0354678 r5:c035c03c r4:0000317d
    Code: 0a000002 e1a0e00f e12fff13 e89da800 (e7f001f2)

    Fix this by adding omap1_clk_late_init() that only reprograms dpll1
    if the bootloader rate is less than 60MHz. This also allows removing
    of the OMAP_CLOCKS_SET_BY_BOOTLOADER option.

    Reported-by: Aaro Koskinen
    Tested-by: Aaro Koskinen
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

10 Nov, 2011

1 commit

  • Commit 7b88e62f5d219a86d81bdf4388012c97dc42e8f8 (ARM: OMAP1: Use generic
    map_io, init_early and init_irq) changed omap1 to use generic map_io.

    Looks like I missed one board though. Fix this by adding a custom
    map_io for Amstrad E3.

    Reported-by: Aaro Koskinen
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

08 Nov, 2011

1 commit


07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

05 Nov, 2011

2 commits


02 Nov, 2011

3 commits

  • * 'next/cleanup2' of git://git.linaro.org/people/arnd/arm-soc: (31 commits)
    ARM: OMAP: Warn if omap_ioremap is called before SoC detection
    ARM: OMAP: Move set_globals initialization to happen in init_early
    ARM: OMAP: Map SRAM later on with ioremap_exec()
    ARM: OMAP: Remove calls to SRAM allocations for framebuffer
    ARM: OMAP: Avoid cpu_is_omapxxxx usage until map_io is done
    ARM: OMAP1: Use generic map_io, init_early and init_irq
    arm/dts: OMAP3+: Add mpu, dsp and iva nodes
    arm/dts: OMAP4: Add a main ocp entry bound to l3-noc driver
    ARM: OMAP2+: l3-noc: Add support for device-tree
    ARM: OMAP2+: board-generic: Add i2c static init
    ARM: OMAP2+: board-generic: Add DT support to generic board
    arm/dts: Add support for OMAP3 Beagle board
    arm/dts: Add initial device tree support for OMAP3 SoC
    arm/dts: Add support for OMAP4 SDP board
    arm/dts: Add support for OMAP4 PandaBoard
    arm/dts: Add initial device tree support for OMAP4 SoC
    ARM: OMAP: omap_device: Add a method to build an omap_device from a DT node
    ARM: OMAP: omap_device: Add omap_device_[alloc|delete] for DT integration
    of: Add helpers to get one string in multiple strings property
    ARM: OMAP2+: devices: Remove all omap_device_pm_latency structures
    ...

    Fix up trivial header file conflicts in arch/arm/mach-omap2/board-generic.c

    Linus Torvalds
     
  • * 'next/timer' of git://git.linaro.org/people/arnd/arm-soc:
    clocksource: fixup ux500 build problems
    ARM: omap: use __devexit_p in dmtimer driver
    ARM: ux500: Reprogram timers upon resume
    ARM: plat-nomadik: timer: Export reset functions
    ARM: plat-nomadik: timer: Add support for periodic timers
    ARM: ux500: Move timer code to separate file
    ARM: ux500: add support for clocksource DBX500 PRCMU
    clocksource: add DBX500 PRCMU Timer support
    ARM: plat-nomadik: MTU sched_clock as an option
    ARM: OMAP: dmtimer: add error handling to export APIs
    ARM: OMAP: dmtimer: low-power mode support
    ARM: OMAP: dmtimer: skip reserved timers
    ARM: OMAP: dmtimer: pm_runtime support
    ARM: OMAP: dmtimer: switch-over to platform device driver
    ARM: OMAP: dmtimer: platform driver
    ARM: OMAP2+: dmtimer: convert to platform devices
    ARM: OMAP1: dmtimer: conversion to platform devices
    ARM: OMAP2+: dmtimer: add device names to flck nodes
    ARM: OMAP: Add support for dmtimer v2 ip

    Linus Torvalds
     
  • * 'next/cleanup' of git://git.linaro.org/people/arnd/arm-soc: (125 commits)
    ARM: mach-mxs: fix machines' initializers order
    mmc: mxcmmc: explicitly includes mach/hardware.h
    arm/imx: explicitly includes mach/hardware.h in pm-imx27.c
    arm/imx: remove mx27_setup_weimcs() from mx27.h
    arm/imx: explicitly includes mach/hardware.h in mach-kzm_arm11_01.c
    arm/imx: remove mx31_setup_weimcs() from mx31.h
    ARM: tegra: devices.c should include devices.h
    ARM: tegra: cpu-tegra: unexport two functions
    ARM: tegra: cpu-tegra: sparse type fix
    ARM: tegra: dma: staticify some tables and functions
    ARM: tegra: tegra2_clocks: don't export some tables
    ARM: tegra: tegra_powergate_is_powered should be static
    ARM: tegra: tegra_rtc_read_ms should be static
    ARM: tegra: tegra_init_cache should be static
    ARM: tegra: pcie: 0 -> NULL changes
    ARM: tegra: pcie: include board.h
    ARM: tegra: pcie: don't cast __iomem pointers
    ARM: tegra: tegra2_clocks: 0 -> NULL changes
    ARM: tegra: tegra2_clocks: don't cast __iomem pointers
    ARM: tegra: timer: don't cast __iomem pointers
    ...

    Fix up trivial conflicts in
    arch/arm/mach-omap2/Makefile,
    arch/arm/mach-u300/{Makefile.boot,core.c}
    arch/arm/plat-{mxc,omap}/devices.c

    Linus Torvalds
     

01 Nov, 2011

5 commits


29 Oct, 2011

1 commit

  • …git-cur/linux-2.6-arm

    * 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (178 commits)
    ARM: 7139/1: fix compilation with CONFIG_ARM_ATAG_DTB_COMPAT and large TEXT_OFFSET
    ARM: gic, local timers: use the request_percpu_irq() interface
    ARM: gic: consolidate PPI handling
    ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H
    ARM: mach-s5p64x0: remove mach/memory.h
    ARM: mach-s3c64xx: remove mach/memory.h
    ARM: plat-mxc: remove mach/memory.h
    ARM: mach-prima2: remove mach/memory.h
    ARM: mach-zynq: remove mach/memory.h
    ARM: mach-bcmring: remove mach/memory.h
    ARM: mach-davinci: remove mach/memory.h
    ARM: mach-pxa: remove mach/memory.h
    ARM: mach-ixp4xx: remove mach/memory.h
    ARM: mach-h720x: remove mach/memory.h
    ARM: mach-vt8500: remove mach/memory.h
    ARM: mach-s5pc100: remove mach/memory.h
    ARM: mach-tegra: remove mach/memory.h
    ARM: plat-tcc: remove mach/memory.h
    ARM: mach-mmp: remove mach/memory.h
    ARM: mach-cns3xxx: remove mach/memory.h
    ...

    Fix up mostly pretty trivial conflicts in:
    - arch/arm/Kconfig
    - arch/arm/include/asm/localtimer.h
    - arch/arm/kernel/Makefile
    - arch/arm/mach-shmobile/board-ap4evb.c
    - arch/arm/mach-u300/core.c
    - arch/arm/mm/dma-mapping.c
    - arch/arm/mm/proc-v7.S
    - arch/arm/plat-omap/Kconfig
    largely due to some CONFIG option renaming (ie CONFIG_PM_SLEEP ->
    CONFIG_ARM_CPU_SUSPEND for the arm-specific suspend code etc) and
    addition of NEED_MACH_MEMORY_H next to HAVE_IDE.

    Linus Torvalds
     

27 Oct, 2011

1 commit

  • * 'gpio' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (43 commits)
    ARM: 7135/1: ep93xx: bring back missing
    ARM: 7104/1: plat-pxa: break out GPIO driver specifics
    ARM: 7103/1: plat-pxa: move PXA GPIO driver to GPIO subsystem
    ARM: 7042/3: mach-ep93xx: break out GPIO driver specifics
    ARM: 7101/1: arm/tegra: Replace with
    ARM: 7094/1: arm/tegra: Move EN_VDD_1V05_GPIO to board-harmony.h
    ARM: 7083/1: rewrite U300 GPIO to use gpiolib
    ARM: 7074/1: gpio: davinci: eliminate unused variable warnings
    ARM: 7063/1: Orion: gpio: add missing include of linux/types.h
    ARM: 7055/1: arm/tegra: mach/gpio.h: include linux/types.h to fix build
    ARM: 7054/1: arm/tegra: Delete custom gpio_to_irq, and irq_to_gpio
    ARM: 7053/1: gpio/tegra: Implement gpio_chip.to_irq
    ARM: 7052/1: gpio/tegra: Remove use of irq_to_gpio
    ARM: 7057/1: mach-pnx4008: rename GPIO header
    ARM: 7056/1: plat-nomadik: kill off
    ARM: 7050/1: mach-sa1100: delete irq_to_gpio() function
    ARM: 7049/1: mach-sa1100: move SA1100 GPIO driver to GPIO subsystem
    ARM: 7045/1: mach-lpc32xx: break out GPIO driver specifics
    ARM: 7044/1: mach-lpc32xx: move LPC32XX GPIO driver to GPIO subsystem
    ARM: 7043/1: mach-ixp2000: rename GPIO header
    ...

    Fix up trivial conflicts in arch/arm/mach-u300/Kconfig manually

    Linus Torvalds
     

25 Oct, 2011

1 commit

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (63 commits)
    PM / Clocks: Remove redundant NULL checks before kfree()
    PM / Documentation: Update docs about suspend and CPU hotplug
    ACPI / PM: Add Sony VGN-FW21E to nonvs blacklist.
    ARM: mach-shmobile: sh7372 A4R support (v4)
    ARM: mach-shmobile: sh7372 A3SP support (v4)
    PM / Sleep: Mark devices involved in wakeup signaling during suspend
    PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image
    PM / Hibernate: Do not initialize static and extern variables to 0
    PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
    PM / Hibernate: Add resumedelay kernel param in addition to resumewait
    MAINTAINERS: Update linux-pm list address
    PM / ACPI: Blacklist Vaio VGN-FW520F machine known to require acpi_sleep=nonvs
    PM / ACPI: Blacklist Sony Vaio known to require acpi_sleep=nonvs
    PM / Hibernate: Add resumewait param to support MMC-like devices as resume file
    PM / Hibernate: Fix typo in a kerneldoc comment
    PM / Hibernate: Freeze kernel threads after preallocating memory
    PM: Update the policy on default wakeup settings
    PM / VT: Cleanup #if defined uglyness and fix compile error
    PM / Suspend: Off by one in pm_suspend()
    PM / Hibernate: Include storage keys in hibernation image on s390
    ...

    Linus Torvalds
     

20 Oct, 2011

3 commits


17 Oct, 2011

1 commit

  • Boards used to specify zreladdr in their Makefile.boot with
    zreladdr-y := x, so conflicting zreladdrs were silently overwritten.
    This patch changes this to zreladdr-y += x, so that we end
    up with multiple words in zreladdr in such a case. We can
    detect this later and complain if necessary.

    Signed-off-by: Sascha Hauer
    Signed-off-by: Russell King

    Sascha Hauer
     

09 Oct, 2011

1 commit