Instead of overwhelming the legacy power up/down sequences,
create a6xx gmu specific power up/down sequences. The
gpudev power ops will be set during a6xx gmu probe so that
we don't have to do gmu checks in legacy probe.
Change-Id: I897d775bdc3c9f97d38d20bc39b56f2551703bce
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
It is unused in the target specific reset sequences.
Change-Id: I1af60c19c03c7cf116ef3178f1cf501c18b92e74
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This code will be called from gmu and rgmu target specific boot
sequences.
Change-Id: If34641f0ad74d01b78c2638e674306248d082168
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
We will be re-purposing the idle check structures to run different
idle check functions for gmu and rgmu based targets. So move the
relevant bits to target specific probe.
Change-Id: I27b936eb46568f3e5511257d67dd93c23407fd18
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This enables us to define target specific device power up/down
sequences. Also create adreno_power_cycle for certain settings
to take effect by powering down, change the settings and then
resume the device.
Change-Id: Ie6a0feb224f0b0babcd0249c812674c31dc6c4ab
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Make a single function to configure gmu registers before
gmu boot. This will be used by hardware dispatcher as well.
Also, get rid of gmu->load_mode since it's always been
TCM BOOT.
Change-Id: I832b450e25cb1e76f0294a053eb9880759e65229
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This register is already being programmed in a6xx_start.
Also, remove duplicated register macros.
Change-Id: I3f59e23446b376e39df6abd5eee817317bfb2d67
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This function writes to GMU CX/AO registers which can be
configured much earlier in gmu code itself instead.
Change-Id: I403ad8d2e0fa4f199663f0fb6234de3e59bd05f9
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Much like the GMU code, the GMU code belongs in the a6xx target specific
space. Luckily, it is a lot easier to move. Move everything to
adreno_a6xx_rgmu.[ch] and rename the functions and structs.
Change-Id: Ic0dedbadf9f16f458f1cb1e540960a074464b348
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Finish the transition of the GMU code to a6xx. Rename the gmu_device to
a6xx_gmu_device and move the header files. All GMU code should now exist
entirely in the a6xx domain.
Change-Id: Ic0dedbad3640906599421373bef38217fafbf6dc
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
The next step in the GMU transition is to move HFI to a6xx target specific
code. Rename the file, functions and kgsl_hfi struct.
Change-Id: Ic0dedbad7efcda12f03fbd37bb2267296ee7a5ac
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Move all the GMU code to a6xx target specific code. This is the first in
several steps to make the GMU code more modular and flexibile for
various usecases.
Change-Id: Ic0dedbad0e70771c301705a0eb4ed422efb4c80a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Commit 0d44684cab ("msm: kgsl: Take GMU snapshot on GMU failures")
removed the only usage of gmu_core_regulator_isenabled().
Change-Id: Ic0dedbadb40e1faed4a9e0629e9d0babb718f6b3
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Add the a6xx specific probe function. With this we no longer
need the generic helper nor the platform_setup function so
they can be removed.
Change-Id: Ic0dedbadd317f8489f8451541dbb77a76c925719
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Add a target specific function for a3xx probe and create a helper
function to set up the register offset array.
Change-Id: Ic0dedbad2f8f54ee2635da3cb8256fce531ab8dd
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Add support for target specific probe functions to give individual
targets the flexibility to define their own device structs and do
other target specific setup that doesn't belong in the generic init.
To start all targets use a common helper probe function but that
is expected to change soon.
Change-Id: Ic0dedbad9e159be724368c7d2a496af151226cc0
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
For voice usecases, while opening the slimbus
slave ports, currently data format LPCM(1) is used.
SB master uses data format as unspecified(0). SB master's
data format overwrites the slave side configuration.
In the rare cases, this mismatch may lead to pop sound
in SCO Tx(BT FW->LPASS) at the very beginning when
voice is switched from speaker/handset to BT from call UI.
To fix this, use the data format as unspecified during
opening of the slimbus slave ports for voice cases.
CRs-Fixed: 2710472
Change-Id: Ia9b1d23cbf04d1b8056d7b7f7c84a066437e1682
Signed-off-by: Satish Kodishala <skodisha@codeaurora.org>
AB voting is done in multiples of BW_STEP. Using a big
BW_STEP can result in AB overvoting because of roundup.
Use BW_STEP as 50 instead of 160. This will reduce AB
overvoting and will improve power.
Change-Id: Ieff338685be9650218fd7accc4ed3bcf0d2756ec
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>