summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-04-18 12:57:33 -0700
committerLinux Build Service Account <lnxbuild@localhost>2016-04-18 12:57:34 -0700
commitff586a964c7d34d12eaeabc7ece026b4b67a05fc (patch)
tree4c0e70babc54b30fa3e95836730c88d7384b31b6 /include
parent45155991fba12d4873758efad79d3333322eda69 (diff)
parent217cb4db86edfff435195d5f536f76888b59249a (diff)
Promotion of kernel.lnx.4.4-160412.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1001463 Idc71b0abb24cf8c103dfde893ba8c40d342a7fb8 ARM: dts: msm: Fix USB3_PHY_SW_RESET register's offset o 974792 I9d835cddc85c007bcc6b918b9dc4335b82b97306 ARM: dts: msm: Add RPM handshake with System sleep for M 1001866 450383 I76394b203b4ab2312437c839976f0ecb7b6dde4e android/lowmemorykiller: Ignore tasks with freed mm 1001866 I88515703d64730e42598ab16136dcce4c18b099c lowmemorykiller: Do proper NULL checks 1004911 I991dfdc22936dba667110de338d0109c58e68bd5 defconfig: Enable Event timers for msmcortex defconfig 990856 Iae170042b70c6eaf5bc05ea2b4a1ccdb7dd6f946 msm: ipa3: add support for MHI burst mode 1002397 I0f68975dfcad9483182e5af5477153f39a98ac1f uapi: Add MHI device 1001866 437016 I7f06d53e2d8cfe7439e5561fe6e5209ce73b1c90 android/lowmemorykiller: Selectively count free CMA page 998858 Id6d18a67329abe5a89b4284fc5a3d1cf6a042dc4 defconfig: arm64: set SELINUX as default security for ms 973565 I73b40d264c4054a43c2776337b80af88adff077e msm: kgsl: Enable GPMU and SPTP/RAC power collapse on A5 1004911 I09313d7809ec939a9d0440d0ab30a5992f512b96 defconfig: Enable MPM for msmcortex defconfig 1001463 Ia826e361d8259126a8168c07539ba4b4f6053f65 ARM: dts: msm: Update QMP PHY supply name on msm8996 and 999530 Idd56140e11f4fdc48fd999a1e808f3263024f34d soc: qcom: Service notification driver for remote servic 997749 Ie80846978a84a114b38d69b0bca86639bfab7e91 soc: qcom: remoteqdss: Implement the remaining message t 1001866 I3b6876c5ecdf192ecc271aed3f37579f66d47a08 lowmemorykiller: enhance debug information 1001866 I6f1f8660d5da920a0e3af45a160499965032081d android: lowmemorykiller: add lmk parameters tunning cod 986169 I6dfcab462a933ef31e3bba6bef07f17016ae50b9 msm: kgsl: Return EOPNOTSUPP for A3XX command batch prof 995378 I1a9aeb3f1dd67f014847322e5b14cba8775a82a4 msm: kgsl: Pass correct buffer size for mapping gpuobj u 1002397 I64990a972cbf7c2022d638c35f7517071de67f19 msm: mhi_dev: Add MHI device driver 995821 I39539cf661d9e0e0bb59236c92b169d3054485a9 msm: ipa: add common internal header 1001866 648978 I53f5f064ac16a50ee10c84ff2bb50fdb7e085bd0 mm: Increase number of GFP masks 1001866 I938644584f374763d10d429d835e74daa4854a38 lowmemorykiller: Account for highmem during kswapd recla 988993 I0e097d7e4e4c414c0849e33bcc61a26fb94291ad msm: kgsl: verify user memory permissions before mapping 1001866 I5eb6e4b463f81142a2a7824db389201357432ec7 lowmemorykiller: use for_each_thread instead of buggy wh 993518 I75033cdf4637881ecd6fa4dd31aea083b134e6d2 msm: kgsl: Zero the adreno ioctl command buffer 1001866 893699 I2d77103d7c8f4d8a66e4652cba78e619a7bcef9a lowmemorykiller: avoid false adaptive LMK triggers 1001469 Ic62b4dae798726055beb778509e6b65e69f4db34 usb: gadget: f_gsi: Add missing includes to compile f_gs 1001469 Ib7dce6b2ae1670554a29847e4381e71ba7b75edf USB: QTI: Add missing usb_ctrl_qti.h 1001463 I4cc68a447d0cf3571a50b18d7eec5415430f9423 ARM: dts: msm: Select CML clock with USB QMP PHY on msmc 1001222 I74a00cc76ab86ee96905d270b1f6e09fb3fb9db7 ARM: dts:msm: Disable USB QMP PHY on msmcobalt 993267 I17d8b4ba2c74a787a065dbdb0ac88d065605fcb1 msm: kgsl: Fix gpudev NULL dereference in adreno_remove 1001866 I1a08160c35d3e33bdfd1d2c789c288fc07d0f0d3 lowmemorykiller: adapt to vmpressure 997749 I7738b6369e095868fa6087aac94116f4767dc168 soc: qcom: remoteqdss: Implement the new communication p 1000079 I8563fafc56515fde764046f882814c1c6e4c4299 coresight: replace bitmap_scnprintf with scnprintf 1001866 I38239283e572f814b277c718eaf6be7f92abacbb android/lowmemorykiller: Account for total_swapcache_pag 990078 I04a1a44f12dd3a09c50b4fe39e14a2bd636b24de msm: kgsl: Correct the order of preemption packets 1001463 If100d36bade241dedf28e3cea9e07be192bdfdc2 usb: phy: qmp: Add support to use different voltage with 1001866 452508 I6165dda01b705309eebabc6dfa67146b7a95c174 cma: redirect page allocation to CMA 1001469 I91b2531a2ce739613181f2e13c692263d9e2454a defconfig: Enable USB GSI Function driver for msmcobalt 1004911 I88c579189287d655b10b48496be39ed9f20d9bfc ARM: dts: msm: Add device node for MPM for MSMCobalt 978318 I7b9faf485dda6f450f6df4410e3ae25efa40aad1 ARM: dts: msm: update the pmcobalt GPIO nodes 1001866 I650bbfbf0fbbabd01d82bdb3502b57ff59c3e14f lowmemorykiller: Don't count swap cache pages twice 1004911 I59c99348a44d364d74af6b67ccabdd2d8c5008b0 soc: qcom: event_timer: Fix irq_desc structure usage 973565 Ie6480fc3ba0e1b95aab40e31b09ff2bd798ff30f msm: kgsl: Invoke DCVS callbacks on A540 1004911 I67244ff55690c164634e9233e2d0cec3388c5be8 defconfig: enable MSM_PM for msmcortex 999351 I49ae94cea34dda039d03dbeeab2add2bdd1760bd msm: ipa: fix to handle deaggr error 1001866 I809589a25c6abca51f1c963f118adfc78e955cf9 mm: add cma pcp list 983144 I4a933c9b3355b0aa1b653719ec1ec7ded1f368dd msm: ADSPRPC: FastRPC migration to GLINK from SMD 995821 I4a7d8c328af7cd5506b3fbbdc76b1bc5bb0de698 msm: ipa: unify IPA RM 988881 Idc8ac5fc273d91035254c675c7cedefa9a92a5a5 ARM: dts: msm: add IPA smp2p entries for msmcobalt Change-Id: I855482e011c76b10ad187940905ea508725dc8d8 CRs-Fixed: 999530, 973565, 1001469, 983144, 1001463, 1002397, 1001222, 1001866, 993267, 995378, 998858, 999351, 974792, 1004911, 978318, 997749, 990078, 452508, 990856, 993518, 995821, 986169, 450383, 1000079, 648978, 988881, 893699, 988993, 437016
Diffstat (limited to 'include')
-rw-r--r--include/linux/gfp.h13
-rw-r--r--include/linux/highmem.h15
-rw-r--r--include/linux/mmzone.h18
-rw-r--r--include/linux/sched.h2
-rw-r--r--include/trace/events/almk.h84
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/mhi.h37
-rw-r--r--include/uapi/linux/usb/Kbuild1
-rw-r--r--include/uapi/linux/usb/usb_ctrl_qti.h41
9 files changed, 206 insertions, 6 deletions
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index 8942af0813e3..9796b4426710 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -36,6 +36,7 @@ struct vm_area_struct;
#define ___GFP_OTHER_NODE 0x800000u
#define ___GFP_WRITE 0x1000000u
#define ___GFP_KSWAPD_RECLAIM 0x2000000u
+#define ___GFP_CMA 0x4000000u
/* If the above are modified, __GFP_BITS_SHIFT may need updating */
/*
@@ -50,8 +51,9 @@ struct vm_area_struct;
#define __GFP_DMA32 ((__force gfp_t)___GFP_DMA32)
#define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* Page is movable */
#define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* ZONE_MOVABLE allowed */
-#define GFP_ZONEMASK (__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE)
-
+#define __GFP_CMA ((__force gfp_t)___GFP_CMA)
+#define GFP_ZONEMASK (__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE| \
+ __GFP_CMA)
/*
* Page mobility and placement hints
*
@@ -183,7 +185,7 @@ struct vm_area_struct;
#define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE)
/* Room for N __GFP_FOO bits */
-#define __GFP_BITS_SHIFT 26
+#define __GFP_BITS_SHIFT 27
#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
/*
@@ -264,7 +266,12 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
return MIGRATE_UNMOVABLE;
/* Group based on mobility */
+#ifndef CONFIG_CMA
return (gfp_flags & GFP_MOVABLE_MASK) >> GFP_MOVABLE_SHIFT;
+#else
+ return ((gfp_flags & GFP_MOVABLE_MASK) >> GFP_MOVABLE_SHIFT) |
+ ((gfp_flags & __GFP_CMA) != 0);
+#endif
}
#undef GFP_MOVABLE_MASK
#undef GFP_MOVABLE_SHIFT
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 4c70716759a6..61aff324bd5e 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -187,9 +187,24 @@ static inline struct page *
alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
unsigned long vaddr)
{
+#ifndef CONFIG_CMA
return __alloc_zeroed_user_highpage(__GFP_MOVABLE, vma, vaddr);
+#else
+ return __alloc_zeroed_user_highpage(__GFP_MOVABLE|__GFP_CMA, vma,
+ vaddr);
+#endif
}
+#ifdef CONFIG_CMA
+static inline struct page *
+alloc_zeroed_user_highpage_movable_cma(struct vm_area_struct *vma,
+ unsigned long vaddr)
+{
+ return __alloc_zeroed_user_highpage(__GFP_MOVABLE|__GFP_CMA, vma,
+ vaddr);
+}
+#endif
+
static inline void clear_highpage(struct page *page)
{
void *kaddr = kmap_atomic(page);
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 423d214f708b..ad4c3f186f61 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -39,8 +39,6 @@ enum {
MIGRATE_UNMOVABLE,
MIGRATE_MOVABLE,
MIGRATE_RECLAIMABLE,
- MIGRATE_PCPTYPES, /* the number of types on the pcp lists */
- MIGRATE_HIGHATOMIC = MIGRATE_PCPTYPES,
#ifdef CONFIG_CMA
/*
* MIGRATE_CMA migration type is designed to mimic the way
@@ -57,18 +55,30 @@ enum {
*/
MIGRATE_CMA,
#endif
+ MIGRATE_PCPTYPES, /* the number of types on the pcp lists */
+ MIGRATE_HIGHATOMIC = MIGRATE_PCPTYPES,
#ifdef CONFIG_MEMORY_ISOLATION
MIGRATE_ISOLATE, /* can't allocate from here */
#endif
MIGRATE_TYPES
};
+/*
+ * Returns a list which contains the migrate types on to which
+ * an allocation falls back when the free list for the migrate
+ * type mtype is depleted.
+ * The end of the list is delimited by the type MIGRATE_TYPES.
+ */
+extern int *get_migratetype_fallbacks(int mtype);
+
#ifdef CONFIG_CMA
bool is_cma_pageblock(struct page *page);
# define is_migrate_cma(migratetype) unlikely((migratetype) == MIGRATE_CMA)
+# define get_cma_migrate_type() MIGRATE_CMA
#else
# define is_cma_pageblock(page) false
# define is_migrate_cma(migratetype) false
+# define get_cma_migrate_type() MIGRATE_MOVABLE
#endif
#define for_each_migratetype_order(order, type) \
@@ -159,6 +169,7 @@ enum zone_stat_item {
WORKINGSET_NODERECLAIM,
NR_ANON_TRANSPARENT_HUGEPAGES,
NR_FREE_CMA_PAGES,
+ NR_SWAPCACHE,
NR_VM_ZONE_STAT_ITEMS };
/*
@@ -367,6 +378,9 @@ struct zone {
* considered dirtyable memory.
*/
unsigned long dirty_balance_reserve;
+#ifdef CONFIG_CMA
+ bool cma_alloc;
+#endif
#ifndef CONFIG_SPARSEMEM
/*
diff --git a/include/linux/sched.h b/include/linux/sched.h
index e963ff30a7f6..7ece18efd02b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2740,7 +2740,7 @@ static inline void mmdrop(struct mm_struct * mm)
}
/* mmput gets rid of the mappings and all user-space */
-extern void mmput(struct mm_struct *);
+extern int mmput(struct mm_struct *);
/* Grab a reference to a task's mm, if it is not already going away */
extern struct mm_struct *get_task_mm(struct task_struct *task);
/*
diff --git a/include/trace/events/almk.h b/include/trace/events/almk.h
new file mode 100644
index 000000000000..85d712d48f50
--- /dev/null
+++ b/include/trace/events/almk.h
@@ -0,0 +1,84 @@
+/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM almk
+
+#if !defined(_TRACE_EVENT_ALMK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_EVENT_ALMK_H
+
+#include <linux/tracepoint.h>
+#include <linux/types.h>
+
+TRACE_EVENT(almk_vmpressure,
+
+ TP_PROTO(unsigned long pressure,
+ int other_free,
+ int other_file),
+
+ TP_ARGS(pressure, other_free, other_file),
+
+ TP_STRUCT__entry(
+ __field(unsigned long, pressure)
+ __field(int, other_free)
+ __field(int, other_file)
+ ),
+
+ TP_fast_assign(
+ __entry->pressure = pressure;
+ __entry->other_free = other_free;
+ __entry->other_file = other_file;
+ ),
+
+ TP_printk("%lu, %d, %d",
+ __entry->pressure, __entry->other_free,
+ __entry->other_file)
+);
+
+TRACE_EVENT(almk_shrink,
+
+ TP_PROTO(int tsize,
+ int vmp,
+ int other_free,
+ int other_file,
+ short adj),
+
+ TP_ARGS(tsize, vmp, other_free, other_file, adj),
+
+ TP_STRUCT__entry(
+ __field(int, tsize)
+ __field(int, vmp)
+ __field(int, other_free)
+ __field(int, other_file)
+ __field(short, adj)
+ ),
+
+ TP_fast_assign(
+ __entry->tsize = tsize;
+ __entry->vmp = vmp;
+ __entry->other_free = other_free;
+ __entry->other_file = other_file;
+ __entry->adj = adj;
+ ),
+
+ TP_printk("%d, %d, %d, %d, %d",
+ __entry->tsize,
+ __entry->vmp,
+ __entry->other_free,
+ __entry->other_file,
+ __entry->adj)
+);
+
+#endif
+
+#include <trace/define_trace.h>
+
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 96a79417671a..29e3be2ce18c 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -271,6 +271,7 @@ header-y += membarrier.h
header-y += memfd.h
header-y += mempolicy.h
header-y += meye.h
+header-y += mhi.h
header-y += mic_common.h
header-y += mic_ioctl.h
header-y += mii.h
diff --git a/include/uapi/linux/mhi.h b/include/uapi/linux/mhi.h
new file mode 100644
index 000000000000..834c1dc77173
--- /dev/null
+++ b/include/uapi/linux/mhi.h
@@ -0,0 +1,37 @@
+#ifndef _UAPI_MHI_H
+#define _UAPI_MHI_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+enum peripheral_ep_type {
+ DATA_EP_TYPE_RESERVED,
+ DATA_EP_TYPE_HSIC,
+ DATA_EP_TYPE_HSUSB,
+ DATA_EP_TYPE_PCIE,
+ DATA_EP_TYPE_EMBEDDED,
+ DATA_EP_TYPE_BAM_DMUX,
+};
+
+struct peripheral_ep_info {
+ enum peripheral_ep_type ep_type;
+ __u32 peripheral_iface_id;
+};
+
+struct ipa_ep_pair {
+ __u32 cons_pipe_num;
+ __u32 prod_pipe_num;
+};
+
+struct ep_info {
+ struct peripheral_ep_info ph_ep_info;
+ struct ipa_ep_pair ipa_ep_pair;
+
+};
+
+#define MHI_UCI_IOCTL_MAGIC 'm'
+
+#define MHI_UCI_EP_LOOKUP _IOR(MHI_UCI_IOCTL_MAGIC, 2, struct ep_info)
+
+#endif /* _UAPI_MHI_H */
+
diff --git a/include/uapi/linux/usb/Kbuild b/include/uapi/linux/usb/Kbuild
index 4cc4d6e7e523..ba153d582422 100644
--- a/include/uapi/linux/usb/Kbuild
+++ b/include/uapi/linux/usb/Kbuild
@@ -9,4 +9,5 @@ header-y += g_printer.h
header-y += gadgetfs.h
header-y += midi.h
header-y += tmc.h
+header-y += usb_ctrl_qti.h
header-y += video.h
diff --git a/include/uapi/linux/usb/usb_ctrl_qti.h b/include/uapi/linux/usb/usb_ctrl_qti.h
new file mode 100644
index 000000000000..b02272a03e40
--- /dev/null
+++ b/include/uapi/linux/usb/usb_ctrl_qti.h
@@ -0,0 +1,41 @@
+#ifndef __UAPI_LINUX_USB_CTRL_QTI_H
+#define __UAPI_LINUX_USB_CTRL_QTI_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#define MAX_QTI_PKT_SIZE 2048
+
+#define QTI_CTRL_IOCTL_MAGIC 'r'
+#define QTI_CTRL_GET_LINE_STATE _IOR(QTI_CTRL_IOCTL_MAGIC, 2, int)
+#define QTI_CTRL_EP_LOOKUP _IOR(QTI_CTRL_IOCTL_MAGIC, 3, struct ep_info)
+#define QTI_CTRL_MODEM_OFFLINE _IO(QTI_CTRL_IOCTL_MAGIC, 4)
+#define QTI_CTRL_MODEM_ONLINE _IO(QTI_CTRL_IOCTL_MAGIC, 5)
+
+enum peripheral_ep_type {
+ DATA_EP_TYPE_RESERVED = 0x0,
+ DATA_EP_TYPE_HSIC = 0x1,
+ DATA_EP_TYPE_HSUSB = 0x2,
+ DATA_EP_TYPE_PCIE = 0x3,
+ DATA_EP_TYPE_EMBEDDED = 0x4,
+ DATA_EP_TYPE_BAM_DMUX = 0x5,
+};
+
+struct peripheral_ep_info {
+ enum peripheral_ep_type ep_type;
+ __u32 peripheral_iface_id;
+};
+
+struct ipa_ep_pair {
+ __u32 cons_pipe_num;
+ __u32 prod_pipe_num;
+};
+
+struct ep_info {
+ struct peripheral_ep_info ph_ep_info;
+ struct ipa_ep_pair ipa_ep_pair;
+
+};
+
+#endif
+