02 Nov, 2010

1 commit

  • "gadget", "through", "command", "maintain", "maintain", "controller", "address",
    "between", "initiali[zs]e", "instead", "function", "select", "already",
    "equal", "access", "management", "hierarchy", "registration", "interest",
    "relative", "memory", "offset", "already",

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Jiri Kosina

    Uwe Kleine-König
     

31 Oct, 2010

1 commit

  • …nel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    jump label: Add work around to i386 gcc asm goto bug
    x86, ftrace: Use safe noops, drop trap test
    jump_label: Fix unaligned traps on sparc.
    jump label: Make arch_jump_label_text_poke_early() optional
    jump label: Fix error with preempt disable holding mutex
    oprofile: Remove deprecated use of flush_scheduled_work()
    oprofile: Fix the hang while taking the cpu offline
    jump label: Fix deadlock b/w jump_label_mutex vs. text_mutex
    jump label: Fix module __init section race

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Check irq_remapped instead of remapping_enabled in destroy_irq()

    Linus Torvalds
     

30 Oct, 2010

38 commits

  • * git://git.infradead.org/mtd-2.6: (82 commits)
    mtd: fix build error in m25p80.c
    mtd: Remove redundant mutex from mtd_blkdevs.c
    MTD: Fix wrong check register_blkdev return value
    Revert "mtd: cleanup Kconfig dependencies"
    mtd: cfi_cmdset_0002: make sector erase command variable
    mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips
    mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode
    mtd: cfi_cmdset_0001: use defined value of P_ID_INTEL_PERFORMANCE instead of hardcoded one
    block2mtd: dubious assignment
    P4080/mtd: Fix the freescale lbc issue with 36bit mode
    P4080/eLBC: Make Freescale elbc interrupt common to elbc devices
    mtd: phram: use KBUILD_MODNAME
    mtd: OneNAND: S5PC110: Fix double call suspend & resume function
    mtd: nand: fix MTD_MODE_RAW writes
    jffs2: use kmemdup
    mtd: sm_ftl: cosmetic, use bool when possible
    mtd: r852: remove useless pci powerup/down from suspend/resume routines
    mtd: blktrans: fix a race vs kthread_stop
    mtd: blktrans: kill BKL
    mtd: allow to unload the mtdtrans module if its block devices aren't open
    ...

    Fix up trivial whitespace-introduced conflict in drivers/mtd/mtdchar.c

    Linus Torvalds
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (215 commits)
    ARM: memblock: setup lowmem mappings using memblock
    ARM: memblock: move meminfo into find_limits directly
    ARM: memblock: convert free_highpages() to use memblock
    ARM: move freeing of highmem pages out of mem_init()
    ARM: memblock: convert memory detail printing to use memblock
    ARM: memblock: use memblock to free memory into arm_bootmem_init()
    ARM: memblock: use memblock when initializing memory allocators
    ARM: ensure membank array is always sorted
    ARM: 6466/1: implement flush_icache_all for the rest of the CPUs
    ARM: 6464/2: fix spinlock recursion in adjust_pte()
    ARM: fix memblock breakage
    ARM: 6465/1: Fix data abort accessing proc_info from __lookup_processor_type
    ARM: 6460/1: ixp2000: fix type of ixp2000_timer_interrupt
    ARM: 6449/1: Fix for compiler warning of uninitialized variable.
    ARM: 6445/1: fixup TCM memory types
    ARM: imx: Add wake functionality to GPIO
    ARM: mx5: Add gpio-keys to mx51 babbage board
    ARM: imx: Add gpio-keys to plat-mxc
    mx31_3ds: Fix spi registration
    mx31_3ds: Fix the logic for detecting the debug board
    ...

    Linus Torvalds
     
  • Conflicts:
    drivers/mtd/mtd_blkdevs.c

    Merge Grant's device-tree bits so that we can apply the subsequent fixes.

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • Russ Anderson reported:
    | There is a regression that is causing a NULL pointer dereference
    | in free_irte when shutting down xpc. git bisect narrowed it down
    | to git commit d585d06(intr_remap: Simplify the code further), which
    | changed free_irte(). Reverse applying the patch fixes the problem.

    We need to use irq_remapped() for each irq instead of checking only
    intr_remapping_enabled as there might be non remapped irqs even when
    remapping is enabled.

    [ tglx: use cfg instead of retrieving it again. Massaged changelog ]

    Reported-bisected-and-tested-by: Russ Anderson
    Signed-off-by: Yinghai Lu
    Cc: Suresh Siddha
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Yinghai Lu
     
  • …org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, alternative: Call stop_machine_text_poke() on all cpus
    x86-32: Restore irq stacks NUMA-aware allocations
    x86, memblock: Fix early_node_mem with big reserved region.

    * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, uv: More Westmere support on SGI UV
    x86, uv: Enable Westmere support on SGI UV

    Linus Torvalds
     
  • * 'msm-fixes' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
    msm: Kconfig: drop unused config options
    msm: fix compile failure when no debug uart is selected
    msm: fix debug-macro.S build failure
    msm: timer: Decrease shift on timer clocksource
    arm: mach-msm: fix error handling in msm_iommu_probe()
    msm: fix Kconfig target board selection
    msm: fix compile failure on struct membank node member

    * 'msm-video' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
    drivers/video/msm/mddi.c: Remove multiple KERN_ uses
    drivers: msm: video: add dev_set_name call
    drivers: video: msm: fix hang on disable_irq

    Linus Torvalds
     
  • * 'for-2637/s3c24xx-all' of git://git.fluff.org/bjdooks/linux:
    ARM: h1940: add UDA1380 to i2c devices list
    ARM: h1940: Fix backlight and LCD power functions
    ARM: S3C2440: fix boot failure introduced by recent changes in gpiolib
    ARM: S3C2440: various fixes in Kconfig file
    ARM: rx1950: Add UDA1380 to i2c devices list
    ARM: rx1950: Add LEDs support
    ARM: rx1950: Add battery device
    ARM: h1940: Implement mmc_power function
    ARM: h1940: Use gpiolib for latch access

    Linus Torvalds
     
  • Ben Dooks
     
  • Ben Dooks
     
  • Ben Dooks
     
  • Register UDA1380 codec during H1940 machine init

    Signed-off-by: Vasily Khoruzhick
    Signed-off-by: Ben Dooks

    Vasily Khoruzhick
     
  • Current implementation of LCD and backlight power control functions
    is not complete, as result PDA consumes power in suspend.
    Fix this issue by managing state of some latch bits, just like
    WinMobile does.

    Signed-off-by: Vasily Khoruzhick
    Signed-off-by: Ben Dooks

    Vasily Khoruzhick
     
  • Currently, text_poke_smp() passes a NULL as the third argument to
    __stop_machine(), which will only run stop_machine_text_poke()
    on 1 cpu. Change NULL -> cpu_online_mask, as stop_machine_text_poke()
    is intended to be run on all cpus.

    I actually didn't notice any problems with stop_machine_text_poke()
    only being called on 1 cpu, but found this via code inspection.

    Signed-off-by: Jason Baron
    LKML-Reference:
    Acked-by: Mathieu Desnoyers
    Acked-by: Masami Hiramatsu
    Signed-off-by: H. Peter Anvin

    Jason Baron
     
  • Recent changes in s3c gpio break mini2440 board and may be others.
    The problem is that mach-mini2440.c: mini2440_init()
    (where we call s3c_gpio_setpull()) is called before s3c2440.c: s3c2440_init()
    (where we initialize s3c24xx_gpiocfg_default.set_pull function pointer).
    This causes dereferencing of NULL pointer at boot time and a kernel panic.

    Signed-off-by: Abdoulaye Walsimou Gaye

    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Signed-off-by: Ben Dooks

    Abdoulaye Walsimou Gaye
     
  • * kconfig symbols defined in arch/arm/mach-s3c2440/Kconfig are only available
    when ARCH_S3C2410 is selected, so no need to make some of them depend
    on ARCH_S3C2410.
    * fix CPU_S3C24405B typo in "config S3C2440_DMA".
    * mini2440: remove unconditionally select of SND_S3C24XX_SOC_S3C24XX_UDA134X.
    Those fixes avoid the following warnings at make time:

    scripts/kconfig/qconf arch/arm/Kconfig
    warning: (MACH_MINI2440 && ARCH_S3C2410) selects SND_S3C24XX_SOC_S3C24XX_UDA134X
    which has unmet direct dependencies (SND_S3C24XX_SOC && ARCH_S3C2410)
    warning: (CPU_S3C2440 && ARCH_S3C2410 && S3C2410_DMA) selects S3C2440_DMA which
    has unmet direct dependencies (ARCH_S3C2410 && CPU_S3C24405B)
    warning: (CPU_S3C2440 && ARCH_S3C2410 || CPU_S3C2442 && ARCH_S3C2410)
    selects CPU_S3C244X which has unmet direct dependencies (!ARCH_S3C2410)

    Signed-off-by: Abdoulaye Walsimou Gaye

    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Signed-off-by: Ben Dooks

    Abdoulaye Walsimou Gaye
     
  • These two config options don't exist, and aren't ever going to.
    So I simply delete them.

    Signed-off-by: Daniel Walker

    Daniel Walker
     
  • If the board has a debug uart the user is given a choice of which
    uart to use. The user can also select NONE, which means not to use one.
    In most of our header files when NONE is selected nothing is defined
    for MSM_DEBUG_UART_PHYS or MSM_DEBUG_UART_BASE. This causes a compile
    failure in debug-macro.S which expect something to be defined there.

    Example of the failure,

    arch/arm/kernel/built-in.o: In function `hexbuf':
    linux-2.6/arch/arm/kernel/debug.S:186: undefined reference to `MSM_DEBUG_UART_PHYS'
    linux-2.6/arch/arm/kernel/debug.S:186: undefined reference to `MSM_DEBUG_UART_BASE'

    This fixes the compile failure by adding an ifdef to debug-macro.S
    that removes all the debug uart code in the case of NONE.

    Signed-off-by: Daniel Walker

    Daniel Walker
     
  • Originally there was an ifdef case to handle when no debug uart
    was selected. In commit 0ea1293009826da45e1019f45dfde1e557bb30df
    that case was removed which causes the following build failure,

    linux-2.6/arch/arm/kernel/debug.S: Assembler messages:
    linux-2.6/arch/arm/kernel/debug.S:174: Error: bad instruction `addruart r1,r2'
    linux-2.6/arch/arm/kernel/debug.S:176: Error: bad instruction `waituart r2,r3'
    linux-2.6/arch/arm/kernel/debug.S:177: Error: bad instruction `senduart r1,r3'
    linux-2.6/arch/arm/kernel/debug.S:178: Error: bad instruction `busyuart r2,r3'
    linux-2.6/arch/arm/kernel/debug.S:190: Error: bad instruction `addruart r1,r2'

    This is a partial revert to add back the case which was removed with
    two caveats. First the API for the addruart macro was updated, and
    the new addruart case now return 0xfff00000 so that a know IO mapping
    is created instead of a random one.

    Cc: Jeremy Kerr
    Cc: Lorenzo Pieralisi
    Cc: Jason Wang
    Cc: Tony Lindgren
    Cc: Nicolas Pitre
    Cc: Russell King - ARM Linux
    Signed-off-by: Daniel Walker

    Daniel Walker
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
    kgdb,ppc: Individual register get/set for ppc
    kgdbts: prevent re-entry to kgdbts before it unregisters
    debug_core,x86,blackfin: Clean up hw debug disable API
    kdb: Fix early debugging crash regression
    kgdb,arm: fix register dump
    kdb: fix per_cpu command to remove supress mask
    kdb: Add kdb kernel module sample

    Linus Torvalds
     
  • On i386 (not x86_64) early implementations of gcc would have a bug
    with asm goto causing it to produce code like the following:

    (This was noticed by Peter Zijlstra)

    56 pushl 0
    67 nopl jmp 0x6f
    popl
    jmp 0x8c

    6f mov
    test
    je 0x8c

    8c mov
    call *(%esp)

    The jump added in the asm goto skipped over the popl that matched
    the pushl 0, which lead up to a quick crash of the system when
    the jump was enabled. The nopl is defined in the asm goto () statement
    and when tracepoints are enabled, the nop changes to a jump to the label
    that was specified by the asm goto. asm goto is suppose to tell gcc that
    the code in the asm might jump to an external label. Here gcc obviously
    fails to make that work.

    The bug report for gcc is here:

    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226

    The bug only appears on x86 when not compiled with
    -maccumulate-outgoing-args. This option is always set on x86_64 and it
    is also the work around for a function graph tracer i386 bug.
    (See commit: 746357d6a526d6da9d89a2ec645b28406e959c2e)
    This explains why the bug only showed up on i386 when function graph
    tracer was not enabled.

    This patch now adds a CONFIG_JUMP_LABEL option that is default
    off instead of using jump labels by default. When jump labels are
    enabled, the -maccumulate-outgoing-args will be used (causing a
    slightly larger kernel image on i386). This option will exist
    until we have a way to detect if the gcc compiler in use is safe
    to use on all configurations without the work around.

    Note, there exists such a test, but for now we will keep the enabling
    of jump label as a manual option.

    Archs that know the compiler is safe with asm goto, may choose to
    select JUMP_LABEL and enable it by default.

    Reported-by: Ingo Molnar
    Cause-discovered-by: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Jason Baron
    Cc: H. Peter Anvin
    Cc: David Daney
    Cc: Mathieu Desnoyers
    Cc: Masami Hiramatsu
    Cc: David Miller
    Cc: Richard Henderson
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • commit 534af1082329392bc29f6badf815e69ae2ae0f4c(kgdb,kdb: individual
    register set and and get API) introduce dbg_get_reg/dbg_set_reg API
    for individual register get and set.

    This patch implement those APIs for ppc.

    Signed-off-by: Dongdong Deng
    Signed-off-by: Jason Wessel

    Dongdong Deng
     
  • The kgdb_disable_hw_debug() was an architecture specific function for
    disabling all hardware breakpoints on a per cpu basis when entering
    the debug core.

    This patch will remove the weak function kdbg_disable_hw_debug() and
    change it into a call back which lives with the rest of hw breakpoint
    call backs in struct kgdb_arch.

    Signed-off-by: Dongdong Deng
    Signed-off-by: Jason Wessel

    Dongdong Deng
     
  • DBG_MAX_REG_NUM incorrectly had the number of indices in the GDB regs
    array rather than the number of registers, leading to an oops when the
    "rd" command is used in KDB.

    Cc: stable@kernel.org
    Signed-off-by: Rabin Vincent
    Signed-off-by: Jason Wessel

    Rabin Vincent
     
  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (46 commits)
    ftrace/MIPS: Enable C Version of recordmcount
    ftrace/MIPS: Add module support for C version of recordmcount
    ftrace/MIPS: Add MIPS64 support for C version of recordmcount
    MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes.
    MIPS: Allow UserLocal on MIPS_R1 processors
    MIPS: Honor L2 bypass bit
    MIPS: Add BMIPS CP0 register definitions
    MIPS: Add BMIPS processor types to Kconfig
    MIPS: Decouple BMIPS CPU support from bcm47xx/bcm63xx SoC code
    MIPS: Add support for hardware performance events (mipsxx)
    MIPS: Perf-events: Add callchain support
    MIPS: add support for hardware performance events (skeleton)
    MIPS: add support for software performance events
    MIPS: define local_xchg from xchg_local to atomic_long_xchg
    MIPS: AR7: Add support for Titan (TNETV10xx) SoC variant
    MIPS: AR7: Initialize GPIO earlier
    MIPS: Add platform device and Kconfig for Octeon USB EHCI / OHCI
    USB: Add EHCI and OHCH glue for OCTEON II SOCs.
    MIPS: Octeon: Add register definitions for EHCI / OHCI USB glue logic.
    MIPS: Octeon: Apply CN63XXP1 errata workarounds.
    ...

    Linus Torvalds
     
  • Selects HAVE_C_RECORDMCOUNT to use the C version of the recordmcount
    intead of the old Perl Version of recordmcount.

    Signed-off-by: Wu Zhangjin
    LKML-Reference:
    Signed-off-by: Steven Rostedt
    Signed-off-by: Ralf Baechle

    Wu Zhangjin
     
  • The TASK_SIZE macro should reflect the size of a user process virtual
    address space. Previously for 64-bit kernels, this was not the case.
    The immediate cause of pain was in
    hugetlbfs/inode.c:hugetlb_get_unmapped_area() where 32-bit processes
    trying to mmap a huge page would be served a page with an address
    outside of the 32-bit address range. But there are other uses of
    TASK_SIZE in the kernel as well that would like an accurate value.

    The new definition is nice because it now makes TASK_SIZE and
    TASK_SIZE_OF() yield the same value for any given process.

    For 32-bit kernels there should be no change, although I did factor
    out some code in asm/processor.h that became identical for the 32-bit and
    64-bit cases.

    __UA_LIMIT is now set to ~((1 << SEGBITS) - 1) for 64-bit kernels.
    This should eliminate the possibility of getting a
    AddressErrorException in the kernel for addresses that pass the
    access_ok() test.

    With the patch applied, I can still run o32, n32 and n64 processes,
    and have an o32 shell fork/exec both n32 and n64 processes.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1701/

    David Daney
     
  • Some MIPS32R1 processors implement UserLocal (RDHWR $29) to accelerate
    programs that make extensive use of thread-local storage. Therefore,
    setting up the HWRENA register should not depend on cpu_has_mips_r2.

    Signed-off-by: Kevin Cernekee
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org

    Kevin Cernekee
     
  • On many of the newer MIPS32 cores, CP0 CONFIG2 bit 12 (L2B) indicates
    that the L2 cache is disabled and therefore Linux should not attempt
    to use it.

    [Ralf: Moved the code added by Kevin's original patch into a separate
    function that can easily be replaced for platforms that need more a
    different probe.]

    Signed-off-by: Kevin Cernekee
    Cc: linux-mips@linux-mips.org>
    Cc:
    Patchwork: https://patchwork.linux-mips.org/patch/1723/
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • Signed-off-by: Kevin Cernekee
    Cc: mbizon@freebox.fr
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Tested-by: Florian Fainelli
    Patchwork: https://patchwork.linux-mips.org/patch/1708/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org

    Kevin Cernekee
     
  • [v2: add "VIPER" marketing name for BMIPS4350]

    Add processor feature definitions for BMIPS3300, BMIPS4350, BMIPS4380,
    and BMIPS5000.

    Signed-off-by: Kevin Cernekee
    Cc: mbizon@freebox.fr
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Tested-by: Florian Fainelli
    Patchwork: https://patchwork.linux-mips.org/patch/1716/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org

    Kevin Cernekee
     
  • BMIPS processor cores are used in 50+ different chipsets spread across
    5+ product lines. In many cases the chipsets do not share the same
    peripheral register layouts, the same register blocks, the same
    interrupt controllers, the same memory maps, or much of anything else.

    But, across radically different SoCs that share nothing more than the
    same BMIPS CPU, a few things are still mostly constant:

    SMP operations
    Access to performance counters
    DMA cache coherency quirks
    Cache and memory bus configuration

    So, it makes sense to treat each BMIPS processor type as a generic
    "building block," rather than tying it to a specific SoC. This makes it
    easier to support a large number of BMIPS-based chipsets without
    unnecessary duplication of code, and provides the infrastructure needed
    to support BMIPS-proprietary features.

    Signed-off-by: Kevin Cernekee
    Cc: mbizon@freebox.fr
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Tested-by: Florian Fainelli
    Patchwork: https://patchwork.linux-mips.org/patch/1706/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org

    Kevin Cernekee
     
  • This patch adds the mipsxx Perf-events support based on the skeleton.
    Generic hardware events and cache events are now fully implemented for
    the 24K/34K/74K/1004K cores. To support other cores in mipsxx (such as
    R10000/SB1), the generic hardware event tables and cache event tables
    need to be filled out. To support other CPUs which have different PMU
    than mipsxx, such as RM9000 and LOONGSON2, the additional files
    perf_event_$cpu.c need to be created.

    Raw event is an important part of Perf-events. It helps the user collect
    performance data for events that are not listed as the generic hardware
    events and cache events but ARE supported by the CPU's PMU.

    This patch also adds this feature for mipsxx 24K/34K/74K/1004K. For how to
    use it, please refer to processor core software user's manual and the
    comments for mipsxx_pmu_map_raw_event() for more details.

    Please note that this is a "precise" implementation, which means the
    kernel will check whether the requested raw events are supported by this
    CPU and which hardware counters can be assigned for them.

    To test the functionality of Perf-event, you may want to compile the tool
    "perf" for your MIPS platform. You can refer to the following URL:
    http://www.linux-mips.org/archives/linux-mips/2010-10/msg00126.html

    You also need to customize the CFLAGS and LDFLAGS in tools/perf/Makefile
    for your libs, includes, etc.

    In case you encounter the boot failure in SMVP kernel on multi-threading
    CPUs, you may take a look at:
    http://www.linux-mips.org/git?p=linux-mti.git;a=commitdiff;h=5460815027d802697b879644c74f0e8365254020

    Signed-off-by: Deng-Cheng Zhu
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Cc: ddaney@caviumnetworks.com
    Cc: matt@console-pimps.org
    Patchwork: https://patchwork.linux-mips.org/patch/1689/
    Signed-off-by: Ralf Baechle

    create mode 100644 arch/mips/kernel/perf_event_mipsxx.c

    Deng-Cheng Zhu
     
  • Adds callchain support for MIPS Perf-events. For more info on this feature,
    please refer to tools/perf/Documentation/perf-report.txt and
    tools/perf/design.txt.

    Currently userspace callchain data is not recorded, because we do not have
    a safe way to do this.

    Signed-off-by: Deng-Cheng Zhu
    Acked-by: David Daney
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Cc: matt@console-pimps.org
    Patchwork: https://patchwork.linux-mips.org/patch/1690/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • This patch provides the skeleton of the HW perf event support. To enable
    this feature, we can not choose the SMTC kernel; Oprofile should be
    disabled; kernel performance events be selected. Then we can enable it in
    Kernel type menu.

    Oprofile for MIPS platforms initializes irq at arch init time. Currently
    we do not change this logic to allow PMU reservation.

    If a platform has EIC, we can use the irq base and perf counter irq offset
    defines for the interrupt controller in specific init_hw_perf_events().

    Based on this skeleton patch, the 3 different kinds of MIPS PMU, namely,
    mipsxx/loongson2/rm9000, can be supported by adding corresponding lower
    level C files at the bottom. The suggested names of these files are
    perf_event_mipsxx.c/perf_event_loongson2.c/perf_event_rm9000.c. So, for
    example, we can do this by adding "#include perf_event_mipsxx.c" at the
    bottom of perf_event.c.

    In addition, PMUs with 64bit counters are also considered in this patch.

    Signed-off-by: Deng-Cheng Zhu
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Cc: ddaney@caviumnetworks.com
    Cc: matt@console-pimps.org
    Patchwork: https://patchwork.linux-mips.org/patch/1688/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • Software events are required as part of the measurable stuff by the
    Linux performance counter subsystem. Here is the list of events added by
    this patch:
    PERF_COUNT_SW_PAGE_FAULTS
    PERF_COUNT_SW_PAGE_FAULTS_MIN
    PERF_COUNT_SW_PAGE_FAULTS_MAJ
    PERF_COUNT_SW_ALIGNMENT_FAULTS
    PERF_COUNT_SW_EMULATION_FAULTS

    Signed-off-by: Deng-Cheng Zhu
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Acked-by: David Daney
    Reviewed-by: Matt Fleming
    Patchwork: https://patchwork.linux-mips.org/patch/1686/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • Perf-events is now using local_t helper functions internally. There is a
    use of local_xchg(). On MIPS, this is defined to xchg_local() which is
    missing in asm/system.h. This patch re-defines local_xchg() in asm/local.h
    to atomic_long_xchg(). Then Perf-events can pass the build.

    Signed-off-by: Deng-Cheng Zhu
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Cc: ddaney@caviumnetworks.com
    Cc: matt@console-pimps.org
    Patchwork: https://patchwork.linux-mips.org/patch/1687/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • Add support for Titan TNETV1050,1055,1056,1060 variants. This SoC is almost
    completely identical to AR7 except on a few points:
    - a second bank of gpios is available
    - vlynq0 on titan is vlynq1 on ar7
    - different PHY addresses for cpmac0

    This SoC can be found on commercial products like the Linksys WRTP54G

    Original patch by Xin with improvments by Florian.

    Signed-off-by: Xin Zhen
    Signed-off-by: Florian Fainelli
    Patchwork: http://patchwork.linux-mips.org/patch/1563/
    Signed-off-by: Ralf Baechle

    ---

    Florian Fainelli
     
  • In order to detect the Titan variant, we must initialize GPIOs earlier since
    detection relies on some GPIO values to be set.

    Signed-off-by: Florian Fainelli
    Patchwork: http://patchwork.linux-mips.org/patch/1562/
    Signed-off-by: Ralf Baechle

    ---

    Florian Fainelli