1. 19 10月, 2015 1 次提交
    • T
      ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init · 57df5380
      Tony Lindgren 提交于
      Some omaps are producing imprecise external aborts because we are
      wrongly trying to init SRAM for device tree based booting. Only
      omap3 is still using the legacy SRAM code, so we need to make it
      omap3 specific. Otherwise we can get errors like this on at least
      dm814x:
      
      Unhandled fault: imprecise external abort (0xc06) at 0xc08b156c
      ...
      (omap_rev) from [<c08b12e0>] (omap_sram_init+0xf8/0x3e0)
      (omap_sram_init) from [<c08aca0c>] (omap_sdrc_init+0x10/0xb0)
      (omap_sdrc_init) from [<c08b581c>] (pdata_quirks_init+0x18/0x44)
      (pdata_quirks_init) from [<c08b5478>] (omap_generic_init+0x10/0x1c)
      (omap_generic_init) from [<c08a57e0>] (customize_machine+0x1c/0x40)
      (customize_machine) from [<c00098a4>] (do_one_initcall+0x80/0x1dc)
      (do_one_initcall) from [<c08a2ec4>] (kernel_init_freeable+0x218/0x2e8)
      (kernel_init_freeable) from [<c063a554>] (kernel_init+0x8/0xec)
      (kernel_init) from [<c000f890>] (ret_from_fork+0x14/0x24)
      
      Let's fix the issue by making sure omap_sdrc_init only gets called for
      omap3. To do that, we need to have compatible "ti,omap3" in the dts
      files. And let's also use "ti,omap3630" instead of "ti,omap36xx" like
      we're supposed to.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      57df5380
  2. 17 10月, 2015 1 次提交
    • T
      ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory · 6a3b764b
      Tony Lindgren 提交于
      On boards with more than 2GB of RAM booting goes wrong with things not
      working and we're getting lots of l3 warnings:
      
      WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:147
      l3_interrupt_handler+0x260/0x384()
      44000000.ocp:L3 Custom Error: MASTER MMC6 TARGET DMM1 (Idle):
      Data Access in User mode during Functional access
      ...
      [<c044e158>] (scsi_add_host_with_dma) from [<c04705c8>]
      (ata_scsi_add_hosts+0x5c/0x18c)
      [<c04705c8>] (ata_scsi_add_hosts) from [<c046b13c>]
      (ata_host_register+0x150/0x2cc)
      [<c046b13c>] (ata_host_register) from [<c046b38c>]
      (ata_host_activate+0xd4/0x124)
      [<c046b38c>] (ata_host_activate) from [<c047f42c>]
      (ahci_host_activate+0x5c/0x194)
      [<c047f42c>] (ahci_host_activate) from [<c0480854>]
      (ahci_platform_init_host+0x1f0/0x3f0)
      [<c0480854>] (ahci_platform_init_host) from [<c047c9dc>]
      (ahci_probe+0x70/0x98)
      [<c047c9dc>] (ahci_probe) from [<c04220cc>]
      (platform_drv_probe+0x54/0xb4)
      
      Let's fix the issue by enabling ZONE_DMA for LPAE. Note that we need to
      limit dma_zone_size to 2GB as the rest of the RAM is beyond the 4GB limit.
      
      Let's also fix things for dra7 as done in similar patches in the TI tree
      by Lokesh Vutla <lokeshvutla@ti.com>.
      Reviewed-by: NLokesh Vutla <lokeshvutla@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      6a3b764b
  3. 14 10月, 2015 3 次提交
  4. 01 10月, 2015 1 次提交
  5. 17 9月, 2015 1 次提交
  6. 16 9月, 2015 1 次提交
    • T
      genirq: Remove irq argument from irq flow handlers · bd0b9ac4
      Thomas Gleixner 提交于
      Most interrupt flow handlers do not use the irq argument. Those few
      which use it can retrieve the irq number from the irq descriptor.
      
      Remove the argument.
      
      Search and replace was done with coccinelle and some extra helper
      scripts around it. Thanks to Julia for her help!
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Julia Lawall <Julia.Lawall@lip6.fr>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      bd0b9ac4
  7. 15 9月, 2015 4 次提交
  8. 02 9月, 2015 4 次提交
    • V
      ARM: DRA752: Add ID detect for ES2.0 · 81032e34
      Vishal Mahaveer 提交于
      ES2.0 is a minor variant of ES1.1. ES2.0 is an incremental revision
      with various fixes including the following:
      	- reset logic fixes
      	- few assymetric aging logic fixes
      	- MMC clock rate fixes
      	- Ethernet speed fixes
      	- edma fixes for mcasp
      
      NOTE: even though we use a compatible of dra742 and dra752, the usage in
      the Linux kernel is more or less interchangable - we use dra752 more
      often in the linux kernel compared to dra742 and 4.2-rc6
      Signed-off-by: NVishal Mahaveer <vishalm@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      81032e34
    • F
      ARM: OMAP3: vc: fix 'or' always true warning · 05f4f1ab
      Frans Klaver 提交于
      Fix the warning:
      arch/arm/mach-omap2/vc.c:302:47: warning: logical ‘or’ of collectively exhaustive tests is always true [-Wlogical-op]
      
      As we're toggling both CLKREQ and OFFMODE, we should also be checking
      OFFMODE.
      Signed-off-by: NFrans Klaver <fransklaver@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      05f4f1ab
    • T
      ARM: OMAP2+: Fix booting if no timer parent clock is available · 874b300a
      Tony Lindgren 提交于
      When bringing up a new SoC we needlessly prevent booting at timer
      init if timer clock_set_parent fails. This can fail if the system
      is booting on bootloader configured PLL values until the clock
      framework driver for the PLL is implemented.
      
      Let's just WARN instead, this will provide helpful information
      for anybody bringing up a new SoC what needs to be fixed.
      
      This allows to boot dm814x that's still missing the PLL driver.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      874b300a
    • G
      ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init · fe8291e8
      Grygorii Strashko 提交于
      Kernel fails to boot 50% of times (form build to build) with
      RT-patchset applied due to the following race - on late boot
      stages deferred_probe_work_func->omap_hsmmc_probe races with omap_device_late_ini.
      
      The same issue has been reported now on linux-next (4.3) by Keerthy [1]
      
      late_initcall
       - deferred_probe_initcal() tries to re-probe all pending driver's probe.
      
      - later on, some driver is probing in this case It's cpsw.c
        (but could be any other drivers)
        cpsw_init
        - platform_driver_register
          - really_probe
             - driver_bound
               - driver_deferred_probe_trigger
        and boot proceed.
        So, at this moment we have deferred_probe_work_func scheduled.
      
      late_initcall_sync
        - omap_device_late_init
          - omap_device_idle
      
      CPU1					CPU2
        - deferred_probe_work_func
          - really_probe
            - omap_hsmmc_probe
      	- pm_runtime_get_sync
      					late_initcall_sync
      					- omap_device_late_init
      						if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) {
      							if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
      								- omap_device_idle [ops - IP is disabled]
      	- [fail]
      	- pm_runtime_put_sync
                - omap_hsmmc_runtime_suspend [ooops!]
      
      == log ==
       omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517
       davinci_mdio 48485000.mdio: davinci mdio revision 1.6
       davinci_mdio 48485000.mdio: detected phy mask fffffff3
       libphy: 48485000.mdio: probed
       davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver unknown
       davinci_mdio 48485000.mdio: phy[3]: device 48485000.mdio:03, driver unknown
       omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517
       cpsw 48484000.ethernet: Detected MACID = b4:99:4c:c7:d2:48
       cpsw 48484000.ethernet: cpsw: Detected MACID = b4:99:4c:c7:d2:49
       hctosys: unable to open rtc device (rtc0)
       omap_hsmmc 480b4000.mmc: omap_device_late_idle: enabled but no driver.  Idling
       ldousb: disabling
       Unhandled fault: imprecise external abort (0x1406) at 0x00000000
       [00000000] *pgd=00000000
       Internal error: : 1406 [#1] PREEMPT SMP ARM
       Modules linked in:
       CPU: 1 PID: 58 Comm: kworker/u4:1 Not tainted 4.1.2-rt1-00467-g6da3c0a-dirty #5
       Hardware name: Generic DRA74X (Flattened Device Tree)
       Workqueue: deferwq deferred_probe_work_func
       task: ee6ddb00 ti: edd3c000 task.ti: edd3c000
       PC is at omap_hsmmc_runtime_suspend+0x1c/0x12c
       LR is at _od_runtime_suspend+0xc/0x24
       pc : [<c0471998>]    lr : [<c0029590>]    psr: a0000013
       sp : edd3dda0  ip : ee6ddb00  fp : c07be540
       r10: 00000000  r9 : c07be540  r8 : 00000008
       r7 : 00000000  r6 : ee646c10  r5 : ee646c10  r4 : edd79380
       r3 : fa0b4100  r2 : 00000000  r1 : 00000000  r0 : ee646c10
       Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
       Control: 10c5387d  Table: 8000406a  DAC: 00000015
       Process kworker/u4:1 (pid: 58, stack limit = 0xedd3c218)
       Stack: (0xedd3dda0 to 0xedd3e000)
       dda0: ee646c70 ee646c10 c0029584 00000000 00000008 c0029590 ee646c70 ee646c10
       ddc0: c0029584 c03adfb8 ee646c10 00000004 0000000c c03adff0 ee646c10 00000004
       dde0: 0000000c c03ae4ec 00000000 edd3c000 ee646c10 00000004 ee646c70 00000004
       de00: fa0b4000 c03aec20 ee6ddb00 ee646c10 00000004 ee646c70 ee646c10 fffffdfb
       de20: edd79380 00000000 fa0b4000 c03aee90 fffffdfb edd79000 ee646c00 c0474290
       de40: 00000000 edda24c0 edd79380 edc81f00 00000000 00000200 00000001 c06dd488
       de60: edda3960 ee646c10 ee646c10 c0824cc4 fffffdfb c0880c94 00000002 edc92600
       de80: c0836378 c03a7f84 ee646c10 c0824cc4 00000000 c0880c80 c0880c94 c03a6568
       dea0: 00000000 ee646c10 c03a66ac ee4f8000 00000000 00000001 edc92600 c03a4b40
       dec0: ee404c94 edc83c4c ee646c10 ee646c10 ee646c44 c03a63c4 ee646c10 ee646c10
       dee0: c0814448 c03a5aa8 ee646c10 c0814220 edd3c000 c03a5ec0 c0814250 ee6be400
       df00: edd3c000 c004e5bc ee6ddb01 00000078 ee6ddb00 ee4f8000 ee6be418 edd3c000
       df20: ee4f8028 00000088 c0836045 ee4f8000 ee6be400 c004e928 ee4f8028 00000000
       df40: c004e8ec 00000000 ee6bf1c0 ee6be400 c004e8ec 00000000 00000000 00000000
       df60: 00000000 c0053450 2e56fa97 00000000 afdffbd7 ee6be400 00000000 00000000
       df80: edd3df80 edd3df80 00000000 00000000 edd3df90 edd3df90 edd3dfac ee6bf1c0
       dfa0: c0053384 00000000 00000000 c000f668 00000000 00000000 00000000 00000000
       dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
       dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 f1fc9d7e febfbdff
       [<c0471998>] (omap_hsmmc_runtime_suspend) from [<c0029590>] (_od_runtime_suspend+0xc/0x24)
       [<c0029590>] (_od_runtime_suspend) from [<c03adfb8>] (__rpm_callback+0x24/0x3c)
       [<c03adfb8>] (__rpm_callback) from [<c03adff0>] (rpm_callback+0x20/0x80)
       [<c03adff0>] (rpm_callback) from [<c03ae4ec>] (rpm_suspend+0xe4/0x618)
       [<c03ae4ec>] (rpm_suspend) from [<c03aee90>] (__pm_runtime_idle+0x60/0x80)
       [<c03aee90>] (__pm_runtime_idle) from [<c0474290>] (omap_hsmmc_probe+0x6bc/0xa7c)
       [<c0474290>] (omap_hsmmc_probe) from [<c03a7f84>] (platform_drv_probe+0x44/0xa4)
       [<c03a7f84>] (platform_drv_probe) from [<c03a6568>] (driver_probe_device+0x170/0x2b4)
       [<c03a6568>] (driver_probe_device) from [<c03a4b40>] (bus_for_each_drv+0x64/0x98)
       [<c03a4b40>] (bus_for_each_drv) from [<c03a63c4>] (device_attach+0x70/0x88)
       [<c03a63c4>] (device_attach) from [<c03a5aa8>] (bus_probe_device+0x84/0xac)
       [<c03a5aa8>] (bus_probe_device) from [<c03a5ec0>] (deferred_probe_work_func+0x58/0x88)
       [<c03a5ec0>] (deferred_probe_work_func) from [<c004e5bc>] (process_one_work+0x134/0x464)
       [<c004e5bc>] (process_one_work) from [<c004e928>] (worker_thread+0x3c/0x4fc)
       [<c004e928>] (worker_thread) from [<c0053450>] (kthread+0xcc/0xe4)
       [<c0053450>] (kthread) from [<c000f668>] (ret_from_fork+0x14/0x2c)
       Code: e594302c e593202c e584205c e594302c (e5932128)
       ---[ end trace 0000000000000002 ]---
      
      The issue happens because omap_device_late_init() do not take into
      account that some drivers are present, but their probes were not
      finished successfully and where deferred instead. This is the valid
      case, and omap_device_late_init() should not idle such devices.
      
      To fix this issue, the value of omap_device->_driver_status field
      should be checked not only for BUS_NOTIFY_BOUND_DRIVER (driver is
      present and has been bound to device successfully), but also checked
      for BUS_NOTIFY_BIND_DRIVER (driver about to be bound) - which means
      driver is present and there was try to bind it to device.
      
      [1] http://www.spinics.net/lists/arm-kernel/msg441880.html
      Cc: Tero Kristo <t-kristo@ti.com>
      Cc: Keerthy <j-keerthy@ti.com>
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      fe8291e8
  9. 25 8月, 2015 1 次提交
  10. 20 8月, 2015 1 次提交
  11. 07 8月, 2015 1 次提交
    • T
      ARM: OMAP2+: Fix power domain operations regression caused by 81xx · 9610c8ab
      Tony Lindgren 提交于
      I managed to mess up omap3 power domain operations with commit
      7c80a3f8 ("ARM: OMAP2+: Add custom prwdm_operations for 81xx
      to support dm814x"), by default we should keep on using the
      omap3_pwrdm_operations, only 81xx needs custom handling.
      
      This causes omap3 PM to break so we won't hit off mode any longer
      causing idle power consumption go up from less than 10mW to over
      50 mW.
      
      Fixs: 7c80a3f8 ("ARM: OMAP2+: Add custom prwdm_operations for
      81xx to support dm814x")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9610c8ab
  12. 28 7月, 2015 2 次提交
    • N
      ARM: appropriate __init annotation for const data · 19c233b7
      Nicolas Pitre 提交于
      Init data marked const should be annotated with __initconst for
      correctness and not __initdata.  In some cases the array gathering
      references to that data has to be marked const as well. This fixes
      LTO builds that otherwise fail with section mismatch errors.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      19c233b7
    • B
      clk: change clk_ops' ->determine_rate() prototype · 0817b62c
      Boris Brezillon 提交于
      Clock rates are stored in an unsigned long field, but ->determine_rate()
      (which returns a rounded rate from a requested one) returns a long
      value (errors are reported using negative error codes), which can lead
      to long overflow if the clock rate exceed 2Ghz.
      
      Change ->determine_rate() prototype to return 0 or an error code, and pass
      a pointer to a clk_rate_request structure containing the expected target
      rate and the rate constraints imposed by clk users.
      
      The clk_rate_request structure might be extended in the future to contain
      other kind of constraints like the rounding policy, the maximum clock
      inaccuracy or other things that are not yet supported by the CCF
      (power consumption constraints ?).
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      CC: Jonathan Corbet <corbet@lwn.net>
      CC: Tony Lindgren <tony@atomide.com>
      CC: Ralf Baechle <ralf@linux-mips.org>
      CC: "Emilio López" <emilio@elopez.com.ar>
      CC: Maxime Ripard <maxime.ripard@free-electrons.com>
      Acked-by: NTero Kristo <t-kristo@ti.com>
      CC: Peter De Schrijver <pdeschrijver@nvidia.com>
      CC: Prashant Gaikwad <pgaikwad@nvidia.com>
      CC: Stephen Warren <swarren@wwwdotorg.org>
      CC: Thierry Reding <thierry.reding@gmail.com>
      CC: Alexandre Courbot <gnurou@gmail.com>
      CC: linux-doc@vger.kernel.org
      CC: linux-kernel@vger.kernel.org
      CC: linux-arm-kernel@lists.infradead.org
      CC: linux-omap@vger.kernel.org
      CC: linux-mips@linux-mips.org
      CC: linux-tegra@vger.kernel.org
      [sboyd@codeaurora.org: Fix parent dereference problem in
      __clk_determine_rate()]
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Tested-by: NRomain Perier <romain.perier@gmail.com>
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      [sboyd@codeaurora.org: Folded in fix from Heiko for fixed-rate
      clocks without parents or a rate determining op]
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      0817b62c
  13. 25 7月, 2015 2 次提交
  14. 24 7月, 2015 3 次提交
  15. 23 7月, 2015 6 次提交
    • R
      ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc · 9a258afa
      Roger Quadros 提交于
      For hwmods without sysc, _init_mpu_rt_base(oh) won't be called and so
      _find_mpu_rt_port(oh) will return NULL thus preventing ready state check
      on those modules after the module is enabled.
      
      This can potentially cause a bus access error if the module is accessed
      before the module is ready.
      
      Fix this by unconditionally calling _init_mpu_rt_base() during hwmod
      _init(). Do ioremap only if we need SYSC access.
      
      Eventhough _wait_target_ready() check doesn't really need MPU RT port but
      just the PRCM registers, we still mandate that the hwmod must have an
      MPU RT port if ready state check needs to be done. Else it would mean that
      the module is not accessible by MPU so there is no point in waiting
      for target to be ready.
      
      e.g. this fixes the below DCAN bus access error on AM437x-gp-evm.
      
      [   16.672978] ------------[ cut here ]------------
      [   16.677885] WARNING: CPU: 0 PID: 1580 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x234/0x35c()
      [   16.687946] 44000000.ocp:L3 Custom Error: MASTER M2 (64-bit) TARGET L4_PER_0 (Read): Data Access in User mode during Functional access
      [   16.700654] Modules linked in: xhci_hcd btwilink ti_vpfe dwc3 videobuf2_core ov2659 bluetooth v4l2_common videodev ti_am335x_adc kfifo_buf industrialio c_can_platform videobuf2_dma_contig media snd_soc_tlv320aic3x pixcir_i2c_ts c_can dc
      [   16.731144] CPU: 0 PID: 1580 Comm: rpc.statd Not tainted 3.14.26-02561-gf733aa036398 #180
      [   16.739747] Backtrace:
      [   16.742336] [<c0011108>] (dump_backtrace) from [<c00112a4>] (show_stack+0x18/0x1c)
      [   16.750285]  r6:00000093 r5:00000009 r4:eab5b8a8 r3:00000000
      [   16.756252] [<c001128c>] (show_stack) from [<c05a4418>] (dump_stack+0x20/0x28)
      [   16.763870] [<c05a43f8>] (dump_stack) from [<c0037120>] (warn_slowpath_common+0x6c/0x8c)
      [   16.772408] [<c00370b4>] (warn_slowpath_common) from [<c00371e4>] (warn_slowpath_fmt+0x38/0x40)
      [   16.781550]  r8:c05d1f90 r7:c0730844 r6:c0730448 r5:80080003 r4:ed0cd210
      [   16.788626] [<c00371b0>] (warn_slowpath_fmt) from [<c027fa94>] (l3_interrupt_handler+0x234/0x35c)
      [   16.797968]  r3:ed0cd480 r2:c0730508
      [   16.801747] [<c027f860>] (l3_interrupt_handler) from [<c0063758>] (handle_irq_event_percpu+0x54/0x1bc)
      [   16.811533]  r10:ed005600 r9:c084855b r8:0000002a r7:00000000 r6:00000000 r5:0000002a
      [   16.819780]  r4:ed0e6d80
      [   16.822453] [<c0063704>] (handle_irq_event_percpu) from [<c00638f0>] (handle_irq_event+0x30/0x40)
      [   16.831789]  r10:eb2b6938 r9:eb2b6960 r8:bf011420 r7:fa240100 r6:00000000 r5:0000002a
      [   16.840052]  r4:ed005600
      [   16.842744] [<c00638c0>] (handle_irq_event) from [<c00661d8>] (handle_fasteoi_irq+0x74/0x128)
      [   16.851702]  r4:ed005600 r3:00000000
      [   16.855479] [<c0066164>] (handle_fasteoi_irq) from [<c0063068>] (generic_handle_irq+0x28/0x38)
      [   16.864523]  r4:0000002a r3:c0066164
      [   16.868294] [<c0063040>] (generic_handle_irq) from [<c000ef60>] (handle_IRQ+0x38/0x8c)
      [   16.876612]  r4:c081c640 r3:00000202
      [   16.880380] [<c000ef28>] (handle_IRQ) from [<c00084f0>] (gic_handle_irq+0x30/0x5c)
      [   16.888328]  r6:eab5ba38 r5:c0804460 r4:fa24010c r3:00000100
      [   16.894303] [<c00084c0>] (gic_handle_irq) from [<c05a8d80>] (__irq_svc+0x40/0x50)
      [   16.902193] Exception stack(0xeab5ba38 to 0xeab5ba80)
      [   16.907499] ba20:                                                       00000000 00000006
      [   16.916108] ba40: fa1d0000 fa1d0008 ed3d3000 eab5bab4 ed3d3460 c0842af4 bf011420 eb2b6960
      [   16.924716] ba60: eb2b6938 eab5ba8c eab5ba90 eab5ba80 bf035220 bf07702c 600f0013 ffffffff
      [   16.933317]  r7:eab5ba6c r6:ffffffff r5:600f0013 r4:bf07702c
      [   16.939317] [<bf077000>] (c_can_plat_read_reg_aligned_to_16bit [c_can_platform]) from [<bf035220>] (c_can_get_berr_counter+0x38/0x64 [c_can])
      [   16.952696] [<bf0351e8>] (c_can_get_berr_counter [c_can]) from [<bf010294>] (can_fill_info+0x124/0x15c [can_dev])
      [   16.963480]  r5:ec8c9740 r4:ed3d3000
      [   16.967253] [<bf010170>] (can_fill_info [can_dev]) from [<c0502fa8>] (rtnl_fill_ifinfo+0x58c/0x8fc)
      [   16.976749]  r6:ec8c9740 r5:ed3d3000 r4:eb2b6780
      [   16.981613] [<c0502a1c>] (rtnl_fill_ifinfo) from [<c0503408>] (rtnl_dump_ifinfo+0xf0/0x1dc)
      [   16.990401]  r10:ec8c9740 r9:00000000 r8:00000000 r7:00000000 r6:ebd4d1b4 r5:ed3d3000
      [   16.998671]  r4:00000000
      [   17.001342] [<c0503318>] (rtnl_dump_ifinfo) from [<c050e6e4>] (netlink_dump+0xa8/0x1e0)
      [   17.009772]  r10:00000000 r9:00000000 r8:c0503318 r7:ebf3e6c0 r6:ebd4d1b4 r5:ec8c9740
      [   17.018050]  r4:ebd4d000
      [   17.020714] [<c050e63c>] (netlink_dump) from [<c050ec10>] (__netlink_dump_start+0x104/0x154)
      [   17.029591]  r6:eab5bd34 r5:ec8c9980 r4:ebd4d000
      [   17.034454] [<c050eb0c>] (__netlink_dump_start) from [<c0505604>] (rtnetlink_rcv_msg+0x110/0x1f4)
      [   17.043778]  r7:00000000 r6:ec8c9980 r5:00000f40 r4:ebf3e6c0
      [   17.049743] [<c05054f4>] (rtnetlink_rcv_msg) from [<c05108e8>] (netlink_rcv_skb+0xb4/0xc8)
      [   17.058449]  r8:eab5bdac r7:ec8c9980 r6:c05054f4 r5:ec8c9980 r4:ebf3e6c0
      [   17.065534] [<c0510834>] (netlink_rcv_skb) from [<c0504134>] (rtnetlink_rcv+0x24/0x2c)
      [   17.073854]  r6:ebd4d000 r5:00000014 r4:ec8c9980 r3:c0504110
      [   17.079846] [<c0504110>] (rtnetlink_rcv) from [<c05102ac>] (netlink_unicast+0x180/0x1ec)
      [   17.088363]  r4:ed0c6800 r3:c0504110
      [   17.092113] [<c051012c>] (netlink_unicast) from [<c0510670>] (netlink_sendmsg+0x2ac/0x380)
      [   17.100813]  r10:00000000 r8:00000008 r7:ec8c9980 r6:ebd4d000 r5:eab5be70 r4:eab5bee4
      [   17.109083] [<c05103c4>] (netlink_sendmsg) from [<c04dfdb4>] (sock_sendmsg+0x90/0xb0)
      [   17.117305]  r10:00000000 r9:eab5a000 r8:becdda3c r7:0000000c r6:ea978400 r5:eab5be70
      [   17.125563]  r4:c05103c4
      [   17.128225] [<c04dfd24>] (sock_sendmsg) from [<c04e1c28>] (SyS_sendto+0xb8/0xdc)
      [   17.136001]  r6:becdda5c r5:00000014 r4:ecd37040
      [   17.140876] [<c04e1b70>] (SyS_sendto) from [<c000e680>] (ret_fast_syscall+0x0/0x30)
      [   17.148923]  r10:00000000 r8:c000e804 r7:00000122 r6:becdda5c r5:0000000c r4:becdda5c
      [   17.157169] ---[ end trace 2b71e15b38f58bad ]---
      
      Fixes: 6423d6df ("ARM: OMAP2+: hwmod: check for module address space during init")
      Signed-off-by: NRoger Quadros <rogerq@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: <stable@vger.kernel.org>
      9a258afa
    • K
      ARM: PRM: AM437x: Enable IO wakeup feature · 8740a144
      Keerthy 提交于
      Enable IO wakeup feature. This enables am437x pads to generate daisy
      chained wake ups(eventually generates aprcm Interrupt) especially
      when in low power modes.
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      8740a144
    • K
      ARM: OMAP4+: PRM: Add AM437x specific data · cc843711
      Keerthy 提交于
      The register offsets for some of the PRM Registers are different
      hence populating the differing fields. This is needed to support
      IO wake up feature for am437x family.
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      cc843711
    • K
      ARM: OMAP: PRM: Remove hardcoding of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 register offsets · 8d4be7d8
      Keerthy 提交于
      The register offsets of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 are hardcoded.
      This makes it difficult to reuse the code for SoCs like AM437x that have
      a single instance of IRQENABLE_MPU and IRQSTATUS_MPU registers.
      Hence handling the case using offset of 4 to accommodate single set of IRQ*
      registers generically.
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      [paul@pwsan.com: fixed whitespace alignment problems reported by checkpatch.pl]
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      8d4be7d8
    • K
      ARM: AM43xx: Add the PRM IRQ register offsets · 39db67a5
      Keerthy 提交于
      Add the PRM IRQ register offsets.  This is needed to support PRM I/O
      wakeup on AM43xx.
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      [paul@pwsan.com: improved patch description, moved the PRM_IO_PMCTRL macro
       out of the CM section]
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      39db67a5
    • K
      ARM: OMAP4: PRM: Remove hardcoding of PRM_IO_PMCTRL_OFFSET register · fac03f12
      Keerthy 提交于
      PRM_IO_PMCTRL_OFFSET need not be same for all SOCs hence
      remove hardcoding and use the value provided by the omap_prcm_irq_setup
      structure. This is done to support IO wakeup on am437x series.
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      fac03f12
  16. 21 7月, 2015 3 次提交
  17. 17 7月, 2015 1 次提交
  18. 16 7月, 2015 4 次提交
    • T
      ARM: OMAP2+: Remove legacy booting support for Pandora · 7fcf7e06
      Tony Lindgren 提交于
      We've been moving all omap2+ based systems to boot in device tree only
      mode for a few years now. Only omap3 has legacy booting support
      remaining. Most omap3 boards already have related arch/arm/boot/*.dts*
      files for booting with device tree.
      
      This board has support for device tree based booting, and we've been
      printing warnings about the legacy booting being deprecated for a
      few merge cycles now. Let's attempt to remove the legacy booting
      for it.
      
      The reason for removing the legacy booting support now rather than
      later is we can simply revert this patch if necessary if we run
      into some unexpected issues that are not trivial to fix for the
      device tree based booting.
      
      Cc: Grazvydas Ignotas <notasas@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7fcf7e06
    • T
      ARM: OMAP2+: Add support for initializing dm814x clocks · 9cf705de
      Tony Lindgren 提交于
      Let's add a minimal clocks for dm814x to get it booted. This is
      mostly a placeholder and relies on the PLLs being on from the
      bootloader.
      
      Note that the divider clocks work the same way as on dm816x and
      am335x.
      
      Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9cf705de
    • T
      ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x · 7c80a3f8
      Tony Lindgren 提交于
      Looking at the TI kernel tree I noticed that dm81xx need custom
      ti81xx_pwrdm_operations. Let's also change dm816x over to use them
      as the registers are different for dm81xx compared to others.
      
      Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7c80a3f8
    • T
      ARM: OMAP2+: Add minimal clockdomains for dm814x · 185fde6d
      Tony Lindgren 提交于
      For now, let's just add the ones shared with dm816x.
      The dm814x specific ones can be added as they are tested.
      
      Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      185fde6d