Support a new OSM sequence which optimizes the number of
instructions required to program MEM-ACC settings and
the APM configuration of the CPUSS. This frees up sufficent
space to implement the DxFSM workaround.
CRs-Fixed: 1043040
Change-Id: I9499497cb558efcf3c73e7145ce65d3f129be696
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Program architectural register 6 with the address of the SPM
core count hysteresis register and architectural register 7
with the up and down core-count SPM hysteresis values. The
sequencer uses this information to ensure stable operation
when CPU retention or power-collapse and cluster collapse
LPMs are enabled.
CRs-Fixed: 1045435
Change-Id: I5e41ce376c694736128ceb051db86f93467fdaea
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Since LowSVS and SVS frequencies share the same ACC settings,
map any frequency in the LowSVS to SVS range to the same ACC
level. By doing so, the OSM device need only support 3 levels
instead of 4 thus saving sequencer instruction space. Also,
update the ACC setting to ensure bit 31 of the last ACC register
in each cluster is set when running at LowSVS/SVS frequencies.
CRs-Fixed: 1021659
Change-Id: I322b9b57ec89f5cdc75336d83010ff89a6bb5726
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Define the APM threshold voltage to be used by the OSM device
to determine the correct APM supply selection for different
DCVS setpoints.
CRs-Fixed: 1021656 1030444
Change-Id: Iebeb45eaa2503bd5be19f00938d0dbec1163c5a5
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Add support to determine the APM threshold corner via open-loop
voltages in the VDD regulator OPP table. The threshold corner
is used by OSM to determine the APM supply for each DCVS setpoint.
The crossover corner is used by OSM to request a specific voltage
during the APM switch transition.
CRs-Fixed: 1021656 1030444
Change-Id: Iac04f6db8e85b3651a33b6c9bff667365cae891d
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Add support for a corner whose open-loop voltage corresponds to the
VDD supply voltage required during an APM switch transition. This
corner is requested by OSM hardware to the CPRh controller when
the VDD supply must be set to a specific voltage to ensure a stable
APM switch procedure. Define a crossover corner of 880 mV for both
VDD_APC CPR devices.
CRs-Fixed: 1021656
Change-Id: Icf4b640ec2c330b0d9721d3494297e2d8445c9b6
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Enable SMMU on IPA3 and put in stage1-bypass mode to
not do the memory mapping.
Change-Id: Id2811c67a423c82201993b3119647a3d4caf4517
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
IT7258 touchscreen driver creates a character device which is
not used by anyone. Remove this dead code
Change-Id: Ied8a0048d8af17fa593c1970cabb572aac338786
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
This is the reference driver source code of it7258 touchscreen driver.
Signed-off-by: Alfred Deng <Alfred.Deng@ite.com.tw>
Git-commit: 3852a7ccce89c17ec3c4165acf9c81753c940104
Git-repo: git://github.com/ite-touch/touchscreen-driver
Change-Id: Ic1eab3ba79b8e8e5c259bb92f2692fd0db5fc8d3
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
(cherry picked from commit c25c3f1a0f29d7989b7d7058da74e465665bf279)
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
The MDSS clock drivers were not getting compiled due to an extra 'y', fix
the same.
CRs-Fixed: 1041122
Change-Id: I21e62361f40eb654c369048d01e158d4b96dd551
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Currently power supply name is passed to get the battery profile
in of_batterydata_get_best_profile(). This creates a dependency
of waiting for the driver that has the power supply class device.
Improve this by passing the battery id directly to the API. This
way, getting battery id will be the responsibility of caller.
CRs-Fixed: 1043798
Change-Id: I7a8c2b2fcc9b43e2e858114f7312fccf96dc3f78
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Vote for bandwidth after clocks are enabled. For bandwidth
voting clocks need to be on.
CRs-Fixed: 1044777
Change-Id: I9be1ee26419c082cda6351ef6d5aeedc6e17de55
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Add a dummy clock provider that registers a simple callback that
in turn always returns the dummy clock for any clk_get call. This is useful
for unimplemented clocks.
Change-Id: I08fcb174fd0e0c49f8069e106b48597bcdfe847d
Signed-off-by: Taniya Das <tdas@codeaurora.org>
SSR entries contain the list of subsystems to notify when an SSR for a
given subsystem occurs. This information enables G-Link to handle
closing and re-opening channels in the case of SSR.
CRs-Fixed: 1043377
Change-Id: Ibd8ceb8149b3041ce1f58ac4c3642d7391b89385
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Add the SMEM entry to enable the use of shared memory by different
processors in the SoC.
CRs-Fixed: 1043377
Change-Id: Ic36a67c724d7f8a0e64affba92856160cce914bb
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
32 bit Compilation is failed due to undeclared usage of
TASK_UNINTERRUPTIBLE.
Include sched.h header file for the definition of
TASK_UNINTERRUPTIBLE.
CRs-Fixed: 1042813
Change-Id: I947b8d08f61624b914bd82caf4276364b9833cef
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Some test modules need to call "arch_setup_dma_ops" to setup
the proper dma operations.
Change-Id: Icc884b53c85941f59f84bed108b536cc18b8be60
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
The local table of processor IDs maintained by SMEM must match the table
of processor IDs maintained by SMEM on remote processors, because the
IDs are global.
Update the local table of processor IDs to match the table on remote
processors.
CRs-Fixed: 1043377
Change-Id: I6df0575cf54003374a5ebdbfa54e169d3545ffe7
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
This patch adds support for enabling uhid driver in kernel which
provides interface for user space hid module to interact with
hid drivers of kernel. Without support for uhid driver, Bluetooth
HID functionality is broken completely. Also support for vendor
hid drivers is enabled so that HID profile can be connected with
these HID devices.
Change-Id: If56742a9c6b6c4ef774da6e83d57aee56bf28842
CRs-Fixed: 553571
Signed-off-by: Hemant Gupta <hemantg@codeaurora.org>
Instead of trying to make a decision to switch out the active
draw context for NULL at detach time leave the reference count
for it until the next context switch or until the next slumber
whichever comes first. This avoids races with the preemption
code and ensures a smooth transition.
A side effect is that we were depending heavily on the context
detach to reset the ringbuffer to the default at power down and
we didn't touch it on power up (though we did on soft reset and
wake from slumber. Curious). Obviously if we are no longer
switching we will need to force the default pagetable during start
but it seems to me like this would be the right thing to do even
if we were still switching out.
CRs-Fixed: 1009124
Change-Id: Ic0dedbadff8df192096292b221130c8ef5b31e12
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Force any command triggered context switch to the GPU - it should
be on the GPU anyway, but we were already passing a flags parameter
(unused) so this is a good chance to force the issue and make sure
that the cpu path decision isn't in play here.
CRs-Fixed: 1009124
Change-Id: Ic0dedbadb277a6498d0840b45c90e1265e2f354a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
We are only writing the ringbuffer start of pipeline timestamp for
internal commands that do not have a draw context associated which
happen rarely (if ever). We should be recording the timestamp for
*ALL* commands so when something goes wrong we can get a fuller
idea of the timestamp picture for each ringbuffer.
CRs-Fixed: 1009134
Change-Id: Ic0dedbad6d99130e31cd8a06dfe025610e9157a8
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
When processing an event group we check the previously processed
timestamp to avoid going through the loop if we don't need to.
We use timestamp_cmp() to check the timestamp. In situations
where the retired timestamp has advanced by more than 0x80000000
since the last time we checked the timestamp, timestamp_cmp()
will return -1 as it thinks that the new timestamp is older than
the processed timestamp. This can happen with certain tests and
scheduling hiccups.
The event processor can be much less restrictive - all we really
care about is that the retired timestamp didn't slip backwards by
accident (highly unlikely). So just check that the last proccessed
timestamp is not equal to the retired timestamp and if the
retired timestamp has already rolled, that the delta is outside
of the 0x8000000 window.
CRs-Fixed: 1009149
Change-Id: Ic0dedbad641bfa3fd6cbc1c91a37fb0e37f72bae
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
iommu_attach_device() should return a log message for every
possible error and we don't need to double up the pain
especially for situations when we run out of available
domains and start getting a storm of ENOSPC errors back.
CRs-Fixed: 1009158
Change-Id: Ic0dedbad7416abb23c769a4d3be9ebd0ca04810c
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
gpuobj_free_on_fence() is used infrequently enough that it doesn't
make sense to do INIT_WORK() when the memory object is created,
especially if debug objects are enabled because INIT_WORK() will go
off and do a bunch of accounting that we don't need. Do the
INIT_WORK() just before queueing in those rare cases that this
actually happens.
CRs-Fixed: 1009183
Change-Id: Ic0dedbad1015883788e12815806e3249a1e09b21
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
We don't need to wait for idle before changing the pagefault
policy on the IOMMU which is a good thing because on a busy
system we may never hit idle.
CRs-Fixed: 1009187
Change-Id: Ic0dedbadb8f6122e32a0a34a65c54a7bca2a523c
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Some test applications intentionally generate a GPU fault for
various reasons. Because a GPU fault generates a snapshot and
snapshots are persistent until they are pulled, running the test
application may take up the snapshot slot and prevent a real fault
from being captured and debugged.
This flag allows the draw context to intentionally avoid generating
a snapshot.
CRs-Fixed: 1009190
Change-Id: Ic0dedbad8476c308a13572d999540b243d97eabc
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
The secure buffer registers were not being programmed in the soft
reset path which was causing a failure for the critical packets
workaround and forcing a hard reset.
CRs-Fixed: 1009194
Change-Id: Ic0dedbad998767a1ffdfe265e52fae7baa18d203
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Allow 5XX targets to preempt quickly from an atomic context. In
particular this allows quicker transition from a high priority
ringbuffer to a lower one without having to wait for the worker
to schedule.
CRs-Fixed: 1009124
Change-Id: Ic0dedbad01a31a5da2954b097cb6fa937d45ef5c
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Remove some unused gpudev hooks and further segment the A4XX and
A5XX specific code into their respective areas. Remove some bits
that are only applicable to 4XX from the 5XX side.
CRs-Fixed: 1009124
Change-Id: Ic0dedbadc324b979583d7a3998195bf15ac537f6
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>