Commit graph

582297 commits

Author SHA1 Message Date
Yeleswarapu Nagaradhesh
7cd8feed72 ARM: dts: msm: correct spi master number for sdm660
WDSP is connected to SPI7 in sdm660. So change
SPI master to 7.

CRs-Fixed: 2000921
Change-Id: I07eeef3e0753d38dbb33e4a343122b2948d36d38
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
2017-02-01 13:42:35 +05:30
Abhijeet Dharmapurikar
6802881be0 power_supply: remove PARALLEL_PERCENT property
There is no need for this property. Remove it.

Change-Id: I656eb51f8b9690d0c1046d1c82d2575fae270a40
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2017-01-31 22:23:42 -08:00
Abhijeet Dharmapurikar
f0cf35f592 power: qcom-charger: separate parallel code
Currently the parallel charging code is tightly coupled in the main charger
files.  Update the design to separate parallel charging code. This
parallel charging code will implement few votables and interacts with
the main and parallel charger.

A brief discussion on important changes

Usb main psy
The new design introduces a charger type called USB-Main which exposes all
the properties required to implement parallel charging for the main
charger. These properties are implemented/supported

- CONSTANT_CHARGE_CURRENT_MAX, sets and gets the FCC of the main charger
- ICL_REDUCTION, indicates by how much the main charger should reduce
  its ICL. The parallel charger would draw some portion of the ICL and
  this implementation ensures that the main charger reduce its ICL in
  order to not exceed the adapter limits.
- VOLTAGE_MAX, sets the float voltage of the battery, we continue to
    raise float voltage for the parallel charger so that it operates as
    current source.
- INPUT_CURRENT_SETTLED: indicates the AICL results.
- FCC_DELTA: indicates the value by which the main is correcting the
    FCC. The main reduces FCC by few mA when in Jeita or Step
    charging. This helps in determining the exact FCC which in turn
    helps distribute it correctly.

Slave percent
The new file implements the sysfs entry for slave percent. When
thermal balancer updates it, it ends up calling fcc distribution
and also the icl distribution. Note that the icl distribution too
is dependent on the slave's fcc percent - in that it gives 10
percent point more to the main charger.

ICL
ICL needs to be distributed only in USBIN_USBIN configuration.
As noted above the ICL distribution is based on fcc distribution
aka slave_percent. The main charger is given 10% more ICL since it
caters to system load in addition to charging the battery. This is
similar to our traditional USBIN USBIN implementation where FCC was
distributed 50/50 while ICL was distributed 60/40 percent - the main
got 10% more of the ICL value.
Note that the ICL distribution is invoked when AICL settled current
changes, not when the ICL itself changes. The new code tracks the
aicl settled value and invokes the icl distribution when it changes.
It first requests the main charger to reduce its icl and then updates
the parallel's icl.

FCC Votable
The FCC votable is moved to the new file and is similar to its previous
implementation - It distributes FCC when ever the FCC value changes, the
slave_pct changes or parallel charger is enabled or disabled. If the main
charger is further modifying the FCC from what its registers were
configured, this FCC callback takes that in to account via the
FCC_DELTA property prior to distribution.

FV Votable
Like the FCC votable the FV votable is moved to the new file.
The code is similar as it was implemented in the main file where
it distributes FV when ever the FV value changes.

TAPER entry
The code that stepwise reduces slave's ICL as it enters taper mode
is moved to this file. So that it can correctly do this, the
charge type is tracked in its internal structure.

PL_DISABLE Votable
The PL_DISABLE too is moved to a new file. There are few implementation
changes here.
- Earlier the code used to run the same sequence while enabling and
  disabling. This could create a situation where FCC/ICL is incorrectly
  configured for a brief period. That has been corrected, in that
  the enable configures in this order configures fv, distributes fcc,
  enables parallel, distributes aicl. The disable does that in reverse
  order of enable.
- Charger's presence would vote on enabling/disabling parallel charger.
  This is no more required. Instead a vote from CHG_STATE_VOTER suffices
  for when fast charging begins. The voters that enable/disable parallel
  when typec is present or is in sink mode or when uUSB cable is
  inserted are removed.

