1. 13 8月, 2013 7 次提交
  2. 05 8月, 2013 3 次提交
  3. 03 8月, 2013 2 次提交
  4. 02 8月, 2013 1 次提交
  5. 01 8月, 2013 10 次提交
  6. 31 7月, 2013 4 次提交
  7. 30 7月, 2013 8 次提交
    • A
      ARM: OMAP2+: hwmod: AM335x: fix cpgmac address space · 50c2a3a1
      Afzal Mohammed 提交于
      Register target address to be used for cpgmac is the second device
      address space. By default, hwmod picks first address space (0th index)
      for register target.
      
      With removal of address space from hwmod and using DT instead, cpgmac
      is getting wrong address space for register target.
      
      Fix it by indicating the address space to be used for register target.
      Signed-off-by: NAfzal Mohammed <afzal@ti.com>
      Tested-by: NMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      50c2a3a1
    • A
      ARM: OMAP2+: hwmod: rt address space index for DT · 130142d9
      Afzal Mohammed 提交于
      Address space is being removed from hwmod database and DT information
      in <reg> property is being used. Currently the 0th index of device
      address space is used to map for register target address. This is not
      always true, eg. cpgmac has it's sysconfig in second address space.
      
      Handle it by specifying index of device address space to be used for
      register target. As default value of this field would be zero with
      static initialization, existing behaviour of using first address space
      for register target while using DT would be kept as such.
      Signed-off-by: NAfzal Mohammed <afzal@ti.com>
      Tested-by: NMugunthan V N <mugunthanvnm@ti.com>
      [paul@pwsan.com: use u8 rather than int to save memory]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      130142d9
    • R
      ARM: OMAP2+: Sync hwmod state with the pm_runtime and omap_device state · 7268032d
      Rajendra Nayak 提交于
      Some hwmods which are marked with HWMOD_INIT_NO_IDLE are left in enabled
      state post setup(). When a omap_device gets created for such hwmods
      make sure the omap_device and pm_runtime states are also in sync for such
      hwmods by doing a omap_device_enable() and pm_runtime_set_active() for the
      device.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Tested-by: NMark Jackson <mpfj-list@newflow.co.uk>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7268032d
    • R
      ARM: OMAP2+: Avoid idling memory controllers with no drivers · f66e329d
      Rajendra Nayak 提交于
      Memory controllers in OMAP (like GPMC and EMIF) have the hwmods marked with
      HWMOD_INIT_NO_IDLE and are left in enabled state post initial setup.
      
      Even if they have drivers missing, avoid idling them as part of
      omap_device_late_idle()
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Tested-by: NMark Jackson <mpfj-list@newflow.co.uk>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      f66e329d
    • R
      ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with DEBUG_LL · 7dedd346
      Rajendra Nayak 提交于
      With commit '82702ea1' "ARM: OMAP2+:
      Fix serial init for device tree based booting" stubbing out
      omap_serial_early_init() for Device tree based booting, there was a
      crash observed on AM335x based devices when hwmod does a
      _setup_reset() early at boot.
      
      This was rootcaused to hwmod trying to reset console uart while
      earlycon was using it.  The way to tell hwmod not to do this is to
      specify the HWMOD_INIT_NO_RESET flag, which were infact set by the
      omap_serial_early_init() function by parsing the cmdline to identify
      the console device.
      
      Parsing the cmdline to identify the uart used by earlycon itself seems
      broken as there is nothing preventing earlycon to use a different one.
      
      This patch, instead, attempts to populate the requiste flags for hwmod
      based on the CONFIG_DEBUG_OMAPxUARTy FLAGS. This gets rid of the need
      for cmdline parsing in the DT as well as non-DT cases to identify the
      uart used by earlycon.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Reported-by: NMark Jackson <mpfj-list@newflow.co.uk>
      Reported-by: NVaibhav Bedia <vaibhav.bedia@ti.com>
      Tested-by: NMark Jackson <mpfj-list@newflow.co.uk>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7dedd346
    • N
      ARM: dts: omap5-uevm: update optional/unused regulator configurations · bd3c5544
      Nishanth Menon 提交于
      commit e00c27ef
      (ARM: dts: OMAP5: Add Palmas MFD node and regulator nodes)
      introduced regulator entries for OMAP5uEVM.
      
      However, The regulator information is based on an older temporary
      pre-production board variant and does not reflect production board
      750-2628-XXX boards.
      
      The following optional/unused regulators can be updated:
      
      - SMPS9 supplies TWL6040 over VDDA_2v1_AUD. This regulator needs to be
      enabled only when audio is active. Since it does not come active by
      default, it does not require "always-on" or "boot-on".
      
      - LDO2 and LDO8 do not go to any peripheral or connector on the board.
      Further, these unused regulators should have been 2.8V for LDO2 and
      3.0V for LDO8. Mark these LDOs as disabled in the dts until needed.
      Reported-by: NMarc Jüttner <m-juettner@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NJ Keerthy <j-keerthy@ti.com>
      Acked-by: NBenoit Cousson <benoit.cousson@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      bd3c5544
    • N
      ARM: dts: omap5-uevm: fix regulator configurations mandatory for SoC · e18235a6
      Nishanth Menon 提交于
      commit e00c27ef
      (ARM: dts: OMAP5: Add Palmas MFD node and regulator nodes)
      introduced regulator entries for OMAP5uEVM.
      
      However, The regulator information is based on an older temporary
      pre-production board variant and does not reflect production board
      750-2628-XXX boards.
      
      The following fixes are hence mandatory to ensure right voltage is
      supplied to key OMAP5 SoC voltage rails:
      
      - LDO1 supplies VDDAPHY_CAM which is OMAP5's vdda_csiporta/b/c. This
      can only be supplied at 1.5V or 1.8V and we currently supply 2.8V.
      
      To prevent any potential device damage risk, use the specified
      1.5V-1.8V supply.
      
      Remove 'always-on' and 'boot-on' settings here as it is
      a 'on need' supply to SoC IP and is not enabled by PMIC by
      default at boot.
      
      - LDO3 supplies Low Latency Interface(LLI) hardware module which is a
      special hardware to communicate with Modem. However since uEVM is
      not setup by default for this communication, this should be disabled
      by default.
      
      Further, vdda_lli is supposed to be 1.5V and not 3V.
      
      - LDO4 supplies VDDAPHY_DISP which is vdda_dsiporta/c/vdda_hdmi
      
      This can only be supplied at 1.5V or 1.8V and we currently
      supply 2.2V.
      
      To prevent any potential device damage risk, use the specified
      1.5V-1.8V supply.
      
      Remove 'always-on' and 'boot-on' settings here as it is a 'on need'
      supply to SoC IP and is not enabled by PMIC by default at boot.
      
      - LDO6 supplies the board specified VDDS_1V2_WKUP supply going to
      ldo_emu_wkup/vdds_hsic. To stay within the SoC specification supply
      1.2V instead of 1.5V.
      
      - LDO7 supplies VDD_VPP which is vpp1. This is currently configured for
      1.5V which as per data manual "A pulse width of 1000 ns and an amplitude
      of 2V is required to program each eFuse bit. Otherwise, VPP1 must not
      be supplied".
      
      So, fix the voltage to 2V. and disable the supply since we have no plans
      of programming efuse bits - it can only be done once - in factory.
      
      Further it is not enabled by default by PMIC so, 'boot-on' must be
      removed, and the 'always-on' needs to be removed to achieve pulsing
      if efuse needs to be programmed.
      
      - LDO9 supplies the board specified vdds_sdcard supply going within SoC
      specification of 1.8V or 3.0V. Further the supply is controlled by
      switch enabled by REGEN3. So, introduce REGEN3 and map sdcard slot to
      be powered by LDO9. Remove 'always-on' allowing the LDO to be disabled
      on need basis.
      Reported-by: NMarc Jüttner <m-juettner@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NJ Keerthy <j-keerthy@ti.com>
      Acked-by: NBenoit Cousson <benoit.cousson@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e18235a6
    • N
      ARM: dts: omap5-uevm: document regulator signals used on the actual board · 3709d323
      Nishanth Menon 提交于
      commit e00c27ef
      (ARM: dts: OMAP5: Add Palmas MFD node and regulator nodes)
      introduced regulator entries for OMAP5uEVM.
      
      However, currently we use the Palmas regulator names which is used for
      different purposes on uEVM. Document the same based on 750-2628-XXX
      boards - which is meant to be supported by this dts.
      Reported-by: NMarc Jüttner <m-juettner@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NJ Keerthy <j-keerthy@ti.com>
      Acked-by: NBenoit Cousson <benoit.cousson@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      3709d323
  8. 27 7月, 2013 2 次提交
  9. 26 7月, 2013 3 次提交
    • W
      ARM: 7791/1: a.out: remove partial a.out support · acfdd4b1
      Will Deacon 提交于
      a.out support on ARM requires that argc, argv and envp are passed in
      r0-r2 respectively, which requires hacking load_aout_binary to
      prevent argc being clobbered by the return code. Whilst mainline kernels
      do set the registers up in start_thread, the aout loader has never
      carried the hack in mainline.
      
      Initialising the registers in this way actually goes against the libc
      expectations for ELF binaries, where argc, argv and envp are passed on
      the stack, with r0 being used to hold a pointer to an exit function for
      cleaning up after the dynamic linker if required. If the pointer is
      NULL, then it is ignored. When execing an ELF binary, Linux currently
      zeroes r0, then sets it to argc and then finally clobbers it with the
      return value of the execve syscall, so we actually end up with:
      
      	r0 = 0
      	stack[0] = argc
      	r1 = stack[1] = argv
      	r2 = stack[2] = envp
      
      libc treats r1 and r2 as undefined. The clobbering of r0 by sys_execve
      works for user-spawned threads, but when executing an ELF binary from a
      kernel thread (via call_usermodehelper), the execve is performed on the
      ret_from_fork path, which restores r0 from the saved pt_regs, resulting
      in argc being presented to the C library. This has horrible consequences
      when the application exits, since we have an exit function registered
      using argc, resulting in a jump to hyperspace.
      
      This patch solves the problem by removing the partial a.out support from
      arch/arm/ altogether.
      
      Cc: <stable@vger.kernel.org>
      Cc: Ashish Sangwan <ashishsangwan2@gmail.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      acfdd4b1
    • C
      ARM: 7790/1: Fix deferred mm switch on VIVT processors · bdae73cd
      Catalin Marinas 提交于
      As of commit b9d4d42a (ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on
      pre-ARMv6 CPUs), the mm switching on VIVT processors is done in the
      finish_arch_post_lock_switch() function to avoid whole cache flushing
      with interrupts disabled. The need for deferred mm switch is stored as a
      thread flag (TIF_SWITCH_MM). However, with preemption enabled, we can
      have another thread switch before finish_arch_post_lock_switch(). If the
      new thread has the same mm as the previous 'next' thread, the scheduler
      will not call switch_mm() and the TIF_SWITCH_MM flag won't be set for
      the new thread.
      
      This patch moves the switch pending flag to the mm_context_t structure
      since this is specific to the mm rather than thread.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Tested-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Cc: <stable@vger.kernel.org> # 3.5+
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      bdae73cd
    • F
      ARM: 7789/1: Do not run dummy_flush_tlb_a15_erratum() on non-Cortex-A15 · 1f49856b
      Fabio Estevam 提交于
      Commit 93dc6887 (ARM: 7684/1: errata: Workaround for Cortex-A15 erratum 798181 (TLBI/DSB operations)) causes the following undefined instruction error on a mx53 (Cortex-A8):
      
      Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
      CPU: 0 PID: 275 Comm: modprobe Not tainted 3.11.0-rc2-next-20130722-00009-g9b0f371 #881
      task: df46cc00 ti: df48e000 task.ti: df48e000
      PC is at check_and_switch_context+0x17c/0x4d0
      LR is at check_and_switch_context+0xdc/0x4d0
      
      This problem happens because check_and_switch_context() calls dummy_flush_tlb_a15_erratum() without checking if we are really running on a Cortex-A15 or not.
      
      To avoid this issue, only call dummy_flush_tlb_a15_erratum() inside
      check_and_switch_context() if erratum_a15_798181() returns true, which means that we are really running on a Cortex-A15.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: NRoger Quadros <rogerq@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1f49856b