Commit graph

568957 commits

Author SHA1 Message Date
Christoph Lameter
8fcc9882c3 vmstat: make vmstat_updater deferrable again and shut down on idle
Currently the vmstat updater is not deferrable as a result of commit
ba4877b9ca ("vmstat: do not use deferrable delayed work for
vmstat_update").  This in turn can cause multiple interruptions of the
applications because the vmstat updater may run at

Make vmstate_update deferrable again and provide a function that folds
the differentials when the processor is going to idle mode thus
addressing the issue of the above commit in a clean way.

Note that the shepherd thread will continue scanning the differentials
from another processor and will reenable the vmstat workers if it
detects any changes.

Change-Id: Idf256cfacb40b4dc8dbb6795cf06b34e8fec7a06
Fixes: ba4877b9ca ("vmstat: do not use deferrable delayed work for vmstat_update")
Signed-off-by: Christoph Lameter <cl@linux.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Git-commit: 0eb77e9880321915322d42913c3b53241739c8aa
[shashim@codeaurora.org: resolve minor merge conflicts]
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
[satyap: resolve trivial merge conflicts]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2016-03-23 21:22:14 -07:00
Venkatesh Yadav Abbarapu
8135ca2fb5 arm: topology: Add support for topology DT bindings
Add support for parsing the explicit topology bindings to discover the
topology of the system.

Change-Id: I7f8a62d243fe1452408ab696ea2714aaa5b929eb
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
[satyap: resolve trivial merge conflicts]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2016-03-23 21:22:13 -07:00
Prasad Sodagudi
4c99028e31 defconfig: arm64: Disable DEVMEM and DEVKMEM for couple of SoCs
testDevMemSane & testDevkmemSane test cases are introduced
in latest Android-6.0 version of CTS. These testcases expect
mem and kmem nodes should not be present in /dev.
So disable DEVMEM and DEVKMEM flags in msm*_defconfig files.

Change-Id: I607e59f6fcb4a6d0d76ffb7e9a42adf8f79e76f1
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
[satyap: trivial merge conflict resolution & updated commit text
         to reflect the changes]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2016-03-23 21:22:12 -07:00
Neil Leeder
38dccacd2b perf: replace cpu_up/down with device_online/offline
The cpu_up/down calls do not update userspace cpu
online information accurately. Use the device_on/offline
API to correct this.

Change-Id: I97ab55f4f917bd9cbb31dd89785eecdbe4d2f9ca
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
[satyap: merge conflict resolution and move changes in
         arch/arm64/kernel/perf_event.c to drivers/perf/arm_pmu.c
         to align with kernel 4.4]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2016-03-23 21:22:11 -07:00
Mahesh Sivasubramanian
1170e6d78b drivers: cpuidle: lpm-levels: Remove ktime_get from suspend path
The sleep time for suspend is accounted as a part of suspend_prepare and
suspend wake call backs. Moreover the timekeeping framework is suspended
before suspend_enter calls, which causes a warning when called from within
the suspend_enter function.

Remove ktime_get() calls from within the lpm_suspend_enter() callbacks.

Change-Id: Ifff59b5caa387c603719d42a22559da6e97fdd9e
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Signed-off-by: Srinivas Rao L <lsrao@codeaurora.org>
2016-03-23 21:22:11 -07:00
Taniya Das
5bfe822bd0 cpuidle: lpm-levels: Fix NULL pointer exception at lpm_get_latency
In cases where client driver would call the API lpm_get_latency before the
lpm_root_node is initialized, would result in a NULL pointer exception. Fix
the same by moving the node check before.

CRs-Fixed: 973895
Change-Id: Ib2c7257bb7289f68d2bcb621ad311ceefe88a5f3
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2016-03-23 21:22:10 -07:00
Srinivas Rao L
99d535fc95 cpuidle: lpm-levels: Add API to get low power mode latency
Add API to get latency for a low power mode with particular
affinity level and reset level. Reset level is level at which
only control logic power collpase happen or both control and
memory logic power collapse happen or Retention state.

The API returns the minum latency out of all clusters in the
particular affinity level and reset level if cluster name is
not passed or the latency of the specific cluster for which
the cluster name is passed.

Change-Id: I2facd9a1fa2dba7e7103d65544537799bd8ba518
Signed-off-by: Srinivas Rao L <lsrao@codeaurora.org>

Conflicts:
	arch/arm/boot/dts/qcom/mdm9607-pm.dtsi
	arch/arm/boot/dts/qcom/mdm9640-pm.dtsi
	arch/arm/boot/dts/qcom/mdmcalifornium-pm.dtsi
	arch/arm/boot/dts/qcom/msm8909-pm8909-pm.dtsi
	arch/arm/boot/dts/qcom/msm8909-pm8916-pm.dtsi
	arch/arm/boot/dts/qcom/msm8937-pm.dtsi
	arch/arm/boot/dts/qcom/msm8952-pm.dtsi
	arch/arm/boot/dts/qcom/msmgold-pm.dtsi
	arch/arm/boot/dts/qcom/msmtitanium-pm.dtsi
2016-03-23 21:22:09 -07:00
Archana Sathyakumar
8804d58937 lpm-stats: Optimize stats path
Stats for cpu and cluster exit path query the ktime for every level and
this increases the overall idle exit latency. Get the timestamp only
once and use the same information to populate into different level.

Change-Id: Iece36015910fcb16bd04a25dae1bf0396ab463e2
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>

Conflicts:
	drivers/cpuidle/lpm-levels.c
	drivers/power/qcom/lpm-stats.c
2016-03-23 21:22:08 -07:00
Archana Sathyakumar
3aa15eecb7 lpm-levels: Add QCOM cpuidle governor
Currently framework uses menu as governor and the mode selection happens
again in lpm driver. Register QCOM cpuidle governor, use the mode
selected for cpu to enter and further select the mode for the cluster to
enter.

Change-Id: Ifa98c4c90859f70fb5406715b53c89276ac1a4f4
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>

Conflicts:
	drivers/cpuidle/lpm-levels.c
2016-03-23 21:22:07 -07:00
Sunkad, Anand Ningappa
2aed535390 wcnss: Access A2xb split timeout limit register
Dump A2xb split timeout limit register, while dumping pronto
register dumps during pronto subsystem restart. To check a2xb
split time out value configured.

CRs-fixed: 975027
Change-Id: I1480d23b14f26dad59a552293e38bad9916ef0e4
Signed-off-by: Sunkad, Anand Ningappa <asunka@codeaurora.org>
2016-03-23 21:22:06 -07:00
Yue Ma
d40de35913 defconfig: msm: Add WLAN related flags
Add the flags which are required to enable WLAN.

Signed-off-by: Yue Ma <yuem@codeaurora.org>
2016-03-23 21:22:06 -07:00
Yue Ma
e95b981cff cnss: Use correct regulator APIs for 4.4 kernel
In 4.4 kernel, regulator_set_optimum_mode() is replaced by
regulator_set_load(). Hence update it accordingly for CNSS
driver in 4.4 kernel to avoid compilation issue.

Signed-off-by: Yue Ma <yuem@codeaurora.org>
2016-03-23 21:22:05 -07:00
Jack Pham
3a490dd6eb usb: xhci: clean up command queue when halting
Calling usb_remove_hcd() on both of the xHCI HCDs may race with
hub_event() which executes on its own workqueue. When xhci_halt()
is called and stops the command ring, the hub thread may have
already issued a command such as xhci_configure_endpoint() and
is currently waiting for the command to complete while holding
the device lock. Meanwhile since the controller is already halted,
no events are expected to complete and the command timer will
continually timeout every 5 seconds and re-arm itself. Since the
completion for the command is never issued, the threads are
essentially deadlocked.

Avoid this situation when halting the controller by forcing the
command queue to be cleaned up.

Change-Id: I88150e3435b5f06e37e9881dddaeff4807c24cc9
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2016-03-23 21:22:04 -07:00
Manu Gautam
3d2c84e2f1 USB: f_fs: Disable USB LPM on bus_suspend with ADB
ADB function is mainly used for debugging, hence it is
not expected to allow USB LPM followed by system suspend
in device bus suspend. Driver also doesn't handle
usb_ep_dequeue failure in LPM when adbd is interrupted
by signal as buffer is left queued to the hardware after
usb_ep_dequeue failure and can cause memory corruption.

Change-Id: Ib89c80318dcdd0dbb35d122a2ab77fb61f83518e
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
2016-03-23 21:22:03 -07:00
Vijayavardhan Vennapusa
0ede2f03b1 USB: gadget: f_mtp: Update header length correctly in send_file_work
Whenever data is transmitted from device to Host PC, MTP daemon sitting
in userspace writes to mtp driver through ioctl, which eventually
calls send_file_work to send data. Currently header length is not updated
properly to reflect correct length in case data file size is greater
than 4GB. Due to this, Host PC throws error when file of size > 4GB is
copied from device to Host PC. Hence fix the issue by updating header
length to (2 ^ 32 - 1) if length is greater than 4GB.

CRs-Fixed: 953737
Change-Id: I3840afb63f365c28bf3638b13b728800bc2419f4
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2016-03-23 21:22:02 -07:00
Azhar Shaikh
9c8cd50d9d usb: xhci: Set interrupt moderation for host mode to 4000(1ms)
Higher value allows xhci core to moderate interrupts resulting
in fewer interrupts from xhci core. This results in lower CPU
utilization during peak throughput scenarios.

Change-Id: I69548fd9a1adff1b8eafee40c0f92639efd93b2e
Signed-off-by: Devdutt Patnaik <dpatnaik@codeaurora.org>
Signed-off-by: Azhar Shaikh <azhars@codeaurora.org>
2016-03-23 21:22:01 -07:00
Devdutt Patnaik
82b8bbead9 usb: xhci-plat: Add support to modify imod from sysfs
xhci allows interrupts to be moderated at 250ns interval;
provide an sysfs interface to modify interrupt rate from
userspace to understand throughput variation by changing imod.

Usage:
Below command will moderate interrupts at 1ms or (4000 * 250ns)
interval.
echo 4000 > /sys/devices/8a00000.ssusb/8a00000.dwc3/xhci-hcd.0.auto/
config_imod

Change-Id: I455d5a0f9a0314e86f711efd35315002b20f5343
Signed-off-by: Devdutt Patnaik <dpatnaik@codeaurora.org>
Signed-off-by: Azhar Shaikh <azhars@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2016-03-23 21:22:01 -07:00
Manu Gautam
2fe7dc7ee3 usb: gadget: audio: Don't attempt to close already closed files
Audio function driver (f_uac1.c) may call gaudio_cleanup back
to back without calling gaudio_setup. Handle this gracefully
by marking file pointer as NULL on file_close as gaudio_cleanup
routine already checks for NULL before file_close.

Change-Id: Ib6acb05578105d64cceaa766d0b0434d1a467c8f
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
2016-03-23 21:22:00 -07:00
Mayank Rana
6fd80f2987 usb: Remove DPDM pulsing functionality
This change removes DP DM pulsing functionality related support
from QUSB PHY driver as it is not required.

Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2016-03-23 21:21:59 -07:00
Jack Pham
9355dd60f5 usb: phy: qusb: Expose DP/DM operations as a regulator
Instead of having the controller driver call the PHY's DP/DM
properties on behalf of the charger driver to enable and disable
the regulator, allow the PHY to expose a regulator device.
The charger driver then obtains a handle to this regulator to
perform regulator enable and disable directly.

Change-Id: I266a8cffb4912c2eb6724d73b7ed8c87b83a9e80
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Azhar Shaikh <azhars@codeaurora.org>
2016-03-23 21:21:58 -07:00
Mayank Rana
bbd370a907 usb: gadget: diag: Fix NULL pointer crash by adding free_func
Configfs framework expects to have free_func() supported with each
registered USB function. This change adds free_func() functionality
and also frees diag_context as part of it, otherwise there would be
memory leak for each composition switch when performing composition
switch having USB DIAG interface.

Change-Id: I1311cfd5265bd468dc62b6735596afb7cf36a7d2
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2016-03-23 21:21:57 -07:00
Hareesh Gundu
4471a742cb msm: kgsl: Add NULL check for preemption_schedule call
preemption_schedule() is not implemented for A3xx targets.
Invoking this function without NULL check result into crash
in A3xx target. Fix this by adding a NULL check before invoking
the preemption_schedule().

Change-Id: Ic600235f149cade57fedc5454bdc0f6794c67bd9
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
2016-03-23 21:21:56 -07:00
Jordan Crouse
48a71a3164 msm: kgsl: Initialize coresight at boot time
Initialize coresight at boot time so that it is available to be
configured before the first open of /dev/kgsl-3d0 to get GPU
scan dumps during initial power up.

Change-Id: Ic0dedbadbda251f12855895cc0aa53852f79a8b8
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2016-03-23 21:21:55 -07:00
Himanshu Aggarwal
ed17546530 input: misc: hbtp-input: fix uninitialized usage of a variable
It is possible that 'error' variable is used uninitialized. This
change avoids usage of uninitialized usage of the variable.

CRs-fixed: 973871
Change-Id: Ibd6baf84473f2fe0e54bd04b0bbf9387307f97c1
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
2016-03-23 21:21:55 -07:00
Shantanu Jain
d7c55e40f1 input: misc: correct condition check for touch resolution
Correct if condition that checks the touch resolution of the
touch panel.

Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Change-Id: I925cfb306c5503efccc833117ff1753b2e2fcc6a
2016-03-23 21:21:54 -07:00
Shantanu Jain
ac34679e2d input: misc: add support for scaling X and Y touch co-ordinates
In certain situations, due to resolution mismatch, we may need to
scale up/down the X and Y co-ordinates returned by the touch controller.
Add support for the same where we scale up/down the X and Y touch
co-ordinates returned from the touch controller before sending it to
android. In such cases, we also need to ensure that the display resolution
matches the touch resolution. Add support for that as well.

Change-Id: Ia2dabf480478e26db1e1f0d92ca9ba5a252f18eb
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-03-23 21:21:53 -07:00
zhaoyuan
06ca994c43 input: synaptics: defer touch resume to workqueue
During device resume, the touch resume function is called after
display resume. Touch resume function will take about >200ms.
Defer the touch resume function to a workqueue to reduce the total
device resume time. An optional DT property is added to enable this
on targets that need this feature.

Change-Id: Ia9b055144c5a7f29f0f0d57428cccbe15a7d7a87
Signed-off-by: zhaoyuan <yzhao@codeaurora.org>
2016-03-23 21:21:52 -07:00
Himanshu Aggarwal
8370118f62 input: synaptics_dsx_i2c: pass correct QUP Instance to scm call
Pass the correct QUP instance to the scm call. This is required
for QUP ownership transfer to other subsystems to support the
secure touch usecase.

Change-Id: I3ff53544fc58db908669cddce155f786dde23c41
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
2016-03-23 21:21:51 -07:00
Mao Li
c91a3304c1 input: synaptics_dsx: enter touch LPM in suspend
S332U needs to pull down the reset pin after it enters onto
sleep mode to ensure the LPM is enabled.

Change-Id: Ia8d8c1e788eb7d3524df979ad2d9e17ee15c26f2
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-03-23 21:21:50 -07:00
Himanshu Aggarwal
549e2df905 input: synaptics_dsx_i2c: add support for QUP ownership transfer
Add support for QUP ownership transfer to other subsystems to
support the secure touch usecase.

Change-Id: I70fd5fb81ce8763095bcfa2feb71d9d806d14bd4
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
2016-03-23 21:21:50 -07:00
Himanshu Aggarwal
fadba675b3 leds: qpnp-wled: add support for configuring sc debounce cycles
Add support for configuring short circuit debounce cycles in
both LCD mode and AMOLED mode. Also, when configuring the
WLED SHORT_PROTECT register, the bits corresponding to DBNC_SHORT
bit fields are incorrectly written, so correct the corresponding
bitmask and the associated code logic to avoid this. Add an
explicit SPMI write to WLED1_CTRL_SOFTSTART_RAMP_DELAY register
as well for LCD mode.

Change-Id: Ibae8926262c52c8db3d04ab355651e5df44ec090
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-03-23 21:21:49 -07:00
Devesh Jhunjhunwala
ccdfa0f245 clk: msm: cobalt: Update the vdd-level-cobalt header file
Rename the vdd-level header file included from vdd-level-californium
to vdd-level-cobalt, which is the correct name. Also update the
header file to include the FMAX mappings needed for the cobalt
GPUCC driver.

Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
2016-03-23 21:21:48 -07:00
Trilok Soni
e1ef9e8d79 arm64: cputype: Add Kryo2xx series of the Gold and Silver CPU parts
Add part numbers for Kryo2xx seriels of Gold and Silver CPUs.

CRs-Fixed: 969563
Change-Id: I11d2e09483075f2496415cb64fb16d2f599f9f7f
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
2016-03-23 21:21:47 -07:00
David Keitel
3967f5a43f thermal: tsens: use cvt timer.
Linux Kernel 4.4 enforces the use of cvt timers in kernel and userspace.

Fix this in the tsens driver.

Signed-off-by: David Keitel <dkeitel@codeaurora.org>
2016-03-23 21:21:46 -07:00
David Collins
2d3e6e3581 clk: msm: clock-cpu-8996: round clock rates to nearest fmax frequency
Modify the round_rate() callback function so that it selects
the nearest configured fmax frequency instead of the closest
possible supported frequency of the parent clock.  This ensures
that clk_round_rate() always returns power efficient frequencies
for 8996 CPU clocks.

Change-Id: Icc27ba64b9c8af74ee0f81443fea37c4564b9f94
CRs-Fixed: 981475
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:21:45 -07:00
David Collins
1d747bf7cc ARM: dts: msm: allow VDD_GFX CPR open-loop aging adjustment for msm8996pro
Allow the VDD_GFX CPR open-loop voltage to be adjusted based
upon aging measurements.  This ensures that the closed-loop
voltage has room to increase as necessary.

Change-Id: I7ae8a4f90628f36f5e6164d18a4457552a20a8a1
CRs-Fixed: 949622
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:21:45 -07:00
David Collins
490d9655ec ARM: dts: msm: allow VDD_APCC CPR open-loop aging adjustment for msm8996pro
Allow the VDD_APCC CPR open-loop voltage to be adjusted based
upon aging measurements.  This ensures that the closed-loop
voltage has room to increase as necessary.

Change-Id: I84d5d434cac039b3fbf7f476939de1c968b519a4
CRs-Fixed: 949622
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:21:44 -07:00
David Collins
2bcf1c1105 regulator: cpr3-regulator: add support for corners above max fuse corner
Add support for fuse corner to corner mappings in which the
highest fuse corner is mapped to a corner lower than the
highest corner.  This can be used to define a corner which has
a constant voltage offset above the highest fuse corner but which
does not impact interpolation for the lower corners.

Change-Id: Ie41522cb06ca81898f58458694067a567f608df0
CRs-Fixed: 981475
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:21:43 -07:00
Osvaldo Banuelos
003e30879c regulator: kryo-regulator: fix APCC_PGS_RET_STATUS polling logic
It is only necessary to poll the power gate retention status register
when disallowing LDO retention mode. Once the power control override
register is cleared, any power domain is allowed to utilize LDO
retention. Therefore, polling of APCC_PGS_RET_STATUS must only be done
when VDD_APCC is scaled below retention voltage plus LDO headroom
voltage and the voltage is not sufficient to safely support power
domains using LDO retention.

Change-Id: I6578a75167ee4174be6ff8f1895d2d86d2ae8d76
CRs-Fixed: 980775
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-03-23 21:21:42 -07:00
Ashay Jaiswal
7d7d9def44 gpio: qpnp-pin: Fix out of bound shift
UBSAN: Undefined behaviour in drivers/gpio/qpnp-pin.c:664:6
shift exponent -1 is negative
Call trace:
[<ffffffc00008ad5c>] dump_backtrace+0x0/0x1a4
[<ffffffc00008af10>] show_stack+0x10/0x1c
[<ffffffc00142ed60>] dump_stack+0x7c/0xe8
[<ffffffc0005282d0>] ubsan_epilogue+0x10/0x54
[<ffffffc000528cec>] __ubsan_handle_shift_out_of_bounds+0x12c/0x160
[<ffffffc000545b78>] _qpnp_pin_config+0x65c/0x920
[<ffffffc000546b00>] qpnp_pin_probe+0xb14/0xc44

Add check for valid dtest-line before configuring the gpio.

CRs-Fixed: 981729
Change-Id: I26c6edcd26da9cfbbf2859bf9d93477f5cb1b4f5
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
2016-03-23 21:21:41 -07:00
Rusty Russell
606471708a modules: fix longstanding /proc/kallsyms vs module insertion race.
For CONFIG_KALLSYMS, we keep two symbol tables and two string tables.
There's one full copy, marked SHF_ALLOC and laid out at the end of the
module's init section.  There's also a cut-down version that only
contains core symbols and strings, and lives in the module's core
section.

After module init (and before we free the module memory), we switch
the mod->symtab, mod->num_symtab and mod->strtab to point to the core
versions.  We do this under the module_mutex.

However, kallsyms doesn't take the module_mutex: it uses
preempt_disable() and rcu tricks to walk through the modules, because
it's used in the oops path.  It's also used in /proc/kallsyms.
There's nothing atomic about the change of these variables, so we can
get the old (larger!) num_symtab and the new symtab pointer; in fact
this is what I saw when trying to reproduce.

By grouping these variables together, we can use a
carefully-dereferenced pointer to ensure we always get one or the
other (the free of the module init section is already done in an RCU
callback, so that's safe).  We allocate the init one at the end of the
module init section, and keep the core one inside the struct module
itself (it could also have been allocated at the end of the module
core, but that's probably overkill).

CRs-Fixed: 982779
Change-Id: I519f081967785e44a6ea33b16b1da64b14979963
Reported-by: Weilong Chen <chenweilong@huawei.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111541
Cc: stable@kernel.org
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Git-commit: 8244062ef1e54502ef55f54cced659913f244c3e
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[salvares@codeaurora.org: resolved context conflicts in module.c]
Signed-off-by: Sanrio Alvares <salvares@codeaurora.org>
2016-03-23 21:21:40 -07:00
Tony Truong
6890367336 msm: pcie: add support to panic on linkdown
Create a debugfs node for PCIe which users have the
option to panic on linkdown instead of trying to recover.

Change-Id: Iba485b7312e99ceaaf23997f766a23964670b2ff
Signed-off-by: Tony Truong <truong@codeaurora.org>
2016-03-23 21:21:39 -07:00
Tony Truong
d39183c782 msm: pcie: add support to toggle EP wakeirq
Create a debugfs node in PCIe bus driver so that users
can enable or disable EP wakeirq for each root complex.

Change-Id: I7940001453c08593f2940fda378341ae43ff5bad
Signed-off-by: Tony Truong <truong@codeaurora.org>
2016-03-23 21:21:39 -07:00
David Collins
2f785f3841 ARM: dts: msm: update the CPU devfreq mapping for msm8996pro
Update the devfreq CPU cluster to CBF clock frequency mapping
tables based upon characterization results.  This ensures that
minimum power is consumed for each CPU cluster frequency with
minimal performance impact.

Change-Id: If6ffd89f2faf3cd40dba3b7b09e38f46ac1007e9
CRs-Fixed: 980877
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:21:38 -07:00
Dhoat Harpal
f5aa8456ea Revert "soc: qcom: glink_smd_xprt: Fix race condition of open ack"
commit 347fe47cccb8
("soc: qcom: glink_smd_xprt: Fix race condition of open ack").

After SSR, GLINK_CTRL channel remains up, IPC router send open over
GLINK_CTRL channel. Then process_ctl_event process the ack sent by remote
side and add platform driver without notifyig glink core.Later
platform_driver get probed, the channel has opened and glink is notified
of only remote_open event. Therefore local state will never reach
LOCAL_OPENED.

glink core should be notified about open ack from precess_ctl_event on
receiving open ack event.

CRs-Fixed: 974508
Change-Id: Ibbed8e680246659af2c6b58d91a62b9ff805d43c
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
2016-03-23 21:21:37 -07:00
chiz
f87adb2565 msm: camera: isp: fix overflow during stop axi stream
In dual VFE case, VFE0 and VFE1 will have different behavior
during stoping pix stream. We should disable write master sync
to ensure both VFEs stop as expected.

Change-Id: Ib63b52a948e526e0d2518cb563a4fc4d67340d0f
Signed-off-by: chiz <chiz@codeaurora.org>
CRs-Fixed: 977856
2016-03-23 21:21:36 -07:00
Dhoat Harpal
77fe07b29f soc: qcom: ipc_router_glink_xprt: Fix intent request callback
G-Link driver notifies IPC Router about intent request events in atomic
context. IPC router is allocating from with GFP_KERNEL.

Allocate the memory from atomic pool with GFP_ATOMIC.

CRs-Fixed: 978562
Change-Id: I75a38a2765e06aa490f91a79e5fd5c83f3c12c23
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
2016-03-23 21:21:35 -07:00
Vijay kumar Tumati
4f956cf49f msm: camera: Fixing memory leak issues in camera stack
Adding memory free calls to during error conditions to
fix memory leaks in platform probe.

CRs-Fixed: 975003
Change-Id: I7ecd7586e8662eaa6ec020963831e08af424be18
Signed-off-by: Vijay kumar Tumati <vtumati@codeaurora.org>
2016-03-23 21:21:34 -07:00
Sanrio Alvares
e663ad89f8 trace, scm: trace scm calls
Create a scm group to enable profiling time spent in a scm call.
This will help determine which scm call is spending how much time in
a higher execution level.
To enable "echo 1 > /sys/kernel/debug/tracing/events/scm/enable".
It is disabled by default. If enabled, traces can be found in
Ftrace logs.

Ftrace Output Example:
PROCESS             CPU    TIME        SCM ID, X0, Number of args, args[0-2], X5, return values [0-2]
kworker/u8:4-329   [002]   128.201129: scm_call_start: func id=0x42000904 (args: 0x6, 0x2, 0x200000000, 0x65b8000000019, 0x142e0f000)
kworker/u8:4-329   [002]   128.201383: scm_call_end: ret: 0, 0, 0x4a07e00000001
kworker/u8:4-329   [002]   128.201464: scm_call_start: func id=0x42000904 (args: 0x6, 0x3, 0x1312d0000000000, 0x17900000000, 0x142e0f000)
kworker/u8:4-329   [002]   128.201542: scm_call_end: ret: 0x1bf03dddddd, 0x2f72656b726f776b, 0x343a32

CRs-Fixed: 969770
Change-Id: I4e5aaff796dbc9457c55fa529114dcb57780b7ec
Signed-off-by: Sanrio Alvares <salvares@codeaurora.org>
2016-03-23 21:21:34 -07:00
Shrenuj Bansal
e254088468 msm: kgsl: Add quirk for masking out hang detect signals
Add a quirk to mask out the RB 1-3 activity signals in the hang
detection logic. Set this quirk in the devicetree for 8996v2 and
v3.

CRs-Fixed: 978849
Change-Id: I63073b5973644453e775b41a9361de55d7933a07
Signed-off-by: Shrenuj Bansal <shrenujb@codeaurora.org>
2016-03-23 21:21:33 -07:00