summaryrefslogtreecommitdiff
path: root/include/linux (follow)
Commit message (Collapse)AuthorAge
...
| | * | | | | | mmc: sdhci: Defer release of CPU DMA PM QoS vote in high load casesSujit Reddy Thumma2016-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PM QoS vote of default value mean that the CPU is allowed to move into deepest low power mode whenever possible. Currently, if there are back-to-back MMC requests, with a short delay, the PM QoS vote to default value is done immediately which cause the immediate request to have high latency as the CPU might have idle'd and moved to deepest low power mode. To avoid this defer the PM QoS vote till a defined timeout (pm_qos_timeout_us), so that back-to-back requests may not suffer from additional latencies. In addition, if the load on MMC is low, the additional latency may be sustainable. Hence, aggressively release the vote in order to achieve additional power savings. CRs-Fixed: 501712 Change-Id: I82166b0ce9416eb0d519f7da26e5a96956093cb2 Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org> [subhashj@codeaurora.org: fixed minor merge conflict and fixed compilation errors] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
| | * | | | | | Revert "mmc: core: Remove the ->enable|disable() callbacks"Subhash Jadavani2016-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 40433267331bc6b9d70d5cdd14bfa2c8e3e5f0ec as MSM platforms still needs ->enable/disable() callbacks. Conflicts: drivers/mmc/core/core.c Change-Id: Ifd986825c10f1475bfcdac37ea1f3b99e5f6daaf Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
| | * | | | | | Revert "mmc: core: Remove MMC_CLKGATE"Subhash Jadavani2016-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9eadcc0581a8ccaf4c2378aa1c193fb164304f1d. Clock gating is needed for Qualcomm Platforms hence reverting this upstream patch. Change-Id: I96ac0c1c7627e8e5c2d18782e2fc08608f0a7f91 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | | | | | | | arm64: Add support for app specific settingsSarangdhar Joshi2016-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to provide an interface that can be used from userspace to decide whether app specific settings need to be applied / cleared when particular processes are running. CRs-Fixed: 981519 997757 Change-Id: Id81f8b70de64f291a8586150f4d2c7c8f8b4420f Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org> [satyap@codeaurora.org: trivial merge conflict resolution and pull fixes for CR: 997757] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* | | | | | | | Revert "sched: warn/panic upon excessive scheduling latency"Joonwoo Park2016-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8f90803a45d3aa349 ("sched: warn/panic upon excessive scheduling latency") as this feature is no longer used. Change-Id: I200d0e9e8dad5047522cd02a68de25d4a70a91a4 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | | Revert "sched: add scheduling latency tracking procfs node"Joonwoo Park2016-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b40bf941f61756bcc ("sched: add scheduling latency tracking procfs node") as this feature is no longer used. Change-Id: I5de789b6349e6ea78ae3725af2a3ffa72b7b7f11 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | | sched: Remove the sched heavy task frequency guidance featureJoonwoo Park2016-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has always been unused feature given its limitation of adding phantom load to the system. Since there are no immediate plans of using this and the fact that it adds unnecessary complications to the new load fixup mechanism, remove this feature for now. It can be revisited later in light of the new mechanism. Change-Id: Ie9501a898d0f423338293a8dde6bc56f493f1e75 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | | sched: eliminate sched_migration_fixup knobJoonwoo Park2016-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill unused scheduler knob sched_migration_fixup. With this change scheduler always adjusts CPU's busy time during migration. Change-Id: I5d59e89d5cc0f2c705c40036cd7b47f5d3f89e58 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | | sched: eliminate sched_upmigrate_min_nice knobJoonwoo Park2016-06-03
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill unused scheduler knob sched_upmigrate_min_nice. Change-Id: I53ddfde39c78e78306bd746c1c4da9a94ec67cd8 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | platform: qpnp-revid: add definitions for pmicobalt versionsAbhijeet Dharmapurikar2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some workarounds need to be applied only for v1.0 and v1.1 of pmicobalt. For drivers to check and compare the versions, add definitions for pmicobalt versions. CRs-Fixed: 1018090 Change-Id: I3c6c0b470c7d15802c7cf4cb8ced85548dbb81c7 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | | | | sched: eliminate sched_enable_power_aware knob and parameterJoonwoo Park2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill unused scheduler knob and parameter sched_enable_power_aware. HMP scheduler always take into account power cost for placing task. Change-Id: Ib26a21df9b903baac26c026862b0a41b4a8834f3 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | sched: eliminate sched_freq_account_wait_time knobJoonwoo Park2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill unused scheduler knob sched_freq_account_wait_time. Change-Id: Ib74123ebd69dfa3f86cf7335099f50c12a6e93c3 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | sched: eliminate sched_account_wait_time knobJoonwoo Park2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill unused scheduler knob sched_account_wait_time. With this change scheduler always accounts task's wait time into demand. Change-Id: Ifa4bcb5685798f48fd020f3d0c9853220b3f5fdc Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | leds: led-class: Retain the latest user brightness requestRam Chandrasekar2016-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Retain the latest user brightness request. This ensures that when a max brightness limit is altered, the last brightness request is taken into account, when restoring the current brightness. Change-Id: I6461e06f64abe336cabc27a3992d734f1fb745c6 Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
* | | | | | | mm: add WasActive page flagBob Liu2016-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Zcache could be ineffective if the compressed memory pool is full with compressed inactive file pages and most of them will be never used again. So we pick up pages from active file list only, those pages would probably be accessed again. Compress them in memory can reduce the latency significantly compared with rereading from disk. When a file page is shrunk from active file list to inactive file list, PageActive flag is also cleared. So adding an extra WasActive page flag for zcache to know whether the file page was shrunk from the active list. Change-Id: Ida1f4db17075d1f6f825ef7ce2b3bae4eb799e3f Signed-off-by: Bob Liu <bob.liu@oracle.com> Patch-mainline: linux-mm @ 2013-08-06 11:36:17 [vinmenon@codeaurora.org: trivial merge conflict fixes, checkpatch fixes, fix the definitions of was_active page flag so that it does not create compile time errors with CONFIG_CLEANCACHE disabled. Also remove the unnecessary use of PG_was_active in PAGE_FLAGS_CHECK_AT_PREP. Since was_active is a requirement for zcache, make the definitions dependent on CONFIG_ZCACHE rather than CONFIG_CLEANCACHE.] Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
* | | | | | | mm/memblock: disable local irqs while late memblock changesShiraz Hashim2016-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a possibility of deadlock while doing late memblock configuration as only preemption is disabled and irq can be serviced while seqlock is held and in turn memblock_is_memory can be called from irq context thus trying to claim seqlock again. Following call stack was observed, [<c02136d4>] memblock_search+0x1c [<c021487c>] memblock_is_memory+0x10 [<c01e4684>] free_kmem_pages+0x44 [<c0121c04>] free_task+0x28 [<c0178b30>] rcu_process_callbacks+0x488 [<c0127e30>] __do_softirq+0x150 [<c0128284>] irq_exit+0x84 [<c010c11c>] handle_IPI+0x12c [<c0100588>] gic_handle_irq+0x70 [<c0e9efc0>] __irq_svc+0x40 [<c0214a8c>] memblock_region_resize_late_end+0xc [<c057010c>] removed_alloc+0x110 [<c04ab2c4>] pil_boot+0x2b0 [<c04b7700>] __subsystem_get+0xe0 [<c04b79cc>] subsys_device_open+0x74 [<c0229f20>] chrdev_open+0x12c [<c02246e4>] do_dentry_open+0x280 [<c0232698>] do_last+0x9a4 [<c0232b8c>] path_openat+0x23c [<c0233bf0>] do_filp_open+0x2c Fix it by disabling irqs during late memblock configuration. It is a one time operation which changes memblock related data structures and doesn't carry performance impact. CRs-Fixed: 1003890 Change-Id: I3ff1894f0c80580920b1971cda357915665b5054 Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
* | | | | | | lowmemorykiller: add zcache awarenessVinayak Menon2016-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zcache stores compressed file pages which should be considered as reclaimable pages by lowmemorykiller in calculating values to be compared against minfree. Change-Id: Ia3e08bc14ba61c0a45ed54ba5cd525717a572060 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
* | | | | | | msm: mdss: update licence for external display header to GPLv2Vishnuvardhan Prodduturi2016-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the license for external display header file to GPLv2. Change-Id: I3743cefdf2469f05535f73691da0939dcddf6d83 Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
* | | | | | | sched: Aggregate for frequencySrivatsa Vaddagiri2016-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related threads in a group could execute on different CPUs and hence present a split-demand picture to cpufreq governor. IOW the governor fails to see the net cpu demand of all related threads in a given window if the threads's execution were to be split across CPUs. That could result in sub-optimal frequency chosen in comparison to the ideal frequency at which the aggregate work (taken up by related threads) needs to be run. This patch aggregates cpu execution stats in a window for all related threads in a group. This helps present cpu busy time to governor as if all related threads were part of the same thread and thus help select the right frequency required by related threads. This aggregation is done per-cluster. Change-Id: I71e6047620066323721c6d542034ddd4b2950e7f Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org> Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [joonwoop@codeaurora.org: Fixed notify_migration() to hold rcu read lock as this version of Linux doesn't hold p->pi_lock when the function gets called while keeping use of rcu_access_pointer() since we never dereference return value.] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | usb: dwc3: Add support handle type-c plug orientationHemant Kumar2016-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register callbacks for plug orientations in order to cache the current plug orientation reported by extcon. This allows super speed phy driver to configure the appropriate lane upon phy initialization. Change-Id: I906005680b4cc90cc38dc3d403beebf7aa515ad7 Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
* | | | | | | msm: ipa3: add ipa_mhi to ipa_clientsAmir Levy2016-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of of IPA driver refactoring a separation has been made between IPA core driver and the IPA clients. MHI specific code in ipa_mhi.c has been transferred to a new file called ipa_mhi_client.c. IPA clients drivers are the interface between IPA core driver and external drivers. Specifically, ipa_mhi driver is the interface between the MHI driver and IPA core. CRs-fixed: 989505 Change-Id: Iebcde6d233ff8580aa83b1885f1e8a01644dd1f4 Signed-off-by: Amir Levy <alevy@codeaurora.org>
* | | | | | | extcon: Add support for USB connector speedHemant Kumar2016-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows extcon to notify the USB controller driver to enumerate host/peripheral in high or super speed mode. Change-Id: I425087a02b680a5a1bc0579fd4d1410eb92d8e4c Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
* | | | | | | coresight: enable stm logging for trace events, marker and printkShashank Mittal2016-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dup ftrace event traffic and writes to trace_marker file from userspace to STM. Also dup trace printk traffic to STM. This allows Linux tracing and log data to be correlated with other data transported over STM. Change-Id: I4fcb42f2e97ab963fdc85853f4f3ea1f208bfc3c Signed-off-by: Pratik Patel <pratikp@codeaurora.org> [spjoshi@codeaurora.org: 3.18 code fixup] Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org> [mittals@codeaurora.org: 4.4 code fixup] Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
* | | | | | | iommu/io-pgtable-fast: Prove correctness of TLB maintenanceMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common software error when it comes to page table code is missing TLB maintenance. Add some checks to the io-pgtable-fast code to detect when an address that might be stale in the TLB is being re-used. This can be accomplished by writing a "stale TLB" flag value to the reserved bits of the PTE during unmap and then removing the flag value when the TLBs are invalidated (by sweeping the entire page table). That way, whenever we map we can know that there might be a stale TLB in the location being mapped into if it contains the "stale TLB" flag value. CRs-Fixed: 997751 Change-Id: Icf9c1e41977cb71e8b137190adb3b4a201c339da Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Add DMA mapper for io-pgtable-fastMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | io-pgtable-fast does some underhanded tricks to achieve performance. One of those tricks is that it expects clients to call its map function directly, rather than going through the IOMMU framework. Add a DMA API implementation that goes through io-pgtable-fast. CRs-Fixed: 997751 Change-Id: Iebcafeb630d9023f666078604898069e9f26dfdd Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Add domain attribute for getting page table infoMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For certain DMA API implementations, the overhead of going through the IOMMU framework is too much. Such an implementation might want to perform some rudimentary page table management using bits of information from the underlying page tables. Add a domain attribute and structure for querying this type of information. For now, the only information supported is the kernel virtual address of the PMDs (assumed to be virtually contiguous). CRs-Fixed: 997751 Change-Id: I29d31e9649c24d30a5a7ffaa4b238a0203846594 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Add {enable,disable}_config_clocks opsMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are certain use cases where it might be necessary to leave the IOMMU's configuration clocks on. This might happen in places where an IOMMU's clocks might not be known. A good example of this would be a test library that needs to be able to do TLB invalidation from atomic context. It would need to enable clocks up front (outside of atomic context) and leave them on for the duration of the test. Add some ops for enabling and disabling configuration clocks. CRs-Fixed: 997751 Change-Id: I95056952f60494fe5745f2183f9af8aab3a40315 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Add tlbi_domain opMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some higher-level DMA mappers might be able to squeeze out more performance if TLB invalidation can be delegated to them, since they might have more knowledge about when a stale TLB is problem than the IOMMU driver. Add a callback for this purpose that can be implemented by individual IOMMU drivers. CRs-Fixed: 997751 Change-Id: If817f5514fdd5d24b9c592440760b81b88ec71a8 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Add DOMAIN_ATTR_FAST for requesting a fast domainMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some IOMMU drivers offer "fast" page table management routines for special cases. There is often a trade-off with memory, etc. with these so make their usage explicit with a domain attribute. CRs-Fixed: 997751 Change-Id: Ia9f8ad6d924b294b6758970da2e9767f183b5649 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu/io-pgtable: Add fast page table mapper for ARMv8LMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain use cases require performance that can't be achieved with the general-purpose SMMU page table code. By limiting ourselves to 4K page mappings (no block mappings) and pre-populating the first and second levels of the page tables up front, we can eliminate a lot of the work needed for page table mapping and unmapping. Add a performance-tuned io-pgtable implementation for ARMv8L page tables that only supports 4K page mappings. Any size can be mapped, but only 4K page mappings will be installed in the page tables. CRs-Fixed: 997751 Change-Id: I5861270709675016988052360d196e0a16a0d103 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | iommu: Support dynamic pgsize_bitmapMitchel Humpherys2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we use a single pgsize_bitmap per IOMMU driver. However, some IOMMU drivers might service different IOMMUs with different supported page sizes. Some drivers might also want to restrict page sizes for different use cases. Support these use cases by adding a .get_pgsize_bitmap function to the iommu_ops which can optionally be used by the driver to return a domain-specific pgsize_bitmap. CRs-Fixed: 997751 Change-Id: I46d70733be647599e148fe52258a4d8f009ac48a Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* | | | | | | sched: simplify CPU frequency estimation and cycle counter APIJoonwoo Park2016-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of CPUs increase cycle counter by one every cycle which makes frequency = cycles / time_delta is correct. Therefore it's reasonable to get rid of current cpu_cycle_max_scale_factor and ask cycle counter read callback function to return scaled counter value when it's needed in such a case that cycle counter doesn't increase every cycle. Thus multiply NSEC_PER_SEC / HZ_PER_KHZ to CPU cycle counter delta as we calculate frequency in khz and remove cpu_cycle_max_scale_factor. This allows us to simplify frequency estimation and cycle counter API. Change-Id: Ie7a628d4bc77c9b6c769f6099ce8d75740262a14 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | | soundwire: Add API to ungroup soundwire slave devicesPhani Kumar Uppalapati2016-05-20
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add soundwire API to remove the soundwire slave devices from group so that the devices can be controlled independently as required. CRs-fixed: 1007465 Change-Id: Ibca3e33c0e85629ae5ce121e75526f4786d6408a Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* | | | | | extcon: Add support for type-c connector orientationHemant Kumar2016-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Type-C cable can be connected in two different orientations. Connector orientation information is required to configure super speed phy lane. Extcon driver provides this information using EXTCON_USB_CC. Change-Id: Ib2c86970b30cb575146438611a11fde17ab106e8 Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
* | | | | | msm: kgsl: Port GPU bus dcvs to kernel 4.4Oleg Perelet2016-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port GPU dcvs from kernel 3.18 to kernel 4.4. CRs-Fixed: 1013343 Change-Id: Ide662b12aa59effa541febcd758426e72b4a1b12 Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
* | | | | | leds: leds-qpnp-flash-v2: create v2 QPNP flash LED driverChun Zhang2016-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a new Qualcomm Technology Inc. Plug-n-play(QPNP) PMIC chip, which introduces brand new flash LED hardware. The new hardware comes with up to 3 LEDs support, different register mapping layout, and different torch enablement requirement. Therefore, a new driver is introduced to cover this need. Change-Id: Ic878f1a946955edff3a9228e7fe54b7a525e37b1 Signed-off-by: Chun Zhang <chunz@codeaurora.org> Signed-off-by: Mohan Pallaka <mpallaka@codeaurora.org>
* | | | | | slimbus: Add API to get matching ID tablePhani Kumar Uppalapati2016-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add API in slimbus driver for clients to get the matching ID table which helps in accessing driver data and name fields. CRs-fixed: 975738 Change-Id: I09c9f1de74e348b032d215cbb0fb9ba6c7aecf18 Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* | | | | | usb: dwc3: Add support for gsi endpoint disable operationHemant Kumar2016-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gsi driver does not call the gadget API usb_ep_enable() instead uses gsi ep operation call back to enable gsi ep. As a result ep->enabled flag remains clear. Later function driver calls usb_ep_disble() API from gadget framework and ep disable operation gets skipped. Fix this by adding gsi ep operation for ep disable. This makes the enable and disable ep operations both handled by gsi ep ops. CRs-Fixed: 1013830 Change-Id: I5caa9a839b9fdd144af0a59a7c605777f7a3a659 Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
* | | | | | thermal: qpnp-adc-tm: Support refreshed BTM driverSiddartha Mohanadoss2016-05-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The BTM (Battery temperature module) peripheral driver on the PMIC (Power management IC) supports threshold monitoring and notifies clients when thresholds are crossed. PMCOBALT supports refreshed BTM peripheral register interface and the driver uses compatible property qpnp-adc-tm-hc to distinguish using the refreshed peripheral. The external client interface with the driver remains the same. Updates include handling the interrupt when the thresholds are crossed,programming the threholds and configuring the hardware based on the refreshed design. BTM peripheral needs the VADC_HC peripheral to compute the gain/offset that are used to reverse compute the threhold values to ADC code. Some of the reverse computation API's such as calculating thermistor thresholds require the gain and offset values before computing the ADC code to be programmed. This requires modification to the existing calibration API in the VADC_HC driver to calculate the reference calibration points and store these values for clients to use in the reverse computation Change-Id: I989cfa4f40e7f1671f04dfa9d4c3fe2ccbbc44ab Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
* | | | | | msm: ipa3: enable rndis_ipa on msm-4.4Skylar Chang2016-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the feature flag to compile rndis_ipa on cobalt target with msm-4.4 kernel, also fix the compile warnings. Change-Id: I82d3dd00e003d8eab63ca6bcc3bb91d51f122606 Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
* | | | | | power_supply: add INPUT_SUSPEND power supply propertyNicholas Troast2016-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POWER_SUPPLY_PROP_CHARGING_ENABLED has been used to indicate enabling the charge path in some drivers and enabling the input path in others. This leads to confusion of what charging enabled really means. POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED was introduced to indicate enabling the charge path, and in this case POWER_SUPPLY_PROP_CHARGING_ENABLED is used to indicate enabling the input path. Since these are similarly named it leads to even more confusion. In an attempt to fix this confusion we introduce a new power supply property POWER_SUPPLY_PROP_INPUT_SUSPEND which indicates suspending the input path of the power supply. POWER_SUPPLY_PROP_CHARGING_ENABLED takes its original definition of enabling the charge path. Then POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED will be retired from use. CRs-Fixed: 1005389 Change-Id: I1ca8f5748a56a9395caa8ed8ed18f70e69f0cbe8 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | | | | power_supply: Add additional USB Type-C propertiesJack Pham2016-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce the power_supply_typec_mode enum definitions which will allow a charger to indicate the type of USB Type-C connection that is established. Also add additional properties for indicating CC pin orientation, changing source/sink power role (useful for dynamic power role swap), and a flag to allow the charger to expect VBUS changes during USB Power Delivery power negotiation. CRs-Fixed: 1005389 Change-Id: Iba9b652335fba4ee4f24a17eba8abdd5c85c21bb Signed-off-by: Jack Pham <jackp@codeaurora.org> Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | | | | soundwire: Add API to control slave device data pathPhani Kumar Uppalapati2016-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add soundwire API to control slave device data path enable or disable. This gives slave device drivers more flexibility for data path control during device path enablement. CRs-fixed: 996586 Change-Id: Ic0ab015098035418458a5ba7c2ffad9df20f933c Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* | | | | | workqueue: implement lockup detectorTejun Heo2016-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Workqueue stalls can happen from a variety of usage bugs such as missing WQ_MEM_RECLAIM flag or concurrency managed work item indefinitely staying RUNNING. These stalls can be extremely difficult to hunt down because the usual warning mechanisms can't detect workqueue stalls and the internal state is pretty opaque. To alleviate the situation, this patch implements workqueue lockup detector. It periodically monitors all worker_pools periodically and, if any pool failed to make forward progress longer than the threshold duration, triggers warning and dumps workqueue state as follows. BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 31s! Showing busy workqueues and worker pools: workqueue events: flags=0x0 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=17/256 pending: monkey_wrench_fn, e1000_watchdog, cache_reap, vmstat_shepherd, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, cgroup_release_agent workqueue events_power_efficient: flags=0x80 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256 pending: check_lifetime, neigh_periodic_work workqueue cgroup_pidlist_destroy: flags=0x0 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/1 pending: cgroup_pidlist_destroy_work_fn ... The detection mechanism is controller through kernel parameter workqueue.watchdog_thresh and can be updated at runtime through the sysfs module parameter file. v2: Decoupled from softlockup control knobs. CRs-Fixed: 1007459 Change-Id: Id7dfbbd2701128a942b1bcac2299e07a66db8657 Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Don Zickus <dzickus@redhat.com> Cc: Ulrich Obergfell <uobergfe@redhat.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Chris Mason <clm@fb.com> Cc: Andrew Morton <akpm@linux-foundation.org> Git-commit: 82607adcf9cdf40fb7b5331269780c8f70ec6e35 Git-repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
* | | | | | watchdog: introduce touch_softlockup_watchdog_sched()Tejun Heo2016-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | touch_softlockup_watchdog() is used to tell watchdog that scheduler stall is expected. One group of usage is from paths where the task may not be able to yield for a long time such as performing slow PIO to finicky device and coming out of suspend. The other is to account for scheduler and timer going idle. For scheduler softlockup detection, there's no reason to distinguish the two cases; however, workqueue lockup detector is planned and it can use the same signals from the former group while the latter would spuriously prevent detection. This patch introduces a new function touch_softlockup_watchdog_sched() and convert the latter group to call it instead. For now, it just calls touch_softlockup_watchdog() and there's no functional difference. CRs-Fixed: 1007459 Change-Id: I6fe77926acd4240458cab29d399f81d8739a16c0 Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Ulrich Obergfell <uobergfe@redhat.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Andrew Morton <akpm@linux-foundation.org> Git-commit: 03e0d4610bf4d4a93bfa16b2474ed4fd5243aa71 Git-repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
* | | | | | msm: mdss: update header file with DP audio APIsChandan Uddaraju2016-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current header file supports hdmi and audio interaction using the exposed APIs. Update the common structures and the APIs to support display port and hdmi interaction with audio codec driver. CRs-Fixed: 1009284 Change-Id: I3962fd0cbc278c403584e767611f11d841e14d4e Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
* | | | | | sched: use proper typedef for cpumaskJeevan Shriram2016-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 55b8e041e6b3 ("sched: take into account of limited CPU min and max frequencies") has introduced a typedef bug and is fixed in this change. CRs-Fixed: 1006303 Change-Id: I6f75d4d0179a79544b4180a3ba155916c861edb5 Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
* | | | | | sched: take into account of limited CPU min and max frequenciesJoonwoo Park2016-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actual CPU's min and max frequencies can be limited by hardware components while governor's not aware of. Provide an API for them to notify for scheduler to be able to notice accurate currently operating frequency boundaries which helps better task placement decision. CRs-fixed: 1006303 Change-Id: I608f5fa8b0baff8d9e998731dcddec59c9073d20 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | sched: add support for CPU frequency estimation with cycle counterJoonwoo Park2016-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present scheduler calculates task's demand with the task's execution time weighted over CPU frequency. The CPU frequency is given by governor's CPU frequency transition notification. Such notification may not be available. Provide an API for CPU clock driver to register callback functions so in order for scheduler to access CPU's cycle counter to estimate CPU's frequency without notification. At time point scheduler assumes the cycle counter increases always even when cluster is idle which might not be true. This will be fixed by subsequent change for more accurate I/O wait time accounting. CRs-fixed: 1006303 Change-Id: I93b187efd7bc225db80da0184683694f5ab99738 Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
* | | | | | drivers/perf: arm_pmu: implement CPU_PM notifierLorenzo Pieralisi2016-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a CPU is suspended (either through suspend-to-RAM or CPUidle), its PMU registers content can be lost, which means that counters registers values that were initialized on power down entry have to be reprogrammed on power-up to make sure the counters set-up is preserved (ie on power-up registers take the reset values on Cold or Warm reset, which can be architecturally UNKNOWN). To guarantee seamless profiling conditions across a core power down this patch adds a CPU PM notifier to ARM pmus, that upon CPU PM entry/exit from low-power states saves/restores the pmu registers set-up (by using the ARM perf API), so that the power-down/up cycle does not affect the perf behaviour (apart from a black-out period between power-up/down CPU PM notifications that is unavoidable). Cc: Will Deacon <will.deacon@arm.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Acked-by: Ashwin Chaugule <ashwin.chaugule@linaro.org> Acked-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Git-commit: da4e4f18afe0f3729d68f3785c5802f786d36e34 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git CRs-Fixed: 1008368 Change-Id: I2901cd11e3832ef671581ac6e4f0e3edce630e6d Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>