There could be possibility of integer overflow on adding
sizeof(uint32_t) with uint64_t maximum offset bytes and result
in a value smaller than uint64_t maximum memdesc size.
CRs-Fixed: 988861
Change-Id: Ifc3ec45297c2a29ad6f7d70dd0bd59238ac8cc3d
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Allow MMU mappings to take offsets rather than only allowing
full range mappings.
CRs-Fixed: 971174
Change-Id: Iaa113c8414a2d2d8f92b3cb21eaf2e422f273454
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Dumping only the ctxt_record structure in a snapshot
is not enough. For a more meaningful snapshot, dump 64KB
of preempt record. Also, move the code to device specific
snapshot function.
Change-Id: I43e08ccefbf2d3911191b2aad5168979956e1626
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Give trace code for IRQs a simpler format that moves
around where some logic lives.
CRs-Fixed: 971172
Change-Id: If426fb7599be0a79b6f37b8008a2310b1c006e93
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
When the IOCTL is called with invalid data, don't log to kmsg. The
returned error code should be enough to tell the UMD what they did wrong.
CRs-Fixed: 987074
Change-Id: Iae380e0f44dd53bee8ff4cec347a6b9a632b1f84
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
There is no way for the UMD to pass in NULL pointers for reading
timestamps. The KGSL driver also always has valid pointers
for storing the readpointer. Remove the checks that are not needed.
Change-Id: Id5f244a57a2b991a10b603ef7236193d4282fd0f
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Remove unused #defines, structs and members that are no longer used.
CRs-Fixed: 971156
Change-Id: Ibdf6fef6f3f700f3c5315c228c0473e47fb62163
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Use a mempool to reduce the allocation time. When memory allocated
from pages is freed, put it in a page pool. At allocation time, try
to allocate from the page pool before getting pages from the system.
Make sure that the pool does not grow too big by enforcing a
maximum limit.
Change-Id: Icac7fb4355ee1fd07e7127ea5c2721665e279272
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
wil6210 FW needs to control rf_clk3 in order
to allow the host to disable it.
Keep rf_clk3 always on, as the current FW code
doesn't support handling of rf_clk3.
Change-Id: I552094c64bd9fb360ddd73022fe21a403c245b2f
CRs-Fixed: 986130
Signed-off-by: Maya Erez <merez@codeaurora.org>
For the targets with the LMH DCVSh mitigation, HLOS boot-up
mitigation is not required. So make the devicetree properties
related to boot-up mitigation as optional.
CRs-Fixed: 1010111
Change-Id: I7f254f579182effbc1f1a3d49c3c917d3c7af162
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
HDMI driver handles many MDP events. Currently all the events
are handled in one function. Create different functions for
each event for a cleaner approach.
Change-Id: Ib48c02b2b89f7fdb347afd3a02d8b6b7c1c03e85
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
HDMI driver initializes many features like EDID (Extended Display
Identification Data), CEC (Consumer Electronics Control), HDCP (
Hight-Bandwidth Digital Content Protection) and related sub-modules.
Initialize them in separate functions for cleaner approach.
Change-Id: I5b73d3b558af576b5114c42b63260bb688f2d8d1
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
The plan was to use bypass mode till fastpath API's
are available. Hence enable SMMU BYPASS mode.
Change-Id: I53bcd8293f7587ddba64ed0e019b77eee62b5e72
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Add dynamic fps support for hdmi to update the resolution
timings on the interface by either changing the clock rate
or by modifying the porch values or both. Dynamic fps feature
can by used for hdmi to support different use cases like
matching input stream fps with hdmi out.
Change-Id: Ia305e1eb5d3da1dfbf868650e5ee84018255476b
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
User modules can switch to same resolution with different format like
RGB or YUV. In cases where just the format is changing, reconfigure
the panel to switch to new format.
Change-Id: I52b11f19f576e13e197e8c576a9c5ada54416f5e
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
We need to check for both NULL pointer and error condition
in coresight initialization and return with proper error.
CR's-Fixed: 971398
Change-Id: Id1e3e0f756ac1c9a0ff4f4e6ce073e80e31473b8
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
In some cases, scrambling may need to be forced on or off based on
sink requirements. To support such requirements, scrambler override
may be imposed. If scrambler override has been enabled, use
override value to enable or disable scrambler.
Change-Id: I9556c6457258598e6b6758573bb0263d53e612da
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
During framework reboot, keep the switch nodes in sync with
user modules to make sure hdmi cable notification mechanism
works after reboot.
Change-Id: I22696b17ec6ff11b1a378df9611eb8ab4be01358
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Workqueue stalls can happen from a variety of usage bugs such as
missing WQ_MEM_RECLAIM flag or concurrency managed work item
indefinitely staying RUNNING. These stalls can be extremely difficult
to hunt down because the usual warning mechanisms can't detect
workqueue stalls and the internal state is pretty opaque.
To alleviate the situation, this patch implements workqueue lockup
detector. It periodically monitors all worker_pools periodically and,
if any pool failed to make forward progress longer than the threshold
duration, triggers warning and dumps workqueue state as follows.
BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 31s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x0
pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=17/256
pending: monkey_wrench_fn, e1000_watchdog, cache_reap, vmstat_shepherd, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, cgroup_release_agent
workqueue events_power_efficient: flags=0x80
pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256
pending: check_lifetime, neigh_periodic_work
workqueue cgroup_pidlist_destroy: flags=0x0
pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/1
pending: cgroup_pidlist_destroy_work_fn
...
The detection mechanism is controller through kernel parameter
workqueue.watchdog_thresh and can be updated at runtime through the
sysfs module parameter file.
v2: Decoupled from softlockup control knobs.
CRs-Fixed: 1007459
Change-Id: Id7dfbbd2701128a942b1bcac2299e07a66db8657
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Don Zickus <dzickus@redhat.com>
Cc: Ulrich Obergfell <uobergfe@redhat.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Chris Mason <clm@fb.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Git-commit: 82607adcf9cdf40fb7b5331269780c8f70ec6e35
Git-repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
touch_softlockup_watchdog() is used to tell watchdog that scheduler
stall is expected. One group of usage is from paths where the task
may not be able to yield for a long time such as performing slow PIO
to finicky device and coming out of suspend. The other is to account
for scheduler and timer going idle.
For scheduler softlockup detection, there's no reason to distinguish
the two cases; however, workqueue lockup detector is planned and it
can use the same signals from the former group while the latter would
spuriously prevent detection. This patch introduces a new function
touch_softlockup_watchdog_sched() and convert the latter group to call
it instead. For now, it just calls touch_softlockup_watchdog() and
there's no functional difference.
CRs-Fixed: 1007459
Change-Id: I6fe77926acd4240458cab29d399f81d8739a16c0
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ulrich Obergfell <uobergfe@redhat.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Git-commit: 03e0d4610bf4d4a93bfa16b2474ed4fd5243aa71
Git-repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
This is same as commit c836a400dd ("lib: Ignore kasan errors from
find_next_bit and last bit") but 4.4 kernel had done the re-org
of the find_next_bit.c and find_last_bit.c files and merged
them as one file find_bit.c.
CRs-Fixed: 1007351
Change-Id: Iff58832a535227ea071ce5b14d537d9993f9dfc2
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
As of now memtest remains disabled until we specify the patterns
through the kernel command line. Some platforms have two
different configurations files (one for debug and another for
product) which can use the configuration option to enable the
memtest by default (in the debug configuration file).
CRs-Fixed: 1007344
Change-Id: I0bf7b33c3584f3d6cf5ef58dfe72be46212041da
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
There is no need of irq-msm.c since the users of this file have
moved their callbacks to the respective file (like wcdxxx) and
starting 4.4 we don't use the USE_PINCTRL_IRQ.
CRs-Fixed: 1007342
Change-Id: I9016aadac88483c8547ed1a40cb6c55909f347cf
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
msm_bus clients must use CONFIG_QCOM_BUS_SCALING as opposed to
CONFIG_MSM_BUS_SCALING.
Change-Id: Icc6ee5e2ba60d7f619393518b4f06aee6f784f3d
Signed-off-by: Sushil Chauhan <sushilchauhan@codeaurora.org>
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
KTM stops the boot time mitigation during late init
and thermal engine takes over the mitigation only after
a delay.
Modify KTM to prolong the boot time mitigation till
thermal-engine sends a disable command. This ensures a
safe handover.
CRs-Fixed: 1007266
Change-Id: Icb876f16cac9471c523f3ef5b5fd3ede9d5d597c
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Reorganize KTM probe function by grouping and separating them
based on functionalities. The deferrable properties and sysfs
node creation are grouped into two separate function
calls.
CRs-Fixed: 1010111
Change-Id: If144319371a5c65f193ffac8fb9852a836125966
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Vdd restriction probe will apply mitigation, which will be cleared
later during the KTM boot mitigation. KTM now initializes the
data structures to do this mitigation only after vdd restriction probe.
So remove this pro-active mitigation in the probe function. KTM boot
mitigation will be started immediately after the KTM probe and can take
care of this mitigation.
CRs-Fixed: 1010111
Change-Id: Ica59aeb0c94581e3c37b5b7df16c187ced45c28a
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
When calling dma_free_coherent, there is a possibility that
size 0 is passed as argument which can result into panic.
Make a change to check for the size before calling the API.
Change-Id: Idb248e1270b79b51e53de687793030a047fe6c73
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
When the USB pipe is getting disconnected there is a possibility
that suspend bit will be cleared due to resource manager. Make
a change to not to clean the suspend bit when pipe disconnection
is in progress.
Change-Id: I97ff3d53c12ed163ae5dbec184ed9445c901459e
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
At the point when ISR routine is triggered, if the IPA
clients are 0, ISR handling will be deferred using
power_mgmt_wq and same workqueue is used to send
holb monitoring command after Uc is loaded. As a result
response to holb monitoring command will not be honored.
Make a change to use a different wq for sending holb
monitoring command.
Change-Id: I611155901e928fa8d9bbcbdf2511cd98aa36df2c
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
Enable CPR hardware closed-loop operation for the VDD_APC CPR
devices. This allows CPR hardware to dynamically scale the
VDD_APC0 and VDD_APC1 rail voltages and results in reduced
power utilization.
Change-Id: I6a6cb1096cc91ac995dbc36c8edaaa20c392e6c8
CRs-Fixed: 1009142
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
The qcom,cpr-corner-switch-delay-time property is used to specify
voltage settling delay per 1 mV of voltage change. Update the
documentation to reflect this.
Change-Id: I6af5a0bd5ddb5fdb22585f9da34524475f49233f
CRs-Fixed: 1009142
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
This change will retrieve JPEG DMA max downscale factor
from dtsi and expose it to user space.
CRs-Fixed: 1009871
Change-Id: I57496aeb47d907f540a25c854ef7b35c6b5ab399
Signed-off-by: Gautham Mayyuri <gmayyuri@codeaurora.org>
Video driver expects and supports zero length qbuf.
The v4l2 framework will allow zero length qbuf only if
vb->allow_zero_bytesused is enabled.
Change-Id: Ie94ffce93d28d08610310885e4f257ebdbc15dd1
Signed-off-by: Arun Menon <avmenon@codeaurora.org>
Adding support to print additional XO sleep related debug stats
the rpm maintains for each of the masters. The additional stats
include xo_count, xo_last_entered_at, xo_last_exited_at, and
xo_accumulated_duration.
CRs-Fixed: 985182
Change-Id: I39d3d234222b6136ab0e68367e13c1276dce61f6
Signed-off-by: Ramakrishnan Ganesh <ramakris@codeaurora.org>
Upstream kernel has deprecated the use of arch_counter_get_cntpct() and the
drivers are expected to switch to arch_counter_get_cntvct.
Switch to using arch_counter_get_cntvct().
Change-Id: Ie5c9236ad34ea61a375a4a3ae1f1d91fda0a9ccf
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Snapshot of rpm status drivers as of msm-3.18 commit
e70ad0cd5ef
Change-Id: Ibceaa8f948e203c39e3df55b135c0a394f39ca5f
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
IPA headers building is a logic related to H/W.
As such, migrating this logic to IPAHAL (H/W abstraction
layer) of IPA driver and adapt the core driver code to use
it. New internal S/W API is added to access IPAHAL for
headers building.
CRs-fixed: 989231
Change-Id: I2cec6c6f9fe7aea0e2276b01133f8c3505b9919f
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Set the recommended high bit bank value for A540 that
will be programmed into registers by the kernel and/or the
user mode driver.
CRs-Fixed: 994759
Change-Id: Ib3006067e184bf97adf75971ab96b2c673909eba
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Signed-off-by: Shrenuj Bansal <shrenujb@codeaurora.org>
Add clocks, regulators needed for CSID, CSIPHY, CCI camera nodes,
correct pinctrl nodes for camera sensor.
CRs-Fixed: 1011110
Change-Id: Ieee68a709a1f56d53bd2746fa28fbd76195270b0
Signed-off-by: Viswanadha Raju Thotakura <viswanad@codeaurora.org>
of_mpm_init(..) is now directly called into the pinctrl-msm.c
driver and therefor it is not needed to be present in the irq-msm.c.
This also helps us to not have target specific compatible string
names attached everytime we add new SOC.
Eventually we will remove irq-msm.c altogether.
CRs-Fixed: 1007342
Change-Id: I904ee0b08079972b181f53fdc5a6022871da74e8
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Even though CONFIG_PAGE_OWNER and CONFIG_DEBUG_PAGEALLOC are enabled
they won't add any debugging information until
CONFIG_PAGE_OWNER_ENABLE_DEFAULT and CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT
are selected as "y".
Another option is to enable/disable them through the kernel
commnad line but since we have two defconfigs(perf and debug) for
the products it will be easier to use the CONFIG_xxx options to
toggle these options.
CRs-Fixed: 1006743
Change-Id: I35602327d75945c35126ce2d657803d786a44121
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Since this commit 48c96a3685 ("mm/page_owner: keep track
of page owners") doesn't enable the page_owner by default
even though CONFIG_PAGE_OWNER is enabled.
Add configuration option CONFIG_PAGE_OWNER_ENABLE_DEFAULT to
allow user to enable it by default through the defconfig file.
CRs-Fixed: 1006743
Change-Id: I9b565a34e2068bf575974eaf3dc9f7820bdd7a96
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
USB DIAG function driver updates dload_cookie with USB PID and serial
number to avoid port-hopping for DIAG port with bootloader. Now
composite_driver doesn't get updated strings as android.c is
deprecated and configfs is used. Hence use composite device based
strings to find required serial number.
CRs-Fixed: 1010715
Change-Id: I076928436a8b1b4d1c3ee7e48db9b3314ec1fc05
Signed-off-by: Mayank Rana <mrana@codeaurora.org>