summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon (follow)
Commit message (Collapse)AuthorAgeFilesLines
* drm/radeon/dpm: fix incompatible casting on big endianAlex Deucher2013-10-231-2/+2
| | | | | | | | | We use u16 for voltage values throughout the driver so switch the table values to a u16 as well. Fixes an incompatible cast error in ci_patch_clock_voltage_limits_with_vddc_leakage() picked up by coverity. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: disable bapm on KBAlex Deucher2013-10-231-1/+1
| | | | | | May cause stability problems on some boards. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use sw CTS/N values for audio on DCE4+Alex Deucher2013-10-231-0/+1
| | | | | | | | | | | Use the driver calculated CTS and N values rather than having hardware generate them. This allows us to use the modeline pixel clock rather than the actual pll clock when setting up the dto for audio. Fixes problems with audio playback rate on certain asics if the pll clock does not match the pixel clock exactly. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/audio: don't set speaker allocation on DCE4+Alex Deucher2013-10-192-0/+6
| | | | | | | It causes hangs on some asics. Disable on DCE6+ as well just to be on the safe side. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: rework audio optionAlex Deucher2013-10-183-31/+58
| | | | | | | | | | | | | | | | | | | | | | In 3.12 I changed audio to be enabled by default, but you still had to turn it on via xrandr. This was confusing to users so change it to minic the previous behavior: - audio option is set to -1 (auto) by default which is the current 3.12 behavior (audio is enabled but requires xrandr to turn it on). - if audio = 1, the audio is enabled without needing to mess with xrandr (previous behavior) - audio = 0 disables audio It retains the new feature of allowing the user to enable audio on the fly with xrandr, but turns audio on automatically if radeon.audio=1 is set which is what most users expect. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
* drm/radeon/audio: don't set speaker allocation on DCE3.2Alex Deucher2013-10-181-0/+3
| | | | | | | | | | It causes hangs on some asics. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=70439 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
* drm/radeon: make missing smc ucode non-fatal (CI)Alex Deucher2013-10-181-0/+1
| | | | | | | | | Prevent driver load problems if the smc is missing. bug: https://bugzilla.kernel.org/show_bug.cgi?id=63011 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: make missing smc ucode non-fatal (r7xx-SI)Alex Deucher2013-10-183-0/+3
| | | | | | | | | | | Prevent driver load problems if the smc is missing. bug: https://bugzilla.kernel.org/show_bug.cgi?id=63011 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Tested-by: Mikko Rapeli <mikko.rapeli@iki.fi> Cc: stable@vger.kernel.org
* drm/radeon/uvd: revert lower msg&fb buffer requirements on UVD3Christian König2013-10-183-5/+5
| | | | | | | | | | | This only seem to work for H.264 but not for VC-1 streams. Need to investigate further why exactly. This reverts commit 4b40e5921230beb1951f04d2b1b92c4c88fbad43. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: stop the leaks in cik_ib_testChristian König2013-10-181-0/+3
| | | | | | | Stop leaking IB memory and scratch register space when the test fails. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/atom: workaround vbios bug in transmitter table on rs780Alex Deucher2013-10-181-1/+1
| | | | | | | | | | | | | Some rs780 asics seem to be affected as well. See: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=91f3a6aaf280294b07c05dfe606e6c27b7ba3c72 Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=60791 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon: re-enable sw ACR support on pre-DCE4Alex Deucher2013-10-101-0/+1
| | | | | | | | HW ACR support may have issues on some older chips, so use SW ACR for now until we've tested further. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> CC: Rafał Miłecki <zajec5@gmail.com>
* drm/radeon/dpm: disable bapm on TN asicsAlex Deucher2013-10-091-1/+1
| | | | | | | | | Causes hangs on certain boards. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=70053 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: improve soft reset on CIKAlex Deucher2013-10-091-0/+6
| | | | | | Disable CG/PG before resetting. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: improve soft reset on SIAlex Deucher2013-10-091-0/+10
| | | | | | | Disable CG/PG and stop the rlc before resetting. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon/dpm: off by one in si_set_mc_special_registers()Dan Carpenter2013-10-091-3/+3
| | | | | | | | | | These checks should be ">=" instead of ">". j is used as an offset into the table->mc_reg_address[] array and that has SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE (16) elements. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers()Dan Carpenter2013-10-091-3/+3
| | | | | | | | | It should be ">=" instead of ">" here. The table->mc_reg_address[] array has SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE (16) elements. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon: forever loop on error in radeon_do_test_moves()Dan Carpenter2013-10-091-2/+2
| | | | | | | | | | | | The error path does this: for (--i; i >= 0; --i) { which is a forever loop because "i" is unsigned. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon: fix hw contexts for SUMO2 asicswojciech kapuscinski2013-10-091-1/+1
| | | | | | | | | | | They have 4 rather than 8. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=63599 Signed-off-by: wojciech kapuscinski <wojtask9@wp.pl> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon: fix typo in CP DMA register headersAlex Deucher2013-10-093-5/+5
| | | | | | | Wrong bit offset for SRC endian swapping. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon/dpm: disable multiple UVD statesAlex Deucher2013-10-092-1/+5
| | | | | | | Always use the regular UVD state for now. This fixes a performance regression with UVD playback on certain APUs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use hw generated CTS/N values for audioAlex Deucher2013-10-092-4/+2
| | | | | | | | | | | | Use the hw generated values rather than calculating them in the driver. There may be some older r6xx asics where this doesn't work correctly. This remains to be seen. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=69675 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: fix N/CTS clock matching for audioAlex Deucher2013-10-091-3/+3
| | | | | | | | | | | The drm code that calculates the 1001 clocks rounds up rather than truncating. This allows the table to match properly on those modes. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=69675 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use 64-bit math to calculate CTS values for audio (v2)Alex Deucher2013-10-091-2/+9
| | | | | | | | | Avoid losing precision. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=69675 v2: fix math as per Anssi's comments. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* Merge branch 'drm-fixes-3.12' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie2013-09-2817-57/+228
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into drm-fixes More radeon fixes for 3.12. Kind of all over the place: UVD, DPM, tiling, etc. * 'drm-fixes-3.12' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: fix hdmi audio on DCE3.0/3.1 asics drm/radeon/cik: fix overflow in vram fetch drm/radeon: add missing hdmi callbacks for rv6xx drm/radeon/uvd: lower msg&fb buffer requirements on UVD3 drm/radeon: disable tests/benchmarks if accel is disabled drm/radeon: don't set default clocks for SI when DPM is disabled drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables drm/radeon/dpm/si: filter clocks based on voltage/clk dep tables drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tables drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tables drm/radeon/dpm: fetch the max clk from voltage dep tables helper drm/radeon: fix missed variable sized access drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2) drm/radeon/cik: Add tiling mode index for 1D tiled depth/stencil surfaces drm/radeon/cik: Fix encoding of number of banks in tiling configuration info drm/radeon/cik: Fix printing of client name on VM protection fault drm/radeon: additional gcc fixes for radeon_atombios.c drm/radeon: avoid UVD corruption on AGP cards using GPU gart
| * drm/radeon: fix hdmi audio on DCE3.0/3.1 asicsAlex Deucher2013-09-251-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | These asics seem to use a mix of the DCE2.x and DCE3.2 audio interfaces despite what the register spec says. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69729 https://bugs.freedesktop.org/show_bug.cgi?id=69671 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon/cik: fix overflow in vram fetchAlex Deucher2013-09-241-2/+2
| | | | | | | | | | | | | | | | Missing ULL when calculating the amount of vram leads to an overflow when the amount of vram is >= 4G. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon: add missing hdmi callbacks for rv6xxAlex Deucher2013-09-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When dpm was merged, I added a new asic struct for rv6xx, but it never got properly updated when the hdmi callbacks were added due to the two patch sets being developed in parallel. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69729 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon/uvd: lower msg&fb buffer requirements on UVD3Christian König2013-09-233-5/+5
| | | | | | | | | | | | | | | | Starting with UVD3 message and feedback buffers have their own 256MB segment, so no need to force them into VRAM any more. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: disable tests/benchmarks if accel is disabledAlex Deucher2013-09-231-3/+12
| | | | | | | | | | | | | | | | | | | | The tests are only usable if the acceleration engines have been successfully initialized. Based on an initial patch from: Alex Ivanov <gnidorah@p0n4ik.tk> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon: don't set default clocks for SI when DPM is disabledAlex Deucher2013-09-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a partial revert of c6cf7777a32da874fabec4fd1c2a579f0ba4e4dd. We need to take into account the clk voltage dependencies of the board. Not doing so can lead to stability issues on certain boards if the clks exceed the levels in the dep tables. DPM already takes that into account, so for optimal performance, use DPM. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tablesAlex Deucher2013-09-231-0/+26
| | | | | | | | | | | | | | | | | | | | | | Filter out mclk and sclk levels higher than listed in the clk voltage dependency tables. Supporting these clocks will require additional driver tweaking that isn't supported yet. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/dpm/si: filter clocks based on voltage/clk dep tablesAlex Deucher2013-09-231-0/+24
| | | | | | | | | | | | | | | | | | | | | | Filter out mclk and sclk levels higher than listed in the clk voltage dependency tables. Supporting these clocks will require additional driver tweaking that isn't supported yet. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tablesAlex Deucher2013-09-231-0/+24
| | | | | | | | | | | | | | | | | | | | | | filter out mclk and sclk levels higher than listed in the clk voltage dependency tables. Supporting these clocks will require additional driver tweaking that isn't supported yet. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tablesAlex Deucher2013-09-231-0/+34
| | | | | | | | | | | | | | | | | | | | | | Filter out mclk and sclk levels higher than listed in the clk voltage dependency tables. Supporting these clocks will require additional driver tweaking that isn't supported yet. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/dpm: fetch the max clk from voltage dep tables helperAlex Deucher2013-09-232-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a helper function to fetch the max clock from the voltage clock dependecy tables. Clocks above that level tend to be unstable and will require additional driver tweaks in order to work properly. This patch implemented the helper function to fetch the max clocks from the dependency tables. The following patches implement the per-asic clock filtering. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: fix missed variable sized accessAlex Deucher2013-09-231-1/+1
| | | | | | | | | | | | | | I missed this when I fixed up this file. Noticed-by: Mathias Fröhlich <Mathias.Froehlich@gmx.net> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2)Alex Ivanov2013-09-202-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Prevent NULL pointer dereference in case when radeon_ring_fini() did it's job. Reading of r100_cp_ring_info and radeon_ring_gfx debugfs entries will lead to a KP if ring buffer was deallocated, e.g. on failed ring test. Seen on PA-RISC machine having "radeon: ring test failed (scratch(0x8504)=0xCAFEDEAD)" issue. v2: agd5f: add some parens around ring->ready check Signed-off-by: Alex Ivanov <gnidorah@p0n4ik.tk> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon/cik: Fix encoding of number of banks in tiling configuration infoMichel Dänzer2013-09-201-4/+2
| | | | | | | | | | | | | | | | | | There are multiple valid values, not just 0 or 1. Required to properly support 2D tiling in the userspace drivers. Cc: stable@vger.kernel.org Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/cik: Fix printing of client name on VM protection faultMichel Dänzer2013-09-201-3/+4
| | | | | | | | | | | | | | | | The string is encoded from the MSB to the LSB of the register. Cc: stable@vger.kernel.org Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: additional gcc fixes for radeon_atombios.cAlex Deucher2013-09-201-23/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer versions of gcc seem to wander off into the weeds when dealing with variable sizes arrays in structs. Rather than indexing the arrays, use pointer arithmetic. Fix up spread spectrum tables. See bugs: https://bugs.freedesktop.org/show_bug.cgi?id=66932 https://bugs.freedesktop.org/show_bug.cgi?id=66972 https://bugs.freedesktop.org/show_bug.cgi?id=66945 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: avoid UVD corruption on AGP cards using GPU gartAlex Deucher2013-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | If the user has forced the driver to use the internal GPU gart rather than AGP on an AGP card, force the buffers to vram as well. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Cc: stable@vger.kernel.org
* | Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds2013-09-1945-228/+785
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull drm radeon/nouveau/core fixes from Dave Airlie: "Mostly radeon fixes, with some nouveau bios parser, ttm fix and a fix for AST driver" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (42 commits) drm/fb-helper: don't sleep for screen unblank when an oops is in progress drm, ttm Fix uninitialized warning drm/ttm: fix the tt_populated check in ttm_tt_destroy() drm/nouveau/ttm: prevent double-free in nouveau_sgdma_create_ttm() failure path drm/nouveau/bios/init: fix thinko in INIT_CONFIGURE_MEM drm/nouveau/kms: enable for non-vga pci classes drm/nouveau/bios/init: stub opcode 0xaa drm/radeon: avoid UVD corruptions on AGP cards drm/radeon: fix panel scaling with eDP and LVDS bridges drm/radeon/dpm: rework auto performance level enable drm/radeon: Fix hmdi typo drm/radeon/dpm/rs780: fix force_performance state for same sclks drm/radeon/dpm/rs780: don't enable sclk scaling if not required drm/radeon/dpm/rs780: add some sanity checking to sclk scaling drm/radeon/dpm/rs780: use drm_mode_vrefresh() drm/udl: rip out set_need_resched drm/ast: fix the ast open key function drm/radeon/dpm: add bapm callback for kb/kv drm/radeon/dpm: add bapm callback for trinity drm/radeon/dpm: add infrastructure to properly handle bapm ...
| * drm/radeon: avoid UVD corruptions on AGP cardsChristian König2013-09-161-3/+5
| | | | | | | | | | | | | | | | Putting everything into VRAM seems to help. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon: fix panel scaling with eDP and LVDS bridgesAlex Deucher2013-09-161-3/+31
| | | | | | | | | | | | | | | | | | We were using the wrong set_properly callback so we always ended up with Full scaling even if something else (Center or Full aspect) was selected. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
| * drm/radeon/dpm: rework auto performance level enableAlex Deucher2013-09-1611-47/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Calling force_performance_level() from set_power_state() doesn't work on some asics because the current power state pointer has not been properly updated at that point. Move the calls to force_performance_level() out of the asic specific set_power_state() functions and into the main power state sequence. Fixes dpm resume on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: Fix hmdi typoDamien Lespiau2013-09-163-3/+3
| | | | | | | | | | | | | | | | | | I keep making that one, so checked if I was the only one. Apparently not. Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon/dpm/rs780: fix force_performance state for same sclksAlex Deucher2013-09-161-2/+4
| | | | | | | | | | | | | | | | | | If the low and high sclks within a power state are the same, there no need to enable sclk scaling. Enabling sclk scaling can cause display stability issues on some boards. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
| * drm/radeon/dpm/rs780: don't enable sclk scaling if not requiredAlex Deucher2013-09-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | If the low and high sclks are the same, there is no need to enable sclk scaling. This causes display stability issues on certain boards. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=60857 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Reviewed-by: Christian König <christian.koenig@amd.com>
| * drm/radeon/dpm/rs780: add some sanity checking to sclk scalingAlex Deucher2013-09-161-0/+6
| | | | | | | | | | | | | | | | Since the clock scaling is based on fb divider adjustments, make sure the other pll parameters are the same. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>