19 Jan, 2016

1 commit

  • Conflicts:
    arch/arm/boot/dts/Makefile
    arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
    arch/arm/boot/dts/imx6qdl-sabresd.dtsi
    arch/arm/boot/dts/imx6qp-sabresd.dts
    arch/arm/boot/dts/imx6sl-evk.dts
    arch/arm/boot/dts/imx6sl.dtsi
    arch/arm/boot/dts/imx6sx-14x14-arm2.dts
    arch/arm/boot/dts/imx6sx-19x19-arm2.dts
    arch/arm/boot/dts/imx6sx-sabreauto.dts
    arch/arm/boot/dts/imx6sx-sdb-btwifi.dts
    arch/arm/boot/dts/imx6sx-sdb.dtsi
    arch/arm/boot/dts/imx6sx.dtsi
    arch/arm/boot/dts/imx6ul-14x14-evk.dts
    arch/arm/boot/dts/imx6ul-9x9-evk.dts
    arch/arm/boot/dts/imx6ul-evk-btwifi.dtsi
    arch/arm/boot/dts/imx6ul-pinfunc.h
    arch/arm/boot/dts/imx6ul.dtsi
    arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
    arch/arm/boot/dts/imx7d-pinfunc.h
    arch/arm/boot/dts/imx7d-sdb-epdc.dtsi
    arch/arm/boot/dts/imx7d-sdb-m4.dtsi
    arch/arm/boot/dts/imx7d-sdb-reva-touch.dts
    arch/arm/boot/dts/imx7d-sdb-reva.dts
    arch/arm/boot/dts/imx7d-sdb.dts
    arch/arm/boot/dts/imx7d.dtsi
    arch/arm/configs/imx_v7_defconfig
    arch/arm/configs/imx_v7_mfg_defconfig
    arch/arm/mach-imx/clk-imx6q.c
    arch/arm/mach-imx/clk.h
    arch/arm/mach-imx/cpuidle-imx7d.c
    arch/arm/mach-imx/ddr3_freq_imx7d.S
    arch/arm/mach-imx/gpcv2.c
    arch/arm/mach-imx/imx7d_low_power_idle.S
    arch/arm/mach-imx/lpddr3_freq_imx.S
    arch/arm/mach-imx/mach-imx7d.c
    arch/arm/mach-imx/pm-imx7.c
    arch/arm/mach-imx/suspend-imx7.S
    drivers/ata/ahci_imx.c
    drivers/cpufreq/imx6q-cpufreq.c
    drivers/dma/imx-sdma.c
    drivers/dma/pxp/pxp_dma_v2.c
    drivers/input/touchscreen/ads7846.c
    drivers/media/platform/mxc/capture/ov5640_mipi.c
    drivers/media/platform/mxc/output/mxc_pxp_v4l2.c
    drivers/mmc/core/core.c
    drivers/mmc/core/sd.c
    drivers/mtd/spi-nor/fsl-quadspi.c
    drivers/mxc/gpu-viv/Kbuild
    drivers/mxc/gpu-viv/config
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_recorder.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.h
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_security.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_security_interface.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dmabuf.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_iommu.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_mutex.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_probe.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_security_channel.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
    drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
    drivers/mxc/ipu3/ipu_common.c
    drivers/mxc/mlb/mxc_mlb.c
    drivers/net/ethernet/freescale/fec_main.c
    drivers/net/wireless/bcmdhd/dhd_linux.c
    drivers/net/wireless/bcmdhd/dhd_sdio.c
    drivers/scsi/scsi_error.c
    drivers/spi/spi-imx.c
    drivers/thermal/imx_thermal.c
    drivers/tty/serial/imx.c
    drivers/usb/chipidea/udc.c
    drivers/usb/gadget/configfs.c
    drivers/video/fbdev/mxc/mipi_dsi.c
    drivers/video/fbdev/mxc/mipi_dsi.h
    drivers/video/fbdev/mxc/mipi_dsi_samsung.c
    drivers/video/fbdev/mxc/mxc_edid.c
    drivers/video/fbdev/mxc/mxc_epdc_fb.c
    drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
    drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
    drivers/video/fbdev/mxc/mxcfb_hx8369_wvga.c
    drivers/video/fbdev/mxsfb.c
    firmware/imx/sdma/sdma-imx6q.bin.ihex
    include/trace/events/cpufreq_interactive.h

    guoyin.chen
     

