Commit graph

576160 commits

Author SHA1 Message Date
Syed Rameez Mustafa
2640728359 sched: Add cgroup attach functionality to the tune controller
This is required to allow tasks to freely move between cgroups associated
with the tune controller.

Change-Id: I1f39b957462034586edc2fdc0a35488b314e9c8c
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
2016-10-10 11:10:42 -07:00
Syed Rameez Mustafa
14b52227eb sched: Update the number of tune groups to 5
The schedtune controller will mimic the cpusets controller configuration
for now. For that we need to make 4 groups in addition to the root
group present by default.

Change-Id: I082f1e4e4ebf863e623cf66ee127eac70a3e2716
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
2016-10-10 11:10:41 -07:00
Patrick Bellasi
e89595cd93 sched/tune: add initial support for CGroups based boosting
To support task performance boosting, the usage of a single knob has the
advantage to be a simple solution, both from the implementation and the
usability standpoint.  However, on a real system it can be difficult to
identify a single value for the knob which fits the needs of multiple
different tasks. For example, some kernel threads and/or user-space
background services should be better managed the "standard" way while we
still want to be able to boost the performance of specific workloads.

In order to improve the flexibility of the task boosting mechanism this
patch is the first of a small series which extends the previous
implementation to introduce a "per task group" support.
This first patch introduces just the basic CGroups support, a new
"schedtune" CGroups controller is added which allows to configure
different boost value for different groups of tasks.
To keep the implementation simple but still effective for a boosting
strategy, the new controller:
  1. allows only a two layer hierarchy
  2. supports only a limited number of boost groups

A two layer hierarchy allows to place each task either:
  a) in the root control group
     thus being subject to a system-wide boosting value
  b) in a child of the root group
     thus being subject to the specific boost value defined by that
     "boost group"

The limited number of "boost groups" supported is mainly motivated by
the observation that in a real system it could be useful to have only
few classes of tasks which deserve different treatment.
For example, background vs foreground or interactive vs low-priority.
As an additional benefit, a limited number of boost groups allows also
to have a simpler implementation especially for the code required to
compute the boost value for CPUs which have runnable tasks belonging to
different boost groups.

Change-Id: I1304e33a8440bfdad9c8bcf8129ff390216f2e32
cc: Tejun Heo <tj@kernel.org>
cc: Li Zefan <lizefan@huawei.com>
cc: Johannes Weiner <hannes@cmpxchg.org>
cc: Ingo Molnar <mingo@redhat.com>
cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
Git-commit: 13001f47c9
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-10 11:09:53 -07:00
Deepak Katragadda
e71cfc0305 clk: msm: clock: Update the bimc clock mux index
Use the ddrss_gcc_dbg_clk mux index to get the rate
measurement of the DDR clock on MSMCOBALT. Note that
this feature is only supported on v2 platforms.

CRs-Fixed: 1068034
Change-Id: Ib472c226b7e35079e6b8391848a0a0d1c38962c0
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-10-10 10:22:22 -07:00
Subbaraman Narayanamurthy
21005fbb17 qpnp-fg-gen3: add support to configure and handle delta battery temperature
Battery temperature delta configuration can be used to know the
battery temperature change. There is an interrupt associated
with this configuration which can be used to update the battery
health of the device.

Change-Id: Ic55b9bb34ac9912f88dab6a11ec365814b525ca2
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:09 -07:00
Subbaraman Narayanamurthy
03451c8892 qpnp-fg-gen3: add support to configure jeita hysteresis
GEN3 FG has jeita hysteresis support in hardware. Add support
to configure the hysteresis applied to jeita temperature via
a device tree property.

While at it, fix reading the JEITA thresholds from device tree
property where the total size of the elements was used instead
of the total number of elements.

Change-Id: I1d468f1291224de0f781ca71cbc1374a29d7c790
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:08 -07:00
Subbaraman Narayanamurthy
110f63422b qpnp-fg-gen3: fg-util: Do not allow SRAM access when battery is missing
When the battery is removed and a strong charger is plugged in,
device will be kept powered. However, because of missing battery
SRAM access over IMA can fail leading to errors. Eventually, the
errors will go away when the battery is inserted again. However,
if the user tries to access SRAM registers or bms power supply
properties, it can cause further errors flooding logs. Handle
this gracefully by returning an error upon battery missing is
detected.

