aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon.h
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2009-09-28 12:34:43 -0400
committerDave Airlie <airlied@linux.ie>2009-09-28 21:15:54 -0400
commitd39c3b895876427c5083a936e00f3f5b7f0fc1b3 (patch)
tree1f57be660f35c99ef6d182d2bf8397a818c8f8d0 /drivers/gpu/drm/radeon/radeon.h
parentf4e45d02e4135043fe98bc21be38527c516ad990 (diff)
drm/radeon/kms: Convert RV515 to new init path and associated cleanup
Convert the rv515 asic support to new init path also add an explanation in radeon.h about the new init path. There is also few cleanups associated with this change (others asic calling rv515 helper functions). Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 7e34e4376f95..116bedddffe6 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -44,6 +44,24 @@
44 * - TESTING, TESTING, TESTING 44 * - TESTING, TESTING, TESTING
45 */ 45 */
46 46
47/* Initialization path:
48 * We expect that acceleration initialization might fail for various
49 * reasons even thought we work hard to make it works on most
50 * configurations. In order to still have a working userspace in such
51 * situation the init path must succeed up to the memory controller
52 * initialization point. Failure before this point are considered as
53 * fatal error. Here is the init callchain :
54 * radeon_device_init perform common structure, mutex initialization
55 * asic_init setup the GPU memory layout and perform all
56 * one time initialization (failure in this
57 * function are considered fatal)
58 * asic_startup setup the GPU acceleration, in order to
59 * follow guideline the first thing this
60 * function should do is setting the GPU
61 * memory controller (only MC setup failure
62 * are considered as fatal)
63 */
64
47#include <asm/atomic.h> 65#include <asm/atomic.h>
48#include <linux/wait.h> 66#include <linux/wait.h>
49#include <linux/list.h> 67#include <linux/list.h>
@@ -976,6 +994,7 @@ extern void radeon_clocks_fini(struct radeon_device *rdev);
976extern void radeon_scratch_init(struct radeon_device *rdev); 994extern void radeon_scratch_init(struct radeon_device *rdev);
977extern void radeon_surface_init(struct radeon_device *rdev); 995extern void radeon_surface_init(struct radeon_device *rdev);
978extern int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data); 996extern int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data);
997extern void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable);
979 998
980/* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */ 999/* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */
981struct r100_mc_save { 1000struct r100_mc_save {
@@ -1007,6 +1026,9 @@ extern void r100_vram_init_sizes(struct radeon_device *rdev);
1007extern void r100_wb_disable(struct radeon_device *rdev); 1026extern void r100_wb_disable(struct radeon_device *rdev);
1008extern void r100_wb_fini(struct radeon_device *rdev); 1027extern void r100_wb_fini(struct radeon_device *rdev);
1009extern int r100_wb_init(struct radeon_device *rdev); 1028extern int r100_wb_init(struct radeon_device *rdev);
1029extern void r100_hdp_reset(struct radeon_device *rdev);
1030extern int r100_rb2d_reset(struct radeon_device *rdev);
1031extern int r100_cp_reset(struct radeon_device *rdev);
1010 1032
1011/* r300,r350,rv350,rv370,rv380 */ 1033/* r300,r350,rv350,rv370,rv380 */
1012extern void r300_set_reg_safe(struct radeon_device *rdev); 1034extern void r300_set_reg_safe(struct radeon_device *rdev);
@@ -1018,12 +1040,24 @@ extern int rv370_pcie_gart_enable(struct radeon_device *rdev);
1018extern void rv370_pcie_gart_disable(struct radeon_device *rdev); 1040extern void rv370_pcie_gart_disable(struct radeon_device *rdev);
1019 1041
1020/* r420,r423,rv410 */ 1042/* r420,r423,rv410 */
1043extern int r420_mc_init(struct radeon_device *rdev);
1021extern u32 r420_mc_rreg(struct radeon_device *rdev, u32 reg); 1044extern u32 r420_mc_rreg(struct radeon_device *rdev, u32 reg);
1022extern void r420_mc_wreg(struct radeon_device *rdev, u32 reg, u32 v); 1045extern void r420_mc_wreg(struct radeon_device *rdev, u32 reg, u32 v);
1023extern int r420_debugfs_pipes_info_init(struct radeon_device *rdev); 1046extern int r420_debugfs_pipes_info_init(struct radeon_device *rdev);
1047extern void r420_pipes_init(struct radeon_device *rdev);
1024 1048
1025/* rv515 */ 1049/* rv515 */
1050struct rv515_mc_save {
1051 u32 d1vga_control;
1052 u32 d2vga_control;
1053 u32 vga_render_control;
1054 u32 vga_hdp_control;
1055 u32 d1crtc_control;
1056 u32 d2crtc_control;
1057};
1026extern void rv515_bandwidth_avivo_update(struct radeon_device *rdev); 1058extern void rv515_bandwidth_avivo_update(struct radeon_device *rdev);
1059extern void rv515_vga_render_disable(struct radeon_device *rdev);
1060extern void rv515_set_safe_registers(struct radeon_device *rdev);
1027 1061
1028/* rs690, rs740 */ 1062/* rs690, rs740 */
1029extern void rs690_line_buffer_adjust(struct radeon_device *rdev, 1063extern void rs690_line_buffer_adjust(struct radeon_device *rdev,