Commit graph

577972 commits

Author SHA1 Message Date
Linux Build Service Account
0956d6dd49 Merge "clk: qcom: Add support for debugfs support" 2016-11-18 01:54:43 -08:00
Linux Build Service Account
5d4d0ab7a7 Merge "clk: Add support to allow client to print all enabled clocks" 2016-11-18 01:54:42 -08:00
Linux Build Service Account
29674d7418 Merge "scsi: ufs: enable auto hibern8 only after device initialization" 2016-11-18 01:54:41 -08:00
Linux Build Service Account
0f04e7c48a Merge "scsi: ufs: fix sleep in atomic context" 2016-11-18 01:54:40 -08:00
Linux Build Service Account
94410a85f4 Merge "phy: qcom-ufs: update ufs phy 1-lane settings" 2016-11-18 01:54:36 -08:00
Linux Build Service Account
bf1c2c6407 Merge "diag: Set the diag write buffers to busy state on channel close" 2016-11-18 01:54:35 -08:00
xiaonian
6e4116a679 ARM: dts: msm: change UFS/SDHC2 power supply for msmcobalt interposer QRD
Change the power supply for msmcobalt QRD interposer platform
to use regulators from pmfalcon.

CRs-Fixed: 1090535
Change-Id: Ib1fdb0454c6e1d770ea6ec11a6032f8553d56c06
Signed-off-by: xiaonian <xiaonian@codeaurora.org>
2016-11-18 16:55:53 +08:00
Ashish Garg
4f161b67ae ARM: dts: msm: enable mdss power supplies for falcon track3
Specify the regulators for mdss on falcon track3.

Change-Id: Ie828c8568ef09c89cff157d16d3cb322647b6f6e
Signed-off-by: Ashish Garg <ashigarg@codeaurora.org>
2016-11-18 10:16:41 +05:30
Anirudh Ghayal
323102d378 ARM: dts: msm: Add dummy regulator for LCDB bias
Add the LDO and NCP display +ve and -ve bias for LCD
display.

Change-Id: Ia85688854f26fe871d5c1253c2d51d75d84deb8f
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2016-11-18 10:15:22 +05:30
Chandana Kishori Chiluveru
291a7d133e ARM: dts: msm: Add support for USB device for msmfalcon and msmtriton
Add common dtsi file for msmfalcon and msmtriton. Also Add
device tree entry for super speed USB3 controller, super speed
phy and high speed phy.

Change-Id: I326eceeddff8e77d346c3365fa46cd539324451f
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
2016-11-17 19:53:16 -08:00
Jack Pham
d96857fbff usb: pd: Don't suspend charging unless changing voltages
To optimize charging during power negotiation and the voltage
is not changing, for example when transitioning from implicit
contract to the default 5V PDO, there is no requirement to
suspend the charging and hence setting the charger's
PROP_PD_CURRENT_MAX can be avoided. It is only needed when
changing voltages, in which case current limit should be
calculated based on pSnkStdby (2.5W), or when staying at the
same voltage and decreasing current.

Also fix the incorrect setting of PROP_CURRENT_MAX to
PROP_PD_CURRENT_MAX when doing a sink->source swap.

Change-Id: Ib53902459646e590df4dc7fcb00f833d5e8f41ed
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2016-11-17 15:42:35 -08:00
Siddartha Mohanadoss
1f2e772d9c iio: rradc: Update reading USBIN_V channel
Increase the refresh rate for the RRADC to support
reading refreshed USBIN voltage at a higher frequency.
To support the higher frequency at which the data
is refreshed enable continuous mode and force update
on reading every cycle on the USBIN_V trigger.
After reading the USBIN_V result set the RRADC to non
continuous mode with default trigger setting.

Change-Id: I7e9ada5de1f619c6a34a4b2e1764f5e908564ce5
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
2016-11-17 15:08:05 -08:00
Yuanyuan Liu
c576ff4ddf icnss: Reset mpm_wcssaon_config bits before top level reset
Clear mpm_wcssaon_config bits before top level reset.
If those bits are non-zero during WLAN is enabled,
there could be random failures.

CRs-Fixed: 1086372
Change-Id: Ia03380dfa4852c80fedb38f3c79f55d8d1a9a7f6
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
2016-11-17 14:01:08 -08:00
Harry Yang
fbff4fcc80 qcom-charger: smb2: Disable try.SINK mode in the probe
Currently we disable try.SINK right before pd becomes active and
re-enable it right after inactive. This breaks typec compliance.

To fix it, disable try.SINK mode in the probe and never enable it.

Change-Id: I61523188f45daca026b90943c845b43a8327f51e
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2016-11-17 13:28:59 -08:00
Harry Yang
73337d532d qcom-charger: Change usb_icl votable for PD vote
Currently there is an issue introduced by forcing the results of
the icl_votable while pd is active. icl_votable is a min voter
and since the DEFAULT_VOTER votes 1.5Amps that becomes the max
one could draw when pd is active. This is incorrect and hence the
issue.