CRs-Fixed: 1072401
Change-Id: I764442548cb076dad89856d75394ef9cf355f83a
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:07 -07:00
Subbaraman Narayanamurthy
906f1b29ae qpnp-fg-gen3: fix reading OCV and Vbatt predicted values
Open circuit voltage and predicted battery voltage are read from
16 bits. However, the real value is present only in 15 bits.
Mask the bit 16 to get the proper readings.

Change-Id: I196ccc64fd221fead87a88f43dce1a21ba800908
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:06 -07:00
Subbaraman Narayanamurthy
0edd25653c qpnp-fg-gen3: add support to restart fuel gauge
Add a module parameter "fg_restart" to restart the fuel gauge
without loading the battery profile. This will be useful in
geting a fresh SOC estimate whenever required.

Change-Id: I0c054ad523a0eab72f777d010807bb3a55f63f7e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:05 -07:00
Subbaraman Narayanamurthy
cdb65a95a8 power: qpnp-fg-gen3: add capacity learning feature
Batteries age across the time. Capacity learning is a feature
which uses the hardware autonomous coulomb counter to determine
the actual battery capacity against the advertised full capacity.
This will be useful to determine how much degradation has
happened to the battery. Capacity learning algorithm will start
based on some pre-set conditions like start SOC, battery
temperature and ends when the charging cycle is complete.

Actual capacity will be exposed through charge_full property.

Change-Id: I89cc14d213b0de10bc8d052dd76e1468fe9c30e5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:05 -07:00
Subbaraman Narayanamurthy
bd811f3afd qpnp-fg-gen3: Add support to configure force battery profile loading
Currently, FG_GEN3 driver loads the battery profile if it finds
out the profile loaded earlier doesn't match with the available
profile. This will be done when the profile integrity bit is
set already. Make this force profile loading as a configurable
parameter through a device tree property.

While at it, add a module parameter to dump the profile contents
conditionally. This will be helpful in debugging.

Change-Id: Ibaff55aa5434ee283e6d597485d193e9e52bb74e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:04 -07:00
Nicholas Troast
9435c04228 qpnp-fg-gen3: disable msoc-full and bsoc-delta IRQs as wakeup sources
msoc-full is not used to determine when the battery is full. The charger
will wakeup the device when it has terminated charging indicating that
the battery is full. Disable the msoc-full IRQ as a wakeup source.

The msoc-delta IRQ is used to wakeup the device when the SOC changes
therefore having the bsoc-delta IRQ as a wakeup source is unnecessary.
Disable the bsoc-delta IRQ as a wakeup source.

Change-Id: Iab7087ce3d6727abc852d3a84590cfa570ec584d
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
2016-10-10 09:44:03 -07:00
Subbaraman Narayanamurthy
5b6c4f8f1b qpnp-fg-gen3: change the encoding for delta soc threshold
Currently, delta SOC threshold is written as a 8 bit value but
the encoding is in 11 bits. This will cause the delta SOC
threshold programmed to a lower value causing interrupts to fire
quickly. Change the numerator of delta SOC SRAM parameter so that
the delta SOC threshold will be set correctly. Maximum possible
threshold will be 12.45% (1/2048 * 255).

Change-Id: Ia908c917d71939b9d72b16ddca3400a692540bf3
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:02 -07:00
Subbaraman Narayanamurthy
16b979380c ARM: dts: msm: add CC_CV threshold to itech/ascent FG_GEN3 battery profiles
Configure CC_CV threshold voltage to 4.34V for both itech and
ascent battery profiles that will be used by GEN3 fuel gauge
on pmicobalt.

CRs-Fixed: 1068593
Change-Id: I7df3d343afa62ffdbf6f5db8c7fc7d94e2f0e3a0
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:44:02 -07:00
Subbaraman Narayanamurthy
5870397614 power: qpnp-fg-gen3: add support to configure VBtGTFltTh and VBtFull
Based on the battery profile parameters, Vbatt greater than float
voltage and full voltage thresholds needs to be configured. Add
support for the same. Since this needs the battery profile
parameters to be read in advance before the hardware is
initialized, shuffle the code to get battery profile early.

CRs-Fixed: 1068593
Change-Id: If5df62d933cc653a276967b3d16c080c6d4ecb2e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-10-10 09:43:33 -07:00
Hardik Kantilal Patel
a421f9710c defconfig: Enable CONFIG_ICNSS_DEBUG for msmfalcon
Enable CONFIG_ICNSS_DEBUG to enable driver debugging.

