1. 15 3月, 2013 4 次提交
    • S
      ARM: i.MX35: enable MAX clock · 5dc2eb7d
      Sascha Hauer 提交于
      The i.MX35 has two bits per clock gate which are decoded as follows:
            0b00 -> clock off
            0b01 -> clock is on in run mode, off in wait/doze
            0b10 -> clock is on in run/wait mode, off in doze
            0b11 -> clock is always on
      
      The reset value for the MAX clock is 0b10.
      
      The MAX clock is needed by the SoC, yet unused in the Kernel, so the
      common clock framework will disable it during late init time. It will
      only disable clocks though which it detects as being turned on. This
      detection is made depending on the lower bit of the gate. If the reset
      value has been altered by the bootloader to 0b11 the clock framework
      will detect the clock as turned on, yet unused, hence it will turn it
      off and the system locks up.
      
      This patch turns the MAX clock on unconditionally making the Kernel
      independent of the bootloader.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      5dc2eb7d
    • S
      ARM: Scorpion is a v7 architecture, not v6 · 8dda05cc
      Stephen Boyd 提交于
      Scorpion processors have always been v7 CPUs. Fix the Kconfig
      text to reflect this.
      Reported-by: NStepan Moskovchenko <stepanm@codeaurora.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      8dda05cc
    • H
      ARM: mmp: add platform_device head file in gplugd · e71dc5f7
      Haojian Zhuang 提交于
      arch/arm/mach-mmp/gplugd.c: In function ‘gplugd_init’:
      arch/arm/mach-mmp/gplugd.c:188:2: error: implicit declaration of
      function ‘platform_device_register’
      [-Werror=implicit-function-declaration]
      cc1: some warnings being treated as errors
      make[1]: *** [arch/arm/mach-mmp/gplugd.o] Error 1
      make: *** [arch/arm/mach-mmp] Error 2
      
      So append platform_device.h to resolve build issue.
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@linaro.org>
      e71dc5f7
    • A
      [media] s5p-fimc: fix s5pv210 build · 01ffe957
      Arnd Bergmann 提交于
      56bc911a "[media] s5p-fimc: Redefine platform data structure for fimc-is"
      changed the bus_type member of struct fimc_source_info treewide, but
      got one instance wrong in mach-s5pv210, which was evidently not
      even build tested.
      
      This adds the missing change to get s5pv210_defconfig to build again.
      Applies on the Mauro's media tree.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
      01ffe957
  2. 14 3月, 2013 3 次提交
  3. 13 3月, 2013 2 次提交
  4. 12 3月, 2013 4 次提交
  5. 11 3月, 2013 2 次提交
  6. 09 3月, 2013 11 次提交
  7. 08 3月, 2013 1 次提交
    • I
      ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations · 455bd4c4
      Ivan Djelic 提交于
      Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
      assumptions about the implementation of memset and similar functions.
      The current ARM optimized memset code does not return the value of
      its first argument, as is usually expected from standard implementations.
      
      For instance in the following function:
      
      void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
      {
      	memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
      	waiter->magic = waiter;
      	INIT_LIST_HEAD(&waiter->list);
      }
      
      compiled as:
      
      800554d0 <debug_mutex_lock_common>:
      800554d0:       e92d4008        push    {r3, lr}
      800554d4:       e1a00001        mov     r0, r1
      800554d8:       e3a02010        mov     r2, #16 ; 0x10
      800554dc:       e3a01011        mov     r1, #17 ; 0x11
      800554e0:       eb04426e        bl      80165ea0 <memset>
      800554e4:       e1a03000        mov     r3, r0
      800554e8:       e583000c        str     r0, [r3, #12]
      800554ec:       e5830000        str     r0, [r3]
      800554f0:       e5830004        str     r0, [r3, #4]
      800554f4:       e8bd8008        pop     {r3, pc}
      
      GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
      register/memory corruptions.
      
      This patch fixes the return value of the assembly version of memset.
      It adds a 'mov' instruction and merges an additional load+store into
      existing load/store instructions.
      For ease of review, here is a breakdown of the patch into 4 simple steps:
      
      Step 1
      ======
      Perform the following substitutions:
      ip -> r8, then
      r0 -> ip,
      and insert 'mov ip, r0' as the first statement of the function.
      At this point, we have a memset() implementation returning the proper result,
      but corrupting r8 on some paths (the ones that were using ip).
      
      Step 2
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
      
      save r8:
      -       str     lr, [sp, #-4]!
      +       stmfd   sp!, {r8, lr}
      
      and restore r8 on both exit paths:
      -       ldmeqfd sp!, {pc}               @ Now <64 bytes to go.
      +       ldmeqfd sp!, {r8, pc}           @ Now <64 bytes to go.
      (...)
              tst     r2, #16
              stmneia ip!, {r1, r3, r8, lr}
      -       ldr     lr, [sp], #4
      +       ldmfd   sp!, {r8, lr}
      
      Step 3
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
      
      save r8:
      -       stmfd   sp!, {r4-r7, lr}
      +       stmfd   sp!, {r4-r8, lr}
      
      and restore r8 on both exit paths:
              bgt     3b
      -       ldmeqfd sp!, {r4-r7, pc}
      +       ldmeqfd sp!, {r4-r8, pc}
      (...)
              tst     r2, #16
              stmneia ip!, {r4-r7}
      -       ldmfd   sp!, {r4-r7, lr}
      +       ldmfd   sp!, {r4-r8, lr}
      
      Step 4
      ======
      Rewrite register list "r4-r7, r8" as "r4-r8".
      Signed-off-by: NIvan Djelic <ivan.djelic@parrot.com>
      Reviewed-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NDirk Behme <dirk.behme@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      455bd4c4
  8. 07 3月, 2013 4 次提交
  9. 06 3月, 2013 2 次提交
  10. 05 3月, 2013 7 次提交
    • S
      ARM: S5PV210: Fix PL330 DMA controller clkdev entries · b83e831a
      Sylwester Nawrocki 提交于
      Since the DMA controller clocks are managed at amba bus level, the
      PL330 device clocks handling has been removed from the driver in
      commit 7c71b8eb("DMA: PL330: Remove redundant runtime_suspend/
      resume functions")
      
      However, this left the S5PV210 platform with only clkdev entries
      linking "apb_pclk" clock conn_id to a dummy clock, rather than
      to corresponding platform PL330 DMAC clock.
      As a result the DMA controller is now attempted to be used on
      S5PV210 with the clock disabled and the driver fails with an
      error:
      
      dma-pl330 dma-pl330.0: PERIPH_ID 0x0, PCELL_ID 0x0 !
      dma-pl330: probe of dma-pl330.0 failed with error -22
      dma-pl330 dma-pl330.1: PERIPH_ID 0x0, PCELL_ID 0x0 !
      dma-pl330: probe of dma-pl330.1 failed with error -22
      
      Fix this by adding "apb_pclk" clkdev entries for the Peripheral
      DMA controllers 0/1 and removing the dummy apb_pclk clock.
      Reported-by: NLonsn <lonsn2005@gmail.com>
      Tested-by: NLonsn <lonsn2005@gmail.com>
      Cc: Inderpal Singh <inderpal.singh@linaro.org>
      Cc: Boojin Kim <boojin.kim@samsung.com>
      Signed-off-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: <stable@vger.kernel.org> # v3.7+
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      b83e831a
    • P
      ARM: Tegra: Add clock entry for smp_twd clock · ed3ced37
      Prashant Gaikwad 提交于
      As DT support for clocks and smp_twd is enabled, add clock entry
      for smp_twd clock to DT.
      
      This fixes the following error while booting the kernel:
      smp_twd: clock not found -2
      Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com>
      [swarren: include kernel log spew that this fixes]
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      ed3ced37
    • N
      ARM: dts: remove generated .dtb files on clean · 9e25fe6b
      Nishanth Menon 提交于
      commit 5f300acd
      (ARM: 7152/1: distclean: Remove generated .dtb files)
      ensured that dtbs were cleaned up when they were in
      arch/arm/boot.
      However, with the following commit:
      commit 499cd829
      (ARM: dt: change .dtb build rules to build in dts directory)
      
      make clean now leaves dtbs in arch/arm/boot/dts/
      untouched. Include dts directory so that clean-files rule
      from arch/arm/boot/dts/Makefile is invoked when make
      clean is done.
      
      Cc: Dirk Behme <dirk.behme@de.bosch.com>
      CC: Grant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      9e25fe6b
    • S
      ARM: bcm2835: fix I2C module clock rate · 2837a1d4
      Stephen Warren 提交于
      BCM2835-ARM-Peripherals.pdf states that the I2C module's input clock is
      nominally 150MHz, and that value is currently reflected in bcm2835.dtsi.
      However, practical measurements show that the rate is actually 250MHz,
      and this agrees with various downstream kernels.
      
      Switch the I2C clock's frequency to 250MHz so that the generated bus
      clock rate is accurate.
      Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      2837a1d4
    • S
      ARM: OMAP2+: Remove duplicate omap4430_init_late() declaration · 08913c2d
      Santosh Shilimkar 提交于
      Commit bbd707ac {ARM: omap2: use machine specific hook for late init}
      accidentally added two declarations for omap4430_init_late().
      
      Remove the duplicate declaration.
      
      Cc: Shawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Reviewed-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      08913c2d
    • R
      ARM: OMAP2+: mux: correct wrong error messages · 39bb356e
      Ruslan Bilovol 提交于
      This is needed because the omap_mux_get_by_name()
      function calls the _omap_mux_get_by_name subfunction
      for each mux partition until needed mux is not found.
      As a result, we get messages like
      "Could not find signal XXX" for each partition
      where this mux name does not exist.
      
      This patch fixes wrong error message in
      the _omap_mux_get_by_name() function moving it
      to the omap_mux_get_by_name() one and as result
      reduces noise in the kernel log.
      
      My kernel log without this patch:
      [...]
      [    0.221801] omap_mux_init: Add partition: #2: wkup, flags: 3
      [    0.222045] _omap_mux_get_by_name: Could not find signal fref_clk0_out.sys_drm_msecure
      [    0.222137] _omap_mux_get_by_name: Could not find signal sys_nirq
      [    0.222167] _omap_mux_get_by_name: Could not find signal sys_nirq
      [    0.225006] _omap_mux_get_by_name: Could not find signal uart1_rx.uart1_rx
      [    0.225006] _omap_mux_get_by_name: Could not find signal uart1_rx.uart1_rx
      [    0.270111] _omap_mux_get_by_name: Could not find signal fref_clk4_out.fref_clk4_out
      [    0.273406] twl: not initialized
      
      [...]
      
      My kernel log with this patch:
      [...]
      [    0.221771] omap_mux_init: Add partition: #2: wkup, flags: 3
      [    0.222106] omap_mux_get_by_name: Could not find signal sys_nirq
      [    0.224945] omap_mux_get_by_name: Could not find signal uart1_rx.uart1_rx
      [    0.274536] twl: not initialized
      [...]
      Signed-off-by: NRuslan Bilovol <ruslan.bilovol@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      39bb356e
    • F
      ARM: OMAP2+: mux: fix debugfs file permission · 0fa26ce9
      Felipe Balbi 提交于
      OMAP's debugfs interface creates one file
      for each signal in the mux table, such file
      provides a read method but didn't provide
      read permission. Fix it.
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0fa26ce9