CHG_STATE_VOTER and TAPER_END_VOTER
A typical charge cycle enters fast charging, moves to taper charging and
finally goes to end of charging. Parallel charging needs to be
enabled while fast charging starts and needs to be kept enabled during
the portion of taper charging when parallel's FCC is above 500mA threshold.
Note that if charging starts from taper, we only want to run it so long
as the parallel's FCC stays higher than 500mA threshold.

CHG_STATE_VOTER votes to enable parallel charging when fast charging
or parallel charging is in progress. When charging stops (i.e. when its not
in fast or taper charging) CHG_STATE_VOTER votes to disable parallel
charging.

Also the TAPER_END_VOTER votes to disable parallel charging when
parallel's FCC share falls below 500mA. It continues to vote disable on
parallel charging until charging stops. At that point it votes to
enable parallel charging.

Between these two voters, parallel charger
- enables when fast charging starts and remains enabled as it
 transitions to taper charge.
- is disabled once parallel's FCC falls below 500mA threshold and
remains disabled in taper charge until charging stops.

This makes it important that the battery psy provide correct psy
changes when it enters/exit FAST or TAPER type. The PMI chip and its
battery_psy implementation already guarantees that.

PL_TAPER_EARLY_BAD_VOTER
During some runs we see that parallel operates in taper mode. Given that
we sets its FV higher than main's FV, the parallel should never operate
in taper mode. This voter disables parallel charging if this happens.
This voter enables parallel charging when the main charger stops
charging.

Change-Id: If1676cd126d7eeace7c44cf8d819038d03433d7e
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2017-01-31 22:23:39 -08:00
Rajesh Kemisetti
682e77a2b8 ARM: dts: msm: Disable two-pass-wfi quirk for SDM660 GPU
A512 GPU's quirk two-pass-wfi is fixed in HW and no need to
enable from SW.

Change-Id: I3aa4d4d9a8f9be778e217b730c557b2b3a40345c
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
2017-02-01 11:46:24 +05:30
Sathish Ambley
b6b6005b42 msm: ADSPRPC: Allow association with static processes
Allow process on application processor to be associated with a
process on DSP that has been spawned on bootup. This allows for
further RPC calls to be associated with the static process.

Change-Id: Id4b9f01ef47290bc885210bbf4da1796476ba85f
Acked-by: Ashwini Patil <aapatil@qti.qualcomm.com>
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>
2017-01-31 21:09:40 -08:00
Pavankumar Kondeti
b559daa261 sched: maintain group busy time counters in runqueue
There is no advantage of tracking busy time counters per related
thread group. We need busy time across all groups for either a CPU
or a frequency domain. Hence maintain group busy time counters in
the runqueue itself. When CPU window is rolled over, the group busy
counters are also rolled over. This eliminates the overhead of
individual group's window_start maintenance.

As we are preallocating related thread group now, this patch saves
40 * nr_cpu_ids * (nr_grp - 1) bytes memory.

Change-Id: Ieaaccea483b377f54ea1761e6939ee23a78a5e9c
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2017-02-01 09:16:39 +05:30
Deepak Katragadda
97a9e735a2 clk: msm: Update the frequency table for csi clocks on MSM8998 v2
Add 274.29 MHz as a supported frequency for the csi RCGs on
MSM8998 v2.

Change-Id: I4b8186c88fb66da21a1313f51b1080ee24c4b90f
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2017-01-31 15:48:40 -08:00
Subbaraman Narayanamurthy
234089eca0 qcom: fg-memif: improve retry mechanism for IMA read/write
FG SRAM read/write APIs consist of peripheral/supporting
read/writes and the core interleaved_mem_access functions.

The current implementation retries only when the core functions
return an error and in case of a read, additionally when the beat
count changes. This works except if the peripheral/supporting
access fail, we do not even retry.

Introduce retries for all possible failures while reading/writing
a SRAM location.

Change-Id: I99ad9acae3ef0dbc3941094076f124d16099468c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-01-31 15:07:22 -08:00
Subbaraman Narayanamurthy
993cc6a514 qcom: fg-memif: Return error properly when IMA read/write fails
In the SRAM masked write we read the register first, make
modification to the value and write it back. If the read fails
we bail out of the masked write function.

