While writing any sequence or session identifiers, it is
possible that the host could write a zero value, whereas only
non-zero values are supported writes to those registers. Ensure
that host does not write a non-zero value for those cases.
Change-Id: I33248a0aa43321c85a107e394f953774140dec50
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Execution environment and power off changes can be serialized
to avoid changing these important controller variables from
multiple places and serialize handling of all state transitions.
Change-Id: I394e5ff4992d7c911e3889f96057d8467d79509c
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Remove the boot monitor thread and use the mission mode entry
callback instead to handle runtime pm enablement and boot
logger channel cleanup.
Change-Id: Ia018d51987d3201bc65223c3cdf7165d2f6da4ca
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
PCIe root complex driver has exposed set of APIs to allow or
prevent link level low power modes. Use those instead of
touching device side registers to toggle the same.
Change-Id: Idf4f6d60a80742524249dacd7a10fe5184acec95
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Large strings are truncated to 255 bytes by IPC logging API.
Allow for them to be printed in their entirety by using the
string separator API and split it using newline as the
delimiter.
Change-Id: If9ddbad7e9a9c30da57a733c94fb837c120f12ae
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Remove the unused timesync MHI device as we use the controller
device for timesync related activity instead.
Change-Id: If2bb5937cbf468d8778b89549afdb1d0a9af7782
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Validate the external callback to prevent acting
on delayed invocations, after the corresponding
handle has been released and reallocated by the
clients.
Change also avoids release of memory shared with
external callback if the callback de-registration
fails. This avoids double free issue if callback
has been queued up for dispatch during the cleanup.
Change-Id: Ib784c8a630a7c45ace946edab34e36ab1aec1869
Signed-off-by: Sumukh Hallymysore Ravindra <shallymy@codeaurora.org>
There's no reason why the locator service should start in
a 'disabled' manner. Hence, unless otherwise stated by the
cmdline arguments, start the service by default.
Change-Id: I8377aabed691c402c47352aadfdd4ded25f1f459
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
The QUP BCMs expect requests to be made in KHz. However, since we
currently scale client requests by 1000, this requires client requests
to be made in MHz. To align with the rest of the non-HLOS images, to
make things more consistent with other BCMs that use KBps, and to allow
for finer-grained frequency requests, change the scaling factor to 1.
This allows the client requests to be made in KHz.
Change-Id: I5b9e53d3fe2691830f304f909cd3ac0c94dacbcf
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
Currently, bcm-voter always assumes requests are made in KBps and that
BCM HW always wants them in Bps, so it always scales the requests by
1000. However, certain use cases and BCMs may use different units.
Thus, add support for BCM-specific scaling factors.
Change-Id: Icb757e5e111f3e9a39e34cce989d076a80a7c79a
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
The current strategy of using macros to define/initialize structures
causes a couple of problems.
One is that it's difficult to navigate the code. Source navigators like
cscope or ctags can't jump to structure definitions since they're buried
inside macros. It's also difficult to see which structure members are
getting initialized to which values, since one has to carefully compare
the argument list with the macro definition to see which argument number
gets assigned to which struct member. This is error prone.
Another more serious problem is that it makes adding additional struct
members to be initialized very difficult. If there's a new struct member
that only needs to be initialized in a small number of cases, then we'd
either need to update the common macro with a new parameter and then
update every invocation of it, or create a new macro and only call the
new macro in places where it's needed. The first method results in
updating way more code than is necessary, especially if there are
multiple old chipsets. The second method results in an explosion of
different macros for each new member that needs initializing.
To simplify this, don't use the macro initializers and instead just
define the structures directly using designated initializers. If a new,
uncommon field needs to be initialized, then one the small subsets of
structures that care need to add the additional designated initializer
and the rest can use sane defaults.
Change-Id: I3a0ae58ba1fb1e838b5b587f94144a1ec1640f98
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
Add support into subsytem restart and secure pil drivers
for the subsystems which is brought out of reset during
the bootloader stage. During the hlos stage when any client
requested for this type of subsystem, check subsystem status
before loading the firmware. If subsystem is active and
not crashed just enable subsystem IRQs and continue.
If subsystem is already crashed, shutdown the subsystem and
inform the client driver about error state. Client driver
can request for the subsystem second time to load the firmware
freshly into memory and to bring out of reset.
Change-Id: Ie653a44a67ae33760891334b9449984d56142128
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
Restructure subsystem registration process and IRQ registration
step such that, both subsystem restart framework and secure pil
drivers should be able to handle all the asychronous events
coming from subsystem. If both subsystem restart framework
and secure pil drivers are not in proper state to handle
asychronous events from subsystem leading to kernel faults.
Change-Id: Iacda38a9d7d4aeb4549f45533c91791f096c3b1c
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
The kgsl-busmon devfreq device is only set up to work with
the gpubw governor. So make it immutable to avoid unexpected
failures when re-assigning a different governor.
Change-Id: I545fa12efebf80aa38ff6270488f088fdaac2b84
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Increase the SVM and non-SVM address space for 64 bit processes.
The SVM address space is increased from 4 GB to 252 GB. The non-SVM
address space is increased from 4 GB to 256 GB.
Change-Id: I7774cfdf59a2b00dc348d601b834d85059f12a86
Signed-off-by: Raghu Ananya Arabolu <rarabolu@codeaurora.org>
While calculating untilization of CPU during task placement in fbt(),
current code doesn't take uclamp into account which would lead to
selection of incorrect CPU for the task when uclamp restrictions
are in place for the task.
Change-Id: I8371affe3b37733d222e5c57953e53f91fc19a53
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Add support for global clock controller for peripheral clock
clients to be able to request for the clocks.
Change-Id: I528821a299fee139d23947bc8caa5674ddef9687
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>
Userspace sends tcp connection (sock) destroy on network permission
change. Kernel though doesn't send reset for the connections in
SYN-SENT state and these connections continue to remain. Even as
per RFC 793, there is no hard rule to not send RST on ABORT in
this state. Modify tcp_abort and tcp_disconnect behavior to send
RST for connections in syn-sent state to avoid lingering
connections on network switch.
CRs-Fixed: 2396964
Change-Id: If931fb979e519c474697d82d8c9dbaf0edb626e3
Signed-off-by: Devi Sandeep Endluri V V <dendluri@codeaurora.org>
CONFIG_QCOM_ADRENO_DEFAULT_GOVERNOR is getting inserted into qgki
defconfig by default on doing a make menuconfig. Clean it by
inserting into gki defconfig.
Change-Id: Ie479abfaad1352c3026a7fc027cfb9b59501f65d
Signed-off-by: Chandra Sai Chidipudi <cchidipu@codeaurora.org>
Listener operation switches the context between secure and
non-secure world while user requested qseecom operation is
put to wait. Between lisetner operation start and finish CPU
can do a speculative data fetch before secure world updates
the physical memory of user requested response data buffer which
was waiting in qseecom for listener operation to complete. This
speculative fetch will pull old data from RAM to cache and user
will end up reading stale data. Fix this by invalidating the
response data dma buffer after listener call completes. Also remove the
invalidate call for listener dma after scm call as data will not
be accessed in kernel after scm call is completed.
Change-Id: I68730a17b515f07a71a040a534f97ce97c65026c
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
The mhi_process_data_event_ring function reads cmd channel id from
cmd_pkt using MHI_TRE_GET_CHID, the value is under the control of MHI
devices and can be any value between 0 and 255. However the max channel
is defined in device tree file and it is usually smaller than 255. This
can cause out of bound access to the channel array. Fix this by checking
the channel id received in cmd ring against the max channel allowed on
target.
Change-Id: Iae4282ebba2976a26c6e33477cc8dd93929c2f63
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
A new capability API is added for HMX to support both
spatial and depth parameters.
Change-Id: I845073b4271a0c2ad619d3e80d182071b22e6e5a
Signed-off-by: Anirudh Raghavendra <araghave@codeaurora.org>
Enable Content Protection feature for A660 GPU. This feature allows
the user to create secure memory and to put the GPU into secure mode.
Change-Id: I3aa0756898446a0876f74654444a9c318307a549
Signed-off-by: Nitheesh Muthuraj <nmuthuraj@codeaurora.org>
Modem supports new DSC based mitigation nodes, which are not timer
based. Add support for these new TMD devices to be registered as cooling
devices in thermal framework.
Change-Id: I4673aa80029804ff4fa8104d4e04651c3d825e48
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>