1. 01 4月, 2015 1 次提交
  2. 27 3月, 2015 5 次提交
  3. 25 3月, 2015 4 次提交
  4. 31 1月, 2015 1 次提交
  5. 18 1月, 2015 1 次提交
    • M
      ARM: OMAP: Work around hardcoded interrupts · 0fb22a8f
      Marc Zyngier 提交于
      Commit 9a1091ef ("irqchip: gic: Support hierarchy irq domain")
      changed the GIC driver to use a non-legacy IRQ domain on DT
      platforms. This patch assumes that DT-driven systems are getting
      all of their interrupts from device tree.
      
      Turns out that OMAP has quite a few hidden gems, and still uses
      hardcoded interrupts despite having fairly complete DTs.
      
      This patch attempts to work around these by offering a translation
      method that can be called directly from the hwmod code, if present.
      The same hack is sprinkled over PRCM and TWL.
      
      It isn't pretty, but it seems to do the job without having to add
      more hacks to the interrupt controller code.
      
      Tested on OMAP4 (Panda-ES) and OMAP5 (UEVM5432).
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NNishanth Menon <nm@ti.com>
      [tony@atomide.com: updated to fix make randconfig issue]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0fb22a8f
  6. 15 1月, 2015 1 次提交
  7. 27 10月, 2014 5 次提交
  8. 29 9月, 2014 1 次提交
    • T
      clk: ti: change clock init to use generic of_clk_init · c08ee14c
      Tero Kristo 提交于
      Previously, the TI clock driver initialized all the clocks hierarchically
      under each separate clock provider node. Now, each clock that requires
      IO access will instead check their parent node to find out which IO range
      to use.
      
      This patch allows the TI clock driver to use a few new features provided
      by the generic of_clk_init, and also allows registration of clock nodes
      outside the clock hierarchy (for example, any external clocks.)
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jyri Sarha <jsarha@ti.com>
      Cc: Stefan Assmann <sassmann@kpanic.de>
      Acked-by: NTony Lindgren <tony@atomide.com>
      c08ee14c
  9. 12 9月, 2014 1 次提交
  10. 02 7月, 2014 1 次提交
  11. 16 5月, 2014 3 次提交
  12. 18 1月, 2014 1 次提交
  13. 11 10月, 2013 1 次提交
  14. 22 11月, 2012 1 次提交
    • R
      ARM: OMAP2+: hwmod: Add support for per hwmod/module context lost count · e6d3a8b0
      Rajendra Nayak 提交于
      OMAP4 has module specific context lost registers which makes it now
      possible to have module level context loss count, instead of relying
      on the powerdomain level context count.
      
      Add 2 private hwmod api's to update/clear the hwmod/module specific
      context lost counters/register.
      
      Update the module specific context_lost_counter and clear the hardware
      bits just after enabling the module.
      
      omap_hwmod_get_context_loss_count() now returns the hwmod context loss
      count them on platforms where they exist (OMAP4), else fall back on
      the pwrdm level counters for older platforms.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: added function kerneldoc, fixed structure kerneldoc,
       rearranged structure to avoid memory waste, marked fns as OMAP4-specific,
       prevent fn entry on non-OMAP4 chips, reduced indentation, merged update
       and clear, merged patches]
      [t-kristo@ti.com: added support for arch specific hwmod ops, and changed
       the no context offset indicator to USHRT_MAX]
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      [paul@pwsan.com: use NO_CONTEXT_LOSS_BIT flag rather than USHRT_MAX;
       convert unsigned context lost counter to int to match the return type;
       get rid of hwmod_ops in favor of the existing soc_ops mechanism;
       move context loss low-level accesses to the PRM code]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      e6d3a8b0
  15. 09 11月, 2012 2 次提交
  16. 01 11月, 2012 1 次提交
    • T
      ARM: OMAP: Remove plat-omap/common.h · 5c2e8852
      Tony Lindgren 提交于
      Most of the prototypes in plat-omap/common.h are not
      common to omap1 and omap2+, they are local to omap2+
      and should not be in plat-omap/common.h.
      
      The only shared function prototype in this file is
      omap_init_clocksource_32k(), let's put that into
      counter-32k.h.
      
      Note that the new plat/counter-32k.h must not be
      included from drivers, that will break omap2+ build
      for CONFIG_MULTIPLATFORM.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      5c2e8852
  17. 21 10月, 2012 3 次提交
    • P
      ARM: OMAP2+: PRM: create PRM reset source API for the watchdog timer driver · 2bb2a5d3
      Paul Walmsley 提交于
      The OMAP watchdog timer driver needs to determine what caused the SoC
      to reset for its GETBOOTSTATUS ioctl.  So, define a set of standard
      reset sources across OMAP SoCs.  For OMAP2xxx, 3xxx, and 4xxx SoCs,
      define mappings from the SoC-specific reset source register bits to
      the standardized reset source IDs.  Create SoC-specific PRM functions
      that read the appropriate per-SoC register and use the mapping to
      return the standardized reset bits.  Register the SoC-specific PRM
      functions with the common PRM code via prm_register().  Create a
      function in the common PRM code, prm_read_reset_sources(), that
      calls the SoC-specific function, registered during boot.
      
      This patch does not yet handle some SoCs, such as AM33xx.  Those SoCs
      were not handled by the code this will replace.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      2bb2a5d3
    • P
      ARM: OMAP2+: PRM: prepare for use of prm_ll_data function pointers · e24c3573
      Paul Walmsley 提交于
      There are several PRM operations which behave similarly across OMAP2+
      SoCs, but which have slight differences in their underlying
      implementations.  For example, to fetch the SoC's last reset sources,
      different registers are read across OMAP2xxx, 3xxx, and 44xx, and
      different bits are used on each SoC.  But the information returned is
      so similar that a single, common interface for drivers is useful.
      
      This patch creates the support code for this function pointer
      registration process.  No function pointers are included yet, but a
      subsequent patch will create one for the reset source API.
      
      To illustrate the end goal with the above reset source example, each
      per-SoC driver will use its own low-level implementation function --
      e.g., prm2xxx.c would contain omap2xxx_prm_read_reset_sources().  This
      function would read the appropriate register and remap the register
      bits to a standard set of reset source bits.  When the prm2xxx.c
      driver is loaded, it would register this function with the common PRM
      driver, prm.c.  prm.c would then export a common function,
      omap_prm_read_reset_sources().  Calling it would call through to the
      function pointer for the currently-registered SoC PRM driver.  This
      will allow other drivers to use PRM-provided data and operations
      without needing to know which SoC is currently in use.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      e24c3573
    • P
      ARM: OMAP2+: PRM: remove PRM weak functions · 7a0c1933
      Paul Walmsley 提交于
      Remove the now-unused PRM weak functions from prm_common.c.  These
      were formerly used to ensure that some OMAP2/3 PRM code would build on
      OMAP4, but none of those functions ever would have worked on OMAP4 due
      to an incompatible PRM register layout.  Now all that has been cleaned
      up and these can be removed.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Reviewed-by: NRuss Dill <Russ.Dill@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      7a0c1933
  18. 18 10月, 2012 1 次提交
  19. 13 9月, 2012 1 次提交
    • T
      ARM: OMAP2+: Prepare for irqs.h removal · 7d7e1eba
      Tony Lindgren 提交于
      As the interrupts should only be defined in the platform_data, and
      eventually coming from device tree, there's no need to define them
      in header files.
      
      Let's remove the hardcoded references to irqs.h and fix up the includes
      so we don't rely on headers included in irqs.h. Note that we're
      defining OMAP_INTC_START as 0 to the interrupts. This will be needed
      when we enable SPARSE_IRQ. For some drivers we need to add
      #include <plat/cpu.h> for now until these drivers are fixed to
      remove cpu_is_omapxxxx() usage.
      
      While at it, sort som of the includes the standard way, and add
      the trailing commas where they are missing in the related data
      structures.
      
      Note that for drivers/staging/tidspbridge we just define things
      locally.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7d7e1eba
  20. 04 7月, 2012 1 次提交
  21. 28 6月, 2012 1 次提交
  22. 18 4月, 2012 1 次提交
    • P
      ARM: OMAP2+: clean up some cppcheck warnings · eeb3711b
      Paul Walmsley 提交于
      Resolve some warnings identified by cppcheck in arch/arm/mach-omap2:
      
          [arch/arm/mach-omap2/usb-tusb6010.c:129]: (style) Checking if unsigned variable 'tmp' is less than zero.
          [arch/arm/mach-omap2/prm_common.c:241]: (error) Possible null pointer dereference: irq_setup - otherwise it is redundant to check if irq_setup is null at line 247
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'per_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'core_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm24xx.c:185]: (style) Variable 'only_idle' is assigned a value that is never used
          [arch/arm/mach-omap2/mux.c:254]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/mux.c:258]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/gpmc-onenand.c:178]: (style) Variable 'tick_ns' is assigned a value that is never used
          [arch/arm/mach-omap2/gpio.c:56]: (error) Possible null pointer dereference: pdata - otherwise it is redundant to check if pdata is null at line 57
          [arch/arm/mach-omap2/devices.c:45]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/board-omap3evm.c:641] -> [arch/arm/mach-omap2/board-omap3evm.c:639]: (style) Found duplicate branches for if and else.
          [arch/arm/mach-omap2/am35xx-emac.c:95]: (style) Variable 'regval' is assigned a value that is never used
          [arch/arm/mach-omap2/devices.c:74]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:277]: (style) Variable 'per_prev_state' is assigned a value that is never used
          [arch/arm/plat-omap/dmtimer.c:352]: (error) Possible null pointer dereference: timer - otherwise it is redundant to check if timer is null at line 354
          [arch/arm/plat-omap/omap_device.c:478]: (style) Variable 'c' is assigned a value that is never used
          [arch/arm/plat-omap/usb.c:42]: (style) Variable 'status' is assigned a value that is never used
          [arch/arm/mach-omap1/clock.c:197]: (style) Variable 'dpll1_rate' is assigned a value that is never used
          [arch/arm/mach-omap1/lcd_dma.c:60]: (style) struct or union member 'lcd_dma_info::size' is never used
          [arch/arm/mach-omap1/pm.c:572]: (style) Variable 'entry' is assigned a value that is never used
      
      Some of them are pretty good catches, such as gpio.c:56 and
      usb-tusb6010.c:129.
      
      Thanks to Jarkko Nikula for some comments on the sscanf() warnings.
      It seems that the kernel sscanf() ignores the field width anyway for the
      %d format, so those changes have been dropped from this second version.
      
      Thanks to Daniel Marjamäki <daniel.marjamaki@gmail.com> for pointing
      out that a variable was unnecessarily marked static in the
      board-omap3evm.c change.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
      Cc: Charulatha Varadarajan <charu@ti.com>
      Cc: Daniel Marjamäki <daniel.marjamaki@gmail.com>
      Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
      Reviewed-by: Charulatha Varadarajan <charu@ti.com> # for gpio.c
      eeb3711b
  23. 23 3月, 2012 1 次提交
    • M
      ARM: OMAP3+: fix oops triggered in omap_prcm_register_chain_handler(v1) · 4ba7c3c3
      Ming Lei 提交于
      This patch fixes the oops below[1].
      
      Obviously, the count of "struct irq_chip_generic" instances to be
      allocated and setup should be irq_setup->nr_regs instead of
      irq_setup->nr_regs plus one, so just fix the iterator to avoid
      the oops.
      
      [1], oops log.
      
      [    1.790242] Unable to handle kernel NULL pointer dereference at virtual address 00000004
      [    1.798632] pgd = c0004000
      [    1.801638] [00000004] *pgd=00000000
      [    1.805400] Internal error: Oops: 805 [#1] PREEMPT SMP THUMB2
      [    1.811381] Modules linked in:
      [    1.814601] CPU: 1    Not tainted  (3.3.0-next-20120320+ #733)
      [    1.820683] PC is at irq_setup_generic_chip+0x6a/0x84
      [    1.825951] LR is at irq_get_irq_data+0x7/0x8
      [    1.830508] pc : [<c006465e>]    lr : [<c0063a03>]    psr: 20000133
      [    1.830512] sp : ee04ff58  ip : 00000000  fp : 00000000
      [    1.842461] r10: 00000000  r9 : 00000000  r8 : 00000800
      [    1.847905] r7 : c064e260  r6 : 000001dc  r5 : 00000001  r4 : ee0accc0
      [    1.854687] r3 : 00000002  r2 : 00000800  r1 : 000001dc  r0 : 00000000
      [    1.861472] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment kernel
      [    1.869234] Control: 50c5387d  Table: 8000404a  DAC: 00000015
      [    1.875215] Process swapper/0 (pid: 1, stack limit = 0xee04e2f8)
      [    1.881463] Stack: (0xee04ff58 to 0xee050000)
      [    1.886017] ff40: c061b668 00000008
      [    1.894497] ff60: c0682090 ee0accc0 00000003 c001c637 00000000 00000000 00000201 00000000
      [    1.902976] ff80: 00000004 c0473820 c0473800 c0459e8d c0680ac0 c000866d 00000004 00000004
      [    1.911455] ffa0: ee04ffa8 00000004 c047381c 00000004 c0473820 c0473800 c0680ac0 00000082
      [    1.919934] ffc0: c0489694 c045265f 00000004 00000004 c0452135 c000d105 00000033 00000000
      [    1.928413] ffe0: c04525b5 c000d111 00000033 00000000 00000000 c000d111 aaaaaaaa aaaaaaaa
      [    1.936912] [<c006465e>] (irq_setup_generic_chip+0x6a/0x84) from [<c001c637>] (omap_prcm_register_chain_handler+0x147/0x1a0)
      [    1.948516] [<c001c637>] (omap_prcm_register_chain_handler+0x147/0x1a0) from [<c000866d>] (do_one_initcall+0x65/0xf4)
      [    1.959500] [<c000866d>] (do_one_initcall+0x65/0xf4) from [<c045265f>] (kernel_init+0xab/0x138)
      [    1.968529] [<c045265f>] (kernel_init+0xab/0x138) from [<c000d111>] (kernel_thread_exit+0x1/0x6)
      [    1.977632] Code: f7ff f9d1 6b23 1af3 (6043) 086d
      [    1.982684] ---[ end trace 1b75b31a2719ed1c ]---
      [    1.987526] Kernel panic - not syncing: Attempted to kill init!
      exitcode=0x0000000b
      Acked-by: NTero Kristo <t-kristo@ti.com>
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      4ba7c3c3
  24. 21 1月, 2012 1 次提交