10 Nov, 2011

2 commits

  • Enable the headphone detection gpio on tegra platform.

    Signed-off-by: Yufeng Shen
    Acked-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Yufeng Shen
     
  • *_pinmux_init() register the GPIO and pinmux devices so that they're ready
    before any other device needs them.

    *_pinmux_init() are also called by board-dt.c in order to set up the GPIO
    and pinmux configurations. In this case, if we register the devices, they
    end up being probed once due to this registration, and a second time due
    to a device-tree node (or vice-versa). The second probe fails since the
    memory regions are already requested. Besides, we don't actually want the
    duplicated devices.

    To avoid this duplicate registration, modify *_pinmux_init() to check
    whether it's running on a DT machine. If not, register the pinmux devices.
    If so, don't register them.

    Finally, modify board-dt.c to call the *_pinmux_init() after all devices have
    been instantiated from device-tree. This allows the GPIO and pinmux devices
    to be instantiated and initialized before calling functions to configure the
    hardware.

    This has one disadvantage: The pinmux and GPIO initialization now happens
    after /all/ devices are instantiated, rather than after just gpio and
    pinmux but before anything else. So the correct HW configuration is not
    in place when e.g. the SD/MMC device is probed. Long-term, this should be
    solved by doing both:

    a) Initializing the HW state from DT nodes during GPIO and pinmux device
    probe.
    b) Using the deferred driver probe mechanism, so that drivers can defer
    their probe until after the gpio and pinmux drivers have probed.

    v2: s/int is_dt/bool is_dt/
    v3: Use of_machine_is_compatible inside *_pinmux_init() rather than passing
    an explicit parameter into the function from outside.

    Signed-off-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Stephen Warren
     

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
     

02 Nov, 2011

3 commits

  • * '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/board' of git://git.linaro.org/people/arnd/arm-soc: (34 commits)
    ep93xx: add support Vision EP9307 SoM
    ARM: mxs: Add initial support for DENX MX28
    ARM: EXYNOS4: Add support SMDK4412 Board
    ARM: EXYNOS4: Add MCT support for EXYNOS4412
    ARM: EXYNOS4: Add functions for gic interrupt handling
    ARM: EXYNOS4: Add support clock for EXYNOS4412
    ARM: EXYNOS4: Add support new EXYNOS4412 SoC
    ARM: EXYNOS4: Add support MCT PPI for EXYNOS4212
    ARM: EXYNOS4: Add support PPI in external GIC
    ARM: EXYNOS4: convert boot_params to atag_offset
    ixp4xx: support omicron ixp425 based boards
    ARM: EXYNOS4: Add support SMDK4212 Board
    ARM: EXYNOS4: Add support PM for EXYNOS4212
    ARM: EXYNOS4: Add support clock for EXYNOS4212
    ARM: EXYNOS4: Add support new EXYNOS4212 SoC
    at91: USB-A9G20 C01 & C11 board support
    at91: merge board USB-A9260 and USB-A9263 together
    at91: add support for RSIs EWS board
    ARM: SAMSUNG: Fix mask value for S5P64X0 CPU IDs
    ARM: SAMSUNG: Fix mask for S3C64xx CPU IDs
    ...

    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

2 commits

  • It is generally a better idea to make intentionally empty files
    contain the human-readable /* empty */ comment, also it makes
    the files play nice with "make distclean".

    Reported-by: Jeff Garzik
    Signed-off-by: Linus Walleij
    Acked-by: Jeff Garzik
    Signed-off-by: Grant Likely

    Linus Walleij
     
  • …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

2 commits


23 Oct, 2011

1 commit


21 Oct, 2011

2 commits


20 Oct, 2011

1 commit


17 Oct, 2011

2 commits

  • Get rid of the mdesc pointer in the fixup function call. No one uses
    the mdesc pointer, it shouldn't be modified anyway, and we can't wrap
    it, so let's remove it.

    Platform files found by:

    $ regexp=$(git grep -h '\.fixup.*=' arch/arm |
    sed 's!.*= *\([^,]*\),* *!\1!' | sort -u |
    tr '\n' '|' | sed 's,|$,,;s,|,\\|,g')
    $ git grep $regexp arch/arm

    Acked-by: Nicolas Pitre
    Signed-off-by: Russell King

    Russell King
     
  • 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
     

14 Oct, 2011

