summaryrefslogtreecommitdiff
path: root/include (follow)
Commit message (Collapse)AuthorAge
...
* | | | | | mfd: wcd9xxx: avoid slimbus read/write during ADSP resetBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During ADSP subsystem restart, all slimbus read/write would fail as the bus is not available. Avoid codec read/write, until the slimbus master in ADSP is up. Change-Id: Iec1933d2625c1cd3dd700b2b3e2ffc7eae64880b Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | | | | | cnss: sdio: Define OOB interrupt interfaces.Kai Liu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define the OOB interrupt interfaces in case that internal interrupt is unsupported in some platforms. In some specific platform, only polling mode is supported, with these OOB interrupt interfaces implementation, it will support interrupt mode. To be generic, this OOB feature is default unsupported. Change-Id: I3b38e59bd7fdb441c85eb82a79cf9c951ca32130 CRs-Fixed: 937303 Signed-off-by: Kai Liu <kaliu@codeaurora.org>
* | | | | | mfd: wcd9xxx: Make DMIC clock drive strength platform dependentBhalchandra Gajare2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Digital microphone clock drive strength setting in the codec could be platform dependent based on the type of microphone, etc. Add support to make the DMIC clock drive strength configurable through device tree. CRs-fixed: 938006 Change-Id: I8b17d985052098b56d012081a77b6dfc94553eca Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
* | | | | | include: batterydata-interface: Add snapshot of the batterydata filesAnirudh Ghayal2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add snapshot of the batterydata-interface files from msm-3.10, this is required for qpnp-vmbms module. (msm-3.10 commit - 7704c94d47f8ed7cc81e487ab9d576ef52e0f1e5) Change-Id: I322774879dec5856443c90280f7eb8b1b7f07798 Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
* | | | | | Net: CNSS_SDIO: Add SSR support for QCA WIFI DevicesLiangwei Dong2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register subsystem device for SSR recovery. Create ramdump device for cnss fw dump collection. Implement cnss SSR API to wlan sdio driver. CRs-Fixed: 944010 Change-Id: If81fd84bb6080df73b12f235a2aa0eff6f717ce1 Signed-off-by: Liangwei Dong <liangwei@codeaurora.org>
* | | | | | ASoC: msm: qdsp6v2: Don't request to open irrelevant SMD channelsVenkata Narendra Kumar Gutta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | APSS is unable to open apr_voice_svc channel with destination processor as MODEM. This is due to MODEM is no longer opening that channel, also none of the clients on apps are using this channel. Hence, don't request for the SMD channels when the destination is MODEM, but ensure that apr clients should be able to receive SSR notifications from MODEM subsystem. Change-Id: I566dd065ccd75956ab8fd594bb94e09b699258dd Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
* | | | | | Asoc: msm: add support for Media Format ConverterSidipotu Ashok2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Audio drivers to configure ADSP MFC in cases where fractional resampling is needed. Change-Id: Ifc85ff788347ddd893f8858064f71a07fa1ddd9c Signed-off-by: Sidipotu Ashok <sashok@codeaurora.org>
* | | | | | ASoC: msm-lsm-client: free lsm client data in msm_lsm_closeVidyakumar Athota2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently lsm client data is deallocated when q6lsm_open() fails which can cause memory corruption if lsm client data is accessed after freed. Fix this issue by deallocating the client data only in msm_lsm_close(). Change-Id: If048c26a0ffd8a346a28622183cbf2ba1e7e5ff3 Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
* | | | | | clk: msm: Add support to control MEM_PERPIH_OFF bit of branch clockDevesh Jhunjhunwala2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update cbcr_set_flags method to add support for controlling the MEM_PERPIH_OFF bit for branch clocks. Change-Id: I87451b02cb9000dc850fdfaa52a5a9f9fd2893a1 Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
* | | | | | msm: camera: isp: fix error report id maskPeter Liu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stream id mask need more than 8 bit, thus increase bit width for error reporting. Change-Id: I308a9d3df6024768b07ec49562f3241707566e2a Signed-off-by: Peter Liu <pingchie@codeaurora.org>
* | | | | | radix-tree: add radix_tree_gang_lookup_indexVinayak Menon2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add radix_tree_gang_lookup_index to get the radix tree indices along with the pointers. This will be helpful, for e.g. if a radix_tree_delete has to be performed depending on one of the result values. Change-Id: Iab83d027968462aa30da5341fa3f60134b6c1137 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
* | | | | | msm: sps: support using cached write pointer for BAM-to-Sys modeYan He2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support using the cached write pointer for a BAM-to-Sys mode BAM pipe when check if the desc FIFO of that pipe is full. Change-Id: Ie480ecca9eff76388c504665b496e01bbf3e009f Signed-off-by: Yan He <yanhe@codeaurora.org>
* | | | | | msm: isp: Add output format support for camifAbhishek Kondaveeti2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add output format support for camif raw path in isp. Change-Id: If8e633175a5488b8da740654c8204b0247d3c408 Signed-off-by: Abhishek Kondaveeti <akondave@codeaurora.org>
* | | | | | qseecom: Add a new smc cmd to check RPMB key provision statusZhen Kong2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new smc cmd is added to check RPMB key provision status Change-Id: I50411bf9ae7f31589be34d7b5aaf48f2c12f0018 Signed-off-by: Zhen Kong <zkong@codeaurora.org>
* | | | | | msm: dba: add additional audio configuration parametersVinu Deokaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add additional audio configuration parameters to the MSM DBA(Display Bridge Abstraction) interface driver. Change-Id: I7fef9b1a192a872c2e89dd9a7d6e942a1b77c6cb Signed-off-by: Vinu Deokaran <vinud@codeaurora.org> Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | | | | msm: mdss: hdmi: hdcp2p2: fix hdcp 2.2 compliance issuesAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Send stream management message to sink after topology update. Poll for new message or authentication required status after successful receiver or repeater authentication. Also, DDC hardware polls sink for a given time. Let the polling complete and do not treat intermediate DDC errors as failures because DDC transaction can pass in next iteration. Once polling ends, check for errors and timeouts and reset polling data. Treat these errors as failure only after polling ends. Change-Id: I286fb00cf935bff493e108c05df625d5ca3ade26 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | | | | msm: mdss: separate out DBA and CEC functionality from DSISandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, DBA (Display Bridge Abstract) related functionality is being used in DSI files. Carve out DBA related functionality into a new file which serves as a utility module and can be used by any MDSS driver. Define CEC on/enable functions in DBA (Display Bridge Abstract) so that clients can enable disable CEC based on other dependent CEC modules. Separate out CEC abstract data with CEC driver data and initialize and release corresponding modules properly. Change-Id: I84f53d99547dcd4ce0b8275401b03ed8e96e14d5 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org> Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | | | | msm: mdss: hdmi: add dynamic encryption enable supportAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement qseecomm API to send command to TZ to enable/disable encryption based on hdcp status. Enable encryption when hdcp part 1 is successful and disable it when cable is disconnected or authentication fails. Change-Id: Ia5e1a5927dad36abc3093b16638879be823c84df Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | | | | msm: mdss: hdmi: hdcp2p2: add tethered supportAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide user an option to let the HDCP2.2 authentication run on main thread. Avoid processing on module threads thus avoiding any scheduling delays. The user may choose to switch to this mode based on its requirements. Change-Id: I76ec4a18f0fc52e99bbe76b6707511d3af6151f3 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | | | | mm: cma: add trace events for CMA alloc perf testingLiam Mark2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add cma and migrate trace events to enable CMA allocation performance to be measured via ftrace. Change-Id: I1e471e9e21f1a14ce2ed167d8515ccb5f83eb88c Signed-off-by: Liam Mark <lmark@codeaurora.org>
* | | | | | qseecom: make change to support sg list entry number larger than 512Zhen Kong2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qseecom_send_modfd_cmd_64 converts non-contiguous ION memory fd to scatter-gather physical address list, and supports up to 512 SG list entries. Now, 512 is not enough if client wants to send large data in a fragmented system. In this change, if SG list entry number is larger than 512, we will allocate a new contiguous kernel buffer, then save all SG entries into this new buffer. Change-Id: Id90eefb98b63bf16db755dae8e1482e448090f47 Signed-off-by: Zhen Kong <zkong@codeaurora.org>
* | | | | | msm: ipa3: make ipa3 compile for corbalt rumiSkylar Chang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Configure the new IPA-interrupt register to get the IPA-HW irq, also change the tag process to be compatible to 64 bits platform. Change-Id: I29a8805cacc8d8df2f0e60ee8e1d2243c718d248 Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
* | | | | | net: ipc_router: Add support for IPC Router version negotiationAtish Kumar Patra2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, IPC Router statically associates the version of the protocol to be used with each link. Thus, dynamic version negotiation is not possible. Add support for version negotiation that sets IPC Router version after a successful negotiation. Change-Id: Iea04742ef30443c1e36760561e7f20175c4fbaa6 Signed-off-by: Atish Kumar Patra <apatra@codeaurora.org>
* | | | | | soc: qcom: ipc_rtr_xprt: Add support to set version in transportAtish Kumar Patra2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, there is no option to set the version in IPC Router transport. Add support to set a version in the transport so that the version can be modified from initial entry after the version negotiation. Change-Id: Ie6d823a3b4f2608efe2ac992a248a4f0884b856d Signed-off-by: Atish Kumar Patra <apatra@codeaurora.org>
* | | | | | msm: crypto: move compat_qcedev.hJeremy Gebben2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The uapi directory shouldn't contain compat definitions, so move this file out of there. Change-Id: I1ee862e522d0b7f9bc4e22fb0e375b4cc1a53504 Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
* | | | | | adv7481: Add driver code for adv7481Domi Papoi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding adv7481 driver for db-platform. Change-Id: I7729d310578b61357f0d7297851f3c412b166699 Signed-off-by: Domi Papoi <dpapoi@codeaurora.org>
* | | | | | include: uapi: fix spcom.h using bitopsAmir Samuelov2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The include file <linux/bitops.h> is not available on user space. remove it from the spcom.h uapi file. Change-Id: I1a2ea14a4fc1154b63776e83909389cc73398f7d Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
* | | | | | soc: qcom: glink: Add RX intent request timeout to G-Link channelsSteven Cahail2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During glink_tx(), G-Link can wait for an unlimited amount of time for the remote side to queue an RX intent. In some cases, e.g. SSR, the wait must be restricted to a short time, but in the current implementation, glink_tx() can continue to block indefinitely. Add a configurable timeout value to the G-Link channel context, which is set in the channel open configuration. If the value is set to 0, treat it as an infinite timeout. This allows a timeout to be put in place by the client for sensitive cases such as SSR where a very limited amount of time can be spent waiting for an intent. Change-Id: I1e480fac286d285f871fe3059de7ae761fc4581e Signed-off-by: Steven Cahail <scahail@codeaurora.org>
* | | | | | ASoC: msm: add slot and channel config support for TDM devicesHonghao Liu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for slot and channel configuration in CPU dai driver for TDM devices. Remove the probing of slot and channel info from device tree. Change-Id: I9d65779b7ef70fac741569f0584b15db29093e0c Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
* | | | | | Net: CNSS_SDIO: add sdio wlan driver registrationLiangwei Dong2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move sdio wlan func driver interface(includes Suspend and Resume)registration from wlan cld driver to cnss_sdio driver. wlan cld driver provides callback functions to cnss_sdio driver by cnss_sdio_wlan_register_driver API. CRs-Fixed: 944931 Change-Id: If9cec25024c5840e043fc652a7f0c7df4d83f4e9 Signed-off-by: Liangwei Dong <liangwei@codeaurora.org>
* | | | | | soundwire: Use broadcast command for device configurationSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use soundwire broadcast command for configuration of all slave devices simultaneously. This change improves latency during slave devices configuration. Change-Id: Ie2985e444e4aa1128856dc6ae372f8f4cca943de Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | | | soundwire: Add support to use group id for slave devicesSudheer Papothi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Devices with the same group id or broadcast command can be configured simultaneously. This will help improve the latency during device configuration. Add support to use group id for slave device configuration. Change-Id: I5e86e61a0b5223de6c6471f3f342fe1f387d81ef Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* | | | | | include: uapi: add spcom.h to KbuildAmir Samuelov2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add spcom.h header file to the copy list, to be available for user space. Change-Id: Icafff242dd7b14094cb4ec846c20c8206a6bf9ce Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
* | | | | | ASoC: audio: update API name for populate upper 32bitsLaxminath Kasam2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In audio ion driver, append msm_audio_ to API populate_upper_32bits to maintain consistency across other API names in this driver. Change-Id: I72aace56bf8e80c6dd83f768876253d2c7f334bb Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
* | | | | | wcnss: Expose dump stack functionalityPadma, Santhosh Kumar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add changes to expose dump stack functionality which can be used by driver to dump stack information when it requires. CRs-Fixed: 943322 Change-Id: I0fde7142dea2c18daf6b1fb0c5ee4bb8a31a6be0 Signed-off-by: Padma, Santhosh Kumar <skpadma@codeaurora.org>
* | | | | | ASoC: wcd: add support for wcd9326 codecYeleswarapu Nagaradhesh2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use efuse register values, to differentiate between wcd9326 and wcd9335 codecs. Change-Id: I68e7ae5eb1717dccd0af975670ac3644304996b9 Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org> Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
* | | | | | msm: kgsl: include header dependenciesJeremy Gebben2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include the dependencies rather than relying on 'something else' to include them. Change-Id: I472e8f4abbc3d54904f441d42f2e7cb38bc413d0 Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
* | | | | | ASoC: wcd9335: Update low hifi and low power modes for headphonesPhani Kumar Uppalapati2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update register sequence for low hifi and low power modes for headphones on wcd9335 codec to achieve better performance. Change-Id: Icf543df7c4e8ab4cc9222a39bf1df4e6af4ab8ec Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* | | | | | drivers: cpuidle: msm: Use 64 bit type for sclkGirish S Ghongdemath2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'us' can overflow and can potentially cause unexpected wakeup. Change it to uint64_t. Change-Id: I943cbc9d62268ca073e388c287e3b180c0eaa8e3 Signed-off-by: Girish S Ghongdemath <girishsg@codeaurora.org> Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
* | | | | | soc: qcom: add secure processor communication (spcom) driverAmir Samuelov2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver supports communication with secure processor subsystem over glink transport layer. The communication is based on using shared memory and interrupts. This driver exposes interface to both kernel and user space. Change-Id: Iec5fc78c8370002643b549e43015c06b09d8ab8b Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
* | | | | | mhi: core: Parse ring information from DTAndrei Danaila2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parse MHI ring information from DT instead of statically allocating data structure. This is necessary as different platforms support different configurations. Change-Id: I59cd660459d627f93479a11257653611070fd3a4 Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
* | | | | | msm: mhi: Add MHI core driverAndrei Danaila2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the MHI core driver for communication between host and device using PCIe as an interconnect and supporting MHI as the communication protocol. The driver exposes several kernel space APIs for use by other kernel entities to interface to the PCIe device over MHI. APIs for read and write and other notifications are supported by this MHI driver. Support for full power management and device reset is also included. CRs-Fixed: 689329 Change-Id: Ibc2fd7c2d5689001485f71b1133ada2c4ca236a9 Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
* | | | | | timer: make deferrable cpu unbound timers really not bound to a cpuJoonwoo Park2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a deferrable work (INIT_DEFERRABLE_WORK, etc.) is queued via queue_delayed_work() it's probably intended to run the work item on any CPU that isn't idle. However, we queue the work to run at a later time by starting a deferrable timer that binds to whatever CPU the work is queued on which is same with queue_delayed_work_on(smp_processor_id()) effectively. As a result WORK_CPU_UNBOUND work items aren't really cpu unbound now. In fact this is perfectly fine with UP kernel and also won't affect much a system without dyntick with SMP kernel too as every cpus run timers periodically. But on SMP systems with dyntick current implementation leads deferrable timers not very scalable because the timer's base which has queued the deferrable timer won't wake up till next non-deferrable timer expires even though there are possible other non idle cpus are running which are able to run expired deferrable timers. The deferrable work is a good example of the current implementation's victim like below. INIT_DEFERRABLE_WORK(&dwork, fn); CPU 0 CPU 1 queue_delayed_work(wq, &dwork, HZ); queue_delayed_work_on(WORK_CPU_UNBOUND); ... __mod_timer() -> queues timer to the current cpu's timer base. ... tick_nohz_idle_enter() -> cpu enters idle. A second later cpu 0 is now in idle. cpu 1 exits idle or wasn't in idle so now it's in active but won't cpu 0 won't wake up till next handle cpu unbound deferrable timer non-deferrable timer expires. as it's in cpu 0's timer base. To make all cpu unbound deferrable timers are scalable, introduce a common timer base which is only for cpu unbound deferrable timers to make those are indeed cpu unbound so that can be scheduled by tick_do_timer_cpu. This common timer fixes scalability issue of delayed work and all other cpu unbound deferrable timer using implementations. Change-Id: I8b6c57d8b6445a76fa02a8cb598a8ef22aef7200 CC: Thomas Gleixner <tglx@linutronix.de> CC: John Stultz <john.stultz@linaro.org> CC: Tejun Heo <tj@kernel.org> [joonwoop@codeaurora.org: timer->base replaced with CPU index so get the deferrable timer wheel from lock_timer_base() instead of do_init_timer().] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | qcom: core_ctl_helper: Add wrapper for CPU hotplugJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Different kernel version needs to use different kernel APIs for hotplug. Add wrapper for CPU hotplug so that external module can be used across different kernel releases. Use device_online/offline() API for CPU hotplug. Change-Id: Id21855f4ddc62bc9e9e6b45a856c245fd18d1514 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | | | | | qcom: core_ctl: Add support functions for core controlBryan Huntsman2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support functions for core control driver. Also introduce Kconfig for enabling core control. Change-Id: Ic127b6ed7d9450338883b13d9c42abfe49ff8b35 Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org> [satyap: trivial merge conflict resolution] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* | | | | | uapi: export IPA & Media headersSatya Durga Srinivasu Prabhala2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IPA & Media headers need to go to userspace. Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* | | | | | Export android_pmem.h to keep userspace compilingStephen Boyd2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some applications still include android_pmem.h although all the functionality for it is gone from the kernel. Keep this header file around until all such users have removed the include. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org> [satyap: trivial merge conflict resolution] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* | | | | | hw_random: add snapshot of msm_rng driverZhen Kong2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This snapshot is taken as of msm-3.18 commit e70ad0cd (Promotion of kernel.lnx.3.18-151201.) Acked-by: Shabnam Aboughadareh <shabnama@qti.qualcomm.com> Signed-off-by: Zhen Kong <zkong@codeaurora.org>
* | | | | | Perf: arm64: stop counters when going into hotplugNeil Leeder2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hotplug disables the pmu irq, but if counters are running in the window before the CPU is hotplugged off they can overflow and generate an interrupt. Because the interrupt is disabled, this prevents the cpu from going down. Events are stopped during hotplug processing. However, perf is hooked into the timer tick, and restarts enabled events on every tick, even if they were stopped. Change the event state to OFF to prevent this. CPUs can still be power-collapsed while being hotplugged off, but hotplug processing will save and restore the correct state, so don't process power-collapse save/restore while hotplug is in process. Processing for stop reads the counters, so a separate call is no longer needed. Start processing re-enables events so the from_idle flag is not needed during pmu_enable. Change-Id: I6a7f5b04955ebba8c4d76547f24e2be4071d7539 Signed-off-by: Neil Leeder <nleeder@codeaurora.org> [satyap: merge conflict resolution and move changes in arch/arm64/kernel/perf_event.c to drivers/perf/arm_pmu.c to align with kernel 4.4] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* | | | | | Perf: arm64: fix disable of pmu irq during hotplugNeil Leeder2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PMU irq is disabled when a cpu is hotplugged off and perf is running. Using cpu_pmu->active_events to determine if the pmu is running left a window where it is decremented to 0 in hw_perf_event_destroy, and then armpmu_release_hardware is called. If a cpu is hotplugged off in this window it may not disable its irq. Use a separate flag which is not cleared until after the irq is released by all online cpus. The variable needs to be tristate because of the possibility of a cpu being hotplugged in during this window. In that case it should not enable its irq when the pmu is being shut down. Having the GOING_DOWN state allows correct behavior for cpus both going down and coming up. Change-Id: I934ba5dec34e681ce8defd7fa7e311b4a2a92c1a Signed-off-by: Neil Leeder <nleeder@codeaurora.org> [satyap: merge conflict resolution and move changes in arch/arm64/kernel/perf_event.c to drivers/perf/arm_pmu.c to align with kernel 4.4] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>