Skip to content
  1. May 17, 2013
  2. May 09, 2013
  3. May 08, 2013
    • Wei Yongjun's avatar
      ARM: OMAP1: DMA: fix error handling in omap1_system_dma_init() · 348c3422
      Wei Yongjun authored
      
      
      Add the missing iounmap() before return from omap1_system_dma_init()
      in the error handling case.
      Also removed platform_device_del() on add resources error case which
      cause dup device delete.
      
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      348c3422
    • Kevin Hilman's avatar
      ARM: OMAP2+: omap_device: use late_initcall_sync · e7e17c53
      Kevin Hilman authored
      
      
      If DEBUG_LL and earlyprintk are enabled, and omap-serial.c is compiled
      as a module, the kernel boot hangs early as the clocks for serial port
      are cut while earlyprintk still uses the port.
      
      The problem is a race between the late_initcall for omap_device (which
      idles devices that have no drivers) and the late_initcall in
      kernel/printk.c which turns off the earlyconsole.   Any printks
      that happen between this omap_device late initcall and the earlyconsole
      late initcall will crash when accessing the UART.
      
      The fix is to ensure the omap_device initcall happens after the
      earlyconsole initcall.
      
      Reported-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKevin Hilman <khilman@linaro.org>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      e7e17c53
    • Aaro Koskinen's avatar
      ARM: OMAP: RX-51: change probe order of touchscreen and panel SPI devices · e65f131a
      Aaro Koskinen authored
      
      
      Commit 9fdca9df (spi: omap2-mcspi: convert to module_platform_driver)
      broke the SPI display/panel driver probe on RX-51/N900. The exact cause is
      not fully understood, but it seems to be related to the probe order. SPI
      communication to the panel driver (spi1.2) fails unless the touchscreen
      (spi1.0) has been probed/initialized before. When the omap2-mcspi driver
      was converted to a platform driver, it resulted in that the devices are
      probed immediately after the board registers them in the order they are
      listed in the board file.
      
      Fix the issue by moving the touchscreen before the panel in the SPI
      device list.
      
      The patch fixes the following failure:
      
      [    1.260955] acx565akm spi1.2: invalid display ID
      [    1.265899] panel-acx565akm display0: acx_panel_probe panel detect error
      [    1.273071] omapdss CORE error: driver probe failed: -19
      
      Tested-by: default avatarSebastian Reichel <sre@debian.org>
      Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Cc: Pali Rohár <pali.rohar@gmail.com>
      Cc: Joni Lapilainen <joni.lapilainen@gmail.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      e65f131a
    • Roger Quadros's avatar
      ARM: OMAP3: Beagle: Fix USB Host on beagle xM Ax/Bx · cf7dd658
      Roger Quadros authored
      
      
      On Beagle xM Rev. Ax/Bx, the USB power enable GPIO logic is
      reversed when compared to other revisions i.e. it is
      active high instead of active low.
      
      Use the beagle_config.usb_pwr_level flag correctly so that
      the power regulator can be configured at runtime.
      
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      cf7dd658
    • Jon Hunter's avatar
      ARM: dts: OMAP4: Fix ethernet IRQ for OMAP4 boards · e60f18d6
      Jon Hunter authored
      
      
      Commit ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells
      property) updated the number of interrupt cells required for configuring
      gpios as interrupts for other devices (such as ethernet controllers).
      This update allowed the interrupt type (edge, level, etc) to be
      configured via device-tree (as described in the
      Documentation/devicetree/bindings/gpio/gpio-omap.txt).
      
      This broke ethernet support on the OMAP4 SDP board that defines a gpio
      as the ethernet IRQ because the interrupt type (level, edge, etc) was
      not getting configured correctly. This board use the ks8851 ethernet
      chip which has an active low interrupt. Fix this by defining the gpio
      interrupt as active-low in the device-tree binding.
      
      Please note that the OMAP4-VAR-SOM also uses the same ethernet
      controller and it is expected it will have the same problem. So the
      same fix is also applied to this board.
      
      Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      e60f18d6
    • Linus Torvalds's avatar
      arm: fix mismerge of arch/arm/mach-omap2/timer.c · 9affd6be
      Linus Torvalds authored
      I badly screwed up the merge in commit 6fa52ed3 ("Merge tag
      'drivers-for-linus' of git://git.kernel.org/pub/.../arm-soc"
      
      ) by
      incorrectly taking the arch/arm/mach-omap2/* data fully from the merge
      target because the 'drivers-for-linus' branch seemed to be a proper
      superset of the duplicate ARM commits.
      
      That was bogus: commit ff931c82 ("ARM: OMAP: clocks: Delay clk inits
      atleast until slab is initialized") only existed in head, and the
      changes to arch/arm/mach-omap2/timer.c from that commit got list.
      
      Re-doing the merge more carefully, I do think this part was the only
      thing I screwed up.  Knock wood.
      
      Reported-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Olof Johansson <olof@lixom.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9affd6be
  4. May 07, 2013
  5. May 06, 2013
  6. May 05, 2013
  7. May 03, 2013
    • Tony Lindgren's avatar
      ARM: OMAP2+: Fix unmet direct dependencies for SERIAL_OMAP · eb16d332
      Tony Lindgren authored
      
      
      Commit 8a6201b9 (ARM: OMAP2+: Fix unmet direct dependencies for zoom
      for 8250 serial) fixed unmet direct dependencies for 8250, but failed
      to do the same for omap serial. This can cause the following warning:
      
      warning: (ARCH_OMAP2PLUS_TYPICAL) selects SERIAL_OMAP which has
      unmet direct dependencies (TTY && HAS_IOMEM && GENERIC_HARDIRQS &&
      ARCH_OMAP2PLUS).
      
      We should not select drivers, they should be selected by the
      user. Fix the issue by removing the select and adding them to
      omap2plus_defconfig instead.
      
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      eb16d332
    • Arnd Bergmann's avatar
      ARM: ux500: always select ABX500_CORE · ccefeea9
      Arnd Bergmann authored
      
      
      We are probably selecting more drivers than we should in ux500,
      but cleaning up that logic for good can be left for another
      time. Most of these could be converted into silent options in
      the future, since they are always enabled on ux500 and never
      needed elsewhere.
      
      As a fixup for 3.10, let's at least select the dependencies for
      the other drivers we already select, to make it consistent.
      
      warning: (UX500_SOC_COMMON) selects AB8500_CORE which has unmet direct dependencies (HAS_IOMEM && GENERIC_HARDIRQS && ABX500_CORE && MFD_DB8500_PRCMU)
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      ccefeea9
    • Arnd Bergmann's avatar
      ARM: SIRF: select SMP_ON_UP only on SMP builds · cb0c480a
      Arnd Bergmann authored
      
      
      Like all other platforms, we can only select SMP_ON_UP if SMP
      is also enabled.
      
      warning: (SOC_IMX31 && SOC_IMX35 && ARCH_MARCO) selects
       SMP_ON_UP which has unmet direct dependencies (SMP && !XIP_KERNEL)
      
      Cc: Barry Song <baohua.song@csr.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      cb0c480a
    • Arnd Bergmann's avatar
      ARM: SPEAr: conditionalize l2x0 support · 6343b05f
      Arnd Bergmann authored
      
      
      If the cache controller implementation is disabled at build time,
      we must not call any functions related to it.
      
      arch/arm/mach-spear/built-in.o: In function `spear13xx_l2x0_init':
      arch/arm/mach-spear/spear13xx.c:47: undefined reference to `l2x0_init'
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarViresh Kumar <viresh.linux@gmail.com>
      6343b05f
    • Arnd Bergmann's avatar
      ARM: imx: build CPU suspend code only when needed · cb48389b
      Arnd Bergmann authored
      
      
      The ARM CPU suspend function has its own configuration symbol,
      which we need to use for conditionalizing any code calling into
      it as well.
      
      arch/arm/mach-imx/built-in.o: In function `v7_cpu_resume':
      /git/arm-soc/arch/arm/mach-imx/headsmp.S:57: undefined
       reference to `cpu_resume'
      
      Cc: Sascha Hauer <kernel@pengutronix.de>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      cb48389b
    • Arnd Bergmann's avatar
      ARM: OMAP: build SMP code only for OMAP4/5 · 572b16db
      Arnd Bergmann authored
      
      
      The OMAP platform code assumes that SMP is only ever enabled when
      CONFIG_ARCH_OMAP4 or CONFIG_SOC_OMAP5 is enabled, which is not
      necessarirly true in a multiplatform configuration.
      
      arch/arm/mach-omap2/built-in.o: In function `omap4_smp_prepare_cpus':
       :(.init.text+0x413c): undefined reference to `omap_get_wakeupgen_base'
       :(.init.text+0x415c): undefined reference to `omap_secure_apis_support'
      arch/arm/mach-omap2/built-in.o: In function `omap4_boot_secondary':
       :(.cpuinit.text+0x28): undefined reference to `omap_get_wakeupgen_base'
       :(.cpuinit.text+0x3c): undefined reference to `omap_secure_apis_support'
      arch/arm/mach-omap2/built-in.o: In function `omap4_cpu_die':
       :(.ref.text+0x8): undefined reference to `omap_get_wakeupgen_base'
       :(.ref.text+0x10): undefined reference to `omap_secure_apis_support'
       :(.ref.text+0x4c): undefined reference to `omap4_hotplug_cpu'
       :(.ref.text+0x50): undefined reference to `omap_secure_apis_support'
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      572b16db
    • Arnd Bergmann's avatar
      ARM: tegra: Tegra114 needs CPU_FREQ_TABLE · 63cc8467
      Arnd Bergmann authored
      
      
      Like the other Tegra SoCs using the same cpufreq driver, we
      have to enable CPU_FREQ_TABLE for this one.
      
      drivers/built-in.o: In function `tegra_cpu_exit':
       drivers/cpufreq/tegra-cpufreq.c:237: undefined reference to
       `cpufreq_frequency_table_cpuinfo'
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Cc: Stephen Warren <swarren@nvidia.com>
      Cc: Hiroshi Doyu <hdoyu@nvidia.com>
      63cc8467
  8. May 02, 2013
    • Arnd Bergmann's avatar
      ARM: SPEAr: conditionalize SMP code · a94d236d
      Arnd Bergmann authored
      
      
      Some constant definitions are only defined for spear13xx, so
      we must not attempt to build SPEAr SMP support when that
      SoC is not enabled.
      
      arch/arm/mach-spear/platsmp.c:25:35:
       error: 'VA_SCU_BASE' undeclared here (not in a function)
       arch/arm/mach-spear/platsmp.c: In function 'spear13xx_smp_prepare_cpus':
       arch/arm/mach-spear/platsmp.c:111:58: error: 'SYS_LOCATION' undeclared (first use in this function)
      
      Cc: Viresh Kumar <viresh.linux@gmail.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      a94d236d
    • Arnd Bergmann's avatar
      ARM: imx: reset_controller may be disabled · 5c5f0421
      Arnd Bergmann authored
      
      
      The new reset controller API is optional, so if that is disabled,
      we must not call it from platform code.
      
      arch/arm/mach-imx/built-in.o: In function
       `imx_src_init': /git/arm-soc/arch/arm/mach-imx/src.c:144:
      	undefined reference to `reset_controller_register'
      
      Cc: Sascha Hauer <kernel@pengutronix.de>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      5c5f0421
    • Russell King's avatar
      ARM: EXYNOS: remove unnecessary use of IS_ERR_VALUE() · 008ca431
      Russell King authored
      
      
      s5p_register_gpio_interrupt() returns 0 or positive for success, and
      -ve for errors, so just use the standard >= 0 test.
      
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      008ca431
    • Russell King's avatar
      ARM: IMX: remove unnecessary use of IS_ERR_VALUE() · d98642c3
      Russell King authored
      
      
      device_register() returns -ve values for errors, and zero for success.
      There's no need to obfuscate the code with IS_ERR_VALUE().
      
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      d98642c3
    • Russell King's avatar
      ARM: OMAP: use consistent error checking · c48cd659
      Russell King authored
      
      
      Consistently check errors using the usual method used in the kernel
      for much of its history.  For instance:
      
      int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t)
      {
      	int div;
      	div = gpmc_calc_divider(t->sync_clk);
      	if (div < 0)
      		return div;
      static int gpmc_set_async_mode(int cs, struct gpmc_timings *t)
      {
      ...
      	return gpmc_cs_set_timings(cs, t);
      
      .....
      	ret = gpmc_set_async_mode(gpmc_onenand_data->cs, &t);
      	if (IS_ERR_VALUE(ret))
      		return ret;
      
      So, gpmc_cs_set_timings() thinks any negative return value is an error,
      but where we check that in higher levels, only a limited range are
      errors...
      
      There is only _one_ use of IS_ERR_VALUE() in arch/arm which is really
      appropriate, and that is in arch/arm/include/asm/syscall.h:
      
      static inline long syscall_get_error(struct task_struct *task,
      				     struct pt_regs *regs)
      {
      	unsigned long error = regs->ARM_r0;
      	return IS_ERR_VALUE(error) ? error : 0;
      }
      
      because this function really does have to differentiate between error
      return values and addresses which look like negative numbers (eg, from
      mmap()).
      
      So, here's a patch to remove them from OMAP, except for the above.
      
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      c48cd659
    • Russell King's avatar
      ARM: cleanup: OMAP hwmod error checking · 857835c6
      Russell King authored
      
      
      omap_hwmod_lookup() only returns NULL on error, never an error pointer.
      Checking the returned pointer using IS_ERR_OR_NULL() is needless
      overhead.  Use a simple !ptr check instead.
      
      OMAP devices (oh->od) always have a valid platform device attached (see
      omap_device_alloc()) so there's no point validating the platform device
      pointer (we will have already oopsed long before if this is not the
      case here.)
      
      Lastly, oh->od is only ever NULL or a valid omap device pointer - 'oh'
      comes from the statically declared hwmod tables, and the pointer is
      only filled in by omap_device_alloc() at a point where the omap device
      pointer must be valid.
      
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      857835c6
Loading