Note that DEFAULT_VOTER is only needed while DCP is present.

So, to fix it, rename DEFAULT_VOTER to DCP_VOTER and make DCP_VOTER
unvote and vote when pd_active is set and unset respectively.

CRs-Fixed: 1091477
Change-Id: I7435f05f20e12a7704ae5d9597b5cdc9b5a61d00
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2016-11-17 13:28:58 -08:00
Amar Singhal
1a8e292bce msm: wlan: update regulatory database
Incorporate the 2016-10-31 updates to the internal regulatory
database. Update countries Bahrain, Belize, Chile, Egypt, Honduras,
India, S Korea, Nepal, Panama, Russia, Senegal, TT and UAE. Also
update St. Kitts&Navis and St. Lucia dfs region.

Change-Id: Ia151b2dd5229f07790ac961af298305b24e098fb
CRs-Fixed: 1091511
Signed-off-by: Amar Singhal <asinghal@codeaurora.org>
2016-11-17 12:19:51 -08:00
Linux Build Service Account
d52c401860 Merge "leds: qpnp-wled: Add support to configure AUTO_GM settings" 2016-11-17 10:08:45 -08:00
Linux Build Service Account
a2f4ac784a Merge "tcp: take care of truncations done by sk_filter()" 2016-11-17 10:08:44 -08:00
Linux Build Service Account
5b00a91adb Merge "scsi: ufs: handle LINERESET during hibern8" 2016-11-17 10:08:43 -08:00
Linux Build Service Account
a1008bfb76 Merge "scsi: ufs-qcom: update clock scaling sequence" 2016-11-17 10:08:42 -08:00
Linux Build Service Account
64f717aeaa Merge "ARM: dts: msm: ensure contiguous MSI for PCIe on msmcobalt" 2016-11-17 10:08:41 -08:00
Linux Build Service Account
b953b336af Merge "driver: thermal: msm_thermal: Enable Reliability algorithm" 2016-11-17 10:08:40 -08:00
Linux Build Service Account
3c8d77bac1 Merge "leds: qpnp-flash: Fix the mask in the flash prepare API" 2016-11-17 10:08:40 -08:00
Linux Build Service Account
37d58e6c59 Merge "leds: qpnp-flash-v2: change from dev_*() to pr_*() for logging" 2016-11-17 10:08:38 -08:00
Linux Build Service Account
a1716776fd Merge "leds: qpnp-flash-v2: Add support for configuring OTST thresholds" 2016-11-17 10:08:38 -08:00
Linux Build Service Account
f645e3ce31 Merge "leds: qpnp-flash-v2: Add support for thermal derate features" 2016-11-17 10:08:37 -08:00
Linux Build Service Account
a58828453e Merge "msm: kgsl: preserve ISENSE registers across GPU power collapse" 2016-11-17 10:08:36 -08:00
Linux Build Service Account
f01a84f38a Merge "scsi: ufs: error out all issued requests after shutdown" 2016-11-17 10:08:33 -08:00
Dhoat Harpal
3c251aca90 soc: qcom: smem: Redesign smem memory architecture
Smem uses static array to store legacy partition information.
New comm partition is used to replace existing legacy partition.

CRs-Fixed: 1074985
Change-Id: Ib2268181a617c23d62b5b6f857be5327113b2a67
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
2016-11-17 18:12:58 +05:30
Fenglin Wu
877c99e11d ARM: dts: msm: Enable auto GM for WLED in pmicobalt
Enable auto GM for WLED module in pmicobalt to make LOOP_GM adaptively
changes with brightness change.

CRs-Fixed: 1081738
Change-Id: I10a788726358c56df9bfe11f2332e3823d7cd332
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
2016-11-17 03:43:49 -08:00
Fenglin Wu
596b431a5f leds: qpnp-wled: Add support to configure auto PFM for pmicobalt
The WLED boost controller in pmicobalt supports auto PFM mode when
LCD mode is selected. Auto PFM mode is enabled by default except
on some specific hardware versions. Add a property to specify
AUTO_PFM_THRESHOLD for the boost controller so that it can enter
PFM mode when the adaptive headroom voltage falls below the
threshold.

