10 Jan, 2012

1 commit

  • power management changes for omap and imx

    A significant part of the changes for these two platforms went into
    power management, so they are split out into a separate branch.

    * tag 'pm' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (65 commits)
    ARM: imx6: remove __CPUINIT annotation from v7_invalidate_l1
    ARM: imx6: fix v7_invalidate_l1 by adding I-Cache invalidation
    ARM: imx6q: resume PL310 only when CACHE_L2X0 defined
    ARM: imx6q: build pm code only when CONFIG_PM selected
    ARM: mx5: use generic irq chip pm interface for pm functions on
    ARM: omap: pass minimal SoC/board data for UART from dt
    arm/dts: Add minimal device tree support for omap2420 and omap2430
    omap-serial: Add minimal device tree support
    omap-serial: Use default clock speed (48Mhz) if not specified
    omap-serial: Get rid of all pdev->id usage
    ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init
    ARM: OMAP4: PRM: use PRCM interrupt handler
    ARM: OMAP3: pm: use prcm chain handler
    ARM: OMAP: hwmod: add support for selecting mpu_irq for each wakeup pad
    ARM: OMAP2+: mux: add support for PAD wakeup interrupts
    ARM: OMAP: PRCM: add suspend prepare / finish support
    ARM: OMAP: PRCM: add support for chain interrupt handler
    ARM: OMAP3/4: PRM: add functions to read pending IRQs, PRM barrier
    ARM: OMAP2+: hwmod: Add API to enable IO ring wakeup
    ARM: OMAP2+: mux: add wakeup-capable hwmod mux entries to dynamic list
    ...

    Linus Torvalds
     

05 Jan, 2012

1 commit


25 Dec, 2011

1 commit

  • Two problems exist in the current i.MX5 pm suspend/resume and idle
    functions. The first is the current i.MX5 suspend routine will call
    tzic_enable_wake(1) to set wake source, this will set all enabled
    irq as wake source rather than those wake capable. The second
    is i.MX5 idle will call mx5_cpu_lp_set() to prepare enter low power
    mode, but it forgets to call wfi instruction to enter this mode.

    To fix these two problems, using generic irq chip pm interface and
    modify function imx5_idle().

    [Tested by Shawn Guo on imx51 babbage board.
    Tested by Hui Wang on imx51 pdk board.]

    Signed-off-by: Hui Wang
    Signed-off-by: Shawn Guo

    Hui Wang
     

14 Dec, 2011

1 commit


09 Dec, 2011

2 commits


06 Dec, 2011

1 commit


01 Dec, 2011

2 commits

  • When gpio core dynamically allocate gpio number for a port, it starts
    from the end of the total range, 0 ~ ARCH_NR_GPIOS. That said, the
    earlier a port gets probed, the bigger gpio number it gets assigned.
    To match this, the irq_base for gpio should be assigned from
    'MXC_GPIO_IRQ_START + ARCH_NR_GPIOS' decreasingly.

    Signed-off-by: Shawn Guo

    Shawn Guo
     
  • The of_irq_init() expects the callback passed by .data of of_device_id
    return 'int' instead of 'void'. This patch fixes it to have
    irq_init_cb() return the correct value, and in turn have the secondary
    interrupt controller (gpio in this case) initialized properly and also
    eliminate the error message 'of_irq_init: children remain, but no
    parents' which was overlooked before.

    Signed-off-by: Shawn Guo

    Shawn Guo
     

22 Nov, 2011

2 commits


12 Nov, 2011

1 commit


11 Nov, 2011