However there is a bug in the read api where the error code is
not properly returned. This causes the masked write to proceed
with a failed read and corruption ensues.

A similar bug is present in write api too where the error is not
returned correctly to the caller. Fix this.

Change-Id: Ic7651c5cb2e054a0b8b2dfe201463063ce9e167b
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-01-31 15:07:03 -08:00
Jack Pham
1fb96a7df5 usb: pd: Support Programmable Power Supply as sink
PD 3.0 version 1.1 includes a new Programmable Power Supply
type that can be sent as an Augmented Power Data Object in a
Source Capabilities message. Add sink-side support to request an
Augmented PDO which also includes specifying the source's output
output voltage and current. For userspace, overload the 'select_pdo'
sysfs attribute by allowing voltage (uV) and current (uA) to be
optionally written, with the following syntax:

	echo <src cap id> <PDO> [<uV> <uA>] > select_pdo

Also rename the 'rdo' file to 'rdo_h' as it is already in human-
readable format, enhance it with APDO values, and make 'rdo' simply
spit out the hex value.

Change-Id: If861b0f8f2f04d06299f096ff52f1e1961c1daa9
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2017-01-31 14:53:07 -08:00
Jack Pham
ff00f08624 usb: pd: Support PD Rev 3.0 for sink mode
Set maximum revision support for 3.0 when starting in
PE_SNK_STARTUP state. If the partner source only supports
2.0, the spec_rev will be downgraded when receiving the
first Source_Capabilities message in phy_msg_received().

Add a helper to check for SinkTxOk (i.e. Rp indicates 3A)
before initiating an AMS sequence from PE_SNK_READY.
Currently such sequences are limited to power re-negotiation,
sink-initiated data/power role swap, and initiating VDMs.

Change-Id: I781c8826ded6e407297d50579d90bfd24783b164
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2017-01-31 14:53:06 -08:00
Jack Pham
326781e04b usb: pd: Support updating specification revision
To allow for future support of PD specification revision
3.0, update the PD_MSG_HDR macro to specify the revision
bits in each outgoing message header. The revision itself
will be kept in the struct pdphy. Also export a PD PHY
function to update the same for the auto-GoodCRC responses.
For now, only Rev 2.0 is supported.

Change-Id: I36e1b85f2e67597bd4fa8f0dd277374553451949
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2017-01-31 14:53:00 -08:00
Vamsi Krishna Samavedam
e8869713e5 usb: dwc3: Add maximum hw supported speed flag
Maximum hardware supported speed flag limits the maximum speed
of the usb controller to high or super. Adding this additional
flag as maximum_speed flag can be changed from different sources
such as power delivery stack.

Change-Id: I18f414e822b5525fe848a48384fac102cdae7b03
Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
2017-01-31 14:52:59 -08:00
Linux Build Service Account
af883d4db0 Merge "qcom: fg-util: Fix possible race condition in debugfs" 2017-01-31 14:01:10 -08:00
Linux Build Service Account
f8478b9862 Merge "mmc: sdhci-msm: Update ICE reset register offset for ICE HCI" 2017-01-31 14:01:08 -08:00
Linux Build Service Account
d8dbdec2b2 Merge "mmc: sdhci-msm-ice: Enable ICE HCI if supported" 2017-01-31 14:01:08 -08:00
Linux Build Service Account
cf5b32c293 Merge "defconfig: Enable android-verity and FEC in sdm660" 2017-01-31 14:01:07 -08:00
Linux Build Service Account
1fda242d28 Merge "ASoC: msm: qdsp6v2: extend validation of virtual address" 2017-01-31 14:01:06 -08:00
Linux Build Service Account
ec2c50f78a Merge "ASoC: add missing switch mixer controls" 2017-01-31 14:01:05 -08:00
Linux Build Service Account
477b504fc6 Merge "ASoC: msm: qdsp6v2: fix spurious wakeup from q6asm cmd_wait" 2017-01-31 14:01:04 -08:00
Linux Build Service Account
33fffaf77f Merge "ARM: dts: msm: add power supplies for amoled panel on sdm660" 2017-01-31 14:01:04 -08:00
Linux Build Service Account
e106ce901f Merge "ASoC: msm: Remove i2s_pcm config settings in sdm660" 2017-01-31 14:01:03 -08:00
Linux Build Service Account
f413e767d0 Merge "ARM: dts: msm: Add PM support for sdm630" 2017-01-31 14:01:02 -08:00
Linux Build Service Account
bde58b49e0 Merge "net: rmnet_data: Optimized GRO for single flow" 2017-01-31 14:01:01 -08:00
Yuanyuan Liu
9dc3bd2212 icnss: Enable FW rejuvenate feature by default
Enable FW rejuvenate feature so that WLAN FW
can rejuvenate by default without changing the
configuration from debugfs.

