1. 17 6月, 2014 5 次提交
    • L
      ARM: integrator: fix section mismatch problem · e1318391
      Linus Walleij 提交于
      This addresses a section mismatch problem in the IM-PD1
      driver in the Integrator/AP.
      
      The IM-PD1 contains a VIC interrupt controller and therefore
      the driver calls vic_init_cascaded() which is marked __init as
      irqchips are simply not hot-pluggable and specifically the VIC
      is assumed to initiate only on boot.
      
      However the module driver model of the Integrator LM bus
      assumes that logic tile drivers can be probed at runtime. This
      is not really the case for IM-PD1: these tiles are detected at
      boot and they cannot be plugged into a running system. Before
      this patch it is of course possible to modprobe them later.
      
      By first forcing the IM-PD1 to bool we make sure this driver
      gets compiled into the kernel, and we know it will be probed
      only at boot time when the tiles are detected, so we can tag
      its probe function __init_refok as we know it won't be called
      after boot now, and the section mismatch problem goes away.
      
      As a side effect, sysfs binding from userspace becomes
      impossible, so we tag the driver to suppress the bind/unbind
      sysfs attributes.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      e1318391
    • J
      ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size · e47043ae
      Jason Cooper 提交于
      The OpenBlocks AX3-4 has a non-DT bootloader.  It also comes with 1GB of
      soldered on RAM, and a DIMM slot for expansion.
      
      Unfortunately, atags_to_fdt() doesn't work in big-endian mode, so we see
      the following failure when attempting to boot a big-endian kernel:
      
        686 slab pages
        17 pages shared
        0 pages swap cached
        [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
        Kernel panic - not syncing: Out of memory and no killable processes...
      
        CPU: 1 PID: 351 Comm: kworker/u4:0 Not tainted 3.15.0-rc8-next-20140603 #1
        [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
        [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
        [<c0802500>] (dump_stack) from [<c0800068>] (panic+0x90/0x21c)
        [<c0800068>] (panic) from [<c02b5704>] (out_of_memory+0x320/0x340)
        [<c02b5704>] (out_of_memory) from [<c02b93a0>] (__alloc_pages_nodemask+0x874/0x930)
        [<c02b93a0>] (__alloc_pages_nodemask) from [<c02d446c>] (handle_mm_fault+0x744/0x96c)
        [<c02d446c>] (handle_mm_fault) from [<c02cf250>] (__get_user_pages+0xd0/0x4c0)
        [<c02cf250>] (__get_user_pages) from [<c02f3598>] (get_arg_page+0x54/0xbc)
        [<c02f3598>] (get_arg_page) from [<c02f3878>] (copy_strings+0x278/0x29c)
        [<c02f3878>] (copy_strings) from [<c02f38bc>] (copy_strings_kernel+0x20/0x28)
        [<c02f38bc>] (copy_strings_kernel) from [<c02f4f1c>] (do_execve+0x3a8/0x4c8)
        [<c02f4f1c>] (do_execve) from [<c025ac10>] (____call_usermodehelper+0x15c/0x194)
        [<c025ac10>] (____call_usermodehelper) from [<c020e9b8>] (ret_from_fork+0x14/0x3c)
        CPU0: stopping
        CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc8-next-20140603 #1
        [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
        [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
        [<c0802500>] (dump_stack) from [<c021429c>] (handle_IPI+0x138/0x174)
        [<c021429c>] (handle_IPI) from [<c02087f0>] (armada_370_xp_handle_irq+0xb0/0xcc)
        [<c02087f0>] (armada_370_xp_handle_irq) from [<c0212100>] (__irq_svc+0x40/0x50)
        Exception stack(0xc0b6bf68 to 0xc0b6bfb0)
        bf60:                   e9fad598 00000000 00f509a3 00000000 c0b6a000 c0b724c4
        bf80: c0b72458 c0b6a000 00000000 00000000 c0b66da0 c0b6a000 00000000 c0b6bfb0
        bfa0: c027bb94 c027bb24 60000313 ffffffff
        [<c0212100>] (__irq_svc) from [<c027bb24>] (cpu_startup_entry+0x54/0x214)
        [<c027bb24>] (cpu_startup_entry) from [<c0ac5b30>] (start_kernel+0x318/0x37c)
        [<c0ac5b30>] (start_kernel) from [<00208078>] (0x208078)
        ---[ end Kernel panic - not syncing: Out of memory and no killable processes...
      
      A similar failure will also occur if ARM_ATAG_DTB_COMPAT isn't selected.
      
      Fix this by setting a sane default (1 GB) in the dts file.
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      Tested-by: NKevin Hilman <khilman@linaro.org>
      Cc: <stable@vger.kernel.org> #v3.13+
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      e47043ae
    • A
      ARM: samsung: make SAMSUNG_DMADEV optional · 27873b05
      Arnd Bergmann 提交于
      The only remaining driver using the samsung dmadev code is the broken
      samsung-ac97 sound driver. However, as found by Russell's autobuilder,
      the elaborate dependency chains around it cause problems with
      circular dependencies.
      
      This is an attempt to simplify those dependencies by making the
      SAMSUNG_DMADEV option user-selectable. I also try to keep the
      default settings for all related options unchanged, so we don't
      introduce any regressions against earlier testing on linux-next.
      
      In particular, all s3c64xx and s5p* platforms keep selecting the
      pl330 and pl08x drivers they require, but the select statement
      is now moved towards the main platform option, and it remains
      optional by unselecting CONFIG_DMADEVICES.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      27873b05
    • A
      ARM: keystone requires ARM_PATCH_PHYS_VIRT · 13ee8955
      Arnd Bergmann 提交于
      The dynamic relocation that the keystone platform performs
      only works if we can pick the phys offset at boot time. It's
      possible that there is another solution for this, but this
      is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
      are not portable across platforms, and I see no reason why
      anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
      keystone.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      13ee8955
    • A
      ARM: omap2: fix am43xx dependency on l2x0 cache · 2ad501cc
      Arnd Bergmann 提交于
      Commit d941f86f ("ARM: l2c: AM43x: add L2 cache support") enabled
      the L2 cache support for the am43xx SoC, but caused a build regression
      when the driver for that cache controller is disabled:
      
      arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
      :(.init.text+0xb20): undefined reference to `omap_l2_cache_init'
      
      This did not happen for OMAP4, which has the same call, but enables
      the l2x0 driver unconditionally. We could do the same thing for
      am43xx, but it seems better to allow turning it off and make the
      code work in either case.
      
      This adds an inline wrapper for omap_l2_cache_init for the disabled
      case, and removes the 'select' from OMAP4 so it becomes a user
      visible option.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Cc: linux-omap@vger.kernel.org
      2ad501cc
  2. 08 6月, 2014 2 次提交
  3. 07 6月, 2014 3 次提交
  4. 06 6月, 2014 1 次提交
  5. 05 6月, 2014 1 次提交
  6. 04 6月, 2014 1 次提交
  7. 03 6月, 2014 14 次提交
  8. 02 6月, 2014 9 次提交
  9. 01 6月, 2014 3 次提交
  10. 31 5月, 2014 1 次提交
    • A
      ARM: exynos: Fix "allmodconfig" build errors in mcpm and hotplug · 4081503b
      Abhilash Kesavan 提交于
      This fixes the following build errors:
      
      /tmp/ccRbZlaA.s: Assembler messages:
      /tmp/ccRbZlaA.s:69: Error: selected processor does not support ARM mode `isb '
      /tmp/ccRbZlaA.s:75: Error: selected processor does not support ARM mode `isb '
      /tmp/ccRbZlaA.s:76: Error: selected processor does not support ARM mode `dsb '
      make[1]: *** [arch/arm/mach-exynos/hotplug.o] Error 1
      
      /tmp/ccJEg4jw.s: Assembler messages:
      /tmp/ccJEg4jw.s:454: Error: selected processor does not support ARM mode `isb'
      /tmp/ccJEg4jw.s:455: Error: selected processor does not support ARM mode `dsb'
      /tmp/ccJEg4jw.s:465: Error: selected processor does not support ARM mode `isb'
      /tmp/ccJEg4jw.s:474: Error: selected processor does not support ARM mode `isb'
      /tmp/ccJEg4jw.s:475: Error: selected processor does not support ARM mode `dsb'
      /tmp/ccJEg4jw.s:516: Error: selected processor does not support ARM mode `isb'
      /tmp/ccJEg4jw.s:525: Error: selected processor does not support ARM mode `isb'
      /tmp/ccJEg4jw.s:526: Error: selected processor does not support ARM mode `dsb'
      make[1]: *** [arch/arm/mach-exynos/mcpm-exynos.o] Error 1
      Reported-by: NSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: NAbhilash Kesavan <a.kesavan@samsung.com>
      Tested-by: NSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4081503b