2 commits

  • Signed-off-by: Richard Zhao
    Signed-off-by: Sascha Hauer

    Richard Zhao
     
  • The patch removes imx_idle hook and use pm_idle instead to get imx
    arch_idle prepared for the cleanup. It's suggested by Russel King
    as below.

    > The final removal of mach/system.h depends on getting rid of the arch_idle
    > thing. While going through these headers, I was dismayed to find these:
    >
    > arch/arm/mach-s3c2410/include/mach/system.h:void (*s3c24xx_idle)(void);
    > arch/arm/plat-mxc/include/mach/system.h:extern void (*imx_idle)(void);
    >
    > when we have a perfectly good pm_idle hook already in place - so there's
    > no excuse for these especially when other platforms are already using
    > pm_idle to hook their platform specific idle function into. This is
    > something that better be gone at the next merge window!

    Suggested-by: Russell King
    Signed-off-by: Shawn Guo
    Acked-by: Russell King
    Signed-off-by: Sascha Hauer

    Shawn Guo
     

04 Nov, 2011

2 commits

  • arch/arm/mach-mx5/clock-mx51-mx53.c: In function 'clk_get_freq_dt':
    arch/arm/mach-mx5/clock-mx51-mx53.c:1643: error: implicit declaration of function 'for_each_compatible_node'
    arch/arm/mach-mx5/clock-mx51-mx53.c:1643: error: expected ';' before '{' token

    Signed-off-by: Jason Liu

    Jason Liu
     
  • * 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6: (80 commits)
    mfd: Fix missing abx500 header file updates
    mfd: Add missing include to intel_msic
    x86, mrst: add platform support for MSIC MFD driver
    mfd: Expose TurnOnStatus in ab8500 sysfs
    mfd: Remove support for early drop ab8500 chip
    mfd: Add support for ab8500 v3.3
    mfd: Add ab8500 interrupt disable hook
    mfd: Convert db8500-prcmu panic() into pr_crit()
    mfd: Refactor db8500-prcmu request_clock() function
    mfd: Rename db8500-prcmu init function
    mfd: Fix db5500-prcmu defines
    mfd: db8500-prcmu voltage domain consumers additions
    mfd: db8500-prcmu reset code retrieval
    mfd: db8500-prcmu tweak for modem wakeup
    mfd: Add db8500-pcmu watchdog accessor functions for watchdog
    mfd: hwacc power state db8500-prcmu accessor
    mfd: Add db8500-prcmu accessors for PLL and SGA clock
    mfd: Move to the new db500 PRCMU API
    mfd: Create a common interface for dbx500 PRCMU drivers
    mfd: Initialize DB8500 PRCMU regs
    ...

    Fix up trivial conflicts in
    arch/arm/mach-imx/mach-mx31moboard.c
    arch/arm/mach-omap2/board-omap3beagle.c
    arch/arm/mach-u300/include/mach/irqs.h
    drivers/mfd/wm831x-spi.c

    Linus Torvalds
     

02 Nov, 2011