CRs-Fixed: 1081738
Change-Id: I964b3452d0cdb3618b4ab446655ae75fa3a1049d
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
2016-11-17 19:38:14 +08:00
Linux Build Service Account
4b1c2e228c Merge "leds: qpnp-wled: Add support to configure VREF_CONTROL for pmicobalt" 2016-11-17 02:22:35 -08:00
Linux Build Service Account
15c0f0e20c Merge "msm: cpp: Use the src clock node to read the cpp src clock rate" 2016-11-17 02:22:34 -08:00
Linux Build Service Account
f60b2ad20f Merge "ARM: dts: msm: Add cpp src clock rates configuration for msmcobalt" 2016-11-17 02:22:33 -08:00
Padmanabhan Komanduru
316ea48ad6 Revert "defconfig: msm: avoid compilation of MDSS DP driver for 32-bit msmfalcon"
This reverts 'commit d3c76b29e6 ("defconfig: msm: avoid compilation
of MDSS DP driver for 32-bit msmfalcon")'. The compilation of MDSS DP
driver was disabled for 32-bit msmfalcon earlier to avoid compilation
issues. The related issues are now resolved. Hence, enable back the
compilation of DP driver.

Change-Id: I9f928f0aad6af346de43965755beb039e422047a
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2016-11-17 13:57:01 +05:30
Laxminath Kasam
f88f90a547 ASoC: msm: Fix sound card registration failure
In external codec machine driver, register
SSR notifier after sound card register. Also,
add separate snd_soc_card variables for tavil
and tasha since same machine driver is used
for both codecs.

CRs-Fixed: 1083537
Change-Id: I73fc02b812f2e6694e2a6aa8bdad2381a5f19406
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-11-17 11:23:15 +05:30
Laxminath Kasam
1b29a217c2 ASoC: msm: Add support for USB/WCN/TDM Audio
Add required machine driver support for
USB Audio, BT, FM, TDM interfaces both
for internal and external codecs.

CRs-Fixed: 1083537
Change-Id: I3d2765535793d6ef9153cfcab4b44a9adad67e15
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-11-17 11:20:40 +05:30
Vijayavardhan Vennapusa
ce5504db5e ARM: dts: msm: Set USB core clock rate for USB2/USB3 for msm8996
Set required USB core clock rate for USB3 working across connect/
disconnect for msm8996. Else USB enumeration fails after reconnection
due to this invalid clock rate setting for USB core clock. Also
set USB core clock rate for USB2 controller as well.

Change-Id: I6ce48512df5973bf8a2a3081a3a6f8759aeb499f
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2016-11-17 11:05:55 +05:30
Venkatesh Yadav Abbarapu
bc98f9fc6d ARM: dts: msm: Update the console uart gpios for msmfalcon
Updating the debug uart BLSP1UART2 gpios as per the latest
hardware definitions.

Change-Id: I9cda84d1c199b72ce8b9e2997601bcc7430ddbf3
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
2016-11-17 10:25:59 +05:30
Venkatesh Yadav Abbarapu
640d5e9d1d pinctrl: qcom: msmfalcon: Update gpios as per latest gpio map
UART and SPI gpios are changed as per latest hardware definitions,
so updating them.

Change-Id: I0e06be169edc2eb1d35ef7fc6c41ff1809aebd03
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
2016-11-17 10:20:54 +05:30
Venkatesh Yadav Abbarapu
e1fa9af20b ARM: dts: msm: Add gladiator support on msmfalcon and msmtriton
Enable the support for gladiator error reporting. Also enable
the gladiator hang detect feature.

Change-Id: I7220ad565212c325514301e4c59415b807deb99a
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
2016-11-17 10:07:52 +05:30
Linux Build Service Account
0579bfa116 Merge "icnss: Update WLFW header file to the latest and add fw_build_id" 2016-11-16 18:17:04 -08:00
Linux Build Service Account
4e2587d3f5 Merge "icnss: Collect ramdump from MSA memory space" 2016-11-16 18:17:03 -08:00
Linux Build Service Account
761768049f Merge "msm: sde: Fix SDE rotator context list locking" 2016-11-16 18:17:02 -08:00
Syed Rameez Mustafa
30fc774235 sched/hmp: Enhance co-location and scheduler boost features
The recent introduction of the schedtune cgroup controller has provided
the scheduler with added flexibility in terms of some of it's placement
features. In particular each cgroup under the schedtune controller can
now specify:

1) Whether it needs co-location along with other cgroups
2) Whether it is eligible for scheduler boost (sched_boost_enabled)
3) Whether the kernel can override the boost eligibility when necessary
   (sched_boost_no_override)

The scheduler now creates a reserved co-location group at boot. This
group is used to co-locate all tasks that form part of any one of the
cgroups that have co-location enabled. This reserved group can neither
be destroyed nor reused for other purposes. Furthermore, cgroups are
only allowed to indicate their co-location preference once at boot.
Further updates are disallowed.

Since we are now creating co-location groups for an extended period of
time, there are a few other factors to consider when determining the
preferred cluster for the group. We first exclude any tasks in the
group that have not been observed to be running for a significant
amount of time. Secondly we introduce the notion of group up and down
migrate tunables to allow different migration policies than individual
tasks. Lastly we break co-location if a single task in a group exceeds
up-migrate but the total load of the group does not exceed group
up-migrate.

