diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-06-24 10:51:48 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-06-24 10:51:49 -0700 |
| commit | 402636f926b48533bbb1589fe2ebe2e33ef80197 (patch) | |
| tree | f8cd80c02d61bc095b0ee9a02ab08ccde9ec6b0e /include | |
| parent | 29757c8c87c47179370bd5cbba5f077fb05a23b5 (diff) | |
| parent | 293a2b36f2456425a5c40b629f66f42c0a46b78e (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.h | 105 | ||||
| -rw-r--r-- | include/linux/nmi.h | 4 | ||||
| -rw-r--r-- | include/linux/rmap.h | 11 | ||||
| -rw-r--r-- | include/linux/soc/qcom/smd-rpm.h | 4 | ||||
| -rw-r--r-- | include/sound/apr_audio-v2.h | 108 | ||||
| -rw-r--r-- | include/sound/q6asm-v2.h | 23 |
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); |
