1. 10 5月, 2012 3 次提交
  2. 09 5月, 2012 2 次提交
    • B
      ARM: OMAP4: hsmmc: check for null pointer · 1ee47b0a
      Balaji T K 提交于
      platform_device pdev can be NULL if CONFIG_MMC_OMAP_HS is not set.
      Add check for NULL pointer. while at it move the duplicated functions
      to omap4-common.c
      
      Fixes the following boot crash seen with omap4sdp and omap4panda
      when MMC is disabled.
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000008c
      pgd = c0004000
      [0000008c] *pgd=00000000
      Internal error: Oops: 5 [#1] SMP ARM
      Modules linked in:
      CPU: 0    Not tainted  (3.4.0-rc1-05971-ga4dfa82 #4)
      PC is at omap_4430sdp_init+0x184/0x410
      LR is at device_add+0x1a0/0x664
      Signed-off-by: NBalaji T K <balajitk@ti.com>
      Reported-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1ee47b0a
    • A
      ARM: OMAP1: fix compilation issue in board-sx1.c · e54bdc18
      Artem Bityutskiy 提交于
      SX1 board requirese i2c, so select it in Kconfig, otherwise I have the
      following build error:
      
      arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_write_byte':
      arch/arm/mach-omap1/board-sx1.c:58:2: error: implicit declaration of function 'i2c_get_adapter' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c:58:7: warning: assignment makes pointer from integer without a cast [enabled by default]
      arch/arm/mach-omap1/board-sx1.c:67:2: error: implicit declaration of function 'i2c_transfer' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c:68:2: error: implicit declaration of function 'i2c_put_adapter' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_read_byte':
      arch/arm/mach-omap1/board-sx1.c:82:7: warning: assignment makes pointer from integer without a cast [enabled by default]
      cc1: some warnings being treated as errors
      make[1]: *** [arch/arm/mach-omap1/board-sx1.o] Error 1
      make: *** [arch/arm/mach-omap1] Error 2
      make: *** Waiting for unfinished jobs....
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e54bdc18
  3. 28 4月, 2012 4 次提交
    • W
      ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs · 5e7371de
      Will Deacon 提交于
      When a CPU is hotplugged off, we migrate any IRQs currently affine to it
      away and onto another online CPU by calling the irq_set_affinity
      function of the relevant interrupt controller chip. This function
      returns either IRQ_SET_MASK_OK or IRQ_SET_MASK_OK_NOCOPY, to indicate
      whether irq_data.affinity was updated.
      
      If we are forcefully migrating an interrupt (because the affinity mask
      no longer identifies any online CPUs) then we should update the IRQ
      affinity mask to reflect the new CPU set. Failure to do so can
      potentially leave /proc/irq/n/smp_affinity identifying only offline
      CPUs, which may confuse userspace IRQ balancing daemons.
      
      This patch updates migrate_one_irq to copy the affinity mask when
      the interrupt chip returns IRQ_SET_MASK_OK after forcefully changing the
      affinity of an interrupt.
      
      Cc: stable@vger.kernel.org
      Reported-by: NLeif Lindholm <leif.lindholm@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5e7371de
    • W
      ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim · 6fa99b7f
      Will Deacon 提交于
      When performing a kexec on an SMP system, the secondary cores are stopped
      by calling machine_shutdown(), which in turn issues IPIs to offline the
      other CPUs. Unfortunately, this isn't enough to reboot the cores into
      a new kernel (since they are just executing a cpu_relax loop somewhere
      in memory) so we make use of platform_cpu_kill, part of the CPU hotplug
      implementation, to place the cores somewhere safe. This function expects
      to be called on the killing CPU for each core that it takes out.
      
      This patch moves the platform_cpu_kill callback out of the IPI handler
      and into smp_send_stop, therefore ensuring that it executes on the
      killing CPU rather than on the victim, matching what the hotplug code
      requires.
      
      Cc: stable@vger.kernel.org
      Reported-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6fa99b7f
    • W
      ARM: 7403/1: tls: remove covert channel via TPIDRURW · 6a1c5312
      Will Deacon 提交于
      TPIDRURW is a user read/write register forming part of the group of
      thread registers in more recent versions of the ARM architecture (~v6+).
      
      Currently, the kernel does not touch this register, which allows tasks
      to communicate covertly by reading and writing to the register without
      context-switching affecting its contents.
      
      This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
      macro, which is called directly from __switch_to. Since the current
      behaviour makes the register useless to userspace as far as thread
      pointers are concerned, simply clearing the register (rather than saving
      and restoring it) will not cause any problems to userspace.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6a1c5312
    • S
      ARM: 7401/1: mm: Fix section mismatches · 14904927
      Stephen Boyd 提交于
      WARNING: vmlinux.o(.text+0x111b8): Section mismatch in reference
      from the function arm_memory_present() to the function
      .init.text:memory_present()
      The function arm_memory_present() references
      the function __init memory_present().
      This is often because arm_memory_present lacks a __init
      annotation or the annotation of memory_present is wrong.
      
      WARNING: arch/arm/mm/built-in.o(.text+0x1edc): Section mismatch
      in reference from the function alloc_init_pud() to the function
      .init.text:alloc_init_section()
      The function alloc_init_pud() references
      the function __init alloc_init_section().
      This is often because alloc_init_pud lacks a __init
      annotation or the annotation of alloc_init_section is wrong.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      14904927
  4. 27 4月, 2012 4 次提交
  5. 26 4月, 2012 1 次提交
  6. 25 4月, 2012 5 次提交
  7. 24 4月, 2012 1 次提交
  8. 23 4月, 2012 7 次提交
  9. 21 4月, 2012 2 次提交
  10. 20 4月, 2012 3 次提交
  11. 19 4月, 2012 1 次提交
    • P
      ARM: bcmring: fix UART declarations · 888073d4
      Paul Gortmaker 提交于
      This error appeared in the bcmring_defconfig build:
      
        CC      arch/arm/mach-bcmring/core.o
      arch/arm/mach-bcmring/core.c:55: error: macro "AMBA_APB_DEVICE" requires 6 arguments, but only 5 given
      arch/arm/mach-bcmring/core.c:55: warning: type defaults to 'int' in declaration of 'AMBA_APB_DEVICE'
      arch/arm/mach-bcmring/core.c:56: error: macro "AMBA_APB_DEVICE" requires 6 arguments, but only 5 given
      arch/arm/mach-bcmring/core.c:56: warning: type defaults to 'int' in declaration of 'AMBA_APB_DEVICE'
      arch/arm/mach-bcmring/core.c:134: error: 'uartA_device' undeclared here (not in a function)
      arch/arm/mach-bcmring/core.c:135: error: 'uartB_device' undeclared here (not in a function)
      make[2]: *** [arch/arm/mach-bcmring/core.o] Error 1
      
      It appeared as of commit 8ede1ae6
      
          "ARM: amba: bcmring: use common amba device initializers"
      
      Note that in include/linux/amba/bus.h we have:
         #define AMBA_APB_DEVICE(name, busid, id, base, irqs, data) ...
      
      There is an a --> A case error in the busid and a missing zero
      placeholder for the id field.
      
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      [olof: reworded patch subject]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      888073d4
  12. 18 4月, 2012 7 次提交
    • R
      ARM: imx: Fix imx5 idle logic bug · 4659b7f1
      Robert Lee 提交于
      The imx5_idle() check of the tzic_eanble_wake() return value uses
      incorrect (inverted) logic causing all attempt to idle to fail.
      Signed-off-by: NRobert Lee <rob.lee@linaro.org>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      4659b7f1
    • F
      ARM: imx27-dt: Fix build due to removal of irq_domain_add_simple() · de1de159
      Fabio Estevam 提交于
      commit 6b783f7c (irq_domain: Remove irq_domain_add_simple()
      replaced irq_domain_add_simple with irq_domain_add_legacy()
      
      Implement this conversion so that imx27-dt can be built again.
      Reported-by: NChris Ball <cjb@laptop.org>
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      de1de159
    • F
      ARM: imx_v4_v5_defconfig: Add support for CONFIG_REGULATOR_FIXED_VOLTAGE · 9fd4a50a
      Fabio Estevam 提交于
      Add support for CONFIG_REGULATOR_FIXED_VOLTAGE.
      
      Without this option the mx27_3ds cannot have the external Ethernet functional
      due to the need of smsc regulators.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      9fd4a50a
    • P
      ARM: OMAP1: DMTIMER: fix broken timer clock source selection · 6aaec67d
      Paul Walmsley 提交于
      DMTIMER source selection on OMAP1 is broken.  omap1_dm_timer_set_src()
      tries to use __raw_{read,write}l() to read from and write to physical
      addresses, but those functions take virtual addresses.
      
      sparse caught this:
      
      arch/arm/mach-omap1/timer.c:50:13: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/timer.c:50:13:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/timer.c:50:13:    got unsigned int
      arch/arm/mach-omap1/timer.c:52:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/timer.c:52:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/timer.c:52:9:    got unsigned int
      
      Fix by using omap_{read,writel}(), just like the other users of the
      MOD_CONF_CTRL_1 register in the OMAP1 codebase.  Of course, in the long term,
      removing omap_{read,write}l() is the appropriate thing to do; but
      this will take some work to do this cleanly.
      
      Looks like this was caused by 97933d6c (ARM: OMAP1: dmtimer: conversion
      to platform devices) that dangerously moved code and changed it in
      the same patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
      Cc: stable@vger.kernel.org
      [tony@atomide.com: updated comments to include the breaking commit]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      6aaec67d
    • S
      ARM: OMAP: serial: Fix the ocp smart idlemode handling bug · 5ae256dc
      Santosh Shilimkar 提交于
      The current serial UART code, while fidling with ocp idlemode bits,
      forget about the smart idle wakeup bit even if it is supported by
      UART IP block. This will lead to missing the module wakeup on OMAP's
      where the smart idle wakeup is supported.
      
      This was the root cause of the console sluggishness issue, I have been
      observing on OMAP4 devices and also can be potential reason for some
      other UART wakeup issues.
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Acked-by: NGovindraj.R <govindraj.raja@ti.com>
      Reviewed-by: NPaul Walmsley <paul@pwsan.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      5ae256dc
    • G
      ARM: OMAP2+: UART: Fix incorrect population of default uart pads · bce492c0
      Govindraj.R 提交于
      Commit (7496ba30  ARM: OMAP2+: UART: Add default mux for all uarts)
      wrongly added muxing of default pads for all uarts. This causes
      breakage on multiple boards using uart pins for alternate functions.
      
      For example, on zoom3 random oopses can be seen with nfsroot as
      the smsc911x ethernet FIFO timings on GPMC bus are controlled
      by gpmc_wait2 and gpmc_wait3 pins. This means we can't mux these
      pads to uart4 functionality as commit 7496ba30 was doing.
      
      Not all boards tend to use all uarts and most of unused uart pins
      are muxed for other purpose. This commit breaks the modules which
      where trying to use unused uart pins on their boards.
      
      So remove the default pad muxing. Note that this is not a complete
      fix, as we now rely on bootloader set muxing for the uart wake-up
      events. Further patching is needed to enable wake-up events for
      uarts that are already muxed to uart mode.
      
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Acked-by: NRuss Dill <russ.dill@gmail.com>
      Reported-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      [tony@atomide.com: updated comments to describe oops on zoom3]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      bce492c0
    • G
      ARM: OMAP: sram: fix BUG in dpll code for !PM case · 63878acf
      Grazvydas Ignotas 提交于
      _omap3_sram_configure_core_dpll is called when SDRC is reprogrammed,
      which is done regardless of CONFIG_PM setting, so we always need it's
      setup code too. Without this, we hit a BUG() on OMAP3 when kernel is
      built without CONFIG_PM:
      
      Reprogramming SDRC clock to 332000000 Hz
      ------------[ cut here ]------------
      kernel BUG at arch/arm/plat-omap/sram.c:342!
      Internal error: Oops - BUG: 0 [#1] ARM
      ...
      [<c001c694>] (omap3_configure_core_dpll+0x68/0x6c) from [<c001b2dc>] (omap3_core_dpll_m2_set_rate+0x1)
      [<c001b2dc>] (omap3_core_dpll_m2_set_rate+0x138/0x1b0) from [<c001a478>] (omap2_clk_set_rate+0x14/0x2)
      [<c001a478>] (omap2_clk_set_rate+0x14/0x20) from [<c001c9dc>] (clk_set_rate+0x54/0x74)
      [<c001c9dc>] (clk_set_rate+0x54/0x74) from [<c022b9c8>] (omap_sdrc_init+0x70/0x90)
      [<c022b9c8>] (omap_sdrc_init+0x70/0x90) from [<c022f178>] (omap3pandora_init+0x11c/0x164)
      [<c022f178>] (omap3pandora_init+0x11c/0x164) from [<c022849c>] (customize_machine+0x20/0x28)
      [<c022849c>] (customize_machine+0x20/0x28) from [<c0225810>] (do_one_initcall+0xa0/0x16c)
      [<c0225810>] (do_one_initcall+0xa0/0x16c) from [<c02259e0>] (kernel_init+0x104/0x1ac)
      [<c02259e0>] (kernel_init+0x104/0x1ac) from [<c0009cec>] (kernel_thread_exit+0x0/0x8)
      Signed-off-by: NGrazvydas Ignotas <notasas@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      63878acf