summaryrefslogtreecommitdiff
path: root/include (follow)
Commit message (Collapse)AuthorAge
...
* | | | ALSA: compress: Add snd_compress_free()Liam Girdwood2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are not currently freeing the compressed devices at module unload time. This could be used to help, but more investigation needs to be done to resolve this issue. This patch is WIP Change-Id: I6cf8bcc56e4d446d83e9a0e63b79db3da378a901 Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Git-commit: b2ebfd20ecb255b8e575ea8b6fad8d1affc2ea77 Git-repo: https://android.googlesource.com/kernel/msm Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>
* | | | ASoC: msm: qdsp6v2: Fix bit alignment in snd_codec paramsBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pointer member variables in snd_codec params break bit alignment and causes data corruption. By changing these pointers to fixed size array variables, the bit alignment is rectified. The size has been set to max possible size. Also, remove params which are not required anymore. Change-Id: Ib87bbeb07b0df1ce8a81166b319976fe54c0f013 Signed-off-by: Amit Shekhar <ashekhar@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | revert: ALSA: compress: update struct snd_codec_desc for sample rateBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gerrit reverts the gerrit with the commit number- b8bab04829ab190f71921d4180bda438ba6124ae Now that we don't use SNDRV_PCM_RATE_xxx bit fields for sample rate, we need to change the description to an array for describing the sample rates supported by the sink/source Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | include: increase allowed SW INPUT device ID from 15 to 32Banajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Increase the Input device SW ID from 15 to 32. This is needed to accomodate more input devices. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Add compressed TX supportSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is use case that the HDMI input goes through MI2S TX interface to ADSP. Add compressed TX support for this use case. Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ASoC: msm: qdsp6v2: Add FLAC in compress offload pathBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add FLAC format in compress offload driver, and asm module Change-Id: I818ace8397e761b1acff7f9b2eab6e0103ed78c8 Signed-off-by: Apurupa Pattapu <apurupa@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Add support for WMA DSP decodeBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WMA V9 and WMA Pro tunnel-mode supports are added to compressed driver. It allows user-space application to decode WMA V9 and WMA Pro audio stream through QDSP6. Change-Id: I99407d00b618a627e6d762be9abea4abd2410b8b Signed-off-by: Manish Dewangan <manish@codeaurora.org> Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ALSA: compress: Update compress audio paramsBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add timestamp field to compress structure which indicates when audio sample has been captured or needs to be rendered. Change-Id: Ie61170c6645c71207e7df1c7176e0750e47590f8 Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Add support for AC3 and EC3 playback in tunnel modeBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dolby surround1-DS1 module supports both Dolby Audio processing - post processing and Dolby digital plus decoder in DSP. Add support for AC3 and EC3 playback in tunnel mode so that DS1 is integrated and functional end to end. Change-Id: Iacb46cdfded16c9a5a9227a6ff4e072c61df2be8 Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Implementation of transcode from MP3, WMA to DTS compressedBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the output path of the decoder output of the compressed format to input of the pseudo port. Output of the pseudo port is connected to the input of DTS encoder. Output of the DTS encoder is connected to the selected output ports SPDIF, HDMI. Change-Id: I3945e53fdfd57de47fb2209ddc81ba4623999028 Signed-off-by: Aviral Gupta <aviralg@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: DTS_LBR Passthrough SupportBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added DTS_LBR for Passthrough case in Compress Driver - Added Graceful Error Handling for Unsupported Codec IDs in case of open_write_compressed. Change-Id: Ifbecb02832a2599be0e3c73cc69381f87969d78a Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Add the support for the MP2 decoderBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support the MP2 as a format for the tunnel mode. MP2 format to be decoded in the DSP. Change-Id: I0d268a6ddb57b1470ee2c43449ac31520176232f Signed-off-by: Aviral Gupta <aviralg@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm : DTS security implementationBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Receive DTS security modelId from userspace, and supply to Q6 core service. Change-Id: Ib50f3a81da60c92ceb5b521134cd3d1b6fb8e5cb Signed-off-by: Srikanth Uyyala <suyyala@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Enable PCM capture in compressed driverBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the use case of HDMI input PCM capture, timestamp received from DSP is required in userspace to propogate it on the playback path. Timestamp mode propagation is availble through the meta data mode in compressed driver. Add support for PCM capture in compressed driver to address the usecase Change-Id: I1221b8e99628dadc136df681619ed960ff7c5c1a Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | SoC: msm: Add support for meta data in compressed TXBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a usecase where compressed data is sent over HDMI IN to ADSP. The format of compressed is detected in ADSP and sent through the meta data to compressed driver. Add support for meta data in compressed TX for this use case. Change-Id: Idbb18fe4a0ad828e9c2e9d7beec048b3cedf002d Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: DTS playback supportBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compressed driver changes for the DTS support Change-Id: I595e638da78cced02142f4ee430afb7357eb336c Signed-off-by: Srikanth Uyyala <suyyala@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: msm: Update the encode option and sample rate.Banajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Populate the sample rate, encode option in wma config params. CRs-Fixed: 367243, 367242 Change-Id: Ieeb9d302454d3935faa51cac77021e7c1d77012c Signed-off-by: Aviral Gupta <aviralg@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: core: Add support for no host modeBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for hostless PCM mode to support usecases where PCM is not consumed by host. Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: dapm: add macro for MICBIASBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new DAPM Macro for MICBIAS widget for use in codec drivers. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ALSA: PCM: User contol API implementationSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduced a new helper function snd_pcm_add_usr_ctls() to create control elements representing the user control for each PCM (sub)stream Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ALSA: PCM: volume API implementationSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduced a new helper function snd_pcm_add_volume_ctls() to create control elements representing the volume for each PCM (sub)stream. Signed-off-by: Damir Didjusto <damird@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ASoC: core: Support for compress ioctlsGopikrishnaiah Anandan2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compat driver should support compress ioctls when COMPAT mode is enabled. Change adds support for handling compress ioctls. Change-Id: If7223ace326253240a1cd65bc9a111b8903977f1 Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
* | | | ALSA: pcm - add support for hostless audioSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow some PCM devices to be hostless, i.e. there is no PCM data transferred to or from the host CPU. This can be used to minimise power on systems since the CPU can idle/sleep during the PCM device operation (e.g. a phone call where the DAI is between a MODEM and DSP) TODO: cleanup, look at adding a read/write blocker. Singed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ASoC: core: Update ALSA core to issue restart in underrun.Santosh Mardi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compressed and pcm session is started the buffer pull will Be from the DSP, in mmap mode for the scenario Hardware pointer Is same as application pointer implies application has not filled the Buffer to be send to DSP, and platform driver has to break and restart The de queue process when the application has sufficient buffers. When hardware pointer is same as application pointer it is an under run Scenario where the ALSA framework has to trigger the under run and in HAL The session has to re-prepare and re-triggered. based on the stop Threshold, but in our system the stop threshold is INT_MAX which Indicates that under run is not triggered in practical cases. We have a brodcast usecase in which the mentioned under run case Is hit mulitple times, and every time re-prepare and re-trigger will be Expensive Update the ASoC core framework to restart de queue process stopped By platform Driver when the under run is hit, based on the available Buffer and render flag, so the System will recover from the hang state. To restart de queue process the ASoC core will be calling the restart Callback registered by platform driver and this callback will be running in Atomic context. Change-Id: Ic9ea05a0dc6246346e9913493232882e2f5447d1 Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
* | | | ASoC: Add locking in DAPM widget power updateBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While playback and capture is done concurrently the dapm widget data is accessed parallelly which results in data corruption and kernel panic. Fix this problem by serializing the stream event operation by adding lock dapm_seq_run will invoke dapm power sequence for pre-sorted list of widgets to be powered up. Kernel panic issue is observed during stability runs with the above sequence caused by null pointer dereference in dapm_seq_run_coalesced. Fix kernel panic issue by checking for valid snd_soc_dapm_context pointer in dapm_seq_run before invoking dapm_seq_run_coalesced Widget list in dapm is getting corrupted during concurrent use cases where dapm_power_widget is accessed. This corruption is resulting in kernel crash in dapm. Fix the issue by adding protection in dapm_power_widgets API. Change-Id: I49d19860277726cf3152e104ab40627fd56c021c CRs-Fixed: 388785 Signed-off-by: Sriranjan Srikantam <cssrika@codeaurora.org> Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | ASoC: core: Add support for getting TX and RX channelsBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on which codec dai is selected, slimbus channel numbers have to be queried when use case is being enabled. Change adds support to get the channel numbers. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | soc: Add audio backend to hwdep interfaceSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add audio backend to hwdep interface. This is to provide ioctl interface to communicate to routing driver. Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org> Signed-off-by: Krishnankutty Kolathappilly <kkolat@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ALSA: jack: Add support to report second microphoneSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALSA jack framework currently supports reporting only one single microphone. Add support to report presence of second microphone to userspace. Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ALSA: jack: Update supported jack switch typesSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change adds support for jack switch types supported by platform. Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ALSA: jack: update jack typesSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change updates the jack types that will be supported by the platform. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ALSA: core: Expose sound card online/offline stateSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Expose sound card online/offline state to procfs so userspace application can poll and read sound card's state. Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | ASoC: core: Introduce macro SOC_SINGLE_MULTI_EXTSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some of the mixer controls client would like to register count as a parameter. Macro adds support to specify the count. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | skb: Adding trace event for gso.Ravinder Konka2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds trace events to help with debug for gso feature by identifying the packets(and their lenghts) that are using the segmentation offload feature. Change-Id: Ibfe1194cc63e74c75047040b0c540713d539992e Acked-by: Ashwanth Goli <ashwanth@qti.qualcomm.com> Signed-off-by: Ravinder Konka <rkonka@codeaurora.org>
* | | | msm: ipa3: support IPA driverSkylar Chang2016-03-23
| | | | | | | | | | | | | | | | Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
* | | | regulator: msm: Add snapshot of the stub regulator driverDevesh Jhunjhunwala2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a snapshot of the Documentation and header file for the stub regulator driver as of msm-3.18 kernel commit: 2642c0adc79c06c0f3225da0177e910a1cea8cb5 ("Merge "ARM: dts: msm: Add support for truly 720p command mode panel on msmgold"") Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
* | | | PM / devfreq : Introduce a memory-latency governorRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use performance counters to detect the memory latency sensitivity of CPU workloads and vote for higher DDR frequency if required. Change-Id: Ie77a3523bc5713fc0315bd0abc3913f485a96e0e Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> Suggested-by: Saravana Kannan <skannan@codeaurora.org> [junjiew@codeaurora.org: dropped changes in arch/arm64/Kconfig] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | PM / devfreq: governor_cache_hwmon: Add mrps and freq vote tracesJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace measured mrps and frequency vote debug prints with trace events. Change-Id: I78370b068e3819a57635cbabaf5cdd053ebabce4 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | tracing: power: Add trace events for bw_hwmonSaravana Kannan2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bw_hwmon_meas trace event is to log measurement details and the bw_hwmon_update trace event is to log the final decision. Change-Id: I839ace50b1f1686227bcbf7d38a75f89092d26b1 Signed-off-by: Saravana Kannan <skannan@codeaurora.org> [junjiew@codeaurora.org: resolved trivial conflicts] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | PM / devfreq: devbw: Add suspend/resume APIsSaravana Kannan2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Absence of traffic is guaranteed when the device sitting behind a devbw device is suspended. In such cases, it is a waste of power to make non-zero bandwidth votes or to scale the devbw device. So, provide APIs to suspend/resume the devbw device as needed. Change-Id: Id58072aec7a9710eb917f248d9b9bd08d3a1ec6a Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | | | PM / OPP: Add missing devfreq_devbw.h headerMatt Wagantall2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When devfreq_devbw was added, the header was omitted since it was unused. Add it now so that clients can call APIs exported by this driver. Change-Id: I39d52f6bf5ca65ab85ae573abbe8cff8796e5971 Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
* | | | PM / devfreq: Allow the governors to set the target flagLucille Sylvester2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The devfreq framework calls a frequency targeting function with a flag parameter. Allow the governors to influence that parameter. Change-Id: I4058bd9dcd027dd246ccdb90d25c68f1dc055901 Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
* | | | cpufreq: interactive: Ramp up to policy->max for heavy new taskJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New tasks don't have sufficient history to predict its behavior, even with scheduler's help. Ramping up conservatively for a heavy task could hurt performance when it's needed. Therefore, separate out new tasks' load with scheduler's help and ramp up more aggressively if new tasks make up a significant portion of total load. Change-Id: Ia95c956369edb9b7a0768f3bdcb0b2fab367fdf7 Suggested-by: Saravana Kannan <skannan@codeaurora.org> Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | cpufreq: interactive: Add cpuload trace eventsJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With per-cluster timer implementation, only max load across CPUs in cluster is traced in timer function. Add cpufreq_interactive_cpuload trace to provide per-cpu load information. Change-Id: Icea9f2574332a4bc472b14193e77d76100a896ed Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | cpufreq: interactive: Re-evaluate immediately in load change callbackJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, there was a limitation in load change callback that it can't attempt to wake up a task. Therefore the best we can do is to schedule timer at current jiffy. The timer function will only be executed at next timer tick. This could take up to 10ms. Now that this limitation is removed, re-evaluate load immediately upon receiving this callback. Change-Id: Iab3de4705b9aae96054655b1541e32fb040f7e60 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | cpufreq: Add a notifer chain that governors can use to report informationRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some modules can benefit from getting additional information cpufreq governors use to make frequency switch decisions. This change lays down a basic framework that the governors can use to report additional information (Eg: CPU's load) information to the clients that subscribe to cpufreq govinfo notifier chain. Change-Id: I511b4bdb7d12394a31ce5352ae47553861e49303 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> [imaund@codeaurora.org: resolved context conflicts] Signed-off-by: Ian Maund <imaund@codeaurora.org>
* | | | trace: power: add cpu_frequency_switch_{start, end}Matt Wagantall2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is sometimes useful to profile how long CPU frequency switches take, since they often involve variable overhead (PLL lock times, voltage increase time, etc.). Add additional traces to to make this possible. Since the overhead involved may differ based on the frequencies being switched between, record both the start and the end frequencies as part of the trace. Change-Id: I2de743fc357dad3590fd4980f65f38f6073d426e Signed-off-by: Matt Wagantall <mattw@codeaurora.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [abhimany: resolve trivial merge conflicts] Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
* | | | sched: select task's prev_cpu as the best CPU when it was chosen recentlyJoonwoo Park2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Select given task's prev_cpu when the task slept for short period to reduce latency of task placement and migrations. A new tunable /proc/sys/kernel/sched_select_prev_cpu_us introduced to determine whether tasks are eligible to go through fast path. CRs-fixed: 947467 Change-Id: Ia507665b91f4e9f0e6ee1448d8df8994ead9739a [joonwoop@codeaurora.org: fixed conflict in include/linux/sched.h, include/linux/sched/sysctl.h, kernel/sched/core.c and kernel/sysctl.c] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | sched: use ktime instead of sched_clock for load trackingJoonwoo Park2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present, HMP scheduler uses sched_clock to setup window boundary to be aligned with timer interrupt to ensure timer interrupt fires after window rollover. However this alignment won't last long since the timer interrupt rearms next timer based on time measured by ktime which isn't coupled with sched_clock. Convert sched_clock to ktime to avoid wallclock discrepancy between scheduler and timer so that we can ensure scheduler's window boundary is always aligned with timer. CRs-fixed: 933330 Change-Id: I4108819a4382f725b3ce6075eb46aab0cf670b7e [joonwoop@codeaurora.org: fixed minor conflict in include/linux/tick.h and kernel/sched/core.c. omitted fixes for kernel/sched/qhmp_core.c] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | sched: Optimize scheduler trace events to reduce trace buffer usageSyed Rameez Mustafa2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scheduler ftrace events currently generate a lot of data when turned on. The excessive log messages often end up overflowing trace buffers for long use cases or crowding out other events. Optimize scheduler events so that the log spew is less and more manageable. To that end change the variable type for some event fields; introduce variants of sched_cpu_load that can be turned on/off for separate code paths and remove unused fields from various events. Change-Id: I2b313542b39ad5e09a01ad1303b5dfe2c4883b8a Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [joonwoop@codeaurora.org: fixed conflict in rt.c due to CONFIG_SCHED_QHMP.] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | sched: Notify cpufreq governor early about potential big tasksSyed Rameez Mustafa2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tasks that are on the runqueue continuously for a certain amount of time have the potential to be big tasks at the end of the window in which they are runnable. In such scenarios ramping the CPU frequency early can boost performance rather than waiting till the end of a window for the governor to query load. Notify the governor early at every tick when a task has been observed to execute beyond some percentage of the tick period. The threshold beyond which a task is eligible for early detection can be changed via the tunable sched_early_detection_duration. The feature itself is enabled only when scheduler boost is in effect. Change-Id: I528b72bbc79a55b4593d1b8ab45450411c6d70f3 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [joonwoop@codeaurora.org: fixed conflict in scheduler_tick() in kernel/sched/core.c. fixed minor conflicts in include/linux/sched.h, include/linux/sched/sysctl.h and kernel/sysctl.c due to CONFIG_SCHED_QHMP.] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>