Age | Commit message (Collapse) | Author |
|
Fix race condition in MHI RmNet whereby the outbound
MHI ring could be empty while the network stack believes
it is full. This leads to a non recoverable data stall.
Add rwlock to ensure checks for full and empty conditions
are atomic.
CRs-Fixed: 733646
Change-Id: If54baa4be762a976d64213d0ec52e969f2497036
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
Reset the pending packets counter in UCI when a client releases
the character device node.
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Change-Id: Ic3d83873ae207e76acbb9f60683b43cb30ff7c5b
|
|
Resolve issue regarding BHI image load process.
Interface will no longer be published to userspace
before local initialization is complete.
Register masks and retry mechanism are also cleaned up.
Change-Id: I05d87d4be5e9c05c6beb2b7b0c0234757b93097d
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
Add the msmzirc device in the list of supported PCI devices
by the MHI driver to enable to PCIe framework to probe MHI
in the event of discovering this device on the bus.
CRs-Fixed: 736039
Change-Id: I66eb5f67885d60c579c33c47ce696d66c6c428b5
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
Remove the incorrect direct de-reference of device mapped
IO mememory and replace with kernel standard handlers.
CRs-Fixed: 728285
Change-Id: I0b3afe8a62369057b4a6b45b1a71bd9f5a52ce1d
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
Enable the MHI core driver for communication
between host and device using PCIe as an interconnect
and supporting MHI as the communication protocol.
The driver exposes several kernel space APIs
for use by other kernel entities to interface to
the PCIe device over MHI.
APIs for read and write and other notifications
are supported by this MHI driver.
Support for full power management and device reset
is also included.
CRs-Fixed: 689329
Change-Id: Ibc2fd7c2d5689001485f71b1133ada2c4ca236a9
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
Add MHI RmNet driver to support exposure of an
MHI device as a network interface to the Linux
networking stack.
The MHI channels are exposed as a standard network
interface which supports the NAPI framework.
IOCTLs for setting MTU/MRU and LPM are also enabled.
CRs-Fixed: 689329
Change-Id: I9540c78acccec35aff4ee4dc36241c6f08cdf04c
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
The MHI UCI driver exposes MHI core functionality to
userspace by means of device nodes.
The UCI driver exposes a device node for a pair of unidirectional
MHI channels.
The supported system calls on the device nodes are read, write,
select/poll and RS232 IOCTLs.
CRs-Fixed: 689329
Change-Id: Iceab97dba7c3bbb4eb7bf0c4ab0c1eac8c5417e9
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
|
|
When a deferrable work (INIT_DEFERRABLE_WORK, etc.) is queued via
queue_delayed_work() it's probably intended to run the work item on any
CPU that isn't idle. However, we queue the work to run at a later time
by starting a deferrable timer that binds to whatever CPU the work is
queued on which is same with queue_delayed_work_on(smp_processor_id())
effectively.
As a result WORK_CPU_UNBOUND work items aren't really cpu unbound now.
In fact this is perfectly fine with UP kernel and also won't affect much a
system without dyntick with SMP kernel too as every cpus run timers
periodically. But on SMP systems with dyntick current implementation leads
deferrable timers not very scalable because the timer's base which has
queued the deferrable timer won't wake up till next non-deferrable timer
expires even though there are possible other non idle cpus are running
which are able to run expired deferrable timers.
The deferrable work is a good example of the current implementation's
victim like below.
INIT_DEFERRABLE_WORK(&dwork, fn);
CPU 0 CPU 1
queue_delayed_work(wq, &dwork, HZ);
queue_delayed_work_on(WORK_CPU_UNBOUND);
...
__mod_timer() -> queues timer to the
current cpu's timer
base.
...
tick_nohz_idle_enter() -> cpu enters idle.
A second later
cpu 0 is now in idle. cpu 1 exits idle or wasn't in idle so
now it's in active but won't
cpu 0 won't wake up till next handle cpu unbound deferrable timer
non-deferrable timer expires. as it's in cpu 0's timer base.
To make all cpu unbound deferrable timers are scalable, introduce a common
timer base which is only for cpu unbound deferrable timers to make those
are indeed cpu unbound so that can be scheduled by tick_do_timer_cpu.
This common timer fixes scalability issue of delayed work and all other cpu
unbound deferrable timer using implementations.
Change-Id: I8b6c57d8b6445a76fa02a8cb598a8ef22aef7200
CC: Thomas Gleixner <tglx@linutronix.de>
CC: John Stultz <john.stultz@linaro.org>
CC: Tejun Heo <tj@kernel.org>
[joonwoop@codeaurora.org: timer->base replaced with CPU index so get
the deferrable timer wheel from lock_timer_base() instead of
do_init_timer().]
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
|
|
Enable Android recommended configurations for 8996 and msmcortex.
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
ADSP Loader is required for the audio probes and memlat governor
is crashing right now so we should keep it disabled for now.
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
Enable core control driver for different MSMs.
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
Different kernel version needs to use different kernel APIs for
hotplug. Add wrapper for CPU hotplug so that external module can be
used across different kernel releases.
Use device_online/offline() API for CPU hotplug.
Change-Id: Id21855f4ddc62bc9e9e6b45a856c245fd18d1514
Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
|
|
Add support functions for core control driver. Also introduce
Kconfig for enabling core control.
Change-Id: Ic127b6ed7d9450338883b13d9c42abfe49ff8b35
Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
[satyap: trivial merge conflict resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
IPA & Media headers need to go to userspace.
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
Some applications still include android_pmem.h although all the
functionality for it is gone from the kernel. Keep this header
file around until all such users have removed the include.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
[satyap: trivial merge conflict resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
Enable Android base options for the 8996 and msmcortex
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
of_flat_dt_get_machine_name() API is marked as __init so
machine_name should be made as an extern in-order to get
it accessed by the cpuinfo.c. In the earlier kernel revisions
the usage was restricted to the one file setup.c only and
due to which we didn't faced any issue.
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
This is necessary to support msm_rng functionality
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
|
|
Updated APIs used in msm_rng to be built on kernel version 4.4.
Acked-by: Shabnam Aboughadareh <shabnama@qti.qualcomm.com>
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
|
|
This snapshot is taken as of msm-3.18 commit e70ad0cd
(Promotion of kernel.lnx.3.18-151201.)
Acked-by: Shabnam Aboughadareh <shabnama@qti.qualcomm.com>
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
|
|
The perf event permission checks are necessary because they introduce
a security concern where one userspace task can monitor another task
and gain security related information. That concern doesn't exist for
kernel owned perf events since the kernel already has access to
everything. So, skip permission checks for kernel owned perf events.
Change-Id: I7121f5e03cf6ce8f0bfc9b5a69488efb80a97051
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
[satyap: trivial merge conflict resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
An incorrect pointer to the event was being passed, instead of
pointer to the remove event struct. Pass the correct pointer.
Change-Id: I7c35c5bb3a14d74a9b36c3d1dbd7af0bf80e7efe
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
|
|
Hotplug disables the pmu irq, but if counters are
running in the window before the CPU is hotplugged off
they can overflow and generate an interrupt. Because the
interrupt is disabled, this prevents the cpu from going
down.
Events are stopped during hotplug processing. However,
perf is hooked into the timer tick, and restarts enabled
events on every tick, even if they were stopped. Change
the event state to OFF to prevent this.
CPUs can still be power-collapsed while being hotplugged
off, but hotplug processing will save and restore the correct
state, so don't process power-collapse save/restore while
hotplug is in process.
Processing for stop reads the counters, so a separate call
is no longer needed. Start processing re-enables events so
the from_idle flag is not needed during pmu_enable.
Change-Id: I6a7f5b04955ebba8c4d76547f24e2be4071d7539
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>
|
|
Reset will overwrite registers written by
restore_pm_registers, so order the calls correctly.
Change-Id: I8210d61c2f4c2397efb2de801d94ed1d5aad480c
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>
|
|
PMU irq is disabled when a cpu is hotplugged off
and perf is running. Using cpu_pmu->active_events
to determine if the pmu is running left a window
where it is decremented to 0 in hw_perf_event_destroy,
and then armpmu_release_hardware is called. If a cpu
is hotplugged off in this window it may not disable
its irq. Use a separate flag which is not cleared
until after the irq is released by all online cpus.
The variable needs to be tristate because of the possibility
of a cpu being hotplugged in during this window. In that
case it should not enable its irq when the pmu is being
shut down. Having the GOING_DOWN state allows correct
behavior for cpus both going down and coming up.
Change-Id: I934ba5dec34e681ce8defd7fa7e311b4a2a92c1a
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>
|
|
Add notifiers for hotplug and power collapse in perf events.
Preserve counters and user enables across these events.
Disable and enable interrupts across events.
This allows perf-events to be used in an environment where
cores are power collapsing and being hotplugged.
Change-Id: Id27ac3b1c0733677e0bc9740ce7534c3e5fdac7c
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>
|
|
Add support for hotplugged cpu cores.
Change-Id: I0538ed67f1ad90bbd0510a7ba137cb6d1ad42172
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
[satyap: trivial merge conflict resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
While porting kryo CPU PMU driver to kernel 4.4, some functionality
got dropped unintentionally. This commit adds the dropped functionality
back. Also, update driver to be compliant to kernel 4.4.
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
|
|
Enable OPTIMIZE_FOR_SIZE for msmcobalt debug and perf.
defconfigs and also fix one of the warning in the
EDAC driver.
8996 defconfig is also auto-updated during the build.
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
Instead of #ifdef, use the IS_ENABLED() macro which correctly
handles if the Kconfig symbol is built-in (=y) or a module (=m).
Also add missing MODULE_LICENSE and MODULE_DESCRIPTION to
f_diag.c to allow building as a module.
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
|
To allow msm_iommu kernel test compilation, add a
iommu_unmap_range declaration and the corresponding stub
function.
Change-Id: If80918cc01afa7d0df2673f4e1962989af26f4bf
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
|
|
msm_iommu kernel test has a dependency on
include/linux/msm_iommu_domains.h header file.
Add a snapshot of this file to allow msm_iommu kernel test
compilation.
Change-Id: I2c9b634bdc8a06e51d139fc610c9005d9c93f4ee
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
|
|
The function regulator_set_optimum_mode has been changed
to regulator_set_load from regulator code. Also rename
regulator_set_mode_check to follow naming convention.
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
|
|
Enable hbtp_input driver to support host based touch processing.
Change-Id: Id56beccb53a0c64210e318a3a0a7f1a8d5d2bc27
Signed-off-by: Jing Lin <jinglin@codeaurora.org>
Signed-off-by: Jigarkumar Kishorkumar Zala <j_zala@codeaurora.org>
|
|
Add support for the digital regulator in hbtp_input driver.
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
Change-Id: I315d4b4c985917e55823a3c3951f2bffb20b39e6
|
|
Add input driver for virtual mouse feature. The events
are received through ioctls and transfer them through
input framework.
Change-Id: I0842b49ec1c8c6bef3005d9f4419ab15e3abe024
Signed-off-by: Mohan Pallaka <mpallaka@codeaurora.org>
|
|
Port the HBTP Input driver and apply the following driver
changes taken from msm-3.10 kernel branch as of msm-3.10 commit.
31773451 input: misc: add input driver for HBTP
20bf9c5f input: hbtp_input: bypass alphabetical and numeric
key config
e424ee72 input: misc: hbtp-input: add event type in uevents
Change-Id: I122d22cf738c747bcd43ec7f90c33a239288fd9d
Signed-off-by: Jing Lin <jinglin@codeaurora.org>
Signed-off-by: Chun Zhang <chunz@codeaurora.org>
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Add support for synaptics and atmel driver
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
|
|
Fix compilation errors when secure touch feature is enabled.
Change-Id: I9efd1aee5b9615b065d556c4a19d6bf790221db1
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Squash and apply the following touchscreen changes taken from the msm-3.14
kernel branch as of msm-3.14 commit 8139d0b
(ARM: dts: msm: Set flag to manage clks during suspend for msm8996)
421c2f3 input: touchscreen: atmel_maxtouch_ts: delay init call
48e0a07 input: atmel_maxtouch_ts: recover from bootloader
b3ebb61 input: atmel_maxtouch_ts: add support for force cfg update
8467fe3 input: atmel_maxtouch_ts: fix firmware update routines
c83ee59 input: atmel: Secure Touch support
1c7d5e2 input: atmel_maxtouch_ts: fix power up sequence
d4c1ffc input: atmel_maxtouch_ts: add support to ignore CRC
f402790 input: atmel_maxtouch_ts: add support for standard features
9374cef input: atmel_maxtouch_ts: use proper data types
0fbe83e input: atmel_maxtouch_ts: add regulator error conditions
e22d100 input: atmel_maxtouch_ts: add gpio support
63d4b74 input: atmel_maxtouch_ts: add device tree support
575c2fc input: atmel_maxtouch_ts: enable compilation on 3.10 kenrel
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
|
|
Add entries so compilation can be chosen for latest
Atmel touchscreen driver.
Change-Id: Ib63a56215e52cc80cb8532c50b16112d39c1e6f7
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
|
|
Git-commit: 482584a6c0d863e04a03837a79c1e79b2769aaee
Git-repo: git://github.com/atmel-maxtouch/maxtouch-v3.0.git
Change-Id: Ifdd872d1aacd5752aab1a218e18e2cbc1582c17f
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
[joshc: fixed up INIT_COMPLETION() usage]
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
|
|
The secure touch ISR and the poll logic in the user space layer is
going out of sync because the completion lock in the driver
is getting released in some corner cases unexpectedly. Clear all
outstanding completions before waiting for one helps fix the issue.
Change-Id: Ia3a6d318330263e7bfd8dfc3cea71c5300ab82b4
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Add reset in resume function to enable touch panel S332U
for MSM8996 DTP.
Change-Id: Id13ee3a8426cbd90692bc8a658f166c79accd7fd
Signed-off-by: Mao Li <maol@codeaurora.org>
|
|
Modify the firmware upgrade procedure based on the following requirements:
If config id of the firmware file is greater than the config id in the
device and if packrat id of the firmware img file is greater than the
firmware build id in the device, then during the firmware upgrade
procedure, both firmware and config areas are upgraded. Otherwise,
if the packrat id of the firmware img file is equal to the firmware
build id in the device, then only the config area is upgraded. However,
if the packrat id of the firmware img file is lesser than the firmware
build id in the device, then it is considered as an error.
Similarly, if config id of the firmware file is equal to the config id
in the device and if packrat id of the firmware img file is greater than
the firmware build id in the device, then during the firmware upgrade
procedure, both firmware and config areas are upgraded. Otherwise, if
the packrat id of the firmware img file is equal to the firmware build
id in the device, then no upgrade is needed. However, if the packrat id
of the firmware img file is lesser than the firmware build id in the
device, then it is considered as an error.
This is a propagated patch from 3.10 kernel
commit - d9921ff0ce4024b43837d794cc261b52ae58f776 ,
input: synaptics_dsx_fw_update: modify firmware upgrade procedure
Change-Id: I646d2c04243a30b77d48698cce76e9e183bd6db1
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Update the firmware based on strict config ID versioning, rather than
the entire config ID as a 4 byte number. This will also protect
against config ID major number mismatches and packrat id mismatches.
This is a propagated patch from 3.10 kernel.
commit - 458cbab5c53d5141a66590441f9567d67d580c6f,
input: synaptics_dsx_fw_update: update fw based on config id
Change-Id: I1097585d3bd8b6ab753676dc56f268c7ce52680d
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Add support for reading configuration ID from the touch controller
during probe and print it. This is required to identify if touch
controller is programmed with correct touch firmware or not.
Change-Id: I155f0392ae67e5f9b184b9cef2a7bbb7666be30d
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
|
|
Parse the panel coordinates before using it for the debug
message.
Change-Id: I6e893b91e9f11cf7d80602058358d8256a96726d
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
|
|
Squash and apply the following touchscreen changes taken from the msm-3.14
kernel branch as of msm-3.14 commit 3bc54cf86b
(Merge "msm: camera: Add dummy sub module in sensor pipeline")
b20792c2 input: synaptics_dsx: Fix security issues
4f3ec831 input: synaptics_dsx: Remove use of deprecated INIT_COMPLETION
8c5bd97f input: synaptics_dsx: change permission for sysfs secure_touch_enable
b22c0b56 input: synaptics_dsx: reconfigure resolution in suspend
0ea26697 touchscreen: synaptics_dsx: set absolute axes for touchscreen
6a021e0a input: synaptics_dsx: handle all controller interrupts
d3de3ed6 input: synaptics_dsx: remove query operation from reinit
2285a8dd input: synaptics_dsx: remove vkey kobject in remove
6817aed5 input: synaptics: Fix to secure touch clock unbalance
44a84a1e input: synaptics_dsx: support for pm ops
41439903 input: synaptics: add support for unprogrammed panels
b029351d input: synaptics: remove outdated header
d065c5e0 input: synaptics: add ability to distinguish touch part
72ca30da input: synaptics_dsx: release pinctrl resources on probe failure
0ab5f1e5 input: synaptics: add NULL pointer check
ad4102c8 input: synaptics: Secure touch clocks
6a77bbed input: synaptics_dsx: fix compilation warning when !CONFIG_PM_*
f3488933 input: synaptics_dsx: reorder device resume sequence
71b65447 input: synaptics_dsx: add support for 2D sensor for soft-keys
610ecdc2 input: synaptics_dsx: fix data sysfs read-write permission
06195779 input: synaptics_dsx: fix up world writable sysfs file
995ed76d input: synaptics_dsx: add ability to identify controller
69a416fe input: synaptic_dsx: configure touch panel boundary coordinates
609eb34b input: synaptics_dsx: correct sysfs permissions
59af5ffb input: synaptics_dsx: remove firmware update at boot
13b71e2f input: synaptic_dsx: stay awake the device during firmware update
dccee682 input: synaptic_dsx: add sysfs entry for force firmware update
a4d13992 input: synaptics: secure touch support
11c70731 input: synaptic_dsx: add debugfs support for suspend/resume
2642f2cb input: synaptics_dsx: add standard features for touch support
72f05e70 input: synaptics_dsx: add dual regulator support
ab390caa input: synaptics_dsx: add device tree support
51898424 input: synaptics_dsx: fix conflicts with other drivers
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
|