summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-06-24 10:51:48 -0700
committerLinux Build Service Account <lnxbuild@localhost>2016-06-24 10:51:49 -0700
commit402636f926b48533bbb1589fe2ebe2e33ef80197 (patch)
treef8cd80c02d61bc095b0ee9a02ab08ccde9ec6b0e /include
parent29757c8c87c47179370bd5cbba5f077fb05a23b5 (diff)
parent293a2b36f2456425a5c40b629f66f42c0a46b78e (diff)
Promotion of kernel.lnx.4.4-160623.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1032423 If50943f86a6d3f54039a0b4ed4f8a71c8aaaa1fa hwmon: qpnp-adc-voltage: Update VADC settings mask 1025905 I69b4c363c8b656bcd9481b6310a972b8140311a9 clk: qcom: Add A53 clock driver 992798 I882c67ae1c3d950b98bd002ac384cc3a7e77874a ASoC: msm: qdsp6v2: pull mode playback and push mode rec 1027456 I4fac4530dd4b31baf62ef3719535fd662dc2ae37 security: pfe: Fix the qualifier used to print size_t 1027012 I76de8cd4c1d26015b26524e445d6a5ba00ce2a43 ARM: dts: msm: add apss ctis on msmcobalt 1032423 Id8952c4565dd95b154165c9f8e307e74bdbd443e ARM: dts: msm: Update VADC channels decimation on msmcob 1023610 I5fb7e870ddece35159d1fe465d4b70d2a4c1ec35 coresight-tmc: add support to save TMC registers 1025905 I1a73355bc9117c34589a25cf58446cad13ceb6e3 clk: qcom: Add support for RPM Clocks 1027456 I9a1045333115ab1726f85e360ef0e302486341c4 arm: fix the compilation error with trigger backtrace ca 1025905 Ifc2fe0539b943e850681143da76da27274203ed2 clk: qcom: alpha-pll: Add support for hwfsm ops 1022191 I7e5f34f2e947f5db6d405867fe2ad34863ca40f7 mm: Enhance per process reclaim to consider shared pages 1027008 Iaded781ee76ec3b079ac9cd9d551bdfb42834fd9 coresight-tmc: fix read_count for tmc_open 1025515 I93fe93524cca07f9d9efb9f2cd220fb0bfcf8778 ARM: dts: msm: add SPDM support for msmcobalt 1025905 Ia19aa0ebc209322955da1d22f5eb73c9cd7af908 fixup rpm clks on 8996 1029014 Id43a629b40b72cc47773e4027d30953b3a94058d sched: core: Fix possible hotplug race in set_cpus_allow 1022191 I3526377aa6ee6142b8f3ec63396e7ada1e442505 mm: Remove shrink_page 992798 I98e68c2a485783be3c2b3eaa62577759d7e21d82 ASoC: msm: Enable use of noirq playback and capture 1025905 I871de8d291f5c1b848b215766c61b8bd0ed98f77 clk: qcom: Add Krait clock controller driver 1021636 I5b219ed570b81a7fd6a97be46977cafd3e452492 msm: camera: isp: Fix framedrop reporting 1027108 I4acdad2f243ea32f6ce10b6c0064ef2a5262fab2 msm: misc: hdcp: support tz hdcp2p2 app interface change 1030966 I3b141d62f6c3b479d8d61ae7829e9f5ca72a3886 clk: msm: clock-gcc-cobalt: Enable support to scale the 1022191 I34469b7f0a79f2b79e30e40033ba8b3e1dd5f2d0 mm: make shrink_page_list with pages work from multiple 1025905 I8d2882de9410a992a8045caedc7ab71e3c3e45b2 clk: qcom: Add support for SMD-RPM Clocks 1022191 I111131d31be1cfcfa246617b634a9a8bc4078098 mm: Support address range reclaim 1027773 I9253469887b8913f6f2c513a6c7043ed60400b8a msm: ipa: fix delete dependency race condition 1023703 1030934 Ied7c31d5913df94a288d36ecf06d081d32e07396 qcom-charger: introduce parallel charging support 1027014 Ie0aa7932e46f63969ba85cb0dc4855b3b267f2d6 coresight-tmc: configure ETR_DBAHI register 1027016 Ibe650067fc30a65defa2c0e76ef5526235980f72 coresight-tpdm: fix dsb edge ctrl mask interface 992798 Ie21a1c4a73c354a6dc1e733e6d2ac653f85f7647 ASoC: msm: qdsp6v2: Add capture support to a frontend 1024229 Iac3a9394790e140492c5c0c0ad6d068840bfffa4 qcom-cpufreq: Use cpufreq_table_validate_and_show to fil 1022191 I1718fad12ec078e204e7a59769ce70fad7708756 add documentation about reclaim knob on proc.txt 1007131 I2ff998fcec7ace9a94ca67a797f008389dc510f2 msm: isp: Reducing logs in error case 1025905 Ib095af601a4f03d866cf94c8e277d04630abb42b clk: qcom: rpmcc: Add rpm clock data for msm8996 1027772 I5bb97734a2402e763836250c3ce6f7fc308c20a6 clk: msm: Set the GMEM GX clamp before disabling the GPU 1030674 I711c860dc3de479eec0d22369d19615aef572ea1 ASoC: msm: qdsp6v2: Fix timeout error in ADM_CMD_SET_PP_ 1024913 I0505326b91558ce052d136cfb456ca0841a26f28 ARM: dts: msm: enable flush on reset for TMC devices on 1027008 Iccb6338ef4fce25830f27541f5f22cfcad7264ae coresight-tmc: avoid reading TMC buffer before enabling 1001412 Ib58efa2a68115ec9929b9270c123c904737196ee msm: isp: Avoid unaligned register access 1027456 I5fd747de84917c16f28f3f72d7b34b5db157637c mach-qcom: add support to populate dt nodes for 32-bit p 943700 I61faf6ddf99ab504e492a4e37d577b67acf99f09 Asoc: msm: qdsp6v2: Track compress stream open properly 1022191 I5edc3c955d106ecebc4949ce27daf5b7b7a18089 mm: prevent to write out dirty page in CMA by may_writep 1025905 I0d26e8f6d225cc3669f3a9e3c37b45e49e139879 clk: qcom: Add Alpha PLL support 1022191 Iabdb7bc2ef3dc4d94e3ea005fbe18f4cd06739ab mm: Per process reclaim 992798 I8a7bd938fc8eeeec5cd943e7445784559f13e05e ARM: dts: msm: Add new pcm device node for msm8996 Change-Id: Ib440984dac5dc0824a9c17dcff0ef9a6c875ca77 CRs-Fixed: 1007131, 1027456, 1029014, 1030966, 1027108, 1025515, 1027008, 1025905, 1032423, 992798, 1030934, 1023703, 1001412, 1030674, 1021636, 1027012, 1024229, 1027016, 1027014, 1027773, 1027772, 943700, 1022191, 1024913, 1023610
Diffstat (limited to 'include')
-rw-r--r--include/dt-bindings/clock/qcom,rpmcc.h105
-rw-r--r--include/linux/nmi.h4
-rw-r--r--include/linux/rmap.h11
-rw-r--r--include/linux/soc/qcom/smd-rpm.h4
-rw-r--r--include/sound/apr_audio-v2.h108
-rw-r--r--include/sound/q6asm-v2.h23
6 files changed, 251 insertions, 4 deletions
diff --git a/include/dt-bindings/clock/qcom,rpmcc.h b/include/dt-bindings/clock/qcom,rpmcc.h
new file mode 100644
index 000000000000..ee37c5c22f5f
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,rpmcc.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2015 Linaro Limited
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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.
+ */
+
+#ifndef _DT_BINDINGS_CLK_MSM_RPMCC_H
+#define _DT_BINDINGS_CLK_MSM_RPMCC_H
+
+/* apq8064 */
+#define RPM_PXO_CLK 0
+#define RPM_PXO_A_CLK 1
+#define RPM_CXO_CLK 2
+#define RPM_CXO_A_CLK 3
+#define RPM_APPS_FABRIC_CLK 4
+#define RPM_APPS_FABRIC_A_CLK 5
+#define RPM_CFPB_CLK 6
+#define RPM_CFPB_A_CLK 7
+#define RPM_QDSS_CLK 8
+#define RPM_QDSS_A_CLK 9
+#define RPM_DAYTONA_FABRIC_CLK 10
+#define RPM_DAYTONA_FABRIC_A_CLK 11
+#define RPM_EBI1_CLK 12
+#define RPM_EBI1_A_CLK 13
+#define RPM_MM_FABRIC_CLK 14
+#define RPM_MM_FABRIC_A_CLK 15
+#define RPM_MMFPB_CLK 16
+#define RPM_MMFPB_A_CLK 17
+#define RPM_SYS_FABRIC_CLK 18
+#define RPM_SYS_FABRIC_A_CLK 19
+#define RPM_SFPB_CLK 20
+#define RPM_SFPB_A_CLK 21
+
+/* msm8916 */
+#define RPM_SMD_XO_CLK_SRC 0
+#define RPM_SMD_XO_A_CLK_SRC 1
+#define RPM_SMD_PCNOC_CLK 2
+#define RPM_SMD_PCNOC_A_CLK 3
+#define RPM_SMD_SNOC_CLK 4
+#define RPM_SMD_SNOC_A_CLK 5
+#define RPM_SMD_BIMC_CLK 6
+#define RPM_SMD_BIMC_A_CLK 7
+#define RPM_SMD_QDSS_CLK 8
+#define RPM_SMD_QDSS_A_CLK 9
+#define RPM_SMD_BB_CLK1 10
+#define RPM_SMD_BB_CLK1_A 11
+#define RPM_SMD_BB_CLK2 12
+#define RPM_SMD_BB_CLK2_A 13
+#define RPM_SMD_RF_CLK1 14
+#define RPM_SMD_RF_CLK1_A 15
+#define RPM_SMD_RF_CLK2 16
+#define RPM_SMD_RF_CLK2_A 17
+#define RPM_SMD_BB_CLK1_PIN 18
+#define RPM_SMD_BB_CLK1_A_PIN 19
+#define RPM_SMD_BB_CLK2_PIN 20
+#define RPM_SMD_BB_CLK2_A_PIN 21
+#define RPM_SMD_RF_CLK1_PIN 22
+#define RPM_SMD_RF_CLK1_A_PIN 23
+#define RPM_SMD_RF_CLK2_PIN 24
+#define RPM_SMD_RF_CLK2_A_PIN 25
+#define RPM_BB_CLK1 10
+#define RPM_BB_CLK1_A 11
+#define RPM_BB_CLK2 12
+#define RPM_BB_CLK2_A 13
+#define RPM_RF_CLK1 14
+#define RPM_RF_CLK1_A 15
+#define RPM_RF_CLK2 16
+#define RPM_RF_CLK2_A 17
+#define RPM_BB_CLK1_PIN 18
+#define RPM_BB_CLK1_A_PIN 19
+#define RPM_BB_CLK2_PIN 20
+#define RPM_BB_CLK2_A_PIN 21
+#define RPM_RF_CLK1_PIN 22
+#define RPM_RF_CLK1_A_PIN 23
+#define RPM_RF_CLK2_PIN 24
+#define RPM_RF_CLK2_A_PIN 25
+#define RPM_AGGR1_NOC_CLK 26
+#define RPM_AGGR1_NOC_A_CLK 27
+#define RPM_AGGR2_NOC_CLK 28
+#define RPM_AGGR2_NOC_A_CLK 29
+#define RPM_CNOC_CLK 30
+#define RPM_CNOC_A_CLK 31
+#define RPM_MMAXI_CLK 32
+#define RPM_MMAXI_A_CLK 33
+#define RPM_IPA_CLK 34
+#define RPM_IPA_A_CLK 35
+#define RPM_CE1_CLK 36
+#define RPM_CE1_A_CLK 37
+#define RPM_DIV_CLK1 38
+#define RPM_DIV_CLK1_AO 39
+#define RPM_DIV_CLK2 40
+#define RPM_DIV_CLK2_AO 41
+#define RPM_DIV_CLK3 42
+#define RPM_DIV_CLK3_AO 43
+#define RPM_LN_BB_CLK 44
+#define RPM_LN_BB_A_CLK 45
+
+#endif
diff --git a/include/linux/nmi.h b/include/linux/nmi.h
index 9aeddb80cfd3..dbda77dc510c 100644
--- a/include/linux/nmi.h
+++ b/include/linux/nmi.h
@@ -41,7 +41,7 @@ static inline void hardlockup_detector_disable(void) {}
#ifdef arch_trigger_all_cpu_backtrace
static inline bool trigger_all_cpu_backtrace(void)
{
- #if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+ #if defined(CONFIG_ARM64)
arch_trigger_all_cpu_backtrace();
#else
arch_trigger_all_cpu_backtrace(true);
@@ -51,7 +51,7 @@ static inline bool trigger_all_cpu_backtrace(void)
}
static inline bool trigger_allbutself_cpu_backtrace(void)
{
- #if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+ #if defined(CONFIG_ARM64)
arch_trigger_all_cpu_backtrace();
#else
arch_trigger_all_cpu_backtrace(false);
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index ddda2ac3446e..e72b85737a99 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -10,6 +10,11 @@
#include <linux/rwsem.h>
#include <linux/memcontrol.h>
+extern int isolate_lru_page(struct page *page);
+extern void putback_lru_page(struct page *page);
+extern unsigned long reclaim_pages_from_list(struct list_head *page_list,
+ struct vm_area_struct *vma);
+
/*
* The anon_vma heads a list of private "related" vmas, to scan if
* an anonymous page pointing to this anon_vma needs to be unmapped:
@@ -176,7 +181,8 @@ int page_referenced(struct page *, int is_locked,
#define TTU_ACTION(x) ((x) & TTU_ACTION_MASK)
-int try_to_unmap(struct page *, enum ttu_flags flags);
+int try_to_unmap(struct page *, enum ttu_flags flags,
+ struct vm_area_struct *vma);
/*
* Used by uprobes to replace a userspace page safely
@@ -232,6 +238,7 @@ int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma);
*/
struct rmap_walk_control {
void *arg;
+ struct vm_area_struct *target_vma;
int (*rmap_one)(struct page *page, struct vm_area_struct *vma,
unsigned long addr, void *arg);
int (*done)(struct page *page);
@@ -255,7 +262,7 @@ static inline int page_referenced(struct page *page, int is_locked,
return 0;
}
-#define try_to_unmap(page, refs) SWAP_FAIL
+#define try_to_unmap(page, refs, vma) SWAP_FAIL
static inline int page_mkclean(struct page *page)
{
diff --git a/include/linux/soc/qcom/smd-rpm.h b/include/linux/soc/qcom/smd-rpm.h
index 2a53dcaeeeed..ebdabd669d93 100644
--- a/include/linux/soc/qcom/smd-rpm.h
+++ b/include/linux/soc/qcom/smd-rpm.h
@@ -26,6 +26,10 @@ struct qcom_smd_rpm;
#define QCOM_SMD_RPM_SMPB 0x62706d73
#define QCOM_SMD_RPM_SPDM 0x63707362
#define QCOM_SMD_RPM_VSA 0x00617376
+#define QCOM_SMD_RPM_MMAXI_CLK 0x69786d6d
+#define QCOM_SMD_RPM_IPA_CLK 0x617069
+#define QCOM_SMD_RPM_CE_CLK 0x6563
+#define QCOM_SMD_RPM_AGGR_CLK 0x72676761
int qcom_rpm_smd_write(struct qcom_smd_rpm *rpm,
int state,
diff --git a/include/sound/apr_audio-v2.h b/include/sound/apr_audio-v2.h
index 24b283311817..809d5223b638 100644
--- a/include/sound/apr_audio-v2.h
+++ b/include/sound/apr_audio-v2.h
@@ -3328,6 +3328,8 @@ struct asm_softvolume_params {
#define ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V2 0x00010DA5
+#define ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V3 0x00010DDC
+
#define ASM_MEDIA_FMT_EVRCB_FS 0x00010BEF
#define ASM_MEDIA_FMT_EVRCWB_FS 0x00010BF0
@@ -3395,6 +3397,41 @@ struct asm_multi_channel_pcm_fmt_blk_v2 {
*/
} __packed;
+struct asm_multi_channel_pcm_fmt_blk_v3 {
+ uint16_t num_channels;
+/*
+ * Number of channels
+ * Supported values: 1 to 8
+ */
+
+ uint16_t bits_per_sample;
+/*
+ * Number of bits per sample per channel
+ * Supported values: 16, 24
+ */
+
+ uint32_t sample_rate;
+/*
+ * Number of samples per second
+ * Supported values: 2000 to 48000, 96000,192000 Hz
+ */
+
+ uint16_t is_signed;
+/* Flag that indicates that PCM samples are signed (1) */
+
+ uint16_t sample_word_size;
+/*
+ * Size in bits of the word that holds a sample of a channel.
+ * Supported values: 12,24,32
+ */
+
+ uint8_t channel_mapping[8];
+/*
+ * Each element, i, in the array describes channel i inside the buffer where
+ * 0 <= i < num_channels. Unused channels are set to 0.
+ */
+} __packed;
+
struct asm_stream_cmd_set_encdec_param {
u32 param_id;
/* ID of the parameter. */
@@ -4865,6 +4902,77 @@ struct asm_stream_cmd_open_write_v3 {
*/
} __packed;
+#define ASM_STREAM_CMD_OPEN_PULL_MODE_WRITE 0x00010DD9
+
+/* Bitmask for the stream_perf_mode subfield. */
+#define ASM_BIT_MASK_STREAM_PERF_FLAG_PULL_MODE_WRITE 0xE0000000UL
+
+/* Bitmask for the stream_perf_mode subfield. */
+#define ASM_SHIFT_STREAM_PERF_FLAG_PULL_MODE_WRITE 29
+
+#define ASM_STREAM_CMD_OPEN_PUSH_MODE_READ 0x00010DDA
+
+#define ASM_BIT_MASK_STREAM_PERF_FLAG_PUSH_MODE_READ 0xE0000000UL
+
+#define ASM_SHIFT_STREAM_PERF_FLAG_PUSH_MODE_READ 29
+
+#define ASM_DATA_EVENT_WATERMARK 0x00010DDB
+
+struct asm_shared_position_buffer {
+ volatile uint32_t frame_counter;
+/* Counter used to handle interprocessor synchronization issues.
+ * When frame_counter is 0: read_index, wall_clock_us_lsw, and
+ * wall_clock_us_msw are invalid.
+ * Supported values: >= 0.
+ */
+
+ volatile uint32_t index;
+/* Index in bytes from where the aDSP is reading/writing.
+ * Supported values: 0 to circular buffer size - 1
+ */
+
+ volatile uint32_t wall_clock_us_lsw;
+/* Lower 32 bits of the 64-bit wall clock time in microseconds when the
+ * read index was updated.
+ * Supported values: >= 0
+ */
+
+ volatile uint32_t wall_clock_us_msw;
+/* Upper 32 bits of the 64 bit wall clock time in microseconds when the
+ * read index was updated
+ * Supported values: >= 0
+ */
+} __packed;
+
+struct asm_shared_watermark_level {
+ uint32_t watermark_level_bytes;
+} __packed;
+
+struct asm_stream_cmd_open_shared_io {
+ struct apr_hdr hdr;
+ uint32_t mode_flags;
+ uint16_t endpoint_type;
+ uint16_t topo_bits_per_sample;
+ uint32_t topo_id;
+ uint32_t fmt_id;
+ uint32_t shared_pos_buf_phy_addr_lsw;
+ uint32_t shared_pos_buf_phy_addr_msw;
+ uint16_t shared_pos_buf_mem_pool_id;
+ uint16_t shared_pos_buf_num_regions;
+ uint32_t shared_pos_buf_property_flag;
+ uint32_t shared_circ_buf_start_phy_addr_lsw;
+ uint32_t shared_circ_buf_start_phy_addr_msw;
+ uint32_t shared_circ_buf_size;
+ uint16_t shared_circ_buf_mem_pool_id;
+ uint16_t shared_circ_buf_num_regions;
+ uint32_t shared_circ_buf_property_flag;
+ uint32_t num_watermark_levels;
+ struct asm_multi_channel_pcm_fmt_blk_v3 fmt;
+ struct avs_shared_map_region_payload map_region_pos_buf;
+ struct avs_shared_map_region_payload map_region_circ_buf;
+ struct asm_shared_watermark_level watermark[0];
+} __packed;
+
#define ASM_STREAM_CMD_OPEN_READ_V3 0x00010DB4
/* Definition of the timestamp type flag bitmask */
diff --git a/include/sound/q6asm-v2.h b/include/sound/q6asm-v2.h
index 42695f225e2e..2f3e33fd28df 100644
--- a/include/sound/q6asm-v2.h
+++ b/include/sound/q6asm-v2.h
@@ -170,6 +170,16 @@ struct audio_port_data {
spinlock_t dsp_lock;
};
+struct shared_io_config {
+ uint32_t format;
+ uint16_t bits_per_sample;
+ uint32_t rate;
+ uint32_t channels;
+ uint16_t sample_word_size;
+ uint32_t bufsz;
+ uint32_t bufcnt;
+};
+
struct audio_client {
int session;
app_cb cb;
@@ -201,6 +211,9 @@ struct audio_client {
atomic_t reset;
/* holds latest DSP pipeline delay */
uint32_t path_delay;
+ /* shared io */
+ struct audio_buffer shared_pos_buf;
+ struct shared_io_config config;
};
void q6asm_audio_client_free(struct audio_client *ac);
@@ -234,6 +247,9 @@ int q6asm_open_write(struct audio_client *ac, uint32_t format
int q6asm_open_write_v2(struct audio_client *ac, uint32_t format,
uint16_t bits_per_sample);
+int q6asm_open_shared_io(struct audio_client *ac,
+ struct shared_io_config *c, int dir);
+
int q6asm_stream_open_write_v2(struct audio_client *ac, uint32_t format,
uint16_t bits_per_sample, int32_t stream_id,
bool is_gapless_mode);
@@ -274,6 +290,13 @@ int q6asm_memory_map(struct audio_client *ac, phys_addr_t buf_add,
int q6asm_memory_unmap(struct audio_client *ac, phys_addr_t buf_add,
int dir);
+struct audio_buffer *q6asm_shared_io_buf(struct audio_client *ac, int dir);
+
+int q6asm_shared_io_free(struct audio_client *ac, int dir);
+
+int q6asm_get_shared_pos(struct audio_client *ac, uint32_t *si, uint32_t *msw,
+ uint32_t *lsw);
+
int q6asm_map_rtac_block(struct rtac_cal_block_data *cal_block);
int q6asm_unmap_rtac_block(uint32_t *mem_map_handle);