CRs-fixed: 1076049
Change-Id: I0d97a9aca9525da4aee6a9ddbf97849cd9c11a55
Signed-off-by: Hardik Kantilal Patel <hkpatel@codeaurora.org>
2016-10-10 06:14:51 -07:00
Linux Build Service Account
1fac7f53bd Merge "input: misc: pat9125: fix issues found in static analysis" 2016-10-10 05:57:59 -07:00
Linux Build Service Account
d1df49872e Merge "ASoC: msm: create backend dailink for wcd934x MAD" 2016-10-10 05:57:59 -07:00
Linux Build Service Account
f6179aab9b Merge "ASoC: soundwire: add null check before pointer dereference." 2016-10-10 05:57:50 -07:00
Vevek Venkatesan
72ce5ca478 input: misc: pat9125: code clean-up in pat9125 driver
Remove redundant code from the Pixart PAT9125 reference driver
- Remove unwanted struct declarations and definitions
- Remove unwanted header files
- Dynamically allocate platform data structure
- Change pr_err to dev_err
- Changes as per Linux coding guidelines
- Clean-up probe and remove routines
- Remove unwanted file operations
- Remove unused functions and variables

Change-Id: I71b1d2548dc07c21ab8f12327662f5bb6998cdcb
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-10-09 23:21:25 -07:00
Himanshu Aggarwal
01e2708af5 input: misc: pat9125: fix issues found in static analysis
Fix the following issues found in static analysis:
- missing blank lines after declarations
- unnecessary return in a void function
- exporting world writable files is usually an error
- block comments use * on subsequent and trailing lines
- Add DT binding description and vendor prefixe for the
driver.
- Add Linux Foundation copyright markings.

Change-Id: Id2ed9a6d4e31bd2acd3185bf7ef9c78f8a41cf36
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-10-09 23:21:05 -07:00
Lawrence Liao
4e09168fe6 This is the reference driver source code for Pixart OTS PAT9125.
Change-Id: Ie366894e9e89707fa2950a7ffbfe4e93059a19a3
Signed-off-by: Lawrence Liao <lawrence_liao@pixart.com>
(cherry picked from commit dfc4349a8aa02bb0b7b0639ad5368a5c85f6520f)
Git-commit: dfc4349a8aa02bb0b7b0639ad5368a5c85f6520f
Git-repo: https://github.com/PixartOpen/pixart-sensor-db810-linux-driver
[shjain@codeaurora.org: removed below listed files from original
commit as they are not needed and to resolve trivial merge conflicts:
1. arch/arm/boot/dts/qcom/apq8094-dragonboard.dtsi
2. arch/arm/boot/dts/qcom/msm8994-pinctrl.dtsi
3. arch/arm/boot/dts/qcom/msm8994.dtsi
4. drivers/input/misc/Makefile
5. drivers/input/misc/ots_pat9125/Makefile
Remove the unused pieces of algorithm from the reference
driver of Pixart PAT9125 Rotating side button.]
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-10-10 11:48:08 +05:30
Se Wang (Patrick) Oh
448971ccea arm64: mm: Log the process id in the rtb
Store the process id in the register trace buffer.
This gives a general idea about what process was last
running when the RTB stopped.

Change-Id: Idcbd8db9eb451f2d732c935f00b6c50f9af3c592
Signed-off-by: Se Wang (Patrick) Oh <sewango@codeaurora.org>
2016-10-09 21:39:27 -07:00
Linux Build Service Account
6bbaf84de6 Merge "wil6210: initial support for FTM and AOA" 2016-10-09 21:17:55 -07:00
Linux Build Service Account
8463e7300c Merge "ARM: dts: msm: Add IMEM dload-type entry for MSM8996 and MSMCOBALT" 2016-10-09 21:17:53 -07:00
Linux Build Service Account
34b3dfc782 Merge "soc: qcom: handle wdsp glink state notifications" 2016-10-09 21:17:52 -07:00
Linux Build Service Account
7bc3eae82e Merge "regulator: correct name used in debug consumer regulator_get call" 2016-10-09 21:17:51 -07:00
Linux Build Service Account
31131180a1 Merge "genirq: Avoid race between cpu hot plug and irq_desc() allocation paths" 2016-10-09 21:17:51 -07:00
Linux Build Service Account
132aa7560b Merge "ARM: dts: msm: Add icnss node for msmtriton" 2016-10-09 21:17:50 -07:00
Linux Build Service Account
62575a58aa Merge "ARM: dts: msm: Add icnss node for msmfalcon" 2016-10-09 21:17:49 -07:00
Linux Build Service Account
cd3b78c8ff Merge "ARM: dts: msm: add ion heaps for msmtriton" 2016-10-09 21:17:49 -07:00
Linux Build Service Account
8e23ae41f3 Merge "qcom-charger: update qc charger detection for PMICv2" 2016-10-09 21:17:46 -07:00
Abhimanyu Kapur
ddc2bf61b5 ARM: dts: msm: Add IMEM dload-type entry for MSM8996 and MSMCOBALT
Add IMEM dload-entry to support emmc dload feature
for msm8996 and msmcobalt SOCs.