CRs-Fixed: 2000561
Change-Id: Ic9b0524311c08bf3b99f43881054c23967734e5c
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
2017-01-31 11:13:06 -08:00
Yuanyuan Liu
28616cc435 icnss: rename and change the type of enable_fw_log
enable_fw_log is renamed to fw_log_mode and changed
from boolean type to uint8_t, so that it can support
multiple log mode.

CRs-Fixed: 1116983
Change-Id: I9d4af7cd2c857b62f434d968f51af76121006907
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
2017-01-31 10:44:59 -08:00
Veerabhadrarao Badiganti
8265e5eb2f mmc: sdhci-msm: Update ICE reset register offset for ICE HCI
SDHC v5.0 onwards the ICE reset register offset got updated.
Update the register offset based on the SDHC version.

Change-Id: I9c1250460cddf72837446b54fe03e3c52f11b234
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
2017-01-31 20:51:19 +05:30
Veerabhadrarao Badiganti
92907bcb94 mmc: sdhci-msm-ice: Enable ICE HCI if supported
Check if the SDHC has ICE HCI support. If support is present,
enable the cryptoghrapic support inside SDHC.

Also ensure that it is re-enabled after SDHC is reset.
By default ICE HCI is disabled.

Change-Id: I43a65279088d70b415c396bc3e51e0e510bb7f9c
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
2017-01-31 20:50:00 +05:30
Linux Build Service Account
a874c1606f Merge "soc: qcom: make debugfs support configurable for kryo l2 accessors driver" 2017-01-31 04:42:36 -08:00
Linux Build Service Account
db4204cf52 Merge "ARM: dts: msm: add battery profile for ascent 2800mah battery" 2017-01-31 04:42:35 -08:00
Linux Build Service Account
ffbe81b2ed Merge "ASoC: msm: Fix invalid pdata access after kfree" 2017-01-31 04:42:34 -08:00
Linux Build Service Account
22369c78bc Merge "usb: gadget: Add snapshot of CCID function driver" 2017-01-31 04:42:33 -08:00
Linux Build Service Account
1480b6a1a1 Merge "ARM: dts: msm: Add Nfc device to sdm660" 2017-01-31 04:42:32 -08:00
Linux Build Service Account
0a7b7fc131 Merge "mmc: sdhci-msm: Disable controller clocks in suspend" 2017-01-31 04:42:31 -08:00
Linux Build Service Account
b2179ceb0e Merge "msm_vidc: Disable DCVS in thumbnail mode" 2017-01-31 04:42:30 -08:00
Linux Build Service Account
c00bc44b4b Merge "msm: vidc: Disable port reconfig for thumbnail session" 2017-01-31 04:42:30 -08:00
Linux Build Service Account
f2ab5923b1 Merge "ASoC: wcd: Fix ADSP based SVA mode detection failures" 2017-01-31 04:42:29 -08:00
Linux Build Service Account
7949ac69d2 Merge "ASoC: wcd9xxx: check gpio pinctrl state in wcd9xxx_reset" 2017-01-31 04:42:28 -08:00
Linux Build Service Account
ac0b19ff2c Merge "ARM: dts: msm: modify sound node for sdm660 qrd skus" 2017-01-31 04:42:27 -08:00
Adinarayana Gupta Grandhi
7c57d5dd20 defconfig: Enable android-verity and FEC in sdm660
Enable the android verity device and support for
forward error correction.

Change-Id: I37c74d748f45bd5b5a0ac6b55c6709f662498433
Signed-off-by: Adinarayana Gupta Grandhi <agrandhi@codeaurora.org>
2017-01-31 04:37:34 -08:00
ansharma
5f99561e37 ARM: dts: msm: Configure WLED for SDM630
Specify the number of strings in WLED property to support
brightness for SDM630.