15 Jan, 2016

1 commit


16 Dec, 2015

1 commit


15 Dec, 2015

1 commit

  • [ Upstream commit fbca9d2d35c6ef1b323fae75cc9545005ba25097 ]

    During own review but also reported by Dmitry's syzkaller [1] it has been
    noticed that we trigger a heap out-of-bounds access on eBPF array maps
    when updating elements. This happens with each map whose map->value_size
    (specified during map creation time) is not multiple of 8 bytes.

    In array_map_alloc(), elem_size is round_up(attr->value_size, 8) and
    used to align array map slots for faster access. However, in function
    array_map_update_elem(), we update the element as ...

    memcpy(array->value + array->elem_size * index, value, array->elem_size);

    ... where we access 'value' out-of-bounds, since it was allocated from
    map_update_elem() from syscall side as kmalloc(map->value_size, GFP_USER)
    and later on copied through copy_from_user(value, uvalue, map->value_size).
    Thus, up to 7 bytes, we can access out-of-bounds.

    Same could happen from within an eBPF program, where in worst case we
    access beyond an eBPF program's designated stack.

    Since 1be7f75d1668 ("bpf: enable non-root eBPF programs") didn't hit an
    official release yet, it only affects priviledged users.

    In case of array_map_lookup_elem(), the verifier prevents eBPF programs
    from accessing beyond map->value_size through check_map_access(). Also
    from syscall side map_lookup_elem() only copies map->value_size back to
    user, so nothing could leak.

    [1] http://github.com/google/syzkaller

    Fixes: 28fbcfa08d8e ("bpf: add array type of eBPF maps")
    Reported-by: Dmitry Vyukov
    Signed-off-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Daniel Borkmann
     

04 Dec, 2015

1 commit


20 Nov, 2015

