Setting sched_freq_reporting_policy tunable to an unsupported
values results in a warning from the scheduler. The previous
policy setting is also lost.
As sched_freq_reporting_policy can not be set to an incorrect
value now, remove the WARN_ON_ONCE from the scheduler.
Change-Id: I58d7e5dfefb7d11d2309bc05a1dd66acdc11b766
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
During SOC masking, SOC 100 will be shown to the user after the
charge termination and as long as the charger is inserted. After
the charger is removed or device is discharging when the charger
was inserted, showing the real monotonic SOC instantly reduces
the user experience. Linearize the drop in SOC so that it can be
spread to a wider range.
Change-Id: I509e59f8e5d9e9addd8c5721369fbcf664158338
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
When SOC masking algorithm is enabled, a SOC of 100 will be shown
to the user when certain conditions are met. When the device
starts discharging after charge termination, auto recharge will
be triggered once the SOC or Vbatt goes below the threshold. When
the recharge is based on Vbatt, a fluctutation in Vbatt can cause
issues in SOC masking algorithm. To make it robust, adjust the
recharge voltage dynamically based on charging status and battery
SOC.
Add a device tree property to allow configuring auto recharge to
be based off SOC or battery voltage. This will help the user to
select auto recharge configuration easily.
Change-Id: I2d749806aa51b9fa747967b592b6622cc12bee65
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
After charge termination, charging status might not get updated
until the recharge begins. This makes charge_full_update to be
not called at all thereby causing SOC masking algorithm to not
clear the charge_full flag. Use delta battery SOC interrupt to
help with this. Keep it disabled by default and enable it after
the charge termination. Disable it again when the user removes
the charger.
Since this needs delta battery SOC threshold to be configured,
add support for it.
Change-Id: Ic1a9f8a065c87efe88e315f2b2e1e1378151531b
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Delta MSOC and BSOC interrupts need to be configured only for
the rising edge as that is sufficient to handle most of the
actions to be done responding to them. Update the interrupt
configurations for pmi8998 and pm660.
Change-Id: I84d6d009c3b5227869309570d94c62bde6bea710
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
When FG is restarted, RESTART_GO bit is set and it is cleared
only when the first estimate is done, signalled by SOC_READY
interrupt. If SOC_READY interrupt doesn't fire for some reason,
RESTART_GO bit will not get cleared. Fix this.
Change-Id: I99261d5020f5012ba0a4e35e543458f9e7b30210
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
During battery hotswap, a strong charger will be supplying enough
current to keep the device up and running. Currently, FG driver
shows up the monotonic SOC and voltage as-is (which is zero) to
the battery power supply and hence to the userspace.
Show a fake battery SOC (50%) and fake battery voltage (3.7 V)
when the battery is missing. If a strong charger is not present,
then the device will be powered down anyways.
Change-Id: Ia2c85d1e75bbf0c937a7e36e786362c473c7f7cd
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
In dual cam sync mode, set all source to async state if
out-of-sync happens.
CRs-Fixed: 1115553
Change-Id: I8d322d5d87dd30c6852052ae9f56d43273af6095
Signed-off-by: Junzhe Zou <jnzhezou@codeaurora.org>
This reverts commit 32e9bf0e7cde2a440a9442d2c92bb7c4bf35dd80
("usb: xhci: Set interrupt moderation for host mode to 4000(1ms)") to
restore default imod value in XHCI driver as IMOD value is now passed
from DT for required targets.
CRs-fixed: 1019219
Change-Id: I8bc3c2217cafde0e767671e192f6563f89712575
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
XHCI allows interrupt moderation using imod_interval at 250ns
increments. Add DT parameter to specify this imod_value for
targets mainly with single CPU to reduce CPU interrupt loads.
This allows better balance between CPU usage and performance.
CRs-fixed: 1019219
Change-Id: Id479c162da6492caff4dd83de4054fee63b6abc5
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Currently the TTF is inaccurate near 100% SOC. Adjust the tau scale near
100% SOC and adjust the target full battery current to compensate for
the inaccuracy.
Change-Id: I2f6327fab7b71108a928e8c99107522c73c35e07
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Update the die temperature scale and offset values to the latest
recommended values.
Change-Id: Iaf27461dd43c1f6915416447031cc362210801b5
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Clean up the code and make it more maintainable by removing dependency
on the sched_enable_hmp flag. We do not support HMP scheduler without
recompiling. Enabling the HMP scheduler is done through enabling the
CONFIG_SCHED_HMP config.
Change-Id: I246c1b1889f8dcbc8f0a0805077c0ce5d4f083b0
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
The domain information indicates which remote processor to
communicate with. Use this domain information to open up the
corresponding channel with the remote processor.
Change-Id: I54ddfae04ce71b3c760840e26285cd5754533882
Acked-by: Chenna Kesava Raju <chennak@qti.qualcomm.com>
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>
This patch introduces a new binder_fd_array object,
that allows us to support one or more file descriptors
embedded in a buffer that is scatter-gathered.
Change-Id: I273d7e00807eda4defc5c94c4bd86e4812e2c7a8
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: 5b3e17679b
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Previously all data passed over binder needed
to be serialized, with the exception of Binder
objects and file descriptors.
This patchs adds support for scatter-gathering raw
memory buffers into a binder transaction, avoiding
the need to first serialize them into a Parcel.
To remain backwards compatibile with existing
binder clients, it introduces two new command
ioctls for this purpose - BC_TRANSACTION_SG and
BC_REPLY_SG. These commands may only be used with
the new binder_transaction_data_sg structure,
which adds a field for the total size of the
buffers we are scatter-gathering.
Because memory buffers may contain pointers to
other buffers, we allow callers to specify
a parent buffer and an offset into it, to indicate
this is a location pointing to the buffer that
we are fixing up. The kernel will then take care
of fixing up the pointer to that buffer as well.
Change-Id: Ia9bb2c588d932b6627a04baf4a62a09ae6aca087
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: 34b8f97791
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
[tsoni@codeaurora.org: Fixed 32 bit compilation]
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Remove ECM_IPA debugging capabilities which are no longer needed, nor used.
CRs-Fixed: 1112912
Change-Id: I20765d84ca7351c436d39d0f10b7f7a819bcc40b
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
The binder_buffer allocator currently only allocates
space for the data and offsets buffers of a Parcel.
This change allows for requesting an additional chunk
of data in the buffer, which can for example be used
to hold additional meta-data about the transaction
(eg a security context).
Change-Id: Iabf59a64ff66a0457a9aa7077aef219c3dc05ba8
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: d7c114e9e7
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Moved handling of fixup for binder objects,
handles and file descriptors into separate
functions.
Change-Id: If68c2d93c3a42765cefda40dc807b39f6ab774c2
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: 6ea3f1848b
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Add a new module parameter 'devices', that can be
used to specify the names of the binder device
nodes we want to populate in /dev.
Each device node has its own context manager, and
is therefore logically separated from all the other
device nodes.
The config option CONFIG_ANDROID_BINDER_DEVICES can
be used to set the default value of the parameter.
This approach was favored over using IPC namespaces,
mostly because we require a single process to be a
part of multiple binder contexts, which seemed harder
to achieve with namespaces.
Change-Id: Idc765f6186282bdfcf95960d7b4168c5f0992c31
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: 5711c305d2
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Move the context manager state into a separate
struct context, and allow for each process to have
its own context associated with it.
Change-Id: I2a1c9adbc01ce1125e4f8661898e7ea4b4904ebe
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: e11560a518
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
flat_binder_object is used for both handling
binder objects and file descriptors, even though
the two are mostly independent. Since we'll
have more fixup objects in binder in the future,
instead of extending flat_binder_object again,
split out file descriptors to their own object
while retaining backwards compatibility to
existing user-space clients. All binder objects
just share a header.
Change-Id: Ife64444979fba493c1865d2e4f4213ec26d03720
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: d8e0aca03a
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
[neeraju@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
The frequency requested by LMH DCVSh hardware may not match an actual
frequency in the CPU clock plan. LMH DCVSh driver uses OPP framework to
match the hardware frequency request to a nearest valid CPU frequency. OPP
interface expects the frequency input in Hz and DCVSh driver is passing the
frequency value in kHz, which will result in error. So the hardware
mitigation frequency reported by the driver may not reflect the actual
frequency that the CPU is mitigated to.
Provide the hardware frequency input in Hz for OPP interface in LMH DCVSh
driver. Hardware mitigation frequency can be lower than the lowest
possible CPU frequency. In that case freq floor call will fail. So call
dev_pm_opp_find_freq_ceil to match to the lowest CPU frequency.
Change-Id: I6e9f7f5129320c37d41e20ca9735129f25440134
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
SDM660 supports multiple GPU power level speed bins. This
change adds all supported GPU power levels speed bins.
Specific speed bin will be used based on efuse value.
Change-Id: Ie542ee2439713ccbba17d38cef5e6ffd95a8b249
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
With the new chipset wcn3990 and new firmware HL-1.0, management
is supported via the WMI rather than legacy HTT.
Add support for the management over wmi for the ath10k driver.
CRs-Fixed: 2000484
Change-Id: Iaf387243d63870e063b3b5bf34cd7232dae921fc
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
WCN3990 target needs different value for scan flags.
Add proper scan flags for WCN3990 and attach based
on hardware detected.
CRs-Fixed: 1115143
Change-Id: Ie4c02adb5ae65e12d250389d945e048cb6720479
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
WCN3990 does not uses BMI for fw download.
Refactor startup sequence to support non BMI
platform.
CRs-Fixed: 1114413
Change-Id: I1e1f5c3808decf319474629ab257ae908895f3a8
Signed-off-by: Govind Singh <govinds@codeaurora.org>