6 commits

  • * 'next/dt' of git://git.linaro.org/people/arnd/arm-soc:
    ARM: gic: use module.h instead of export.h
    ARM: gic: fix irq_alloc_descs handling for sparse irq
    ARM: gic: add OF based initialization
    ARM: gic: add irq_domain support
    irq: support domains with non-zero hwirq base
    of/irq: introduce of_irq_init
    ARM: at91: add at91sam9g20 and Calao USB A9G20 DT support
    ARM: at91: dt: at91sam9g45 family and board device tree files
    arm/mx5: add device tree support for imx51 babbage
    arm/mx5: add device tree support for imx53 boards
    ARM: msm: Add devicetree support for msm8660-surf
    msm_serial: Add devicetree support
    msm_serial: Use relative resources for iomem

    Fix up conflicts in arch/arm/mach-at91/{at91sam9260.c,at91sam9g45.c}

    Linus Torvalds
     
  • * 'next/devel' of git://git.linaro.org/people/arnd/arm-soc: (50 commits)
    ARM: tegra: update defconfig
    arm/tegra: Harmony: Configure PMC for low-level interrupts
    arm/tegra: device tree support for ventana board
    arm/tegra: add support for ventana pinmuxing
    arm/tegra: prepare Seaboard pinmux code for derived boards
    arm/tegra: pinmux: ioremap registers
    gpio/tegra: Convert to a platform device
    arm/tegra: Convert pinmux driver to a platform device
    arm/dt: Tegra: Add pinmux node to tegra20.dtsi
    arm/tegra: Prep boards for gpio/pinmux conversion to pdevs
    ARM: mx5: fix clock usage for suspend
    ARM i.MX entry-macro.S: remove now unused code
    ARM i.MX boards: use CONFIG_MULTI_IRQ_HANDLER
    ARM i.MX tzic: add handle_irq function
    ARM i.MX avic: add handle_irq function
    ARM: mx25: Add the missing IIM base definition
    ARM i.MX avic: convert to use generic irq chip
    mx31moboard: Add poweroff support
    ARM: mach-qong: Add watchdog support
    ARM: davinci: AM18x: Add wl1271/wlan support
    ...

    Fix up conflicts in:
    arch/arm/mach-at91/at91sam9g45.c
    arch/arm/mach-mx5/devices-imx53.h
    arch/arm/plat-mxc/include/mach/memory.h

    Linus Torvalds
     
  • * 'next/driver' of git://git.linaro.org/people/arnd/arm-soc:
    hw_random: add driver for atmel true hardware random number generator
    ARM: at91: at91sam9g45: add trng clock and platform device
    MX53 Enable the AHCI SATA on MX53 SMD board
    MX53 Enable the AHCI SATA on MX53 LOCO board
    MX53 Enable the AHCI SATA on MX53 ARD board
    AHCI Add the AHCI SATA feature on the MX53 platforms
    Fix pata imx resource
    ARM: imx: Define functions for registering PATA
    ARM: imx: Add PATA clock support
    ARM: imx: Add PATA resources for other i.MX processors
    imx: efika: Enable pata.
    imx51: add pata clock
    imx51: add pata device

    Fix up trivial conflict (new selects next to each other from separate
    branches for EFIKA_COMMON) in arch/arm/mach-mx5/Kconfig

    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
     
  • * 'next/fixes' of git://git.linaro.org/people/arnd/arm-soc: (28 commits)
    ARM: pxa/cm-x300: properly set bt_reset pin
    ARM: mmp: rename SHEEVAD to GPLUGD
    ARM: imx: Fix typo 'MACH_MX31_3DS_MXC_NAND_USE_BBT'
    ARM: i.MX28: shift frac value in _CLK_SET_RATE
    plat-mxc: iomux-v3.h: implicitly enable pull-up/down when that's desired
    ARM: mx5: fix clock usage for suspend
    ARM: pxa: use correct __iomem annotations
    ARM: pxa: sharpsl pm needs SPI
    ARM: pxa: centro and treo680 need palm27x
    ARM: pxa: make pxafb_smart_*() empty when not enabled
    ARM: pxa: select POWER_SUPPLY on raumfeld
    ARM: pxa: pxa95x is incompatible with earlier pxa
    ARM: pxa: CPU_FREQ_TABLE is needed for CPU_FREQ
    ARM: pxa: pxa95x/saarb depends on pxa3xx code
    ARM: pxa: allow selecting just one of TREO680/CENTRO
    ARM: pxa: export symbols from pxa3xx-ulpi
    ARM: pxa: make zylonite_pxa*_init declaration match code
    ARM: pxa/z2: fix building error of pxa27x_cpu_suspend() no longer available
    ARM: at91: add defconfig for at91sam9g45 family
    ARM: at91: remove dependency for Atmel PWM driver selector in Kconfig
    ...

    Linus Torvalds
     
  • The board changes in the imx/devel branch conflict with other changes in
    the device imx/dt branch.

    Conflicts:
    arch/arm/mach-mx5/board-mx53_loco.c
    arch/arm/mach-mx5/board-mx53_smd.c
    arch/arm/plat-mxc/include/mach/common.h
    arch/arm/plat-mxc/include/mach/memory.h

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

01 Nov, 2011

3 commits


31 Oct, 2011

1 commit


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
     

24 Oct, 2011

1 commit


20 Oct, 2011

2 commits


18 Oct, 2011

2 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

