Subversion Repositories Kolibri OS

Rev

Rev 1963 | Rev 2005 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1963 Rev 2004
Line 496... Line 496...
496
	if (rdev->family == CHIP_RV740)
496
	if (rdev->family == CHIP_RV740)
497
		tcp_chan_steer = 0x00ef2a60;
497
		tcp_chan_steer = 0x00ef2a60;
498
	else
498
	else
499
		tcp_chan_steer = 0x00fac688;
499
		tcp_chan_steer = 0x00fac688;
Line -... Line 500...
-
 
500
 
-
 
501
	/* RV770 CE has special chremap setup */
-
 
502
	if (rdev->pdev->device == 0x944e) {
-
 
503
		tcp_chan_steer = 0x00b08b08;
-
 
504
		mc_shared_chremap = 0x00b08b08;
-
 
505
	}
500
 
506
 
501
	WREG32(TCP_CHAN_STEER, tcp_chan_steer);
507
	WREG32(TCP_CHAN_STEER, tcp_chan_steer);
502
	WREG32(MC_SHARED_CHREMAP, mc_shared_chremap);
508
	WREG32(MC_SHARED_CHREMAP, mc_shared_chremap);
Line 503... Line 509...
503
}
509
}
Line 1080... Line 1086...
1080
	}
1086
	}
1081
	r = rv770_vram_scratch_init(rdev);
1087
	r = rv770_vram_scratch_init(rdev);
1082
	if (r)
1088
	if (r)
1083
		return r;
1089
		return r;
1084
	rv770_gpu_init(rdev);
1090
	rv770_gpu_init(rdev);
-
 
1091
	/* allocate wb buffer */
-
 
1092
	r = radeon_wb_init(rdev);
-
 
1093
	if (r)
-
 
1094
		return r;
-
 
1095
 
-
 
1096
	/* Enable IRQ */
-
 
1097
	r = r600_irq_init(rdev);
-
 
1098
	if (r) {
-
 
1099
		DRM_ERROR("radeon: IH init failed (%d).\n", r);
-
 
1100
//		radeon_irq_kms_fini(rdev);
-
 
1101
		return r;
-
 
1102
	}
-
 
1103
	r600_irq_set(rdev);
-
 
1104
 
1085
	r = radeon_ring_init(rdev, rdev->cp.ring_size);
1105
	r = radeon_ring_init(rdev, rdev->cp.ring_size);
1086
	if (r)
1106
	if (r)
1087
		return r;
1107
		return r;
1088
	r = rv770_cp_load_microcode(rdev);
1108
	r = rv770_cp_load_microcode(rdev);
1089
	if (r)
1109
	if (r)
Line 1109... Line 1129...
1109
 */
1129
 */
1110
int rv770_init(struct radeon_device *rdev)
1130
int rv770_init(struct radeon_device *rdev)
1111
{
1131
{
1112
	int r;
1132
	int r;
Line -... Line 1133...
-
 
1133
 
-
 
1134
	/* This don't do much */
-
 
1135
	r = radeon_gem_init(rdev);
-
 
1136
	if (r)
1113
 
1137
		return r;
1114
	/* Read BIOS */
1138
	/* Read BIOS */
1115
	if (!radeon_get_bios(rdev)) {
1139
	if (!radeon_get_bios(rdev)) {
1116
		if (ASIC_IS_AVIVO(rdev))
1140
		if (ASIC_IS_AVIVO(rdev))
1117
			return -EINVAL;
1141
			return -EINVAL;
Line 1138... Line 1162...
1138
	/* Initialize surface registers */
1162
	/* Initialize surface registers */
1139
	radeon_surface_init(rdev);
1163
	radeon_surface_init(rdev);
1140
	/* Initialize clocks */
1164
	/* Initialize clocks */
1141
	radeon_get_clock_info(rdev->ddev);
1165
	radeon_get_clock_info(rdev->ddev);
1142
	/* Fence driver */
1166
	/* Fence driver */
1143
//	r = radeon_fence_driver_init(rdev);
1167
	r = radeon_fence_driver_init(rdev);
1144
//	if (r)
1168
	if (r)
1145
//		return r;
1169
		return r;
1146
	/* initialize AGP */
1170
	/* initialize AGP */
1147
	if (rdev->flags & RADEON_IS_AGP) {
1171
	if (rdev->flags & RADEON_IS_AGP) {
1148
		r = radeon_agp_init(rdev);
1172
		r = radeon_agp_init(rdev);
1149
		if (r)
1173
		if (r)
1150
			radeon_agp_disable(rdev);
1174
			radeon_agp_disable(rdev);
Line 1155... Line 1179...
1155
	/* Memory manager */
1179
	/* Memory manager */
1156
	r = radeon_bo_init(rdev);
1180
	r = radeon_bo_init(rdev);
1157
	if (r)
1181
	if (r)
1158
		return r;
1182
		return r;
Line -... Line 1183...
-
 
1183
 
-
 
1184
	r = radeon_irq_kms_init(rdev);
-
 
1185
	if (r)
Line 1159... Line 1186...
1159
 
1186
		return r;
1160
 
1187
 
Line -... Line 1188...
-
 
1188
	rdev->cp.ring_obj = NULL;
-
 
1189
	r600_ring_init(rdev, 1024 * 1024);
Line 1161... Line 1190...
1161
	rdev->cp.ring_obj = NULL;
1190
 
1162
	r600_ring_init(rdev, 1024 * 1024);
1191
	rdev->ih.ring_obj = NULL;
1163
 
1192
	r600_ih_ring_init(rdev, 64 * 1024);
Line 1164... Line 1193...
1164
 
1193
 
1165
	r = r600_pcie_gart_init(rdev);
1194
	r = r600_pcie_gart_init(rdev);
1166
	if (r)
1195
	if (r)
1167
		return r;
1196
		return r;
1168
 
-
 
1169
	rdev->accel_working = true;
1197
 
1170
	r = rv770_startup(rdev);
1198
	rdev->accel_working = true;
1171
	if (r) {
1199
	r = rv770_startup(rdev);
1172
		dev_err(rdev->dev, "disabling GPU acceleration\n");
1200
	if (r) {
1173
 
1201
		dev_err(rdev->dev, "disabling GPU acceleration\n");
1174
		rv770_pcie_gart_fini(rdev);
1202
		rv770_pcie_gart_fini(rdev);
1175
        rdev->accel_working = false;
1203
        rdev->accel_working = false;
1176
	}
1204
	}
1177
	if (rdev->accel_working) {
1205
	if (rdev->accel_working) {
1178
//		r = radeon_ib_pool_init(rdev);
1206
		r = radeon_ib_pool_init(rdev);
1179
//		if (r) {
1207
		if (r) {
1180
//			dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
1208
			dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
1181
//			rdev->accel_working = false;
1209
			rdev->accel_working = false;
1182
//		} else {
1210
		} else {
1183
//			r = r600_ib_test(rdev);
1211
			r = r600_ib_test(rdev);
1184
//			if (r) {
1212
			if (r) {
Line 1185... Line 1213...
1185
//				dev_err(rdev->dev, "IB test failed (%d).\n", r);
1213
				dev_err(rdev->dev, "IB test failed (%d).\n", r);
1186
//				rdev->accel_working = false;
1214
				rdev->accel_working = false;