35 commits

  • Emulate NMIs on systems where they are not available by using timer
    interrupts on other cpus. Each cpu will use its softlockup hrtimer
    to check that the next cpu is processing hrtimer interrupts by
    verifying that a counter is increasing.

    This patch is useful on systems where the hardlockup detector is not
    available due to a lack of NMIs, for example most ARM SoCs.
    Without this patch any cpu stuck with interrupts disabled can
    cause a hardware watchdog reset with no debugging information,
    but with this patch the kernel can detect the lockup and panic,
    which can result in useful debugging info.

    Change-Id: Ia5faf50243e19c1755201212e04c8892d929785a
    Signed-off-by: Colin Cross

    Colin Cross
     
  • Userspace processes often have multiple allocators that each do
    anonymous mmaps to get memory. When examining memory usage of
    individual processes or systems as a whole, it is useful to be
    able to break down the various heaps that were allocated by
    each layer and examine their size, RSS, and physical memory
    usage.

    This patch adds a user pointer to the shared union in
    vm_area_struct that points to a null terminated string inside
    the user process containing a name for the vma. vmas that
    point to the same address will be merged, but vmas that
    point to equivalent strings at different addresses will
    not be merged.

    Userspace can set the name for a region of memory by calling
    prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name);
    Setting the name to NULL clears it.

    The names of named anonymous vmas are shown in /proc/pid/maps
    as [anon:] and in /proc/pid/smaps in a new "Name" field
    that is only present for named vmas. If the userspace pointer
    is no longer valid all or part of the name will be replaced
    with "".

    The idea to store a userspace pointer to reduce the complexity
    within mm (at the expense of the complexity of reading
    /proc/pid/mem) came from Dave Hansen. This results in no
    runtime overhead in the mm subsystem other than comparing
    the anon_name pointers when considering vma merging. The pointer
    is stored in a union with fieds that are only used on file-backed
    mappings, so it does not increase memory usage.

    Includes fix from Jed Davis for typo in
    prctl_set_vma_anon_name, which could attempt to set the name
    across two vmas at the same time due to a typo, which might
    corrupt the vma list. Fix it to use tmp instead of end to limit
    the name setting to a single vma at a time.

    Change-Id: I9aa7b6b5ef536cd780599ba4e2fba8ceebe8b59f
    Signed-off-by: Dmitry Shmidt

    Colin Cross
     
  • Add a userspace visible knob to tell the VM to keep an extra amount
    of memory free, by increasing the gap between each zone's min and
    low watermarks.

    This is useful for realtime applications that call system
    calls and have a bound on the number of allocations that happen
    in any short time period. In this application, extra_free_kbytes
    would be left at an amount equal to or larger than than the
    maximum number of allocations that happen in any burst.

    It may also be useful to reduce the memory use of virtual
    machines (temporarily?), in a way that does not cause memory
    fragmentation like ballooning does.

    [ccross]
    Revived for use on old kernels where no other solution exists.
    The tunable will be removed on kernels that do better at avoiding
    direct reclaim.

    Change-Id: I765a42be8e964bfd3e2886d1ca85a29d60c3bb3e
    Signed-off-by: Rik van Riel
    Signed-off-by: Colin Cross

    Rik van Riel
     
  • By default the kernel tries to keep half as much memory free at each
    order as it does for one order below. This can be too agressive when
    running without swap.

    Change-Id: I5efc1a0b50f41ff3ac71e92d2efd175dedd54ead
    Signed-off-by: Arve Hjønnevåg

    Arve Hjønnevåg
     
  • Change-Id: I5ca8db61b595adc642a07ea187bd41fd7636840e
    Signed-off-by: Arve Hjønnevåg

    Arve Hjønnevåg
     
  • At times, it is necessary for boards to provide some additional information
    as part of panic logs. Provide information on the board hardware as part
    of panic logs.

    It is safer to print this information at the very end in case something
    bad happens as part of the information retrieval itself.

    To use this, set global mach_panic_string to an appropriate string in the
    board file.

    Change-Id: Id12cdda87b0cd2940dd01d52db97e6162f671b4d
    Signed-off-by: Nishanth Menon

    Nishanth Menon
     
  • Makes low-level printk work.

    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • Signed-off-by: San Mehat

    San Mehat
     
  • Make PR_SET_TIMERSLACK_PID consider pid namespace and resolve the
    target pid in the caller's namespace. Otherwise, calls from pid
    namespace other than init would fail or affect the wrong task.

    Change-Id: I1da15196abc4096536713ce03714e99d2e63820a
    Signed-off-by: Micha Kalfon
    Acked-by: Oren Laadan

    Micha Kalfon
     
  • The case clause for the PR_SET_TIMERSLACK_PID option was placed inside
    the an internal switch statement for PR_MCE_KILL (see commits 37a591d4
    and 8ae872f1) . This commit moves it to the right place.

    Change-Id: I63251669d7e2f2aa843d1b0900e7df61518c3dea
    Signed-off-by: Micha Kalfon
    Acked-by: Oren Laadan

    Micha Kalfon
     
  • Adds a capable() check to make sure that arbitary apps do not change the
    timer slack for other apps.

    Bug: 15000427
    Change-Id: I558a2551a0e3579c7f7e7aae54b28aa9d982b209
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • Second argument is similar to PR_SET_TIMERSLACK, if non-zero then the
    slack is set to that value otherwise sets it to the default for the thread.

    Takes PID of the thread as the third argument.

    This allows power/performance management software to set timer slack for
    other threads according to its policy for the thread (such as when the
    thread is designated foreground vs. background activity)

    Change-Id: I744d451ff4e60dae69f38f53948ff36c51c14a3f
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • Change-Id: I05013f6e76c30b0ece3671f9f2b4bbdc626cd35c
    Signed-off-by: Dmitry Shmidt

    Dmitry Shmidt
     
  • In 53b5e2f generic cgroup subsystem permission checks have been added.
    When this is been done within procs_write an empty taskset is added to
    the tasks css set. When a task later on migrates to a new group we see a
    dmesg warning cause the mg_node isn't empty (cgroup.c:2086). Cause this
    happens all the time this spams dmesg.

    I am not really familiar with this code, but it looks to me like adding
    the taskset is just a temporary action in this context. Therefore this
    taskset should be removed after the actual check. This is what this fix
    does.

    This problem was seen and the fix tested on x86 using l-mr1 and master.

    Change-Id: I9894d39e8b5692ef65149002b07e65a84a33ffea
    Signed-off-by: Christian Poetzsch

    Christian Poetzsch
     
  • - Return -EINVAL when cgroups support isn't enabled
    - Add allow_attach callback in CPU cgroups

    Change-Id: Id3360b4a39919524fc4b6fcbd44fa2050009f000
    Signed-off-by: Rom Lemarchand

    Rom Lemarchand
     
  • Rather than using explicit euid == 0 checks when trying to move
    tasks into a cgroup via CFS, move permission checks into each
    specific cgroup subsystem. If a subsystem does not specify a
    'allow_attach' handler, then we fall back to doing our checks
    the old way.

    Use the 'allow_attach' handler for the 'cpu' cgroup to allow
    non-root processes to add arbitrary processes to a 'cpu' cgroup
    if it has the CAP_SYS_NICE capability set.

    This version of the patch adds a 'allow_attach' handler instead
    of reusing the 'can_attach' handler. If the 'can_attach' handler
    is reused, a new cgroup that implements 'can_attach' but not
    the permission checks could end up with no permission checks
    at all.

    Change-Id: Icfa950aa9321d1ceba362061d32dc7dfa2c64f0c
    Original-Author: San Mehat
    Signed-off-by: Colin Cross

    Colin Cross
     
  • move cpu_cgroup_allow_attach to a common subsys_cgroup_allow_attach.
    This allows any process with CAP_SYS_NICE to move tasks across cgroups if
    they use this function as their allow_attach handler.

    Bug: 18260435
    Change-Id: I6bb4933d07e889d0dc39e33b4e71320c34a2c90f
    Signed-off-by: Rom Lemarchand

    Rom Lemarchand
     
  • Bug: 22368519
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • If a wakeup source is found to be pending in the last stage of suspend
    after syscore suspend then the device doesn't suspend but the error is
    not propogated which causes an error in the accounting for the number
    of suspend aborts and successful suspends.

    Change-Id: Ib63b4ead755127eaf03e3b303aab3c782ad02ed1
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • Suspend time reporting Change-Id: I2cb9a9408a5fd12166aaec11b935a0fd6a408c63
    (Power: Report suspend times from last_suspend_time), is broken on 3.16+
    kernels because get_xtime_and_monotonic_and_sleep_offset() hrtimer helper
    routine is removed from kernel timekeeping.

    The replacement helper routines ktime_get_update_offsets_{tick,now}()
    are private to core kernel timekeeping so we can't use them, hence using
    ktime_get() and ktime_get_boottime() instead and sampling the time twice.

    Idea is to use Monotonic boottime offset to calculate total time spent
    in last suspend state and CLOCK_MONOTONIC to calculate time spent in
    last suspend-resume process.

    Signed-off-by: Amit Pundir

    Amit Pundir
     
  • This node epxorts two values separated by space.
    From left to right:
    1. time spent in suspend/resume process
    2. time spent sleep in suspend state

    Change-Id: I2cb9a9408a5fd12166aaec11b935a0fd6a408c63

    jinqian
     
  • Remove the HAS_WAKELOCK config as it doesn't seem to have been used in
    the 3.10 or 3.14 kernels.

    Add some Documentation to CONFIG_WAKELOCK so that it is selectable and
    can be disabled is desired.

    Signed-off-by: Dylan Reid

    Dylan Reid
     
  • This unbreaks the build on architectures such as um that do not
    support CONFIG_PM_SLEEP.

    Change-Id: Ia846ed0a7fca1d762ececad20748d23610e8544f
    Signed-off-by: Lorenzo Colitti

    Lorenzo Colitti
     
  • Wakeup reason is set before driver resume handlers are called.
    It is cleared before driver suspend handlers are called, on
    PM_SUSPEND_PREPARE.

    Change-Id: I04218c9b0c115a7877e8029c73e6679ff82e0aa4
    Signed-off-by: Dmitry Shmidt

    Dmitry Shmidt
     
  • Extends the last_resume_reason to log suspend abort reason. The abort
    reasons will have "Abort:" appended at the start to distinguish itself
    from the resume reason.

    Signed-off-by: Ruchi Kandoi
    Change-Id: I3207f1844e3d87c706dfc298fb10e1c648814c5f

    Ruchi Kandoi
     
  • Avoids printing bogus error message "tasks refusing to freeze", in cases
    where pending wakeup source caused the suspend abort.

    Signed-off-by: Ruchi Kandoi
    Change-Id: I913ad290f501b31cd536d039834c8d24c6f16928

    Ruchi Kandoi
     
  • /sys/kernel/wakeup_reasons/last_resume_reason

    Change-Id: I8ac568a7cb58c31decd379195de517ff3c6f9c65
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • On x86, irq_count conflicts with a declaration in
    arch/x86/include/asm/processor.h

    Change-Id: I3e4fde0ff64ef59ff5ed2adc0ea3a644641ee0b7
    Signed-off-by: Greg Hackmann

    Greg Hackmann
     
  • Ensure the array for the wakeup reason IRQs does not overflow.

    Change-Id: Iddc57a3aeb1888f39d4e7b004164611803a4d37c
    Signed-off-by: Ruchi Kandoi
    (cherry picked from commit b5ea40cdfcf38296535f931a7e5e7bf47b6fad7f)

    Ruchi Kandoi
     
  • Change I81addaf420f1338255c5d0638b0d244a99d777d1 introduced compile
    warnings, fix these.

    Change-Id: I05482a5335599ab96c0a088a7d175c8d4cf1cf69
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • Add API log_wakeup_reason() and expose it to userspace via sysfs path
    /sys/kernel/wakeup_reasons/last_resume_reason

    Change-Id: I81addaf420f1338255c5d0638b0d244a99d777d1
    Signed-off-by: Ruchi Kandoi

    Ruchi Kandoi
     
  • Change-Id: I92f252414c013b018b9a392eae1ee039aa0e89dc
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • Prints the time spent in suspend in the kernel log, and
    keeps statistics on the time spent in suspend in
    /sys/kernel/debug/suspend_time

    Change-Id: Ia6b9ebe4baa0f7f5cd211c6a4f7e813aefd3fa1d
    Signed-off-by: Colin Cross
    Signed-off-by: Todd Poynor

    Colin Cross
     
  • Change-Id: Id88b5d30847bc6d3cfe1d8cd00cbdc975c9712d1
    Signed-off-by: Dmitry Shmidt

    Dmitry Shmidt
     
  • Add the 'funcgraph-flat' option to the function_graph tracer to use the default
    trace printing format rather than the hierarchical formatting normally used.

    Change-Id: If2900bfb86e6f8f51379f56da4f6fabafa630909
    Signed-off-by: Jamie Gennis

    Jamie Gennis