1. 26 1月, 2016 1 次提交
  2. 23 1月, 2016 5 次提交
    • T
      ARM: OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata · 4da597d1
      Tony Lindgren 提交于
      We don't want to write to .text so let's move ppa_zero_params and
      ppa_por_params to .data and access them via pointers.
      
      Note that I have not been able to test as we I don't have a HS
      omap4 to test with. The code has been changed in similar way as
      for omap3 though.
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <labbott@redhat.com>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Cc: stable@vger.kernel.org # v4.0+
      Fixes: 1e6b4811 ("ARM: mm: allow non-text sections to be
      non-executable")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      4da597d1
    • T
      ARM: OMAP2+: Fix l2_inv_api_params for rodata · 0a0b1327
      Tony Lindgren 提交于
      We don't want to write to .text, so let's move l2_inv_api_params
      to .data and access it via a pointer.
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <labbott@redhat.com>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Cc: stable@vger.kernel.org # v4.0+
      Fixes: 1e6b4811 ("ARM: mm: allow non-text sections to be
      non-executable")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0a0b1327
    • T
      ARM: OMAP2+: Fix save_secure_ram_context for rodata · a5311d4d
      Tony Lindgren 提交于
      We don't want to write to .text and we can move save_secure_ram_context
      into .data as it all gets copied into SRAM anyways.
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <labbott@redhat.com>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Cc: stable@vger.kernel.org # v4.0+
      Fixes: 1e6b4811 ("ARM: mm: allow non-text sections to be
      non-executable")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      a5311d4d
    • T
      ARM: OMAP2+: Fix l2dis_3630 for rodata · eeaf9646
      Tony Lindgren 提交于
      We don't want to write to .text section. Let's move l2dis_3630
      to .data and access it via a pointer.
      
      For calculating the offset, let's optimize out the add and do it
      in ldr/str as suggested by Nicolas Pitre <nicolas.pitre@linaro.org>.
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <labbott@redhat.com>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tero Kristo <t-kristo@ti.com>
      Cc: stable@vger.kernel.org # v4.0+
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Cc: stable@vger.kernel.org # v4.0+
      Fixes: 1e6b4811 ("ARM: mm: allow non-text sections to be
      non-executable")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      eeaf9646
    • T
      ARM: OMAP2+: Fix wait_dll_lock_timed for rodata · d9db5910
      Tony Lindgren 提交于
      We don't want to be writing to .text so it can be set rodata.
      Fix error "Unable to handle kernel paging request at virtual address
      c012396c" in wait_dll_lock_timed if CONFIG_DEBUG_RODATA is selected.
      
      As these counters are for debugging only and unused, we can just
      remove them.
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <labbott@redhat.com>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Cc: stable@vger.kernel.org # v4.0+
      Fixes: 1e6b4811 ("ARM: mm: allow non-text sections to be
      non-executable")
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      d9db5910
  3. 22 1月, 2016 1 次提交
  4. 08 1月, 2016 1 次提交
  5. 07 1月, 2016 1 次提交
    • T
      ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption · e7b11dc7
      Tony Lindgren 提交于
      Commit 63aa945b ("memory: omap-gpmc: Add Kconfig option for debug")
      unified the GPMC debug for the SoCs with GPMC. The commit also left out
      the option for HWMOD_INIT_NO_RESET as we now require proper timings for
      GPMC to be able to remap GPMC devices out of address 0.
      
      Unfortunately on Nokia N900, onenand now only partially works with the
      device tree provided timings. It works enough to get detected but the
      clock rate supported by the onenand chip gets misdetected. This in turn
      causes the GPMC timings to be miscalculated and this leads into file
      system corruption on N900.
      
      Looks like onenand needs CS_CONFIG1 bit 27 WRITETYPE set for for sync
      write. This is needed also for async timings when we write to onenand
      with omap2_onenand_set_async_mode(). Without sync write bit set, the
      async read for the onenand ONENAND_REG_VERSION_ID will return 0xfff.
      
      Let's exit with an error if onenand rate is not detected. And let's
      remove the extra call to omap2_onenand_set_async_mode() as we only need
      to do this once at the end of omap2_onenand_setup_async().
      
      Fixes: 63aa945b ("memory: omap-gpmc: Add Kconfig option for debug")
      Cc: stable@vger.kernel.org # v4.2+
      Reported-by: NIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
      Tested-by: NIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
      Tested-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e7b11dc7
  6. 04 1月, 2016 1 次提交
  7. 23 12月, 2015 5 次提交
  8. 18 12月, 2015 4 次提交
  9. 10 12月, 2015 4 次提交
  10. 04 12月, 2015 1 次提交
    • T
      ARM: OMAP2+: Change core_initcall levels to postcore_initcall · 8dd5ea72
      Tony Lindgren 提交于
      We want to be able to probe a few selected device drivers before hwmod
      code populates the clocks in omap_hwmod_setup_all(). This allows us to
      convert most of the clock drivers into regular device drivers.
      
      We only need a few minimal clock drivers early for the system timers to
      select between the 32KiHz clock and the high frequency oscillator.
      
      With these changes, initializing the clock drivers can be just done at
      core_initcall time with something like:
      
      np = of_find_node_by_name(NULL, "plls");
      if (np)
      	of_platform_populate(np, NULL, NULL, NULL);
      
      And then these clocks will be available for the interconnect code to use.
      
      Having most of the clock drivers being regular device drivers allows
      us to use the nice things like devm_* functions and dev_err and dev_dbg.
      As an extra bonus, this also allows us to develop the clock drivers for
      new SoCs as loadable modules initially for cases where we can boot up
      the system based on the bootloader configured clocks.
      
      To do this, let's change the core_initcalls to postcore_initcall under
      mach-omap2.
      
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Grygorii Strashko <grygorii.strashko@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      8dd5ea72
  11. 02 12月, 2015 1 次提交
  12. 01 12月, 2015 10 次提交
  13. 26 11月, 2015 2 次提交
    • G
      ARM: OMAP4+: SMP: use lockless clkdm/pwrdm api in omap4_boot_secondary · 918af9f9
      Grygorii Strashko 提交于
      OMAP CPU hotplug uses cpu1's clocks and power domains for CPU1 wake up
      from low power states (or turn on CPU1). This part of code is also
      part of system suspend (disable_nonboot_cpus()).
      >From other side, cpu1's clocks and power domains are used by CPUIdle. All above
      functionality is mutually exclusive and, therefore, lockless clkdm/pwrdm api
      can be used in omap4_boot_secondary().
      
      This fixes below back-trace on -RT which is triggered by
      pwrdm_lock/unlock():
      
      BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
       in_atomic(): 1, irqs_disabled(): 0, pid: 118, name: sh
       9 locks held by sh/118:
        #0:  (sb_writers#4){.+.+.+}, at: [<c0144a6c>] vfs_write+0x13c/0x164
        #1:  (&of->mutex){+.+.+.}, at: [<c01b4c70>] kernfs_fop_write+0x48/0x19c
        #2:  (s_active#24){.+.+.+}, at: [<c01b4c78>] kernfs_fop_write+0x50/0x19c
        #3:  (device_hotplug_lock){+.+.+.}, at: [<c03cbff0>] lock_device_hotplug_sysfs+0xc/0x4c
        #4:  (&dev->mutex){......}, at: [<c03cd284>] device_online+0x14/0x88
        #5:  (cpu_add_remove_lock){+.+.+.}, at: [<c003af90>] cpu_up+0x50/0x1a0
        #6:  (cpu_hotplug.lock){++++++}, at: [<c003ae48>] cpu_hotplug_begin+0x0/0xc4
        #7:  (cpu_hotplug.lock#2){+.+.+.}, at: [<c003aec0>] cpu_hotplug_begin+0x78/0xc4
        #8:  (boot_lock){+.+...}, at: [<c002b254>] omap4_boot_secondary+0x1c/0x178
       Preemption disabled at:[<  (null)>]   (null)
      
       CPU: 0 PID: 118 Comm: sh Not tainted 4.1.12-rt11-01998-gb4a62c3-dirty #137
       Hardware name: Generic DRA74X (Flattened Device Tree)
       [<c0017574>] (unwind_backtrace) from [<c0013be8>] (show_stack+0x10/0x14)
       [<c0013be8>] (show_stack) from [<c05a8670>] (dump_stack+0x80/0x94)
       [<c05a8670>] (dump_stack) from [<c05ad158>] (rt_spin_lock+0x24/0x54)
       [<c05ad158>] (rt_spin_lock) from [<c0030dac>] (clkdm_wakeup+0x10/0x2c)
       [<c0030dac>] (clkdm_wakeup) from [<c002b2c0>] (omap4_boot_secondary+0x88/0x178)
       [<c002b2c0>] (omap4_boot_secondary) from [<c0015d00>] (__cpu_up+0xc4/0x164)
       [<c0015d00>] (__cpu_up) from [<c003b09c>] (cpu_up+0x15c/0x1a0)
       [<c003b09c>] (cpu_up) from [<c03cd2d4>] (device_online+0x64/0x88)
       [<c03cd2d4>] (device_online) from [<c03cd360>] (online_store+0x68/0x74)
       [<c03cd360>] (online_store) from [<c01b4ce0>] (kernfs_fop_write+0xb8/0x19c)
       [<c01b4ce0>] (kernfs_fop_write) from [<c0144124>] (__vfs_write+0x20/0xd8)
       [<c0144124>] (__vfs_write) from [<c01449c0>] (vfs_write+0x90/0x164)
       [<c01449c0>] (vfs_write) from [<c01451e4>] (SyS_write+0x44/0x9c)
       [<c01451e4>] (SyS_write) from [<c0010240>] (ret_fast_syscall+0x0/0x54)
       CPU1: smp_ops.cpu_die() returned, trying to resuscitate
      
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      918af9f9
    • N
      arm: omap2+: add missing HWMOD_NO_IDLEST in 81xx hwmod data · 29f5b34c
      Neil Armstrong 提交于
      Add missing HWMOD_NO_IDLEST hwmod flag for entries not
      having omap4 clkctrl values.
      The emac0 hwmod flag fixes the davinci_emac driver probe
      since the return of pm_resume() call is now checked.
      
      This solves the following boot errors :
      [    0.121429] omap_hwmod: l4_ls: _wait_target_ready failed: -16
      [    0.121441] omap_hwmod: l4_ls: cannot be enabled for reset (3)
      [    0.124342] omap_hwmod: l4_hs: _wait_target_ready failed: -16
      [    0.124352] omap_hwmod: l4_hs: cannot be enabled for reset (3)
      [    1.967228] omap_hwmod: emac0: _wait_target_ready failed: -16
      
      Cc: Brian Hutchinson <b.hutchman@gmail.com>
      Signed-off-by: NNeil Armstrong <narmstrong@baylibre.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      29f5b34c
  14. 17 11月, 2015 1 次提交
    • M
      [media] include/media: move platform_data to linux/platform_data/media · eb4b0ec7
      Mauro Carvalho Chehab 提交于
      Let's not mix platform_data headers with the core headers. Instead, let's
      create a subdir at linux/platform_data and move the headers to that
      common place, adding it to MAINTAINERS.
      
      The headers were moved with:
      	mkdir include/linux/platform_data/media/; git mv include/media/gpio-ir-recv.h include/media/ir-rx51.h include/media/mmp-camera.h include/media/omap1_camera.h include/media/omap4iss.h include/media/s5p_hdmi.h include/media/si4713.h include/media/sii9234.h include/media/smiapp.h include/media/soc_camera.h include/media/soc_camera_platform.h include/media/timb_radio.h include/media/timb_video.h include/linux/platform_data/media/
      
      And the references fixed with this script:
          MAIN_DIR="linux/platform_data/"
          PREV_DIR="media/"
          DIRS="media/"
      
          echo "Checking affected files" >&2
          for i in $DIRS; do
      	for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
      		 n=`basename $j`
      		git grep -l $n
      	done
          done|sort|uniq >files && (
      	echo "Handling files..." >&2;
      	echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
      	(
      		cd include/$MAIN_DIR;
      		for j in $DIRS; do
      			for i in $(ls $j); do
      				echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\";
      			done;
      		done;
      		echo "cat > a && mv a \$i; done";
      	);
      	echo "Handling documentation..." >&2;
      	echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
      	(
      		cd include/$MAIN_DIR;
      		for j in $DIRS; do
      			for i in $(ls $j); do
      				echo "  perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
      			done;
      		done;
      		echo "cat > a && mv a \$i; done"
      	);
          ) >script && . ./script
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NLee Jones <lee.jones@linaro.org>
      Acked-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      eb4b0ec7
  15. 13 11月, 2015 2 次提交