09 Aug, 2012

1 commit

  • Presently it's assumed that the irqdomain code handles the irq_desc
    allocation for us, but this isn't necessarily the case when we've
    pre-allocated IRQs via sparseirq. Previously we had a -EEXIST check in
    the code that attempted to trap these cases and simply update them
    in-place, but this behaviour was inadvertently lost in the transition to
    irqdomains.

    This simply restores the previous behaviour, first attempting to let the
    irqdomain core fetch the allocation for us, and falling back to an
    in-place domain association in the extant IRQ case. Fixes up regressions
    on platforms that pre-allocate legacy IRQs (specifically ARM-based
    SH-Mobile platforms, as SH stopped pre-allocating vectors some time ago).

    Reported-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt
     

01 Aug, 2012

3 commits

  • Paul Mundt
     
  • Trivial support for irq domains, using either a linear map or radix tree
    depending on the vector layout.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Commit ca5481c68e9fbcea62bb3c78ae6cccf99ca8fb73 ("sh: pfc: Rudimentary
    pinctrl-backed GPIO support.") introduced a regression for platforms that
    were doing early GPIO API calls (from arch_initcall() or earlier),
    leading to a situation where our two-stage registration logic would trip
    itself up and we'd -ENODEV out of the pinctrl registration path,
    resulting in endless -EPROBE_DEFER errors. Further lack of checking any
    sort of errors from gpio_request() resulted in boot time warnings,
    tripping on the FLAG_REQUESTED test-and-set in gpio_ensure_requested().

    As it turns out there's no particular need to bother with the two-stage
    registration, as the platform bus is already available at the point that
    we have to start caring. As such, it's easiest to simply fold these
    together in to a single init path, the ordering of which is ensured
    through the platform's mux registration, as usual.

    Reported-by: Rafael J. Wysocki
    Reported-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt
     

25 Jul, 2012

1 commit


20 Jul, 2012

3 commits


17 Jul, 2012

4 commits


11 Jul, 2012

2 commits


10 Jul, 2012

2 commits

  • This begins the migration of the PFC core to the pinctrl subsystem.
    Initial support is very basic, with the bulk of the implementation simply
    being nopped out in such a way to allow registration with the pinctrl
    core to succeed.

    The gpio chip driver is stripped down considerably now relying purely on
    pinctrl API calls to manage the bulk of its operations.

    This provides a basis for further PFC refactoring, including decoupling
    pin functions from the GPIO API, establishing pin groups, and so forth.
    These will all be dealt with incrementally so as to introduce as few
    growing and migratory pains to tree-wide PFC pinmux users today.

    When the interfaces have been well established and in-tree users have
    been migrated off of the legacy interfaces it will be possible to strip
    down the core considerably, leading to eventual drivers/pinctrl rehoming.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This follows the intc/clk changes and shuffles the PFC support code under
    its own directory. This will facilitate better code sharing, and allow us
    to trim down the exported interface by quite a margin.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

21 Jun, 2012

1 commit


20 Jun, 2012

4 commits

  • The encoding is tightly packed, and future changes (such as
    pinconf-generic support) can easily lead to a situation where we violate
    the encoding constraints and trample data bit/reg bits. This plugs in
    some sanity checks by way of a BUILD_BUG_ON() to blow up if we fail to
    fit.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements some Kconfig knobs for ensuring that the PFC gpio chip
    can be disabled or built as a module in the cases where it's optional, or
    forcibly enabled in cases where it's not.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements a bit of rework for the PFC code, making the core itself
    slightly more pluggable and moving out the gpio chip handling completely.

    The API is preserved in such a way that platforms that depend on it for
    early configuration are still able to do so, while making it possible to
    migrate to alternate interfaces going forward.

    This is the first step of chainsawing necessary to support the pinctrl
    API, with the eventual goal being able to decouple pin function state
    from the gpio API while retaining gpio chip tie-in for gpio pin functions
    only, relying on the pinctrl/pinmux API for non-gpio function demux.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Paul Mundt
     

13 Jun, 2012

2 commits


25 May, 2012

7 commits


24 May, 2012

1 commit


22 May, 2012

1 commit

  • At present reserving the IRLs in the IRQ bitmap in addition to the
    dropping of the legacy IRQ pre-allocation prevent IRL IRQs from being
    allocated for the x3proto board.

    The only reason to permit reservations was to lock down possible hardware
    vectors prior to dynamic IRQ scanning, but this doesn't matter much given
    that the hardware controller configuration is sorted before we get around
    to doing any dynamic IRQ allocation anyways. Beyond that, all of the
    tables are __init annotated, so quite a bit more work would need to be
    done to support reconfiguring things like IRL controllers on the fly,
    much more than would ever make it worth the hassle.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

12 Apr, 2012

1 commit


11 Apr, 2012

1 commit


30 Mar, 2012

2 commits

  • Pull SuperH updates from Paul Mundt.

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (25 commits)
    sh: Support I/O space swapping where needed.
    sh: use set_current_blocked() and block_sigmask()
    sh: no need to reset handler if SA_ONESHOT
    sh: intc: Fix up section mismatch for intc_ack_data
    sh: select ARCH_DISCARD_MEMBLOCK.
    sh: Consolidate duplicate _32/_64 unistd definitions.
    sh: ecovec: switch SDHI controllers to card polling
    sh: Avoid exporting unimplemented syscalls.
    sh: add platform_device for RSPI in setup-sh7757
    SH: pci-sh7780: enable big-endian operation.
    serial: sh-sci: fix a race of DMA submit_tx on transfer
    sh: dma: Collect up CHCR of SH7763, SH7764, SH7780 and SH7785
    sh: dma: Collect up CHCR of SH7723 and SH7730
    sh/next: Fix build fail by asm/system.h in asm/bitops.h
    arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq are compatible
    sh: cpufreq: Wire up scaling_available_freqs support.
    sh: cpufreq: notify about rate rounding fallback.
    sh: cpufreq: Support CPU clock frequency table.
    sh: cpufreq: struct device lookup from CPU topology.
    sh: cpufreq: percpu struct clk accounting.
    ...

    Linus Torvalds
     
  • Pull more ARM updates from Russell King.

    This got a fair number of conflicts with the split, but
    also with some other sparse-irq and header file include cleanups. They
    all looked pretty trivial, though.

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (59 commits)
    ARM: fix Kconfig warning for HAVE_BPF_JIT
    ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds
    ARM: 7349/1: integrator: convert to sparse irqs
    ARM: 7259/3: net: JIT compiler for packet filters
    ARM: 7334/1: add jump label support
    ARM: 7333/2: jump label: detect %c support for ARM
    ARM: 7338/1: add support for early console output via semihosting
    ARM: use set_current_blocked() and block_sigmask()
    ARM: exec: remove redundant set_fs(USER_DS)
    ARM: 7332/1: extract out code patch function from kprobes
    ARM: 7331/1: extract out insn generation code from ftrace
    ARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format
    ARM: 7351/1: ftrace: remove useless memory checks
    ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path
    ARM: Versatile Express: add NO_IOPORT
    ARM: get rid of asm/irq.h in asm/prom.h
    ARM: 7319/1: Print debug info for SIGBUS in user faults
    ARM: 7318/1: gic: refactor irq_start assignment
    ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop
    ARM: 7315/1: perf: add support for the Cortex-A7 PMU
    ...

    Linus Torvalds
     

28 Mar, 2012

2 commits


13 Mar, 2012

1 commit


26 Jan, 2012

1 commit