Leo Liu
428beddd02
drm/radeon: add Mullins VCE support
...
VCE 2.0 just like the other CIK parts.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:20:05 +02:00
Samuel Li
b214f2a4ba
drm/radeon: modesetting updates for Mullins.
...
Uses the same code as Kabini.
Signed-off-by: Samuel Li <samuel.li@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:20:04 +02:00
Alex Deucher
47f5c74616
drm/radeon: dpm updates for KV/KB
...
- Use vddc/sclk dep table for voltage if available
- Fix UVD DPM setup
- Patch voltage tables properly for non-UVD blocks
- Fix DPM + UVD/VCE on Mullins
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:20:02 +02:00
Samuel Li
7d032a4b8d
drm/radeon: add Mullins dpm support.
...
Generic dpm support similar to Kabini. Mullins specific features
will be worked on later.
Signed-off-by: Samuel Li <samuel.li@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:20:01 +02:00
Samuel Li
3f6f0737ba
drm/radeon: add Mullins UVD support.
...
Has same version of UVD as other CIK parts.
Signed-off-by: Samuel Li <samuel.li@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:20:00 +02:00
Samuel Li
f73a9e8372
drm/radeon: update cik init for Mullins.
...
Also add golden registers, update firmware loading functions.
Signed-off-by: Samuel Li <samuel.li@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:19:59 +02:00
Samuel Li
b0a9f22a18
drm/radeon: add Mullins chip family
...
Mullins is a new CI-based APU.
Signed-off-by: Samuel Li <samuel.li@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:19:57 +02:00
Christian König
cbe655137a
drm/radeon: lower the ref * post PLL maximum
...
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=75241
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:18:44 +02:00
Christian König
cde10122dc
drm/radeon: check that we have a clock before PLL setup
...
Partially fixes: https://bugzilla.kernel.org/show_bug.cgi?id=75211
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:18:42 +02:00
Maarten Lankhorst
aa4c8b36e5
drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path
...
It would appear this bug has been copy/pasted many times without being noticed.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2014-05-06 12:18:41 +02:00
Michel Dänzer
e9d14aeb30
drm/radeon: Fix num_banks calculation for SI
...
The way the tile mode array index was calculated only makes sense for
the CIK specific macrotile mode array. For SI, we need to use one of the
tile mode array indices reserved for displayable surfaces.
This happened to result in correct display most if not all of the time
because most of the SI tiling modes use the same number of banks.
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-06 12:18:40 +02:00
Alex Deucher
aa019b791a
drm/radeon/dp: check for errors in dpcd reads
...
Check to make sure the transaction succeeded before
using the register value. Fixes occasional link training
problems.
Noticed-by: Sergei Antonov <saproj@gmail.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-01 12:28:09 +02:00
Christian König
3b333c5548
drm/radeon: avoid high jitter with small frac divs
...
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-05-01 12:28:08 +02:00
Leo Liu
695daf1a8e
drm/radeon: check buffer relocation offset
...
Signed-off-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-05-01 12:28:06 +02:00
Christian König
f5d636d2a7
drm/radeon: use pflip irq on R600+ v2
...
Testing the update pending bit directly after issuing an
update is nonsense cause depending on the pixel clock the
CRTC needs a bit of time to execute the flip even when we
are in the VBLANK period.
This is just a non invasive patch to solve the problem at
hand, a more complete and cleaner solution should follow
in the next merge window.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=76564
v2: fix source IDs for CRTC2-6
Signed-off-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-05-01 12:27:42 +02:00
Christian König
e45187620f
drm/radeon/uvd: use lower clocks on old UVD to boot v2
...
Some RV7xx generation hardware crashes after you
raise the UVD clocks for the first time. Try to
avoid this by using the lower clocks to boot these.
Workaround for: https://bugzilla.kernel.org/show_bug.cgi?id=71891
v2: lower clocks on IB test as well
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-05-01 10:17:44 +02:00
Alex Deucher
73acacc739
drm/radeon: don't allow runpm=1 on systems with out ATPX
...
vgaswitcheroo and the ATPX ACPI methods are required to
power down the dGPU.
bug:
https://bugzilla.kernel.org/show_bug.cgi?id=73901
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-22 16:51:21 +02:00
Alex Deucher
e9a4099a59
drm/radeon: fix ATPX detection on non-VGA GPUs
...
Some newer PX laptops have the pci device class
set to DISPLAY_OTHER rather than DISPLAY_VGA. This
properly detects ATPX on those laptops.
Based on a patch from: Pali Rohár <pali.rohar@gmail.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
Cc: airlied@gmail.com
2014-04-22 16:51:20 +02:00
Alex Deucher
3ed9a335cf
drm/radeon/pm: don't walk the crtc list before it has been initialized (v2)
...
Avoids a crash in certain cases when thermal irqs are generated
before the display structures have been initialized.
v2: fix the vblank and vrefresh helpers as well
bug:
https://bugzilla.kernel.org/show_bug.cgi?id=73931
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-22 16:51:19 +02:00
Alex Deucher
cb3e4e7c59
drm/radeon: properly unregister hwmon interface (v2)
...
Need to properly unregister the hwmon device on driver
unload.
v2: minor clean up
bug:
https://bugzilla.kernel.org/show_bug.cgi?id=73931
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-22 16:51:17 +02:00
Alex Deucher
7e95cfb0b7
drm/radeon: fix count in cik_sdma_ring_test()
...
Should be 5 rather than 4.
Noticed-by: Mathias Fröhlich <Mathias.Froehlich@gmx.net >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-22 14:51:51 +02:00
Alex Deucher
ad47b8fa5a
drm/radeon/aux: fix hpd assignment for aux bus
...
The hpd (hot plug detect) pin assignment got lost
in the conversion to to the common i2c over aux
code. Without this information, aux transactions
do not work properly. Fixes DP failures.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-22 11:15:31 +02:00
Christian König
c2fb309466
drm/radeon: improve PLL limit handling in post div calculation
...
This improves the PLL parameters when we work at
the limits of the allowed ranges.
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-20 17:16:12 +02:00
Christian König
2431581423
drm/radeon: use fixed PPL ref divider if needed
...
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-19 18:57:14 +02:00
Alex Deucher
76e6dcece8
drm/radeon: disable dpm on rv770 by default
...
There seem to be stability issues on a number of cards.
bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=76286
https://bugzilla.redhat.com/show_bug.cgi?id=1085785
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741619
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: matthias.graf@st.ovqu.de
Cc: bp@alien8.de
Cc: stable@vger.kernel.org
2014-04-19 12:12:49 +02:00
Dave Airlie
a42892ed10
Merge branch 'drm-next-3.15-wip' of git://people.freedesktop.org/~deathsimple/linux into drm-next
...
Some i2c fixes over DisplayPort.
* 'drm-next-3.15-wip' of git://people.freedesktop.org/~deathsimple/linux:
drm/radeon: Improve vramlimit module param documentation
drm/radeon: fix audio pin counts for DCE6+ (v2)
drm/radeon/dp: switch to the common i2c over aux code
drm/dp/i2c: Update comments about common i2c over dp assumptions (v3)
drm/dp/i2c: send bare addresses to properly reset i2c connections (v4)
drm/radeon/dp: handle zero sized i2c over aux transactions (v2)
drm/i915: support address only i2c-over-aux transactions
drm/tegra: dp: Support address-only I2C-over-AUX transactions
2014-04-19 11:16:02 +10:00
Alex Deucher
bcddee29b0
drm/radeon/ci: make sure mc ucode is loaded before checking the size
...
Avoid a possible segfault.
Noticed-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 14:14:43 +02:00
Alex Deucher
8c79bae6a3
drm/radeon/si: make sure mc ucode is loaded before checking the size
...
Avoid a possible segfault.
Noticed-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 14:14:41 +02:00
Christian König
f8a2645ece
drm/radeon: improve PLL params if we don't match exactly v2
...
Otherwise we might be quite off on older chipsets.
v2: keep ref_div minimum
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-17 14:14:18 +02:00
Quentin Casasnovas
74073c9dd2
drm/radeon: memory leak on bo reservation failure. v2
...
On bo reservation failure, we end up leaking fpriv.
v2 (chk): rebased and added missing free on vm failure as well
Fixes: 5e386b574c ("drm/radeon: fix missing bo reservation")
Cc: stable@vger.kernel.org
Cc: Christian König <christian.koenig@amd.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-17 13:59:57 +02:00
Christoph Jaeger
681941c179
drm/radeon: fix VCE fence command
...
Due to a type mismatch that causes an implicit type conversion, the
upper 32 bits of the GPU address have been zeroed out when adding to the
command buffer.
Picked up by Coverity - CID 1198624.
Signed-off-by: Christoph Jaeger <christophjaeger@linux.com >
2014-04-17 13:59:55 +02:00
Alex Deucher
7e1858f9af
drm/radeon: re-enable mclk dpm on R7 260X asics
...
If the new mc ucode is available.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 13:59:53 +02:00
Alex Deucher
277babc374
drm/radeon: add support for newer mc ucode on CI (v2)
...
Fixes mclk stability on certain asics.
v2: print out mc firmware version used and size
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=75992
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 13:59:51 +02:00
Alex Deucher
1ebe92802e
drm/radeon: add support for newer mc ucode on SI (v2)
...
May fix stability issues with some newer cards.
v2: print out mc firmware version used and size
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 13:59:49 +02:00
Christian König
5fb9cc4d8b
drm/radeon: apply more strict limits for PLL params v2
...
Letting post and refernce divider get to big is bad for signal stability.
v2: increase the limit to 210
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-17 13:59:46 +02:00
Alex Deucher
6abc6d5c73
drm/radeon: update CI DPM powertune settings
...
As per internal recommendations.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2014-04-17 13:59:41 +02:00
Alex Deucher
90c4cde9d5
drm/radeon: fix runpm handling on APUs (v4)
...
Don't try and runtime suspend the APU in PX systems. We
only want to power down the dGPU.
v2: fix harder
v3: fix stupid typo
v4: consolidate runpm enablement to a single flag
bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=75127
https://bugzilla.kernel.org/show_bug.cgi?id=72701
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 13:59:38 +02:00
Alex Deucher
57700ad1f2
drm/radeon: disable mclk dpm on R7 260X
...
Setting higher mclks seems to cause stability issues
on some R7 260X boards. Disable it for now for stability
until we find a proper fix.
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=75992
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-17 13:59:36 +02:00
Lauri Kasanen
8902e6f2b8
drm/radeon: Improve vramlimit module param documentation
...
Signed-off-by: Lauri Kasanen <cand@gmx.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2014-04-08 17:44:15 +02:00
Alex Deucher
be0949f5eb
drm/radeon: fix audio pin counts for DCE6+ (v2)
...
There is actually quite a bit of variance based on
the asic.
v2: fix typo noticed by Jerome.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-04-08 17:43:48 +02:00
Alex Deucher
379dfc25e2
drm/radeon/dp: switch to the common i2c over aux code
...
Provides a nice cleanup in radeon.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-08 16:12:40 +02:00
Alex Deucher
25377b921b
drm/radeon/dp: handle zero sized i2c over aux transactions (v2)
...
Needed for proper i2c over aux handling for certain
monitors and configurations (e.g., dp bridges or
adapters).
v2: add comments clarifying tx_size setting.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2014-04-08 16:12:38 +02:00
Lauri Kasanen
deadcb36f4
drm/radeon: Use two-ended allocation by size, v2
...
This decreases eviction by up to 20%, by improving the fragmentation
quality. No harm in normal cases that fit VRAM fully (PTS gaming suite).
In some cases, even the VRAM-fitting cases improved slightly (openarena, urban terror).
512kb was measured as the most optimal threshold for 3d workloads common to radeon.
Other drivers may need different thresholds according to their workloads.
v2: Nicer formatting
Signed-off-by: Lauri Kasanen <cand@gmx.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2014-04-04 09:28:41 +10:00
Alex Deucher
f1553174a2
drm/radeon: fix typo in spectre_golden_registers
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-04-03 12:41:18 +02:00
Alex Deucher
a8947f5767
drm/radeon: fix endian swap on hawaii clear state buffer setup
...
Need to swap on BE.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-04-03 12:41:02 +02:00
Alex Deucher
1608627935
drm/radeon: call drm_edid_to_eld when we update the edid
...
This needs to be done to update some of the fields in
the connector structure used by the audio code.
Noticed by several users on irc.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Cc: stable@vger.kernel.org
2014-04-03 12:40:53 +02:00
Christian König
3216701607
drm/radeon: rework finding display PLL numbers v2
...
This completely reworks how the PLL parameters are generated and
should result in better matching dot clock frequencies.
Probably needs quite a bit of testing.
bugs: https://bugs.freedesktop.org/show_bug.cgi?id=76564
v2: more cleanup and comments.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2014-04-03 12:35:42 +02:00
Dave Airlie
ec9954fc26
drm/radeon: fix resuming mode in pm runtime resume path
...
For runtime pm we'd never suspend with the modesetting hw turned on,
so don't try and resume the modesetting hw, as that path will take
locks that the interface that is causing us to wake up might also
take.
Signed-off-by: Dave Airlie <airlied@redhat.com >
2014-04-03 12:35:41 +02:00
Dave Airlie
1d8eec8ba4
drm/radeon: fix runtime suspend breaking secondary GPUs
...
Same fix as for nouveau, when we fail with EINVAL, subsequent
gets fail hard, causing the device not to open.
Signed-off-by: Dave Airlie <airlied@redhat.com >
2014-04-03 12:35:41 +02:00
Christian König
06a139f7a0
drm/radeon: clear needs_reset flag if IB test fails
...
If the IB test fails we don't want to reset the card over
and over again, just accept that it isn't working.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76501
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2014-04-03 12:35:40 +02:00