1. 14 10月, 2010 4 次提交
    • P
      sh: pci: Support secondary FPGA-driven PCIe clocks on SDK7786. · b6b77b2d
      Paul Mundt 提交于
      The SDK7786 FPGA has secondary control over the PCIe clocks, specifically
      relating to the slots and oscillator. This ties the FPGA clocks in to the
      clock framework and balances the refcounting similar to how the primary
      on-chip clocks are managed. While the on-chip clocks are per-port, the
      FPGA clock enable/disable is global for the entire block.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b6b77b2d
    • P
      sh: pci: Support slot 4 routing on SDK7786. · 61a46766
      Paul Mundt 提交于
      SDK7786 supports connecting either slot3 or 4 to the same PCIe port by
      way of FPGA muxing. By default the vertical slot 3 on the baseboard is
      enabled, so this adds in a command line option for forcibly enabling the
      slot 4 edge connector.
      
      If nothing has been specified on the command line, we fall back to
      reading the resistor values for card presence to figure out where to
      route the port to.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      61a46766
    • P
      sh: Fix up PMB locking. · f7fcec93
      Paul Mundt 提交于
      This first converts the PMB locking over to raw spinlocks, and secondly
      fixes up a nested locking issue that was triggering lockdep early on:
      
       swapper/0 is trying to acquire lock:
        (&pmbe->lock){......}, at: [<806be9bc>] pmb_init+0xf4/0x4dc
      
       but task is already holding lock:
        (&pmbe->lock){......}, at: [<806be98e>] pmb_init+0xc6/0x4dc
      
       other info that might help us debug this:
       1 lock held by swapper/0:
        #0:  (&pmbe->lock){......}, at: [<806be98e>] pmb_init+0xc6/0x4dc
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      f7fcec93
    • P
      sh: mach-sdk7786: Add support for fpga gpios. · 47da88f3
      Paul Mundt 提交于
      The sdk7786 FPGA supports a number of user settable input switches that
      are otherwise unused. This wires up a dummy gpio chip for the switch bank
      to simply expose them to userspace.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      47da88f3
  2. 13 10月, 2010 6 次提交
  3. 11 10月, 2010 1 次提交
  4. 07 10月, 2010 1 次提交
    • P
      sh: Fix up the SH-3 build. · 06c7a489
      Paul Mundt 提交于
      SH-3 lacks an MMUCR_TI definition for global TLB flushes. As SH-3 parts
      lack a split TLB, the same global flush behaviour is accomplished
      through the flush bit, which just happens to be the same as on SH-4.
      
      This fixes up the build for all SH-3 MMU parts.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      06c7a489
  5. 06 10月, 2010 4 次提交
  6. 05 10月, 2010 5 次提交
    • P
      sh: Wire up INTC subgroup splitting for SH7786 SCIF1. · d91ddc25
      Paul Mundt 提交于
      SH7786 is the big user for subgroup splitting, mostly for the PCIe block,
      but those will follow later. For now we simply split up SCIF1, as used by
      the serial console on SDK7786 and others.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      d91ddc25
    • P
      sh: intc: Split up the INTC code. · 2be6bb0c
      Paul Mundt 提交于
      This splits up the sh intc core in to something more vaguely resembling
      a subsystem. Most of the functionality was alread fairly well
      compartmentalized, and there were only a handful of interdependencies
      that needed to be resolved in the process.
      
      This also serves as future-proofing for the genirq and sparseirq rework,
      which will make some of the split out functionality wholly generic,
      allowing things to be killed off in place with minimal migration pain.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2be6bb0c
    • P
      sh: intc: Handle early lookups of subgroup IRQs. · d74310d3
      Paul Mundt 提交于
      If lookups happen while the radix node still points to a subgroup
      mapping, an IRQ hasn't yet been made available for the specified id, so
      error out accordingly. Once the slot is replaced with an IRQ mapping and
      the tag is discarded, lookup can commence as normal.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      d74310d3
    • P
      sh: intc: Support virtual mappings for IRQ subgroups. · c1e30ad9
      Paul Mundt 提交于
      Many interrupts that share a single mask source but are on different
      hardware vectors will have an associated register tied to an INTEVT that
      denotes the precise cause for the interrupt exception being triggered.
      
      This introduces the concept of IRQ subgroups in the intc core, where
      a virtual IRQ map is constructed for each of the pre-defined cause bits,
      and a higher level chained handler takes control of the parent INTEVT.
      This enables CPUs with heavily muxed IRQ vectors (especially across
      disjoint blocks) to break things out in to a series of managed chained
      handlers while being able to dynamically lookup and adopt the IRQs
      created for them.
      
      This is largely an opt-in interface, requiring CPUs to manually submit
      IRQs for subgroup splitting, in addition to providing identifiers in
      their enum maps that can be used for lazy lookup via the radix tree.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      c1e30ad9
    • P
      sh: intc: Implement reverse mapping for IRQs to per-controller IDs. · 44629f57
      Paul Mundt 提交于
      This implements a scheme roughly analogous to the PowerPC virtual to
      hardware IRQ mapping, which we use for IRQ to per-controller ID mapping.
      This makes it possible for drivers to use the IDs directly for lookup
      instead of hardcoding the vector.
      
      The main motivation for this work is as a building block for dynamically
      allocating virtual IRQs for demuxing INTC events sharing a single INTEVT
      in addition to a common masking source.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      44629f57
  7. 04 10月, 2010 7 次提交
  8. 03 10月, 2010 1 次提交
  9. 02 10月, 2010 4 次提交
  10. 01 10月, 2010 2 次提交
  11. 30 9月, 2010 2 次提交
    • M
      sh: boot kernel with SR.BL set · 68a1aed7
      Magnus Damm 提交于
      Update the SH kernel to keep SR.BL set until the VBR
      register has been initialized. Useful to allow boot
      of the kernel even though exceptions are pending.
      
      Without this patch there is a window of time when
      exceptions such as NMI are enabled but no exception
      handlers are installed.
      
      This patch modifies both the zImage loader and the
      actual kernel to boot with BL=1, but the zImage
      loader is modfied in such a way that the init_sr
      value is unchanged to not break the zImage loader
      provided by kexec.
      
      Tested on sh7724 Ecovec and on the SH4AL-DSP core
      included in sh7372.
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      68a1aed7
    • G
      sh: fix a kfree address in clkdev code · 4c62c595
      Guennadi Liakhovetski 提交于
      kfree() in clkdev_drop() function should actually be called with an address of
      a struct clk_lookup_alloc object, and not struct clk_lookup, as presently done.
      This just happens to work, because "struct clk_lookup cl" is the first
      member in struct clk_lookup_alloc.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      4c62c595
  12. 24 9月, 2010 1 次提交
    • P
      sh: provide generic arch_debugfs_dir. · 3f224f4e
      Paul Mundt 提交于
      While sh previously had its own debugfs root, there now exists a
      common arch_debugfs_dir prototype, so we switch everything over to
      that.  Presumably once more architectures start making use of this
      we'll be able to just kill off the stub kdebugfs wrapper.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      3f224f4e
  13. 23 9月, 2010 1 次提交
  14. 20 9月, 2010 1 次提交
    • P
      sh: pci: Use a generic raw spinlock for PCI config access locking. · 39a90865
      Paul Mundt 提交于
      This copies the pci_config_lock idea from x86 over, allowing us to kill
      off a couple of existing private locks. At the same time, these need to
      be converted to raw spinlocks for -rt kernels, so we make that change at
      the same time. This should make it easier for future parts to get the
      locking right instead of inevitable ending up with lock type mismatches.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      39a90865