aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_asic.c
Commit message (Collapse)AuthorAge
* Revert "drm/radeon: add missing hdmi callbacks for rv6xx"Rafał Miłecki2013-10-13
| | | | | | | | | | | | | | | | | | This reverts commit b2a9484006875ecd7d94582e7bcb72a02682be92. Commit 99d79aa2f3b7729e7290e8bda5d0dd8b0240ec62 (backported by b2a9484006875ecd7d94582e7bcb72a02682be92) was supposed to fix rv6xx_asic struct. In kernel 3.10 we didn't have that struct yet, so the original patch should never be backported to the 3.10. Accidentally it has applied and modified different struct (r520_asic) that shouldn't have any HDMI callbacks at all. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* drm/radeon: add missing hdmi callbacks for rv6xxAlex Deucher2013-10-05
| | | | | | | | | | | | | | | | | commit 99d79aa2f3b7729e7290e8bda5d0dd8b0240ec62 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* drm/radeon: Disable dma rings for bo moves on r6xxAlex Deucher2013-08-11
| | | | | | | | | | | | | | | | | commit aeea40cbf9388fc829e66fa049f64d97fd72e118 upstream. They still seem to cause instability on some r6xx parts. As a follow up, we can switch to using CP DMA for bo moves on r6xx as a lighter weight alternative to using the 3D engine. A version of this patch should also go to stable kernels. Tested-by: J.N. <golden.fleeced@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* drm/radeon: Use direct mapping for fast fb access on RS780/RS880 (v2)Samuel Li2013-06-03
| | | | | | | v2: fix trailing whitespace Signed-off-by: Samuel Li <samuel.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: track which asics have UVDAlex Deucher2013-05-20
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: radeon-asic updates for HainanAlex Deucher2013-05-20
| | | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
* drm/radeon: switch audio handling to use callbacksAlex Deucher2013-04-23
| | | | | | | | | Register audio callbacks for asic where we support audio. Cleans up the code and makes it easier to add support for newer asics. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add pcie set/get lanes callbacks for newer asicsAlex Deucher2013-04-09
| | | | | | Uses the same functions as older asics. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add set_uvd_clocks callback for r7xx v3Christian König2013-04-09
| | | | | | | | | v2: avoid 64bit divide v3: rv740 uses the evegreen upll configuration Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: add set_uvd_clocks callback for SIChristian König2013-04-09
| | | | | | Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add set_uvd_clocks callback for evergreenAlex Deucher2013-04-09
| | | | | | | | v2: remove unneeded register definitions Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add set_uvd_clocks callback for ON/LN/TN (v4)Alex Deucher2013-04-09
| | | | | | | | | | v2: write clk registers only once! v3: update cg scratch register properly v4: add TN support Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: UVD bringup v8Christian König2013-04-09
| | | | | | | | | | | | | Just everything needed to decode videos using UVD. v6: just all the bugfixes and support for R7xx-SI merged in one patch v7: UVD_CGC_GATE is a write only register, lockup detection fix v8: split out VRAM fallback changes, remove support for RV770, add support for HEMLOCK, add buffer sizes checks Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: switch get_gpu_clock() to a callback (v2)Alex Deucher2013-02-20
| | | | | | | | Cleans up the code for future asics v2: rebase, fix some missing radeon_asic updates Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add a asic callback to get the xclkAlex Deucher2013-02-20
| | | | | | | | | This is required to get the reference clock used by the gfx engine for things like timestamps. Fixes support for GL extensions the use timestamps on certain boards. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: radeon-asic updates for OlandAlex Deucher2013-02-01
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: switch back to using the DMA ring for VM PT updatesAlex Deucher2013-02-01
| | | | | | | Now that we have switched to using IBs for page table updates, we can switch back the using the DMA ring. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use the reset mask to determine if rings are hungAlex Deucher2013-01-31
| | | | | | | fetch the reset mask and check if the relevant ring flags are set to determine whether the ring is hung or not. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: switch back to the CP ring for VM PT updatesAlex Deucher2013-01-31
| | | | | | | | | | | | | | For large VM page table updates, we can sometimes generate more packets than there is space on the ring. This happens more readily with the DMA ring since it is 64K (vs 1M for the CP). For now, switch back to the CP. For the next kernel, I have a patch to utilize IBs for VM PT updates which alleviates this problem. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=58354 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: split r6xx and r7xx copy_dma functionsAlex Deucher2013-01-04
| | | | | | | | - r6xx actually uses a slightly different packet format, although both formats seem to work ok. - r7xx doesn't have the count multiple of 2 limitation. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add VM CS parser support for async DMA on cayman/TN/SIAlex Deucher2012-12-14
| | | | | | Allows us to use async DMA from userspace. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: add evergreen/cayman CS parser for async DMA (v2)Alex Deucher2012-12-14
| | | | | | | | | | | Allows us to use the DMA ring from userspace. DMA doesn't have a good NOP packet in which to embed the reloc idx, so userspace has to add a reloc for each buffer used and order them to match the command stream. v2: fix address bounds checking Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: add 6xx/7xx CS parser for async DMA (v2)Alex Deucher2012-12-14
| | | | | | | | | | | Allows us to use the DMA ring from userspace. DMA doesn't have a good NOP packet in which to embed the reloc idx, so userspace has to add a reloc for each buffer used and order them to match the command stream. v2: fix address bounds checking, reloc indexing Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use DMA engine for VM page table updates on SIAlex Deucher2012-12-10
| | | | | | | DMA engine has special packets to facilitate this and it also keeps the 3D engine free for other things. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use DMA engine for VM page table updates on cayman/TNAlex Deucher2012-12-10
| | | | | | | DMA engine has special packets to facilitate this and it also keeps the 3D engine free for other things. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: use async dma for ttm buffer moves on 6xx-SIAlex Deucher2012-12-10
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: Add initial support for async DMA on SIAlex Deucher2012-12-10
| | | | | | | Pretty much the same as cayman. Some changes to the copy packets. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: Add initial support for async DMA on cayman/TNAlex Deucher2012-12-10
| | | | | | | | | There are 2 async DMA engines on cayman, one at 0xd000 and one at 0xd800. The programming interface is the same as evergreen however there are some changes to the commands for using vmids. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: Add initial support for async DMA on evergreenAlex Deucher2012-12-10
| | | | | | | Pretty similar to 6xx/7xx except the count field increased in the packet header and the max IB size increased. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: Add initial support for async DMA on r6xx/r7xxAlex Deucher2012-12-10
| | | | | | | Uses the new multi-ring infrastucture. 6xx/7xx has a single async DMA ring. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add vm set_page() callback for SIAlex Deucher2012-10-02
| | | | | | | Use the new WRITE_DATA packet rather than the legacy ME_WRITE packet. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/pm: fix multi-head profile handling on BTC+ (v2)Alex Deucher2012-10-02
| | | | | | | | | | | | | Starting on BTC, there are no longer separate states for single head and multi-head, we just use the high mclk/voltage for all states for multi-head. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49981 v2: fix typo Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add get_backlight_level callbackAlex Deucher2012-09-27
| | | | | | | Read back the backlight level from the hw. Needed for proper backlight restoration on resume. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: make page table updates async v2Christian König2012-09-20
| | | | | | | | | Currently doing the update with the CP. v2: Rebased on Jeromes bugfix. Make validity comparison more human readable. Signed-off-by: Christian König <deathsimple@vodafone.de>
* drm/radeon: Move looping over the PTEs into chip codeChristian König2012-09-20
| | | | | | | Makes it easier to move it into the rings. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: rework VMID handlingChristian König2012-09-20
| | | | | | | Move binding onto the ring, simplifying handling a bit. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: make VM flushs a ring operationChristian König2012-09-20
| | | | | | | | Move flushing the VMs as function into the rings. First step to make VM operations async. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: remove vm_unbindChristian König2012-09-20
| | | | | | | It actually isn't very useful. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: move VM funcs into asic structureChristian König2012-09-20
| | | | | | | So it looks more like the rest of the driver. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon: rework the backlight control to be an asic callbackAlex Deucher2012-09-20
| | | | | | This cleans up the interface a bit as well. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: document radeon_asic.cAlex Deucher2012-07-18
| | | | | | | | Adds documentation to most of the functions in radeon_asic.c Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
* drm/radeon: remove cayman_gpu_is_lockupChristian König2012-05-03
| | | | | | | | Since it is now identical to evergreen_gpu_is_lockup. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon: remove r300_gpu_is_lockupChristian König2012-05-03
| | | | | | | | Since it is now identical to r100_gpu_is_lockup. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon: make radeon_gpu_is_lockup a per ring functionChristian König2012-05-03
| | | | | | | | | | | | Different rings have different criteria to test if they are stuck. v2: rebased on current drm-next Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: add radeon_asic struct for trinityAlex Deucher2012-03-21
| | | | | | | | | Trinity (TN) is an APU with: - Cayman 3D - DCE6.1 display Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: add radeon_asic struct for SIAlex Deucher2012-03-21
| | | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: clean up radeon_asic struct (v2)Alex Deucher2012-02-29
| | | | | | | | | | v2: fix typo. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: reorganize surface callbacksAlex Deucher2012-02-29
| | | | | | | | | | tidy up the radeon_asic struct. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: move clock/pcie setting callbacks into pm structAlex Deucher2012-02-29
| | | | | | | | | | tidy up radeon_asic struct. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: reorganize display callbacksAlex Deucher2012-02-29
| | | | | | | | | | tidy up the radeon_asic struct. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>