Signed-off-by: ansharma <ansharma@codeaurora.org>
Change-Id: I8a9cffc51520f58e63957e2b96f2e2fe598c00b1
2017-01-31 17:05:01 +05:30
Odelu Kukatla
f68f0e758f clk: qcom: Add support for cpu clock for sdm630
CPU clock frequencies are different for sdm630, so update
the bootup frequency for perf cluster for sdm630.

Change-Id: I9da19b0a09ec1c5c7960f9c2fadfe26a3b4c3015
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
2017-01-31 16:57:06 +05:30
Laxminath Kasam
9a4f615fca ASoC: msm: Remove i2s_pcm config settings in sdm660
I2S_PCM config as per SDM architecture is taken
care in LPAIF. It is not required to set any LPAIF
register to config I2s or PCM mode from Apps side.
Remove the code related to i2s_pcm config.

Change-Id: Ic8217b6dc178a7248979e7c2ca183286597112ad
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2017-01-31 15:36:55 +05:30
Raju P.L.S.S.S.N
67b984c116 ARM: dts: msm: Add PM support for sdm630
Add initial PM configuration necessary for SPM, LPM, MPM,
RPM stats to support SDM630.

Change-Id: I2e9ab91d8b0240a75198e489663ff794be3ee7ec
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>
2017-01-31 14:05:13 +05:30
Rama Krishna Phani A
3b900300ee thermal: tsens: Update sensor id for sdm660
Update sensor id flag for sdm660 such that thermal
client can obtain the HW ID for the available
temperature sensors (TSENS) with sensor ID details.

Change-Id: I6e217f734e8748c9ac5edf1c7a2b0dbf9deb9ac0
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2017-01-31 13:32:26 +05:30
Ashish Garg
f36d9e9024 ARM: dts: msm: add power supplies for amoled panel on sdm660
Add LAB/IBB/OLEDB entries for supporting amoled panel on
sdm660.

Change-Id: I12b0f8d626d9c30a071b1877b9b9135a0ea83368
Signed-off-by: Ashish Garg <ashigarg@codeaurora.org>
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
2017-01-31 11:57:04 +05:30
Sandeep Panda
804463697a ARM: dts: msm: enable ESD feature for SDM660 target
Enable ESD check feature for SDM660 target by adding
the property flag to default panel node.

Change-Id: Icbd99fdbe4283407f94e60e3fe06b845a21846fd
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2017-01-31 11:46:41 +05:30
Kaushal Kumar
2f5ead45f5 soc: qcom: make debugfs support configurable for kryo l2 accessors driver
Add config option to enable/disable l2 indirect access debug capability.
The driver exposes l2 indirect access debugfs interface to get/set data,
address, and target cpus so keep it disabled by default.

Change-Id: I22f84d16a3bf12a78295f2d052bb50e90d6f2a8b
Signed-off-by: Kaushal Kumar <kaushalk@codeaurora.org>
2017-01-31 11:46:26 +05:30
Sayali Lokhande
283e8d1b93 mmc: sdhci-msm: Disable controller clocks in suspend
Generally, during card suspend we call mmc_power_off
and disable controller clocks.
Now consider below sequence of events :
suspend -> resume -> suspend.
1) During first platform suspend, mmc_power_off will
be called and clocks would be disabled.
2) As a part of platform resume, we enable controller
clocks and defer card resume when
MMC_BUSRESUME_NEEDS_RESUME flag is set.
3) During next suspend we check if card is already
suspended (i.e MMC_BUSRESUME_NEEDS_RESUME is set)
and return without doing actual suspend (where we
call mmc_power_off and disable controller clocks).

So in this scenario, controller clocks will remain ON
even though card state is SUSPENDED.

Fix this by disabling controller clocks during suspend
if controller clock was ON.

CRs-Fixed: 1088893
Change-Id: Id54a15d7f6a7131dab609eec1db158c64ada83ce
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
2017-01-30 22:03:09 -08:00
Linux Build Service Account
42e1251b38 Merge "smb-lib: disable APSD run on CC while APSD is disabled" 2017-01-30 20:16:01 -08:00