CRs-Fixed: 993510
Change-Id: I0d26049817ce8d8172ee364b5d7a31ebdcb64194
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
2016-10-09 20:22:00 -07:00
Walter Yang
3b29155a55 ASoC: msm: create backend dailink for wcd934x MAD
To support ADSP SVA on wcd934x, dedicated backend dailink needs
to be created. Add the dailink associating the specific cpu dai
and the MAD codec dai.

CRs-Fixed: 1070327
Change-Id: I4152d81e4e951216a8ecdd93562eb1740dbb962c
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
2016-10-09 19:43:51 -07:00
Ajay Singh Parmar
a03fd4699a msm: mdss: edid: parse dtd and proper fps and pclk check
Parse the Detailed Timing Descriptors of both EDID blocks for
resolutions. Check if the resolution is already added in local
data base. Also, add tolerance to fps and pclk variations for
a give resolution so that EDID parser can capture all the
resolutions correctly as published by the sink's EDID.

Change-Id: I113988eb21f82eef022723c421b1c1c9d4dead9f
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-10-08 23:12:30 -07:00
Linux Build Service Account
34b975e502 Merge "ARM: dts: msm: Update DCVS table for msmcobalt v2" 2016-10-08 18:29:38 -07:00
Linux Build Service Account
89fd48e0ae Merge "msm: vidc: Keep v4l2 plane count instance-specific" 2016-10-08 18:29:36 -07:00
Linux Build Service Account
5f659ecb42 Merge "icnss: Wait uninterruptible for unregister driver" 2016-10-08 06:35:54 -07:00
Linux Build Service Account
062b309db9 Merge "icnss: Prevent suspend while processing events" 2016-10-08 06:35:53 -07:00
Linux Build Service Account
3ffe336b5e Merge "msm: vidc: Selectively handle SYS_ERROR as FATAL" 2016-10-07 22:15:44 -07:00
Linux Build Service Account
dc9ba857fb Merge "msm: sde: Reject 0 size image for SDE rotator" 2016-10-07 22:15:43 -07:00
Linux Build Service Account
7685c7eae7 Merge "msm: kgsl: Get GPU snapshot if wait for global timestamp timeout" 2016-10-07 22:15:42 -07:00
Linux Build Service Account
49042f0e43 Merge "icnss: Provide API to check QMI support" 2016-10-07 22:15:42 -07:00
Linux Build Service Account
4eff38d585 Merge "msm: kgsl: Disable UCHE global filter" 2016-10-07 22:15:41 -07:00
Linux Build Service Account
5b3cec6473 Merge "usb: host: Flush hub workqueue before stopping controller" 2016-10-07 22:15:40 -07:00
Linux Build Service Account
eb3e44cc3f Merge "qpnp-smb2: smb-lib: add charge_done property" 2016-10-07 22:15:39 -07:00
Linux Build Service Account
8e2bd84fbe Merge "ARM: dts: msm: Add support to read FAB ID for PMICOBALT" 2016-10-07 22:15:37 -07:00
Linux Build Service Account
cd4a503c83 Merge "soc:qcom: common_log: change PMIC dump size from 4k to 64k" 2016-10-07 22:15:36 -07:00
Linux Build Service Account
c68dd38b5e Merge "power: reset: Skip emmc_dload sysfs entry creation" 2016-10-07 22:15:34 -07:00
Linux Build Service Account
b08e398913 Merge "msm: rpm-smd-debug: Remove unwanted pr_info" 2016-10-07 22:15:33 -07:00