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. 20 12月, 2013 2 次提交
    • L
      x86 idle: Repair large-server 50-watt idle-power regression · 40e2d7f9
      Len Brown 提交于
      Linux 3.10 changed the timing of how thread_info->flags is touched:
      
      	x86: Use generic idle loop
      	(7d1a9417)
      
      This caused Intel NHM-EX and WSM-EX servers to experience a large number
      of immediate MONITOR/MWAIT break wakeups, which caused cpuidle to demote
      from deep C-states to shallow C-states, which caused these platforms
      to experience a significant increase in idle power.
      
      Note that this issue was already present before the commit above,
      however, it wasn't seen often enough to be noticed in power measurements.
      
      Here we extend an errata workaround from the Core2 EX "Dunnington"
      to extend to NHM-EX and WSM-EX, to prevent these immediate
      returns from MWAIT, reducing idle power on these platforms.
      
      While only acpi_idle ran on Dunnington, intel_idle
      may also run on these two newer systems.
      As of today, there are no other models that are known
      to need this tweak.
      
      Link: http://lkml.kernel.org/r/CAJvTdK=%2BaNN66mYpCGgbHGCHhYQAKx-vB0kJSWjVpsNb_hOAtQ@mail.gmail.comSigned-off-by: NLen Brown <len.brown@intel.com>
      Link: http://lkml.kernel.org/r/baff264285f6e585df757d58b17788feabc68918.1387403066.git.len.brown@intel.com
      Cc: <stable@vger.kernel.org> # 3.12.x, 3.11.x, 3.10.x
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      40e2d7f9
    • W
      arm64: ptrace: avoid using HW_BREAKPOINT_EMPTY for disabled events · cdc27c27
      Will Deacon 提交于
      Commit 8f34a1da ("arm64: ptrace: use HW_BREAKPOINT_EMPTY type for
      disabled breakpoints") fixed an issue with GDB trying to zero breakpoint
      control registers. The problem there is that the arch hw_breakpoint code
      will attempt to create a (disabled), execute breakpoint of length 0.
      
      This will fail validation and report unexpected failure to GDB. To avoid
      this, we treated disabled breakpoints as HW_BREAKPOINT_EMPTY, but that
      seems to have broken with recent kernels, causing watchpoints to be
      treated as TYPE_INST in the core code and returning ENOSPC for any
      further breakpoints.
      
      This patch fixes the problem by prioritising the `enable' field of the
      breakpoint: if it is cleared, we simply update the perf_event_attr to
      indicate that the thing is disabled and don't bother changing either the
      type or the length. This reinforces the behaviour that the breakpoint
      control register is essentially read-only apart from the enable bit
      when disabling a breakpoint.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: NAaron Liu <liucy214@gmail.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      cdc27c27
  5. 19 12月, 2013 7 次提交
  6. 18 12月, 2013 3 次提交
    • P
      KVM: PPC: Book3S HV: Don't drop low-order page address bits · df9059bb
      Paul Mackerras 提交于
      Commit caaa4c80 ("KVM: PPC: Book3S HV: Fix physical address
      calculations") unfortunately resulted in some low-order address bits
      getting dropped in the case where the guest is creating a 4k HPTE
      and the host page size is 64k.  By getting the low-order bits from
      hva rather than gpa we miss out on bits 12 - 15 in this case, since
      hva is at page granularity.  This puts the missing bits back in.
      Reported-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      df9059bb
    • A
      powerpc: book3s: kvm: Don't abuse host r2 in exit path · 36e7bb38
      Aneesh Kumar K.V 提交于
      We don't use PACATOC for PR. Avoid updating HOST_R2 with PR
      KVM mode when both HV and PR are enabled in the kernel. Without this we
      get the below crash
      
      (qemu)
      Unable to handle kernel paging request for data at address 0xffffffffffff8310
      Faulting instruction address: 0xc00000000001d5a4
      cpu 0x2: Vector: 300 (Data Access) at [c0000001dc53aef0]
          pc: c00000000001d5a4: .vtime_delta.isra.1+0x34/0x1d0
          lr: c00000000001d760: .vtime_account_system+0x20/0x60
          sp: c0000001dc53b170
         msr: 8000000000009032
         dar: ffffffffffff8310
       dsisr: 40000000
        current = 0xc0000001d76c62d0
        paca    = 0xc00000000fef1100   softe: 0        irq_happened: 0x01
          pid   = 4472, comm = qemu-system-ppc
      enter ? for help
      [c0000001dc53b200] c00000000001d760 .vtime_account_system+0x20/0x60
      [c0000001dc53b290] c00000000008d050 .kvmppc_handle_exit_pr+0x60/0xa50
      [c0000001dc53b340] c00000000008f51c kvm_start_lightweight+0xb4/0xc4
      [c0000001dc53b510] c00000000008cdf0 .kvmppc_vcpu_run_pr+0x150/0x2e0
      [c0000001dc53b9e0] c00000000008341c .kvmppc_vcpu_run+0x2c/0x40
      [c0000001dc53ba50] c000000000080af4 .kvm_arch_vcpu_ioctl_run+0x54/0x1b0
      [c0000001dc53bae0] c00000000007b4c8 .kvm_vcpu_ioctl+0x478/0x730
      [c0000001dc53bca0] c0000000002140cc .do_vfs_ioctl+0x4ac/0x770
      [c0000001dc53bd80] c0000000002143e8 .SyS_ioctl+0x58/0xb0
      [c0000001dc53be30] c000000000009e58 syscall_exit+0x0/0x98
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      36e7bb38
    • T
      Revert "ARM: OMAP2+: Remove legacy mux code for display.c" · 130f769e
      Tomi Valkeinen 提交于
      Commit e30b06f4 (ARM: OMAP2+: Remove
      legacy mux code for display.c) removed non-DT DSI and HDMI pinmuxing.
      However, DSI pinmuxing is still needed, and removing that caused DSI
      displays not to work.
      
      This reverts the DSI parts of the commit.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      130f769e
  7. 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
  8. 13 12月, 2013 13 次提交
  9. 12 12月, 2013 7 次提交
    • 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
    • S
      xen/arm64: do not call the swiotlb functions twice · 02ab71cd
      Stefano Stabellini 提交于
      On arm64 the dma_map_ops implementation is based on the swiotlb.
      swiotlb-xen, used by default in dom0 on Xen, is also based on the
      swiotlb.
      
      Avoid calling into the default arm64 dma_map_ops functions from
      xen_dma_map_page, xen_dma_unmap_page, xen_dma_sync_single_for_cpu, and
      xen_dma_sync_single_for_device otherwise we end up calling into the
      swiotlb twice.
      
      When arm64 gets a non-swiotlb based implementation of dma_map_ops, we'll
      probably have to reintroduce dma_map_ops calls in page-coherent.h.
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      CC: catalin.marinas@arm.com
      CC: Will.Deacon@arm.com
      CC: Ian.Campbell@citrix.com
      02ab71cd
  10. 11 12月, 2013 2 次提交