1. 29 12月, 2013 1 次提交
    • L
      ARM: pxa: fix USB gadget driver compilation regression · 9928422f
      Linus Walleij 提交于
      After commit 88f718e3
      "ARM: pxa: delete the custom GPIO header" a compilation
      error was introduced in the PXA25x gadget driver.
      An attempt to fix the problem was made in
      commit b144e4ab
      "usb: gadget: fix pxa25x compilation problems"
      by explictly stating the driver needs the <mach/hardware.h>
      header, which solved the compilation for a few boards,
      such as the pxa255-idp and its defconfig.
      
      However the Lubbock board has this special clause in
      drivers/usb/gadget/pxa25x_udc.c:
      
      This include file has an implicit dependency on
      <mach/irqs.h> having been included before <mach/lubbock.h>
      was included.
      
      Before commit 88f718e3
      "ARM: pxa: delete the custom GPIO header" this implicit
      dependency for the pxa25x_udc compile on the Lubbock was
      satisfied by <linux/gpio.h> implicitly including
      <mach/gpio.h> which was in turn including <mach/irqs.h>,
      apart from the earlier added <mach/hardware.h>.
      
      Fix this by having the PXA25x <mach/lubbock.h> explicitly
      include <mach/irqs.h>.
      Reported-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Cc: Greg Kroah-Hartmann <gregkh@linuxfoundation.org>
      Cc: Felipe Balbi <balbi@ti.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      9928422f
  2. 28 12月, 2013 1 次提交
  3. 26 12月, 2013 2 次提交
    • S
      ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data · 6d4c8830
      Suman Anna 提交于
      Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) and commit
      ec2c0825 (ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ)
      updated the way interrupts for OMAP2/3 devices are defined in the
      HWMOD data structures to being an index plus a fixed offset (defined
      by OMAP_INTC_START).
      
      Couple of irqs in the OMAP2/3 hwmod data were misconfigured completely
      as they were missing this OMAP_INTC_START relative offset. Add this
      offset back to fix the incorrect irq data for the following modules:
      	OMAP2 - GPMC, RNG
      	OMAP3 - GPMC, ISP MMU & IVA MMU
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Fixes: 7d7e1eba ("ARM: OMAP2+: Prepare for irqs.h removal")
      Fixes: ec2c0825 ("ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ")
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6d4c8830
    • R
      ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL · 38958c15
      Rajendra Nayak 提交于
      With commit '7dedd346: ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with
       DEBUG_LL' we moved from parsing cmdline to identify uart used for earlycon
      to using the requsite hwmod CONFIG_DEBUG_OMAPxUARTy FLAGS.
      
      On DRA7 though, we seem to be missing this flag, and atleast on the DRA7 EVM
      where we use uart1 for console, boot fails with DEBUG_LL enabled.
      Reported-by: NLokesh Vutla <lokeshvutla@ti.com>
      Tested-by:  Lokesh Vutla <lokeshvutla@ti.com> # on a different base
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Fixes: 7dedd346 ("ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with DEBUG_LL")
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      38958c15
  4. 19 12月, 2013 3 次提交
  5. 18 12月, 2013 1 次提交
  6. 14 12月, 2013 2 次提交
    • T
      ARM: s3c64xx: dt: Fix boot failure due to double clock initialization · cb120572
      Tomasz Figa 提交于
      Commit
      
      4178bac4 ARM: call of_clk_init from default time_init handler
      
      added implicit call to of_clk_init() from default time_init callback,
      but it did not change platforms calling it from other callbacks, despite
      of not having custom time_init callbacks. This caused double clock
      initialization on such platforms, leading to boot failures. An example
      of such platform is mach-s3c64xx.
      
      This patch fixes boot failure on s3c64xx by dropping custom init_irq
      callback, which had a call to of_clk_init() and moving system reset
      initialization to init_machine callback. This allows us to have
      clocks initialized properly without a need to have custom init_time or
      init_irq callbacks.
      Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      cb120572
    • R
      ARM: fix asm/memory.h build error · b713aa0b
      Russell King 提交于
      Jason Gunthorpe reports a build failure when ARM_PATCH_PHYS_VIRT is
      not defined:
      
      In file included from arch/arm/include/asm/page.h:163:0,
                       from include/linux/mm_types.h:16,
                       from include/linux/sched.h:24,
                       from arch/arm/kernel/asm-offsets.c:13:
      arch/arm/include/asm/memory.h: In function '__virt_to_phys':
      arch/arm/include/asm/memory.h:244:40: error: 'PHYS_OFFSET' undeclared (first use in this function)
      arch/arm/include/asm/memory.h:244:40: note: each undeclared identifier is reported only once for each function it appears in
      arch/arm/include/asm/memory.h: In function '__phys_to_virt':
      arch/arm/include/asm/memory.h:249:13: error: 'PHYS_OFFSET' undeclared (first use in this function)
      
      Fixes: ca5a45c0 ("ARM: mm: use phys_addr_t appropriately in p2v and v2p conversions")
      Tested-By: NJason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      b713aa0b
  7. 12 12月, 2013 6 次提交
    • M
      ARM: sun6i: dt: Fix interrupt trigger types · 6f97dc8d
      Maxime Ripard 提交于
      The Allwinner A31 uses the ARM GIC as its internal interrupts controller. The
      GIC can work on several interrupt triggers, and the A31 was actually setting it
      up to use a rising edge as a trigger, while it was actually a level high
      trigger, leading to some interrupts that would be completely ignored if the
      edge was missed.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Acked-by: NHans de Goede <hdegoede@redhat.com>
      Cc: stable@vger.kernel.org # 3.12+
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      6f97dc8d
    • M
      ARM: sun7i: dt: Fix interrupt trigger types · 378d0aee
      Maxime Ripard 提交于
      The Allwinner A20 uses the ARM GIC as its internal interrupts controller. The
      GIC can work on several interrupt triggers, and the A20 was actually setting it
      up to use a rising edge as a trigger, while it was actually a level high
      trigger, leading to some interrupts that would be completely ignored if the
      edge was missed.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Acked-by: NHans de Goede <hdegoede@redhat.com>
      Cc: stable@vger.kernel.org #3.12+
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      378d0aee
    • S
      ARM: tegra: add missing break to fuse initialization code · b988ba1b
      Stephen Warren 提交于
      Add a missing break to the switch in tegra_init_fuse() which determines
      which SoC the code is running on. This prevents the Tegra30+ fuse
      handling code from running on Tegra20.
      
      Fixes: 3bd1ae57 ("ARM: tegra: add fuses as device randomness")
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      b988ba1b
    • S
      ARM: pxa: prevent PXA270 occasional reboot freezes · ff88b472
      Sergei Ianovich 提交于
      Erratum 71 of PXA270M Processor Family Specification Update
      (April 19, 2010) explains that watchdog reset time is just
      8us insead of 10ms in EMTS.
      
      If SDRAM is not reset, it causes memory bus congestion and
      the device hangs. We put SDRAM in selfresh mode before watchdog
      reset, removing potential freezes.
      
      Without this patch PXA270-based ICP DAS LP-8x4x hangs after up to 40
      reboots. With this patch it has successfully rebooted 500 times.
      Signed-off-by: NSergei Ianovich <ynvich@gmail.com>
      Tested-by: NMarek Vasut <marex@denx.de>
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      ff88b472
    • D
      ARM: pxa: tosa: fix keys mapping · 506cac15
      Dmitry Eremin-Solenikov 提交于
      When converting from tosa-keyboard driver to matrix keyboard, tosa keys
      received extra 1 column shift. Replace that with correct values to make
      keyboard work again.
      
      Fixes: f69a6548 ('[ARM] pxa/tosa: make use of the matrix keypad driver')
      Signed-off-by: NDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      506cac15
    • I
      arm: xen: foreign mapping PTEs are special. · a7892f32
      Ian Campbell 提交于
      These mappings are in fact special and require special handling in privcmd,
      which already exists. Failure to mark the PTE as special on arm64 causes all
      sorts of bad PTE fun. e.g.
      
      e.g.:
      
      BUG: Bad page map in process xl  pte:e0004077b33f53 pmd:4079575003
      page:ffffffbce1a2f328 count:1 mapcount:-1 mapping:          (null) index:0x0
      page flags: 0x4000000000000014(referenced|dirty)
      addr:0000007fb5259000 vm_flags:040644fa anon_vma:          (null) mapping:ffffffc03a6fda58 index:0
      vma->vm_ops->fault: privcmd_fault+0x0/0x38
      vma->vm_file->f_op->mmap: privcmd_mmap+0x0/0x2c
      CPU: 0 PID: 2657 Comm: xl Not tainted 3.12.0+ #102
      Call trace:
      [<ffffffc0000880f8>] dump_backtrace+0x0/0x12c
      [<ffffffc000088238>] show_stack+0x14/0x1c
      [<ffffffc0004b67e0>] dump_stack+0x70/0x90
      [<ffffffc000125690>] print_bad_pte+0x12c/0x1bc
      [<ffffffc0001268f4>] unmap_single_vma+0x4cc/0x700
      [<ffffffc0001273b4>] unmap_vmas+0x68/0xb4
      [<ffffffc00012c050>] unmap_region+0xcc/0x1d4
      [<ffffffc00012df20>] do_munmap+0x218/0x314
      [<ffffffc00012e060>] vm_munmap+0x44/0x64
      [<ffffffc00012ed78>] SyS_munmap+0x24/0x34
      
      Where unmap_single_vma contains inlined -> unmap_page_range -> zap_pud_range
      -> zap_pmd_range -> zap_pte_range -> print_bad_pte.
      
      Or:
      
      BUG: Bad page state in process xl  pfn:4077b4d
      page:ffffffbce1a2f8d8 count:0 mapcount:-1 mapping:          (null) index:0x0
      page flags: 0x4000000000000014(referenced|dirty)
      Modules linked in:
      CPU: 0 PID: 2657 Comm: xl Tainted: G    B        3.12.0+ #102
      Call trace:
      [<ffffffc0000880f8>] dump_backtrace+0x0/0x12c
      [<ffffffc000088238>] show_stack+0x14/0x1c
      [<ffffffc0004b67e0>] dump_stack+0x70/0x90
      [<ffffffc00010f798>] bad_page+0xc4/0x110
      [<ffffffc00010f8b4>] free_pages_prepare+0xd0/0xd8
      [<ffffffc000110e94>] free_hot_cold_page+0x28/0x178
      [<ffffffc000111460>] free_hot_cold_page_list+0x38/0x60
      [<ffffffc000114cf0>] release_pages+0x190/0x1dc
      [<ffffffc00012c0e0>] unmap_region+0x15c/0x1d4
      [<ffffffc00012df20>] do_munmap+0x218/0x314
      [<ffffffc00012e060>] vm_munmap+0x44/0x64
      [<ffffffc00012ed78>] SyS_munmap+0x24/0x34
      
      x86 already gets this correct. 32-bit arm gets away with this because there is
      not PTE_SPECIAL bit in the PTE there and the vm_normal_page fallback path does
      the right thing.
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      a7892f32
  8. 11 12月, 2013 1 次提交
  9. 10 12月, 2013 9 次提交
  10. 09 12月, 2013 1 次提交
  11. 07 12月, 2013 4 次提交
    • T
      ARM: dts: Fix booting for secure omaps · f2e2c9d9
      Tony Lindgren 提交于
      Commit 7ce93f31 (ARM: OMAP2+: Fix more missing data for omap3.dtsi file)
      fixed missing device tree data for omaps, but did not account for some of the
      hardware modules being inaccessible for secure omaps. This causes the
      following error on secure omaps:
      
      Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa0c5048
      SMP ARM
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W    3.13.0-rc2+ #446
      task: ce057b40 ti: ce058000 task.ti: ce058000
      PC is at omap_aes_dma_stop+0x24/0x3c
      LR is at omap_aes_probe+0x1cc/0x584
         psr: 60000113
      sp : ce059e20  ip : ce0b4ee0  fp : 00000000
      r10: c0573ae8  r9 : c0749508  r8 : 00000000
      r7 : ce0b4e00  r6 : 00000000  r5 : ce0b4e10  r4 : ce274890
      r3 : fa0c5048  r2 : 00000048  r1 : 0000002c  r0 : ce274890
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: 10c5387d  Table: 80004019  DAC: 00000015
      Process swapper/0 (pid: 1, stack limit = 0xce058248)
      Stack: (0xce059e20 to 0xce05a000)
      9e20: c0749508 0000a1ff 00000000 c016cd8c c06b5a06 ce2a45f0 ce2a4570 ce0b5fb0
      9e40: 00000000 480c5000 480c504f c0abe4e4 00000200 00000000 00000000 00000000
      9e60: ce0b4e10 ce0b4e10 c082da3c c082da3c c02b8c70 c077c610 c0749508 00000000
      9e80: 00000000 c02b9e7c c02b9e64 ce0b4e10 00000000 c02b8b20 ce0b4e10 ce0b4e44
      9ea0: c082da3c c02b8cd8 00000000 ce059eb8 c082da3c c02b7408 ce079edc ce0b1a34
      9ec0: c082da3c c082da3c ce2a0280 00000000 c08158d8 c02b8358 c0663405 c0663405
      9ee0: 00000073 c082da3c c079e4e8 c07ab3bc c0844340 c02b9334 00000000 00000006
      9f00: c079e4e8 c0008920 c067f6bf c0ac7c6b 00000000 c0712e28 00000000 00000000
      9f20: c0712e38 ce059f38 00000093 c0ac7c82 00000000 c0058994 00000000 c07130e8
      9f40: c07127b8 00000093 00000006 00000006 00000001 00000006 00000006 c079e4e8
      9f60: c07ab3bc c0844340 00000093 c0749508 c079e4f4 c0749c64 00000006 00000006
      9f80: c0749508 00000000 00000000 c0517e2c 00000000 00000000 00000000 00000000
      9fa0: 00000000 c0517e34 00000000 c000dfb8 00000000 00000000 00000000 00000000
      9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
      (omap_aes_probe+0x1cc/0x584)
      (platform_drv_probe+0x18/0x48)
      (driver_probe_device+0xb0/0x200)
      (__driver_attach+0x68/0x8c)
      (bus_for_each_dev+0x50/0x88)
      (bus_add_driver+0xcc/0x1c8)
      (driver_register+0x9c/0xe0)
      (do_one_initcall+0x98/0x140)
      (kernel_init_freeable+0x16c/0x23c)
      (kernel_init+0x8/0x100)
      (ret_from_fork+0x14/0x3c)
      Code: e1811002 e5932020 e590300c e0833002 (e593c000)
      
      Let's fix the issue by adding omap34xx-hs.dtsi and omap36xx-hs.dtsi and make
      n900, n9 and n950 to use them. This way we have the aes, sham and timer12
      disabled for secure devices the same way legacy booting does based on the
      omap34xx_gp_hwmod_ocp_ifs and omap36xx_gp_hwmod_ocp_ifs arrays in
      omap_hwmod_3xxx_data.c.
      Reported-by: NSebastian Reichel <sre@debian.org>
      Acked-By: NSebastian Reichel <sre@debian.org>
      Tested-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      f2e2c9d9
    • N
      ARM: OMAP2+: Fix the machine entry for am3517 · caef4ee8
      Nishanth Menon 提交于
      The am3517 is wrongly booting as omap3 which means that the am3517
      specific devices like Ethernet won't work when booted with device
      tree. Now with the new devices defined in am3517.dtsi, let's use
      that instead of the omap3.dtsi, and add a separate machine entry
      for am3517 so am3517-evm can use it.
      Signed-off-by: NNishanth Menon <nm@ti.com>
      [tony@atomide.com: updated comments and fixed build without omap3]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      caef4ee8
    • T
      ARM: dts: Fix missing entries for am3517 · a0158185
      Tony Lindgren 提交于
      On am3517 there are some extra devices compared to omap3.dtsi that
      we currently have not defined. Let's fix that by adding am3517.dtsi
      file.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      a0158185
    • T
      ARM: OMAP2+: Fix overwriting hwmod data with data from device tree · 5e863c56
      Tony Lindgren 提交于
      We have some device tree properties where the ti,hwmod have multiple
      values:
      
      am33xx.dtsi:	ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
      am4372.dtsi:	ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
      dra7.dtsi:	ti,hwmods = "l3_main_1", "l3_main_2";
      omap3.dtsi:	ti,hwmods = "mcbsp2", "mcbsp2_sidetone";
      omap3.dtsi:	ti,hwmods = "mcbsp3", "mcbsp3_sidetone";
      omap4.dtsi:	ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
      omap5.dtsi:	ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
      
      That's not correct way of doing things in this case because these are
      separate devices with their own address space, interrupts, SYSCONFIG
      registers and can set their PM states independently.
      
      So they should all be fixed up to be separate devices in the .dts files.
      
      We also have the related data removed for at least omap4 in commit
      3b9b1015 (ARM: OMAP4: hwmod data: Clean up the data file), so
      that data is wrongly initialized as null data.
      
      So we need to fix two bugs:
      
      1. We are only checking the first entry of the ti,hwmods property
      
         This means that we're only initializing the first hwmods entry
         instead of the ones listed in the ti,hwmods property.
      
      2. We are only checking the child nodes, not the nodes themselves
      
         This means that anything listed at OCP level is currently just
         ignored and unitialized and at least the omap4 case, with the
         legacy data missing from the hwmod.
      
      Fix both of the issues by using an index to the ti,hwmods property
      and changing the hwmod lookup function to also check the current node
      for ti,hwmods property instead of just the children.
      
      While at it, let's also add some warnings for the bad data so it's
      easier to fix.
      
      Cc: "Benoît Cousson" <bcousson@baylibre.com>
      Acked-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      5e863c56
  12. 05 12月, 2013 2 次提交
  13. 04 12月, 2013 6 次提交
  14. 03 12月, 2013 1 次提交
    • F
      ARM: dts: Fix the name of supplies for smsc911x shared by OMAP · ac46bf39
      Florian Vaussard 提交于
      drivers/net/ethernet/smsc/smsc911x.c is expecting supplies named
      "vdd33a" and "vddvario". Currently the shared DTS file provides
      "vmmc" and "vmmc_aux", and the supply lookup will fail:
      
      smsc911x 2c000000.ethernet: Looking up vdd33a-supply from device tree
      smsc911x 2c000000.ethernet: Looking up vdd33a-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed
      smsc911x 2c000000.ethernet: Looking up vddvario-supply from device tree
      smsc911x 2c000000.ethernet: Looking up vddvario-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed
      
      Fix it!
      
      Looks like commmit 6b2978ac (ARM: dts: Shared file for omap GPMC
      connected smsc911x) made the problem more visible by moving the smc911x
      configuration from the omap3-igep0020.dts file to the generic file.
      But it seems we've had this problem since commit d72b4415
      (ARM: dts: omap3-igep0020: Add SMSC911x LAN chip support).
      
      Tested on OMAP3 Overo platform.
      Signed-off-by: NFlorian Vaussard <florian.vaussard@epfl.ch>
      [tony@atomide.com: updated comments for the commits causing the problem]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ac46bf39