In terms of sched_boost, the scheduler now supports multiple types of
boost. These are:

1) FULL_THROTTLE : Force up-migrate tasks belonging any cgroup that
                   has the sched_boost_enabled flag turned on. Little
                   CPUs will only be used when big CPUs can no longer
                   accommodate tasks. Also up-migrate all RT tasks.

2) CONSERVATIVE : Override the sched_boost_enabled flag for all cgroups
                  except those that have the sched_boost_no_override
                  flag set. Force up-migrate all tasks belonging to only
                  those cgroups that still remain eligible for boost.
                  RT tasks do not get force up migrated.

3) RESTRAINED : Start frequency aggregation for co-located tasks. This
                type of boost does not force up-migrate any task.

Finally the boost API removes ref-counting. This means that there can
only be a single entity using boost at any given time. If multiple
entities are managing boost, they are required to be well behaved so
that they don't interfere with one another. Even for a single client,
it is not possible to switch directly from one boost type to another.
Boost must be first turned off before switching over to a new type.

Change-Id: I8d224a70cbef162f27078b62b73acaa22670861d
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
2016-11-16 17:57:56 -08:00
Joonwoo Park
fd5b530593 sched: revise boost logic when boost_type is SCHED_BOOST_ON_BIG
At present HMP scheduler boost tends to pack tasks by taking into
account of power cost and cstate.  This is suboptimal to performance
as it can lead preemption and higher latency.

Revise logic to prefer the least loaded CPU among the big cluster CPUs
when boost type is SCHED_BOOST_ON_BIG.  New logic still honor the
behaviour that scheduler can place tasks on the little CPUs when the
big CPUs are all overcommitted.

Also, it's found that need_idle with boost can easily return previous
CPU when there is no idle CPU found.  Fix this issue by making
need_idle flag to take precedence over sched_boost.

CRs-fixed: 1074879
Change-Id: I470bcd0588e038b4a540d337fe6a412f2fa74920
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
2016-11-16 17:57:55 -08:00
Syed Rameez Mustafa
8b74c7eb5f sched: Remove thread group iteration from colocation
Iterating a leader task's thread group in order to add them to a
colocation group involves a complex locking chain that ends up
causing a deadlock. The deadlock is as follows when the same task
is being referenced on three different CPUs:

-----                     ------                      -----
CPU 0                     CPU 1                       CPU 2
-----                     ------                      -----
                          add_task_to_group(p)

__schedule(prev = p)      write_lock(                 ttwu(p)
                          related_thread_grp_lock)
                                                      lock(pi_lock)

idle_balance()                                        wait for
                                                      p->on_cpu
load_balance()            unable to acquire
                          p->pi_lock
send_notification()

wait for read_lock(
related_thread_grp_lock)

unable to set p->on_cpu

There are a couple of ways to resolve this deadlock in the kernel,
however, they are not trivial. For the sake of simplicity, move
the responsibility of thread group iteration back to userspace. This
would apply to both adding and removing the leader task from a
colocation group. The kernel would continue to automatically add
newly forked children of the colocated leader to the colocation
group.

This still leaves an issue with the locking order of the pi_lock and
the related_thread_group_lock. To solve all deadlocks, we need to avoid
taking the pi_lock in reset_all_task_stats() and instead rely on a more
heavy handed approach of taking all rq locks. The pi_lock was taken to
avoid a race between reset_all_task_stats() and sched_exit(). The race
can be avoided with rq locks as well.

Change-Id: I15323e3ef91401142d3841db59c18fd8fee753fd
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
2016-11-16 17:57:35 -08:00
Skylar Chang
76c28263ad msm: ipa3: linearize large skbs
IPA can support scatter-gather of skbs up to the size of the TLV fifo.
In case the skb has to many frags, IPA driver will linearize it.

Change-Id: I2f994ae0250ffc8f740ea633324815ae429c74be
CRs-Fixed: 1088658
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2016-11-16 17:30:04 -08:00
Hemant Kumar
7b553e1abd USB: Allow skipping device resume during system resume
This allows xHC to remain in low power mode and not
resume the bus when system wide resume happens.
Controller comes out of low power mode only when usb
device issues a remote wakeup or if there is a host
initiated bus resume.

Change-Id: I96cdcb9e3642906b4afa08d9bde07e123d9b3977
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2016-11-16 10:58:00 -08:00
Zhen Kong
268b994d27 qseecom: improve error checks in qseecom_probe()
Make change in qseecom_probe() to improve the error return value
checks on some subfunctions, and free memory allocated within
qseecom_retrieve_ce_data.

CRs-fixed: 1075082
Change-Id: I971e555ec8d02ccf4382e83132a696b065a8ff12
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
2016-11-16 10:21:28 -08:00