OSDN Git Service
Nicholas Troast [Thu, 9 Feb 2017 18:05:03 +0000 (10:05 -0800)]
qpnp-smb2: support POWER_SUPPLY_PROP_CTM_CURRENT_MAX
CTM needs to vote for USB ICL. Add support for it.
Change-Id: I88b146000f7327cf5dc7310fb721309f08dc3035
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Nicholas Troast [Mon, 6 Feb 2017 03:44:33 +0000 (19:44 -0800)]
power_supply: add CTM_CURRENT_MAX property
POWER_SUPPLY_PROP_CTM_CURRENT_MAX is needed by CTM to limit USB input
current. Add it.
Change-Id: I8aac65a91959300676cf7e1c2685a557f322c509
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Nicholas Troast [Wed, 8 Feb 2017 18:47:37 +0000 (10:47 -0800)]
power: supply: qcom: implement die and connector health property
The die and connector health properties expose the comparator output of
the thermal regulation. If both die and skin temperature regulation is
enabled then the output of the comparator will be the higher of the two.
The property values can be one of: Unknown, Cool, Warm, Hot, Overheat.
Change-Id: Ic92c9cb08ec42fd2c2f26a54687a17e3b05b388f
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Nicholas Troast [Wed, 8 Feb 2017 18:41:06 +0000 (10:41 -0800)]
power_supply: add DIE_HEALTH and CONNECTOR_HEALTH properties
The DIE_HEALTH and CONNECTOR_HEALTH properties are used to show the
output of the thermal regulation TEMP_RANGE.
Change-Id: Ice3f159b7775084bdd0099047d4660a1e5edce98
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Abhijeet Dharmapurikar [Wed, 8 Feb 2017 21:35:14 +0000 (13:35 -0800)]
smb-lib: add support of ICL voting based on charger
Add support to vote for ICL based on charger type.
Following are the current limit for chargers:
Legacy adapters:
CDP: 1500mA, DCP: 1800mA, HVDCP: 3000mA
TypeC Adapters:
Based on the current advertised by the adapter.
Change-Id: Ia5dbf73c29949a94e096ca6233a33c40da744140
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Ashay Jaiswal [Mon, 6 Feb 2017 18:01:29 +0000 (23:31 +0530)]
power: qcom-charger: add support for USBIN-USBIN parallel configuration
Add support for USBIN-USBIN configuration based parallel charging. This
involves splitting Input Current Limit(ICL) between the main and the
parallel charger, ICL re-split is done when the settled AICL of the main
charger changes by 300mA.
Change-Id: I5b916f1503a2267ca1e73b24096cb60a304e3c19
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Ashay Jaiswal [Mon, 6 Feb 2017 18:42:08 +0000 (00:12 +0530)]
power: smb1351-charger: update drive to support parallel architecture
Re-organize SMB1351 charger driver to support new parallel charger
architecture.
- New property "POWER_SUPPLY_PROP_PARALLEL_MODE" exposes the parallel
charger configuration, in this case it is USBIN-USBIN configuration.
- Property "POWER_SUPPLY_CHARGE_TYPE" is added to report the current
charge type and is also used for parallel charger chip detection.
Change-Id: I05692b34daef244f89a365e03043ae2ffe42d9da
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Abhijeet Dharmapurikar [Wed, 8 Feb 2017 21:34:01 +0000 (13:34 -0800)]
power: qcom-charger: add support to detect parallel charger
Add support to detect presence of parallel charger chip by
requesting a register read via power_supply framework.
If parallel chip is absent then disable parallel charger.
Change-Id: Icfa4a774d344fde4c7d1f4ced772a707be85020d
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Ashay Jaiswal [Thu, 2 Feb 2017 17:15:22 +0000 (22:45 +0530)]
qcom: battery: add support to delay parallel enable
Add support to delay parallel enable until HVDCP detection
and authentication completes. This involves adding a new voter
which enables parallel charger under following condition:
For DCP: enable parallel path after HVDCP detection
times out.
For HVDCP: enable parallel path after HVDCP authentication
completes.
Change-Id: Ib1c740eee5c721a0c267f6a9bc924c58af4b2c1e
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Abhijeet Dharmapurikar [Tue, 7 Feb 2017 02:39:19 +0000 (18:39 -0800)]
smb-lib: manage override in icl_callback
Currently we have only one path - the pd active setting path - where
ICL_OVERRIDE gets set.
With the upcoming changes to manage connector temperature
mitigation and usbin-usbin parallel charger, the ICL_OVERRIDE is needed
to be set from these usecases.
So instead of creating a voter for ICL_OVERRIDE and putting the onus
on callsites to set it before calling their icl settings, it is best
to handle it in icl_callback.
Update the icl_callback to manage override and suspend in this way.
- Presence of voter signifies that the driver wants to enforce a
value different than the hw default. Force an icl override.
- No voters signifies that the hw defaults are good, undo an override.
- For USB types that command a limit aka SDP and CDP, never override.
- never suspend if there are no clients.
Change-Id: I3ed01237b0bb2c028bec572d2905cabb03ce50a3
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Abhijeet Dharmapurikar [Thu, 9 Feb 2017 17:25:51 +0000 (22:55 +0530)]
smb-lib: Handle icl voter priorities between DCP, SDP and PD type
Cleanup the code such that when PD is activated, DCP_VOTER
and USB_PSY_VOTER (the voter for SDP and CDP types) are disabled.
While at it DCP_VOTER is intended to enforce a different value
from the hw defaults. Set it only when type is confirmed DCP.
Also to handle the situation when the PD profile allows to suspend
based on the phy, use a different voter PD_SUSPEND_SUPPORTED_VOTER
to activate that situation.
Change-Id: I0cb1a0aad9c94fdd233ec3103779e1a13449472e
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Linux Build Service Account [Thu, 9 Feb 2017 11:12:05 +0000 (03:12 -0800)]
Merge "ASoC: codecs: fix out of bounds copy"
Linux Build Service Account [Thu, 9 Feb 2017 11:12:04 +0000 (03:12 -0800)]
Merge "ASoC: jack: Fix buttons enum value"
Linux Build Service Account [Thu, 9 Feb 2017 11:12:03 +0000 (03:12 -0800)]
Merge "ASoC: msm: add FE DAIs for HFP for SDM660"
Linux Build Service Account [Thu, 9 Feb 2017 11:12:02 +0000 (03:12 -0800)]
Merge "ASoC: msm: Add support for 128KHz in the compress driver"
Linux Build Service Account [Thu, 9 Feb 2017 11:12:01 +0000 (03:12 -0800)]
Merge "soundwire: Add support to disable smart boost data port"
Linux Build Service Account [Thu, 9 Feb 2017 11:12:00 +0000 (03:12 -0800)]
Merge "ASoC: wsa881x: Fix boost enable sequence"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:59 +0000 (03:11 -0800)]
Merge "ASoC: msm: add support for multi-copps for multiple BEs"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:59 +0000 (03:11 -0800)]
Merge "clk: msm: clock-mmss-8998: Park the MMNOC AHB RCG at XO when its disabled"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:57 +0000 (03:11 -0800)]
Merge "msm: mdss: share MDP smmu device mappings with other mdss clients"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:56 +0000 (03:11 -0800)]
Merge "msm: mdss: dp: add null check for token value"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:55 +0000 (03:11 -0800)]
Merge "msm: mdss: fix frame rate calculation for DP interface"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:54 +0000 (03:11 -0800)]
Merge "usb: dwc3: Set core clk rate to default upon device remove notification"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:53 +0000 (03:11 -0800)]
Merge "arm: dma-mapping: map_page map to nearest page"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:52 +0000 (03:11 -0800)]
Merge "qpnp: smb2: Add charger frequency config for PM660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:51 +0000 (03:11 -0800)]
Merge "diag: dci: Check for valid dci client entry"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:45 +0000 (03:11 -0800)]
Merge "icnss: Fix error check of athdiag read data_len"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:44 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: Update GFX LDO CPR target quotient table for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:43 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: Add TLB dump entries for sdm660 and sdm630"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:39 +0000 (03:11 -0800)]
Merge "msm: gsi: use reinit_completion"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:38 +0000 (03:11 -0800)]
Merge "memshare: Add EXEC permission to MSA0 memory"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:37 +0000 (03:11 -0800)]
Merge "ath10k: Add support for BASE MAC ADDRESS CMD"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:36 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: add support for NO jacktype for SDM660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:35 +0000 (03:11 -0800)]
Merge "ath10k: Skip reading of firmware-5.bin file"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:34 +0000 (03:11 -0800)]
Merge "clk: qcom: Remove gcc_rx2_qlink_clkref_clk for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:34 +0000 (03:11 -0800)]
Merge "clk: qcom: keep gcc_bimc_gfx_clk always on for SDM660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:33 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: change gpio channel for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:32 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: Add GFX CPR device configuration for sdm630"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:31 +0000 (03:11 -0800)]
Merge "wil6210: protect list of pending wmi events during flush"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:30 +0000 (03:11 -0800)]
Merge "defconfig: msm8998: enable kaslr support"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:29 +0000 (03:11 -0800)]
Merge "msm: rmnet_ipa: do not release resource on pending data"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:28 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: enable 180deg panel orientation for msm8998 QRD device"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:28 +0000 (03:11 -0800)]
Merge "msm: ipa3: changes to suspend/disable for WDI 2"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:27 +0000 (03:11 -0800)]
Merge "usb: diag: Set interface protocol to represent diag"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:26 +0000 (03:11 -0800)]
Merge "msm: ipa3: fix freeze vote for SSR"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:25 +0000 (03:11 -0800)]
Merge "bluetooth: Fix free data pointer routine"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:13 +0000 (03:11 -0800)]
Merge "regulator: gfx-ldo: Add GFX LDO support for sdm630"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:12 +0000 (03:11 -0800)]
Merge "Revert "usb: xhci: Set interrupt moderation for host mode to 4000(1ms)""
Linux Build Service Account [Thu, 9 Feb 2017 11:11:11 +0000 (03:11 -0800)]
Merge "stm: laser: STM laser sensor driver."
Linux Build Service Account [Thu, 9 Feb 2017 11:11:10 +0000 (03:11 -0800)]
Merge "ARM: dts: msm: Fix VBIF QOS entries in SDM660, 8998"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:09 +0000 (03:11 -0800)]
Merge "mmc: sdhci-msm: Provide module/cmdline parameter for disabling cmdq"
Linux Build Service Account [Thu, 9 Feb 2017 11:11:08 +0000 (03:11 -0800)]
Merge "msm: ADSPRPC: Buffer length to be copied is truncated"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:24 +0000 (17:48 -0800)]
Merge "ARM: dts: msm: Add slimbus slave device for wcn3990 on sdm630"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:23 +0000 (17:48 -0800)]
Merge "ARM: dts: msm: update wcn3990 wlan module device node for APQ8998"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:22 +0000 (17:48 -0800)]
Merge "arm64: gettimeofday change for timer rollover condition"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:22 +0000 (17:48 -0800)]
Merge "msm: isp: enable stream clk separately"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:21 +0000 (17:48 -0800)]
Merge "ARM: dts: msm: Update camera clock sources for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:20 +0000 (17:48 -0800)]
Merge "msm: thermal: update LMH DCVSh even when cores are offline"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:19 +0000 (17:48 -0800)]
Merge "qseecom: add additonal reentrancy check before scm call"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:19 +0000 (17:48 -0800)]
Merge "sched: fix bug in auto adjustment of group upmigrate/downmigrate"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:18 +0000 (17:48 -0800)]
Merge "Use after free from pid_nr_ns()"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:17 +0000 (17:48 -0800)]
Merge "msm: kgsl: Add support for A508 GPU on SDM630"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:16 +0000 (17:48 -0800)]
Merge "ice: fix issue with losing ICE key configuration during reset"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:15 +0000 (17:48 -0800)]
Merge "ARM: dts: msm: Update MEM ACC corner mapping for APC0/1 for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:14 +0000 (17:48 -0800)]
Merge "regulator: cpr4: null terminate of_match_table"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:09 +0000 (17:48 -0800)]
Merge "defconfig: enable CONFIG_FREE_PAGES_RDONLY for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:08 +0000 (17:48 -0800)]
Merge "arm: mm: add missing pieces for CONFIG_FREE_PAGES_RDONLY"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:08 +0000 (17:48 -0800)]
Merge "defconfig: Align sdm660 arm32 defconfig with arm64"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:07 +0000 (17:48 -0800)]
Merge "arm: mm: program ptes for access restriction"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:06 +0000 (17:48 -0800)]
Merge "ARM: dts: msm: Add bluetooth node of wcn3990 for sdm630"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:06 +0000 (17:48 -0800)]
Merge "USB: u_data_ipa: Fix pm_runtime usage count in case of error"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:05 +0000 (17:48 -0800)]
Merge "defconfig: msm: enable SCHED_AUTOGROUP for sdm660"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:04 +0000 (17:48 -0800)]
Merge "qcom-charger: smb2: fix kernel log flooding by charger driver"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:03 +0000 (17:48 -0800)]
Merge "msm: mdss: Correct video interface setup for AVR feature"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:03 +0000 (17:48 -0800)]
Merge "msm: ext_display: update hpd and notify for HDMI"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:01 +0000 (17:48 -0800)]
Merge "msm: mdss: fix mdp vbif qos priorities"
Linux Build Service Account [Thu, 9 Feb 2017 01:48:00 +0000 (17:48 -0800)]
Merge "msm: mdss: Skip ping pong wait when panel is reported dead"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:59 +0000 (17:47 -0800)]
Merge "power: supply: qcom: fix OTG soft start failure with higher capacitance"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:59 +0000 (17:47 -0800)]
Merge "ARM: dts: msm: update nt35597 truly panel init sequence"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:58 +0000 (17:47 -0800)]
Merge "icnss: After recovery probe if not done already"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:53 +0000 (17:47 -0800)]
Merge "ARM: dts: msm: update truly fhd panel init sequence"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:45 +0000 (17:47 -0800)]
Merge "regulator: qpnp-oledb-regulator: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:45 +0000 (17:47 -0800)]
Merge "regulator: qpnp-lcdb-regulator: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:44 +0000 (17:47 -0800)]
Merge "regulator: qpnp-labibb-regulator: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:44 +0000 (17:47 -0800)]
Merge "leds: leds-qpnp-wled: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:43 +0000 (17:47 -0800)]
Merge "leds: leds-qpnp-flash-v2: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:42 +0000 (17:47 -0800)]
Merge "leds: leds-qpnp-flash: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:42 +0000 (17:47 -0800)]
Merge "leds: leds-qpnp: correct various coding style issues"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:41 +0000 (17:47 -0800)]
Merge "qcom: qnovo: Fix QNOVO IADC_OFFSET, STRM_CTRL and PPCNT settings"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:40 +0000 (17:47 -0800)]
Merge "ARM: dts: msm: Configure PMI8998 GPIO6 for discharge FET ctrl signal"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:40 +0000 (17:47 -0800)]
Merge "ARM: dts: msm: update the DT properties for display port on SDM660"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:34 +0000 (17:47 -0800)]
Merge "iio: qcom-tadc: set all threshold comparators directions"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:31 +0000 (17:47 -0800)]
Merge "net: support __alloc_skb to always use GFP_DMA"
Linux Build Service Account [Thu, 9 Feb 2017 01:47:30 +0000 (17:47 -0800)]
Merge "msm: ADSPRPC: Check for buffer overflow condition"
Deepak Katragadda [Tue, 31 Jan 2017 23:42:48 +0000 (15:42 -0800)]
clk: msm: clock-mmss-8998: Park the MMNOC AHB RCG at XO when its disabled
To avoid running into issues with the MMNOC RCG being enabled due
to an enable request from a non-linux entity whilst the linux code
has disabled its parents, park the RCG at CXO when its disabled.
Change-Id: Ib55bb7a202736a207bb8cb94c20b5030af5bea49
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Ram Chandrasekar [Wed, 8 Feb 2017 19:05:32 +0000 (12:05 -0700)]
msm: thermal: update LMH DCVSh even when cores are offline
KTM right now won't update the mitigation frequency cap to LMH DCVSh if
all the cores in a cluster are offline. It will notify the LMH DCVSh
when at least one core is online. Due to race condition, there is a
possibility that this update can be missed or cores will be running
unmitigated for a short duration after being online.
LMH DCVSh hardware can accept the frequency cap even when the cores are
offline and apply the cap later when the cores are brought back online.
So in KTM update the LMH DCVSh hardware, even if the cores are offline
to avoid any race condition.
Change-Id: Idc04c35a9c5de66cfd8edb4150106ed65f9f4bf1
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Prasad Sodagudi [Wed, 18 Jan 2017 18:44:41 +0000 (10:44 -0800)]
arm64: gettimeofday change for timer rollover condition
Adding a check in gettimeofday api for timer rollover
condition.
Change-Id: I50c36e5983f05700e49987f6e24c1b17f38a9e1f
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Rajesh Kemisetti [Mon, 6 Feb 2017 04:07:00 +0000 (09:37 +0530)]
msm: kgsl: Add support for A508 GPU on SDM630
Add new GPU ID: A508 and corresponding VBIF and initial
settings on SDM630.
Change-Id: If1cd782beb50098a69a9d05acb083ef4b0465766
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
Andrey Markovytch [Wed, 8 Feb 2017 12:32:22 +0000 (14:32 +0200)]
ice: fix issue with losing ICE key configuration during reset
TZ is called to restore key configuration in case of UFS reset
Change-Id: Id434e7f9ec6befdce97f52fd350957b66adcb15f
Signed-off-by: Andrey Markovytch <andreym@codeaurora.org>
Neeraj Upadhyay [Wed, 8 Feb 2017 11:04:20 +0000 (16:34 +0530)]
regulator: cpr4: null terminate of_match_table
Null terminate cpr4_mmss_regulator_match_table with
'{}', to fix the error reported from KASAN.
Change-Id: Ib991fe5ce57e9e12132c3c836e1e807cb0afad22
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>