As before, add mtp_tx_req_len for Tx transfer length, while
mtp_write & send_file_work still use MTP_BULK_BUFFER_SIZE for
Tx transfer length, need to correct it.
Change-Id: Ib078cf01871c50e6eec7002a38391d4c41d4d45a
Signed-off-by: zhaoyuan <yzhao@codeaurora.org>
A306a GPU have the two different frequency plans. The frequency
plan needs to be loaded dynamically based on the speed bin
information. Add support for A306a gpu to read the speed bin
information and choose frequency plan dynamically.
Change-Id: Iba53d4381d61f23ce1195a147493b0d292cd3723
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
Add device tree support for msmcobalt interposer platform
using msmfalcon QRD.
CRs-Fixed: 1086541
Change-Id: If17aa7a60832b71a94d75718da07158e1474ef31
Signed-off-by: Zhenhua Huang <zhenhuah@codeaurora.org>
Fix fake button press when headset is inserted by properly
disabling micbias after the detection is completed.
CRs-Fixed: 1086418
Change-Id: I241a49dd36746c083b410a58c8c899ee0e9390ad
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
There is a race between watchdog being enabled by hotplug and core
isolation disabling the watchdog. When a CPU is hotplugged in and
the hotplug lock has been released the watchdog thread might not
have run yet to enable the watchdog. We have to wait for the
watchdog to be enabled before proceeding.
Change-Id: I88f73603b6d389a46f8e819d9b490091d5ba4fe9
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
To move tasks off a cpu when offlining the rq needs to be offlined to
un-throttle tasks. However, tasks might still run on the CPU even after
the CPU has been isolated (per-CPU threads). Thus we should leave the rq
in online state after tasks have been moved.
Change-Id: I61486e8648af0dbb82595fe699e1bc158e837362
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
There is a race condition between checking for whether an active load
balance request has been set and clearing the request. A cpu might have
an active load balance request set and queued but not executed yet.
Before the load balance request is executed the request flag might be
cleared by cpu isolation. Then subsequently the load balancer or tick
might try to do another active load balance. This can cause the same
active load balance work to be queued twice causing report of list
corruption.
Fix this by moving the clearing of the request to the stopper thread and
ensuring that load balance will not try to queue a request on an
already isolated cpu.
Change-Id: I5c900d2ee161fa692d66e3e66012398869715662
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
The current value is leading to spurious fault interrupts
from the GPU. Increase the threshold 4 times so that hardware
fault detection won't be triggered as quickly.
CRs-Fixed: 1073836
Change-Id: Ie780cec4de818c94a407461580f9d80de7e4ec84
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
The scheduler allocates memory for the task load structures during
fork. It then relies to sched_exit() to be called to free that memory.
However, if the fork itself fails at any point after the allocation,
the memory is left unclaimed forever. Fix this memory leak by freeing
the allocated memory under error conditions.
Change-Id: I14a8290c9fcc4174ec80560e9f9d7bcdb119761f
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Task load structure allocations can consume a lot of memory as the
number of tasks begin to increase. Also they might exhaust the atomic
memory pool pretty quickly if a workload starts spawning lots of
threads in a short amount of time thus increasing the possibility of
failed allocations. Move the call to init_new_task_load() outside
atomic context and start using GFP_KERNEL for allocations. There is
no need for this allocation to be in atomic context.
Change-Id: I357772e10bf8958804d9cd0c78eda27139054b21
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Recent changes to scheduler guided frequency have started reporting
the maximum of the cpu load and the load of the top task on a CPU
to the governor. Use the same information to determine whether a
notification is necessary or not.
Change-Id: I1928c6cd0509952443a912ef54e0d72d5f75955d
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Capping load when reporting to the governor was important prior to new
scheduler guided frequency changes as intra-cluster migrations would
sometimes lead to CPU loads well in excess of 100%. With the new top
task approach however, load greater than 100% is no longer possible
except for the same conditions that were previously exempted (i.e.
inter-cluster migrations and frequency aggregation).
Change-Id: I3e4f5e39ec9ae7eeaba9a567efd245a7aec1b7ad
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Currently, fuel gauge assumes that the battery charging current
is provided only by the main charger. When ESR pulse is needed,
it notifies only the main charger to lower its FCC. However, with
parallel charger also supplying the FCC to the battery, the main
charger can end up increasing its FCC instead of lowering it.
This is because of the fact that FCC of main charger is lower
than the total battery charging current because of the current
distribution to the parallel charger and the code sent by FG
allows it to increase its FCC.
Fix this by controlling ESR FCC current code to 300mA in software
when the device is charging and the parallel charger is enabled.
Switch back to hardware control when the device is not charging
or parallel charger is disabled.
Change-Id: I0e6e600f72f9ef8864f9b775df88f674de9cb52c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently charge inhibit feature is enabled by default and the
charge inhibit threshold is not configurable. Add a device tree
parameter "qcom,chg-inhibit-threshold-mv" through which the
charge inhibit threshold can be configured. If the property is
not specified, then charge inhibit feature is kept disabled.
Change-Id: I464d720abc138e8cd9ba8d7f1704cd91f4408bee
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
As per the hardware documentation, increase the duration
between attempts to measure ESR as the ESR pulse amplitude got
increased. This is to reduce the power consumption.
Change-Id: I65027413ecb22a1e89e37a12f66c5abda6c3ba28
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently, profile integrity register is using only bit 0 to
indicate whether the profile is loaded or not. Now that the
profile can be loaded and/or fuel gauge can be restarted by the
bootloader, extend the usage of that word by using other bits
to provide more information. This is to aid the debugging.
Change-Id: Ib04ab10998de2f57b05cd976c3e9c8a1e2f4c574
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
As per the hardware characterization, update the battery empty
voltage threshold to 2.8V. Since this moves the voltage little
away from cutoff voltage, update the empty SOC interrupt handling
to report SOC as 0. Since we only need the rising edge of empty
SOC interrupt, modify the interrupt flag as well.
Change-Id: I665a6f879af4e6b6e9f94b5464be7894d5ea67cb
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
When a debug board is present, battery ID will be something like
7 Kohms. Expose a fake battery SOC when this is detected. This
will help avoiding the device shutdown if a low battery voltage
is seen by FG and state of charge goes to 0.
Change-Id: I750b2adfb00f12960f74bd552a5896f66ecaece6
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently ANC output is connected to speaker path before PA
is enabled. This is causing click sound during voice call
when adaptive ANC is enabled. Fix this issue by connecting ANC
output to speaker path after PA is enabled.
Change-Id: I5f381b1e0c0222b8ae81d923da0b86d742b3cccd
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
When the MSM resets the USB data lines are pulled low. If an HVDCP adapter
is attached and operating at >5V, and the phone reboots then the HVDCP
adapter will be in a bad state and the USB input will be suspended. Fix
this by forcing the HVDCP adapter to 5V in the shutdown path.
Change-Id: I953d42418f90398bd4248f8b761cf63943ce5532
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
CHARGE_TYPE provides information about what state the parallel charger is
in (pre, trickle, fast, full-on, taper). Expose it.
Change-Id: Ieee5a3acf5bbcd66ca1789a1011bd8c9461657ef
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Provide a convient and compact way for a bunch of register
reads/saves and writes.
CRs-Fixed: 1079913
Change-Id: Ica6a60f3f5bd1fad624d01ea410e62dbed09dac8
Signed-off-by: Harry Yang <harryy@codeaurora.org>
When programming perfcounter via gpu commands, we may encounter
-EAGAIN because of cancelling rb events either due to soft reset
or when powering down the device. Ignore this error because we
have already set up the perfcounter in software and it will be
programmed in hardware by adreno_perfcounter_restore when gpu
comes back up.
CRs-Fixed: 1024199
Change-Id: I5dc3561d15fa50ac58646f96559cfd262020dda9
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
When any input is removed it is likely that reverse boost can happen.
Detect reverse boost by checking if the switcher-power-ok interrupt
triggers 3 times within 1 second. If detected then suspend all input.
Once VBUS falls the input can be resumed for the next insertion.
Change-Id: I3dbe4fe426111023b60eefd968c426be7d6057b9
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Microphone Activity Detection (MAD) hardware block in codec needs to
be in micbias mode and bandgap must be enabled whenever the input
to the MAD block is from ADC2. Change updates the codec register
sequence for MAD Input mixer control accordingly.
CRs-Fixed: 1085214
Change-Id: Ic57b1db8688ff634ed7d62279baa7c042d126550
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently ANC output is connected to speaker path before PA
is enabled. This is causing click sound during voice call
when adaptive ANC is enabled. Fix this issue by connecting ANC
output to speaker path after PA is enabled.
Change-Id: I2103773a17e7d9ee5acb3f21dc955e2da493b3b4
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Make sure that the secure session device is used while freeing the
buffer that was allocated from secure memory.
Change-Id: I07802c21c661fe18fb2fda70980b04f646408d7d
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>
Enable VDD_APC CPR aging for msmcobalt v2 and define a CPR
closed-loop and open-loop voltage margin reduction of 15 mV
for CPR local rev 3 parts and greater to account for this
feature being enabled.
CRs-Fixed: 1081084
Change-Id: I50a3ca4e09c6cd6edeb5c15478989e19926c6576
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Update the default CPR min/max step quotient,
count repeat, consecutive down, and aging RO scaling
factor values for VDD_APC0 and VDD_APC1 to match the latest
hardware guidelines.
CRs-Fixed: 1080409
Change-Id: Ibb35a3f475725af96276389f78abb790ea5b5b81
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Combine the common code of both external and internal
codec machine drivers. Provide config support for
independent compilation of internal and external
codecs.
CRs-Fixed: 1083537
Change-Id: Ia63f8baf02b0ceee0960e208b976d7b573c39d52
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add stub regulator devices for msmtriton because RPM regulator
support is not yet in place.
CRs-Fixed: 1086513
Change-Id: I40220bcf960a10d7d6271e09b9f85107ed0c24af
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
GCC clock controller is required to be enabled for all peripheral clocks
supported by global clock controller.
Change-Id: I11c6cc7f09b403a09bdf65a14f7b9d327c5d9613
Signed-off-by: Taniya Das <tdas@codeaurora.org>
The fmax & num_fmax have been updated to reflect the new variable names and
also fall back to branch clocks clock_ops for hardware branch clocks for
now until the new ops are available.
Change-Id: I8b86ebbabe37bb86bd20eafe9501c4677f21a553
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Add driver support to configure mempools from the device tree.
This will enable mempools to configure per device specific and
reduces the high kgsl memory usage based on configuration.
CRs-Fixed: 1064046
Change-Id: I0a7e36b7e1fef9d42a4c0fe33d69a4debf15af2f
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
GCC region has been mapped by regmap instead of devm_ioremap_resource.
So to map modem restart register which is part of gcc region requires
devm_ioremap otherwise mapping error occurs.
Change-Id: I1d97d8ef831e3a91df47eebf22e1156d0a3712ae
Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org>
Add support for new DSP INTx MCLK, INTx IBIT CLK
and INTx MI2S ports. New internal codec and msm
based soundwire codec use these clocks and port_ids.
CRs-Fixed: 1083537
Change-Id: I72e0a15c8a283c68a3ed10cfd02a4e3d9526c312
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Bring in updates from msmcortex defconfigs to msmfalcon's.
Change-Id: Iedbae0d4738c7badf3d4faf60f43e8c8bdab51e1
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
In combo usecase there are 2 front-end dai's with
same codec dai, for example, multi-phrase ADSP SVA detection.
Using a single bit as the counter causes the counter to roll
over to 0 during combo usecase.
To resolve this, change counter to unsigned int from single bit.
CRs-Fixed: 1086127
Change-Id: I2dd07bd967b7d4fb4878b6d65bd0f011c6b15bdd
Signed-off-by: Walter Yang <yandongy@codeaurora.org>