18 commits

  • Without this, the PMC continually detects an interrupt when the PMU_IRQ
    line is high, causing the tps6686x IRQ handler thread to hog an entire
    CPU.

    This change was originally written by Wei Ni for Seaboard
    in the ChromeOS kernel.

    Long-term, this should probably be moved into some kind of PMU driver,
    or perhaps integrated into the GPIO/IRQ/pinmux system?

    Signed-off-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Stephen Warren
     
  • Signed-off-by: Peter De Schrijver
    Acked-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Peter De Schrijver
     
  • Add support for ventana pinmuxing as a seaboard derivative. This is a cut down
    version of work done by Jong Kim .

    Signed-off-by: Peter De Schrijver
    Acked-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Peter De Schrijver
     
  • This patch splits out the common part of pinmux and GPIO initialization for
    seaboard and derived boards. This code is based on work done by Jong Kim
    .

    Signed-off-by: Peter De Schrijver
    Acked-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Peter De Schrijver
     
  • Use ioremap to obtain access to registers instead of using static
    mappings. This reduces the number of users of the static mappings, which
    will eventually allow them to be removed.

    Note that on Tegra30, the number of register "banks" will decrease to 2,
    and the packing of specific bits into registers will change significantly.
    That's why this change adds the "*_bank" fields to the pingroup tables,
    rather than implementing some more hard-coded scheme.

    Also, completely remove the implementation of suspend/resume; Tegra doesn't
    yet support suspend/resume, and the implementation is complex for the
    general pinmux driver:

    * Not all registers are used within each bank, so we probably shouldn't
    just iterate over every register in the bank, and save/restore it,
    since that would mean touching undefined registers.

    * Registers are shared between pingroups, so we can't simply iterate over
    each pingroup, and save/restore the registers it uses.

    It'd probably be best have probe() calculate a bitmask of actually-used
    registers for each bank, and have suspend/resume iterate over those
    bitmaps.

    Oh, and Real Soon Now, I should be looking into converting this driver to
    the new pinmux/pinctrl subsystem, so I didn't want to put too much work
    into the current incarnation.

    v2: s/space/bank/ to match comments on reg_* fields in pinmux.h.
    Re-order bank/reg parameters to pg_readl/pg_writel.

    Signed-off-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Stephen Warren
     
  • Signed-off-by: Stephen Warren
    [olof: switch probe function to __devinit]
    Signed-off-by: Olof Johansson

    Stephen Warren
     
  • Resolves lots of sparse warnings:

    arch/arm/mach-tegra/devices.c:102:24: warning: symbol 'tegra_i2c_device1' was not declared. Should it be static?
    arch/arm/mach-tegra/devices.c:112:24: warning: symbol 'tegra_i2c_device2' was not declared. Should it be static?
    arch/arm/mach-tegra/devices.c:122:24: warning: symbol 'tegra_i2c_device3' was not declared. Should it be static?
    arch/arm/mach-tegra/devices.c:132:24: warning: symbol 'tegra_i2c_device4' was not declared. Should it be static?
    [...]

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren

    Olof Johansson
     
  • Two static functions that are not exported:

    arch/arm/mach-tegra/cpu-tegra.c:59:5: warning: symbol 'tegra_verify_speed' was not declared. Should it be static?
    arch/arm/mach-tegra/cpu-tegra.c:64:14: warning: symbol 'tegra_getspeed' was not declared. Should it be static?

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Type fix:
    arch/arm/mach-tegra/cpu-tegra.c:144:14: warning: incorrect type in argument 5 (different signedness)
    arch/arm/mach-tegra/cpu-tegra.c:144:14: expected unsigned int *index
    arch/arm/mach-tegra/cpu-tegra.c:144:14: got int *

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • None of them are used externally.

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Not used externally, and certainly don't need to be exported.

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Not exported and not used externally.

    Also, fix return type. Due to new return type, errors can't be returned
    so WARN_ON instead of returning error if a bad parameter is specified.

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Not exported and not used externally.

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Not exported and not used externally.

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Fixes:

    arch/arm/mach-tegra/pcie.c:465:10: warning: Using plain integer as NULL pointer

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Fixes:

    arch/arm/mach-tegra/pcie.c:908:12: warning: symbol 'tegra_pcie_init' was not declared. Should it be static?

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Fixes a lot of:

    arch/arm/mach-tegra/pcie.c:678:8: warning: cast removes address space of expression
    arch/arm/mach-tegra/pcie.c:678:8: warning: incorrect type in argument 1 (different base types)
    arch/arm/mach-tegra/pcie.c:678:8: expected void const volatile [noderef] *
    arch/arm/mach-tegra/pcie.c:678:8: got unsigned int
    arch/arm/mach-tegra/pcie.c:678:8: warning: cast removes address space of expression

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson
     
  • Fixes a lot of:

    arch/arm/mach-tegra/tegra2_clocks.c:921:34: warning: Using plain integer as NULL pointer
    arch/arm/mach-tegra/tegra2_clocks.c:1462:4: warning: Using plain integer as NULL pointer
    arch/arm/mach-tegra/tegra2_clocks.c:1864:4: warning: Using plain integer as NULL pointer

    Signed-off-by: Olof Johansson
    Acked-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Olof Johansson