2 commits

  • While suspending, we're enabling a clock in ->suspend() but we're in atomic
    context, leading to this :

    [30803.667305] PM: late suspend of devices complete after 1.237 msecs
    [30803.667449] BUG: sleeping function called from invalid context at kernel/mutex.c:271
    [30803.667464] in_atomic(): 0, irqs_disabled(): 128, pid: 4941, name: pm-suspend
    [30803.667474] INFO: lockdep is turned off.
    [30803.667483] irq event stamp: 0
    [30803.667489] hardirqs last enabled at (0): [< (null)>] (null)
    [30803.667503] hardirqs last disabled at (0): [] copy_process.part.48+0x1e0/0xa7c
    [30803.667543] softirqs last enabled at (0): [] copy_process.part.48+0x1e0/0xa7c
    [30803.667562] softirqs last disabled at (0): [< (null)>] (null)
    [30803.667574] Backtrace:
    [30803.667611] [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
    [30803.667624] r6:00000000 r5:00000000 r4:d9648000 r3:d9648000
    [30803.667652] [] (dump_stack+0x0/0x1c) from [] (__might_sleep.part.101+0x90/0xa8)
    [30803.667673] [] (__might_sleep.part.101+0x0/0xa8) from [] (__might_sleep+0x80/0x94)
    [30803.667686] r4:c05d58c0
    [30803.667705] [] (__might_sleep+0x0/0x94) from [] (mutex_lock_nested+0x2c/0x30c)
    [30803.667735] [] (mutex_lock_nested+0x0/0x30c) from [] (clk_enable+0x28/0x50)
    [30803.667747] r8:c0438464 r7:00000003 r6:00000000 r5:00000000 r4:c05d2e98
    [30803.667780] [] (clk_enable+0x0/0x50) from [] (mx5_suspend_enter+0x1c/0x98)
    [30803.667792] r4:00000003 r3:c060dfe0
    [30803.667821] [] (mx5_suspend_enter+0x0/0x98) from [] (suspend_enter+0xec/0x15c)
    [30803.667833] r4:00000003 r3:c0017244
    [30803.667856] [] (suspend_enter+0x0/0x15c) from [] (suspend_devices_and_enter+0x94/0x130)
    [30803.667868] r6:00000000 r5:00000003 r4:c0c0af00 r3:00002710
    [30803.667897] [] (suspend_devices_and_enter+0x0/0x130) from [] (enter_state+0xc8/0x130)
    [30803.667909] r6:00000000 r5:00000003 r4:c05286e4
    [30803.667934] [] (enter_state+0x0/0x130) from [] (state_store+0xac/0xc0)
    [30803.667945] r6:00000003 r5:00000003 r4:df39d000 r3:00000003
    [30803.667978] [] (state_store+0x0/0xc0) from [] (kobj_attr_store+0x1c/0x28)
    [30803.668009] [] (kobj_attr_store+0x0/0x28) from [] (sysfs_write_file+0x88/0xbc)
    [30803.668032] [] (sysfs_write_file+0x0/0xbc) from [] (vfs_write+0xbc/0x138)
    [30803.668051] [] (vfs_write+0x0/0x138) from [] (sys_write+0x44/0x70)
    [30803.668062] r8:00000000 r7:00000004 r6:00000003 r5:002694d0 r4:d966acc0
    [30803.668094] [] (sys_write+0x0/0x70) from [] (ret_fast_syscall+0x0/0x3c)
    [30803.668106] r9:d9648000 r8:c000dcc4 r6:00000001 r5:002694d0 r4:00000003
    [30803.669927] PM: early resume of devices complete after 0.972 msecs

    Just move the clk_enable/disable in ->prepare() and ->finish()

    Signed-off-by: Arnaud Patard
    Signed-off-by: Sascha Hauer
    Signed-off-by: Uwe Kleine-König

    Arnaud Patard (Rtp)
     
  • Arnd Bergmann
     

08 Oct, 2011

2 commits

  • This helps resolve the conflicts between the imx cleanups and the
    new code that has gone into the imx tree.
    Conflict resolution was originally done by Sascha Hauer.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • While suspending, we're enabling a clock in ->suspend() but we're in atomic
    context, leading to this :

    [30803.667305] PM: late suspend of devices complete after 1.237 msecs
    [30803.667449] BUG: sleeping function called from invalid context at kernel/mutex.c:271
    [30803.667464] in_atomic(): 0, irqs_disabled(): 128, pid: 4941, name: pm-suspend
    [30803.667474] INFO: lockdep is turned off.
    [30803.667483] irq event stamp: 0
    [30803.667489] hardirqs last enabled at (0): [< (null)>] (null)
    [30803.667503] hardirqs last disabled at (0): [] copy_process.part.48+0x1e0/0xa7c
    [30803.667543] softirqs last enabled at (0): [] copy_process.part.48+0x1e0/0xa7c
    [30803.667562] softirqs last disabled at (0): [< (null)>] (null)
    [30803.667574] Backtrace:
    [30803.667611] [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
    [30803.667624] r6:00000000 r5:00000000 r4:d9648000 r3:d9648000
    [30803.667652] [] (dump_stack+0x0/0x1c) from [] (__might_sleep.part.101+0x90/0xa8)
    [30803.667673] [] (__might_sleep.part.101+0x0/0xa8) from [] (__might_sleep+0x80/0x94)
    [30803.667686] r4:c05d58c0
    [30803.667705] [] (__might_sleep+0x0/0x94) from [] (mutex_lock_nested+0x2c/0x30c)
    [30803.667735] [] (mutex_lock_nested+0x0/0x30c) from [] (clk_enable+0x28/0x50)
    [30803.667747] r8:c0438464 r7:00000003 r6:00000000 r5:00000000 r4:c05d2e98
    [30803.667780] [] (clk_enable+0x0/0x50) from [] (mx5_suspend_enter+0x1c/0x98)
    [30803.667792] r4:00000003 r3:c060dfe0
    [30803.667821] [] (mx5_suspend_enter+0x0/0x98) from [] (suspend_enter+0xec/0x15c)
    [30803.667833] r4:00000003 r3:c0017244
    [30803.667856] [] (suspend_enter+0x0/0x15c) from [] (suspend_devices_and_enter+0x94/0x130)
    [30803.667868] r6:00000000 r5:00000003 r4:c0c0af00 r3:00002710
    [30803.667897] [] (suspend_devices_and_enter+0x0/0x130) from [] (enter_state+0xc8/0x130)
    [30803.667909] r6:00000000 r5:00000003 r4:c05286e4
    [30803.667934] [] (enter_state+0x0/0x130) from [] (state_store+0xac/0xc0)
    [30803.667945] r6:00000003 r5:00000003 r4:df39d000 r3:00000003
    [30803.667978] [] (state_store+0x0/0xc0) from [] (kobj_attr_store+0x1c/0x28)
    [30803.668009] [] (kobj_attr_store+0x0/0x28) from [] (sysfs_write_file+0x88/0xbc)
    [30803.668032] [] (sysfs_write_file+0x0/0xbc) from [] (vfs_write+0xbc/0x138)
    [30803.668051] [] (vfs_write+0x0/0x138) from [] (sys_write+0x44/0x70)
    [30803.668062] r8:00000000 r7:00000004 r6:00000003 r5:002694d0 r4:d966acc0
    [30803.668094] [] (sys_write+0x0/0x70) from [] (ret_fast_syscall+0x0/0x3c)
    [30803.668106] r9:d9648000 r8:c000dcc4 r6:00000001 r5:002694d0 r4:00000003
    [30803.669927] PM: early resume of devices complete after 0.972 msecs

    Just move the clk_enable/disable in ->prepare() and ->finish()

    Signed-off-by: Arnaud Patard
    Signed-off-by: Sascha Hauer
    Signed-off-by: Uwe Kleine-König

    Arnaud Patard (Rtp)
     

07 Oct, 2011

3 commits