1. 27 3月, 2019 1 次提交
    • T
      ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset() · 7f0d0786
      Tony Lindgren 提交于
      Commit 747834ab ("ARM: OMAP2+: hwmod: revise hardreset behavior") made
      the call to _enable() conditional based on no oh->rst_lines_cnt. This
      caused the return value to be potentially uninitialized. Curiously we see
      no compiler warnings for this, probably as this gets inlined.
      
      We call _setup_reset() from _setup() and only _setup_postsetup() if the
      return value is zero. Currently the return value can be uninitialized for
      cases where oh->rst_lines_cnt is set and HWMOD_INIT_NO_RESET is not set.
      
      Fixes: 747834ab ("ARM: OMAP2+: hwmod: revise hardreset behavior")
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7f0d0786
  2. 15 2月, 2019 1 次提交
  3. 11 12月, 2018 1 次提交
  4. 20 11月, 2018 1 次提交
    • N
      ARM: OMAP2+: hwmod: Fix some section annotations · c10b26ab
      Nathan Chancellor 提交于
      When building the kernel with Clang, the following section mismatch
      warnings appears:
      
      WARNING: vmlinux.o(.text+0x2d398): Section mismatch in reference from
      the function _setup() to the function .init.text:_setup_iclk_autoidle()
      The function _setup() references
      the function __init _setup_iclk_autoidle().
      This is often because _setup lacks a __init
      annotation or the annotation of _setup_iclk_autoidle is wrong.
      
      WARNING: vmlinux.o(.text+0x2d3a0): Section mismatch in reference from
      the function _setup() to the function .init.text:_setup_reset()
      The function _setup() references
      the function __init _setup_reset().
      This is often because _setup lacks a __init
      annotation or the annotation of _setup_reset is wrong.
      
      WARNING: vmlinux.o(.text+0x2d408): Section mismatch in reference from
      the function _setup() to the function .init.text:_setup_postsetup()
      The function _setup() references
      the function __init _setup_postsetup().
      This is often because _setup lacks a __init
      annotation or the annotation of _setup_postsetup is wrong.
      
      _setup is used in omap_hwmod_allocate_module, which isn't marked __init
      and looks like it shouldn't be, meaning to fix these warnings, those
      functions must be moved out of the init section, which this patch does.
      Signed-off-by: NNathan Chancellor <natechancellor@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c10b26ab
  5. 31 10月, 2018 3 次提交
    • M
      memblock: stop using implicit alignment to SMP_CACHE_BYTES · 7e1c4e27
      Mike Rapoport 提交于
      When a memblock allocation APIs are called with align = 0, the alignment
      is implicitly set to SMP_CACHE_BYTES.
      
      Implicit alignment is done deep in the memblock allocator and it can
      come as a surprise.  Not that such an alignment would be wrong even
      when used incorrectly but it is better to be explicit for the sake of
      clarity and the prinicple of the least surprise.
      
      Replace all such uses of memblock APIs with the 'align' parameter
      explicitly set to SMP_CACHE_BYTES and stop implicit alignment assignment
      in the memblock internal allocation functions.
      
      For the case when memblock APIs are used via helper functions, e.g.  like
      iommu_arena_new_node() in Alpha, the helper functions were detected with
      Coccinelle's help and then manually examined and updated where
      appropriate.
      
      The direct memblock APIs users were updated using the semantic patch below:
      
      @@
      expression size, min_addr, max_addr, nid;
      @@
      (
      |
      - memblock_alloc_try_nid_raw(size, 0, min_addr, max_addr, nid)
      + memblock_alloc_try_nid_raw(size, SMP_CACHE_BYTES, min_addr, max_addr,
      nid)
      |
      - memblock_alloc_try_nid_nopanic(size, 0, min_addr, max_addr, nid)
      + memblock_alloc_try_nid_nopanic(size, SMP_CACHE_BYTES, min_addr, max_addr,
      nid)
      |
      - memblock_alloc_try_nid(size, 0, min_addr, max_addr, nid)
      + memblock_alloc_try_nid(size, SMP_CACHE_BYTES, min_addr, max_addr, nid)
      |
      - memblock_alloc(size, 0)
      + memblock_alloc(size, SMP_CACHE_BYTES)
      |
      - memblock_alloc_raw(size, 0)
      + memblock_alloc_raw(size, SMP_CACHE_BYTES)
      |
      - memblock_alloc_from(size, 0, min_addr)
      + memblock_alloc_from(size, SMP_CACHE_BYTES, min_addr)
      |
      - memblock_alloc_nopanic(size, 0)
      + memblock_alloc_nopanic(size, SMP_CACHE_BYTES)
      |
      - memblock_alloc_low(size, 0)
      + memblock_alloc_low(size, SMP_CACHE_BYTES)
      |
      - memblock_alloc_low_nopanic(size, 0)
      + memblock_alloc_low_nopanic(size, SMP_CACHE_BYTES)
      |
      - memblock_alloc_from_nopanic(size, 0, min_addr)
      + memblock_alloc_from_nopanic(size, SMP_CACHE_BYTES, min_addr)
      |
      - memblock_alloc_node(size, 0, nid)
      + memblock_alloc_node(size, SMP_CACHE_BYTES, nid)
      )
      
      [mhocko@suse.com: changelog update]
      [akpm@linux-foundation.org: coding-style fixes]
      [rppt@linux.ibm.com: fix missed uses of implicit alignment]
        Link: http://lkml.kernel.org/r/20181016133656.GA10925@rapoport-lnx
      Link: http://lkml.kernel.org/r/1538687224-17535-1-git-send-email-rppt@linux.vnet.ibm.comSigned-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Suggested-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: Paul Burton <paul.burton@mips.com>	[MIPS]
      Acked-by: Michael Ellerman <mpe@ellerman.id.au>	[powerpc]
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Guan Xuetao <gxt@pku.edu.cn>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7e1c4e27
    • M
      mm: remove include/linux/bootmem.h · 57c8a661
      Mike Rapoport 提交于
      Move remaining definitions and declarations from include/linux/bootmem.h
      into include/linux/memblock.h and remove the redundant header.
      
      The includes were replaced with the semantic patch below and then
      semi-automated removal of duplicated '#include <linux/memblock.h>
      
      @@
      @@
      - #include <linux/bootmem.h>
      + #include <linux/memblock.h>
      
      [sfr@canb.auug.org.au: dma-direct: fix up for the removal of linux/bootmem.h]
        Link: http://lkml.kernel.org/r/20181002185342.133d1680@canb.auug.org.au
      [sfr@canb.auug.org.au: powerpc: fix up for removal of linux/bootmem.h]
        Link: http://lkml.kernel.org/r/20181005161406.73ef8727@canb.auug.org.au
      [sfr@canb.auug.org.au: x86/kaslr, ACPI/NUMA: fix for linux/bootmem.h removal]
        Link: http://lkml.kernel.org/r/20181008190341.5e396491@canb.auug.org.au
      Link: http://lkml.kernel.org/r/1536927045-23536-30-git-send-email-rppt@linux.vnet.ibm.comSigned-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Guan Xuetao <gxt@pku.edu.cn>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Palmer Dabbelt <palmer@sifive.com>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Serge Semin <fancer.lancer@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57c8a661
    • M
      memblock: remove _virt from APIs returning virtual address · eb31d559
      Mike Rapoport 提交于
      The conversion is done using
      
      sed -i 's@memblock_virt_alloc@memblock_alloc@g' \
      	$(git grep -l memblock_virt_alloc)
      
      Link: http://lkml.kernel.org/r/1536927045-23536-8-git-send-email-rppt@linux.vnet.ibm.comSigned-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Guan Xuetao <gxt@pku.edu.cn>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Palmer Dabbelt <palmer@sifive.com>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Serge Semin <fancer.lancer@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      eb31d559
  6. 08 9月, 2018 2 次提交
  7. 17 8月, 2018 2 次提交
    • T
      ARM: OMAP2+: Fix module address for modules using mpu_rt_idx · 1dbcb97c
      Tony Lindgren 提交于
      If we use device tree data for a module interconnect target we want
      to map the control registers from the module start. Legacy hwmod platform
      data however is using child IP offsets for cpsw module with mpu_rt_idx.
      
      In cases where we have the interconnect target module already using device
      tree data with legacy hwmod platform data still around, the sysc register
      area is not adjusted for mpu_rt_idx causing wrong registers being accessed.
      
      Let's fix the issue for mixed dts and platform data mode by ioremapping
      the module registers using child IP offset if mpu_rt_idx is set. For
      device tree only data there's no reason to use mpu_rt_idx.
      
      Fixes: 6c72b355 ("ARM: OMAP2+: Parse module IO range from dts for legacy
      "ti,hwmods" support")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1dbcb97c
    • T
      ARM: OMAP2+: Fix null hwmod for ti-sysc debug · 4769c003
      Tony Lindgren 提交于
      We may call omap_hwmod_parse_module_range() with no hwmod allocated yet
      and may have debug enabled. Let's fix this by checking for hwmod before
      trying to use it's name.
      
      Fixes: 6c72b355 ("ARM: OMAP2+: Parse module IO range from dts for legacy
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      4769c003
  8. 01 5月, 2018 1 次提交
    • T
      ARM: OMAP2+: Use signed value for sysc register offsets · 103fd8e7
      Tony Lindgren 提交于
      We currently don't know if a revision register exists or not. Zero is
      often a valid offset for the revision register. As we are still checking
      device tree data against platform data, we will get bogus warnings with
      correct device tree data because of incomplete platform data.
      
      Let's fix the issue by using signed offsets and tag the revision registers
      that don't exist with -ENODEV, and init the missing ones with the correct
      revision register offset.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      103fd8e7
  9. 01 3月, 2018 3 次提交
  10. 22 1月, 2018 1 次提交
    • A
      ARM: omap: hwmod: fix section mismatch warnings · 0ca14cde
      Arnd Bergmann 提交于
      Older compilers choose not to inline _setup_clkctrl_provider(),
      leading to a harmless warning:
      
      WARNING: vmlinux.o(.text+0x27b34): Section mismatch in reference from the function _setup_clkctrl_provider() to the function .init.text:memblock_virt_alloc_try_nid()
      The function _setup_clkctrl_provider() references
      the function __init memblock_virt_alloc_try_nid().
      This is often because _setup_clkctrl_provider lacks a __init
      annotation or the annotation of memblock_virt_alloc_try_nid is wrong.
      
      This annotates it as __init as well, which lets the linker
      see that it is actually correct.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      0ca14cde
  11. 23 12月, 2017 1 次提交
  12. 21 12月, 2017 1 次提交
    • T
      bus: ti-sysc: Make omap_hwmod_sysc_fields into sysc_regbits platform data · 49a0a3d8
      Tony Lindgren 提交于
      We want to be able to configure hwmod sysc data from ti-sysc driver using
      platform data callbacks. So let's make struct omap_hwmod_sysc_fields into
      struct sysc_data and have it available for both ti-sysc driver and hwmod
      code.
      
      Note that we can make it use s8 instead of u8 as the hwmod code uses the
      feature flags to check for this field. However, for ti-sysc we can use
      -ENODEV to indicate a feature is not supported in the hardware and can
      simplify the code that way.
      
      And let's add also emufree_shift as the dts files will be describing the
      hardware for the SYSCONFIG register capbilities mask.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      49a0a3d8
  13. 04 12月, 2017 2 次提交
  14. 11 10月, 2017 4 次提交
    • T
      ARM: OMAP2+: Drop legacy struct omap_hwmod_addr_space · 9cffb1a0
      Tony Lindgren 提交于
      With all of mach-omap2 booting now in device tree only mode,
      we can get the module IO range from device tree and just drop
      the legacy hwmod struct omap_hwmod_addr_space.
      
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9cffb1a0
    • T
      ARM: OMAP2+: Drop omap_hwmod_dma_info · c2b84a9b
      Tony Lindgren 提交于
      We have all of mach-omap2 booting in device tree only
      mode now, and this data is populated from device tree.
      
      Note that once we have removed support for the omap legacy
      DMA, we can also drop struct omap_dma_dev_attr.
      
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c2b84a9b
    • T
      ARM: OMAP2+: Drop omap_hwmod_irq_info · fe97874a
      Tony Lindgren 提交于
      With the previous patches removing the need for legacy IRQs
      now that all of mach-omap2 is booting in device tree only mode,
      we can drop struct omap_hwmod_irq_info.
      
      Note that we can now also finally drop omap4_xlate_irq.
      
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      fe97874a
    • T
      ARM: OMAP2+: Parse module IO range from dts for legacy "ti,hwmods" support · 6c72b355
      Tony Lindgren 提交于
      When removing legacy platform data for IO ranges for the hwmod
      interconnect code, we still need to support the "ti,hwmods"
      property.
      
      And as we're going to use a generic sysc device driver to handle the
      interconnect target instances, we can parse the information needed
      for legacy "ti,hwmods" IO range from the dts. It's always the first
      range the interconnect target module provides.
      
      Note that we want to parse the range instead of the first child
      device IO regs as the child device may not always be defined.
      
      The child IP device node may not exist in cases where there is no
      driver binding for the device, or when the child IP block may not
      even be functional for some SoC revisions. But the IO range of the
      interconnect target module is always known.
      
      Cc: "Benoît Cousson" <bcousson@baylibre.com>
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      6c72b355
  15. 20 9月, 2017 1 次提交
    • T
      ARM: OMAP2+: Fix overwriting of clkctrl and modulemode values · 8823ddf2
      Tony Lindgren 提交于
      We are currently overwiting the hwmod clkctrl registers if we
      configure a clock ctrl clock from device tree.
      
      While this does not expose any bugs except for kernel coders
      when debugging things, it should be fixed for correctness.
      It is now impossible to use the hwmod data for checking the
      clkctrl register values after booting for debugging or
      generating dts data from hwmod data.
      
      Let's fix the issue by adding a helper to detect if clkctrl
      clock is configured.
      
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      8823ddf2
  16. 17 8月, 2017 1 次提交
  17. 08 6月, 2017 1 次提交
  18. 06 6月, 2017 1 次提交
    • T
      ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available · 70f05be3
      Tero Kristo 提交于
      If clkctrl clocks are available on a device, populate these automatically
      to replace hwmod main_clk info. First, the patch parses all "ti,clkctrl"
      compatible nodes and maps these against existing clockdomain data. Once
      done, individual hwmod init routines can search for a clkctrl clock
      handle based on the clockdomain info and the created mapping.
      
      This patch also drops the obsolete "_mod_ck" search as the implementation
      required for this was not accepted usptream.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      70f05be3
  19. 24 3月, 2017 1 次提交
  20. 15 3月, 2017 3 次提交
  21. 21 1月, 2017 1 次提交
  22. 28 12月, 2016 1 次提交
  23. 11 11月, 2016 1 次提交
  24. 23 7月, 2016 1 次提交
    • D
      ARM: OMAP4+: Have _omap4_wait_target_* check for valid clkctrl_offs · 428929c7
      Dave Gerlach 提交于
      Previously the low-level CM call internal to the
      _omap4_wait_target_ready/disable calls was responsible for checking for
      a valid clkctrl_offs. Now we must also consider the value of the
      prcm.omap4.flags because if HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET is set in
      the flags then clkctrl_offs of 0 is valid.
      
      Let's add this check into the _omap4_wait_target_ready/disable where we
      have access to both the clkctrl_offs and the flags values and simply
      return 0 without calling the low level CM call at all, which would have
      returned 0 anyway if the clktrl_offs was zero.
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Acked-by: NTero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      428929c7
  25. 04 7月, 2016 2 次提交
  26. 11 4月, 2016 1 次提交
    • S
      ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence · c20c8f75
      Suman Anna 提交于
      The omap_hwmod _enable() function can return success without setting
      the hwmod state to _HWMOD_STATE_ENABLED for IPs with reset lines when
      all of the reset lines are asserted. The omap_hwmod _idle() function
      also performs a similar check, but after checking for the hwmod state
      first. This triggers the WARN when pm_runtime_get and pm_runtime_put
      are invoked on IPs with all reset lines asserted. Reverse the checks
      for hwmod state and reset lines status to fix this.
      
      Issue found during a unbind operation on a device with reset lines
      still asserted, example backtrace below
      
       ------------[ cut here ]------------
       WARNING: CPU: 1 PID: 879 at arch/arm/mach-omap2/omap_hwmod.c:2207 _idle+0x1e4/0x240()
       omap_hwmod: mmu_dsp: idle state can only be entered from enabled state
       Modules linked in:
       CPU: 1 PID: 879 Comm: sh Not tainted 4.4.0-00008-ga989d951331a #3
       Hardware name: Generic OMAP5 (Flattened Device Tree)
       [<c0018e60>] (unwind_backtrace) from [<c0014dc4>] (show_stack+0x10/0x14)
       [<c0014dc4>] (show_stack) from [<c037ac28>] (dump_stack+0x90/0xc0)
       [<c037ac28>] (dump_stack) from [<c003f420>] (warn_slowpath_common+0x78/0xb4)
       [<c003f420>] (warn_slowpath_common) from [<c003f48c>] (warn_slowpath_fmt+0x30/0x40)
       [<c003f48c>] (warn_slowpath_fmt) from [<c0028c20>] (_idle+0x1e4/0x240)
       [<c0028c20>] (_idle) from [<c0029080>] (omap_hwmod_idle+0x28/0x48)
       [<c0029080>] (omap_hwmod_idle) from [<c002a5a4>] (omap_device_idle+0x3c/0x90)
       [<c002a5a4>] (omap_device_idle) from [<c0427a90>] (__rpm_callback+0x2c/0x60)
       [<c0427a90>] (__rpm_callback) from [<c0427ae4>] (rpm_callback+0x20/0x80)
       [<c0427ae4>] (rpm_callback) from [<c0427f84>] (rpm_suspend+0x138/0x74c)
       [<c0427f84>] (rpm_suspend) from [<c0428b78>] (__pm_runtime_idle+0x78/0xa8)
       [<c0428b78>] (__pm_runtime_idle) from [<c041f514>] (__device_release_driver+0x64/0x100)
       [<c041f514>] (__device_release_driver) from [<c041f5d0>] (device_release_driver+0x20/0x2c)
       [<c041f5d0>] (device_release_driver) from [<c041d85c>] (unbind_store+0x78/0xf8)
       [<c041d85c>] (unbind_store) from [<c0206df8>] (kernfs_fop_write+0xc0/0x1c4)
       [<c0206df8>] (kernfs_fop_write) from [<c018a120>] (__vfs_write+0x20/0xdc)
       [<c018a120>] (__vfs_write) from [<c018a9cc>] (vfs_write+0x90/0x164)
       [<c018a9cc>] (vfs_write) from [<c018b1f0>] (SyS_write+0x44/0x9c)
       [<c018b1f0>] (SyS_write) from [<c0010420>] (ret_fast_syscall+0x0/0x1c)
       ---[ end trace a4182013c75a9f50 ]---
      
      While at this, fix the sequence in _shutdown() as well, though there
      is no easy reproducible scenario.
      
      Fixes: 747834ab ("ARM: OMAP2+: hwmod: revise hardreset behavior")
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      c20c8f75
  27. 27 3月, 2016 1 次提交
    • L
      ARM: OMAP2+: hwmod: Fix updating of sysconfig register · 3ca4a238
      Lokesh Vutla 提交于
      Commit 127500cc ("ARM: OMAP2+: Only write the sysconfig on idle
      when necessary") talks about verification of sysconfig cache value before
      updating it, only during idle path. But the patch is adding the
      verification in the enable path. So, adding the check in a proper place
      as per the commit description.
      
      Not keeping this check during enable path as there is a chance of losing
      context and it is safe to do on idle as the context of the register will
      never be lost while the device is active.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Acked-by: NTero Kristo <t-kristo@ti.com>
      Cc: Jon Hunter <jonathanh@nvidia.com>
      Cc: <stable@vger.kernel.org> # 3.12+
      Fixes: commit 127500cc "ARM: OMAP2+: Only write the sysconfig on idle when necessary"
      [paul@pwsan.com: appears to have been caused by my own mismerge of the
       originally posted patch]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      3ca4a238