Subversion Repositories Kolibri OS

Rev

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

Rev 3192 Rev 3764
Line 120... Line 120...
120
	}
120
	}
121
	if (rdev->family == CHIP_RS600) {
121
	if (rdev->family == CHIP_RS600) {
122
		rdev->mc_rreg = &rs600_mc_rreg;
122
		rdev->mc_rreg = &rs600_mc_rreg;
123
		rdev->mc_wreg = &rs600_mc_wreg;
123
		rdev->mc_wreg = &rs600_mc_wreg;
124
	}
124
	}
-
 
125
	if (rdev->family == CHIP_RS780 || rdev->family == CHIP_RS880) {
-
 
126
		rdev->mc_rreg = &rs780_mc_rreg;
-
 
127
		rdev->mc_wreg = &rs780_mc_wreg;
-
 
128
	}
125
	if (rdev->family >= CHIP_R600) {
129
	if (rdev->family >= CHIP_R600) {
126
		rdev->pciep_rreg = &r600_pciep_rreg;
130
		rdev->pciep_rreg = &r600_pciep_rreg;
127
		rdev->pciep_wreg = &r600_pciep_wreg;
131
		rdev->pciep_wreg = &r600_pciep_wreg;
128
	}
132
	}
129
}
133
}
Line 932... Line 936...
932
//	.vga_set_state = &r600_vga_set_state,
936
//	.vga_set_state = &r600_vga_set_state,
933
	.asic_reset = &r600_asic_reset,
937
	.asic_reset = &r600_asic_reset,
934
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
938
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
935
	.gui_idle = &r600_gui_idle,
939
	.gui_idle = &r600_gui_idle,
936
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
940
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
-
 
941
	.get_xclk = &r600_get_xclk,
-
 
942
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
937
	.gart = {
943
	.gart = {
938
		.tlb_flush = &r600_pcie_gart_tlb_flush,
944
		.tlb_flush = &r600_pcie_gart_tlb_flush,
939
		.set_page = &rs600_gart_set_page,
945
		.set_page = &rs600_gart_set_page,
940
	},
946
	},
941
	.ring = {
947
	.ring = {
Line 944... Line 950...
944
			.emit_fence = &r600_fence_ring_emit,
950
			.emit_fence = &r600_fence_ring_emit,
945
			.emit_semaphore = &r600_semaphore_ring_emit,
951
			.emit_semaphore = &r600_semaphore_ring_emit,
946
//			.cs_parse = &r600_cs_parse,
952
//			.cs_parse = &r600_cs_parse,
947
			.ring_test = &r600_ring_test,
953
			.ring_test = &r600_ring_test,
948
			.ib_test = &r600_ib_test,
954
			.ib_test = &r600_ib_test,
949
			.is_lockup = &r600_gpu_is_lockup,
955
			.is_lockup = &r600_gfx_is_lockup,
950
		},
956
		},
951
		[R600_RING_TYPE_DMA_INDEX] = {
957
		[R600_RING_TYPE_DMA_INDEX] = {
952
			.ib_execute = &r600_dma_ring_ib_execute,
958
			.ib_execute = &r600_dma_ring_ib_execute,
953
			.emit_fence = &r600_dma_fence_ring_emit,
959
			.emit_fence = &r600_dma_fence_ring_emit,
954
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
960
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
Line 1016... Line 1022...
1016
//	.vga_set_state = &r600_vga_set_state,
1022
//	.vga_set_state = &r600_vga_set_state,
1017
	.asic_reset = &r600_asic_reset,
1023
	.asic_reset = &r600_asic_reset,
1018
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1024
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1019
	.gui_idle = &r600_gui_idle,
1025
	.gui_idle = &r600_gui_idle,
1020
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
1026
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
-
 
1027
	.get_xclk = &r600_get_xclk,
-
 
1028
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1021
	.gart = {
1029
	.gart = {
1022
		.tlb_flush = &r600_pcie_gart_tlb_flush,
1030
		.tlb_flush = &r600_pcie_gart_tlb_flush,
1023
		.set_page = &rs600_gart_set_page,
1031
		.set_page = &rs600_gart_set_page,
1024
	},
1032
	},
1025
	.ring = {
1033
	.ring = {
Line 1028... Line 1036...
1028
			.emit_fence = &r600_fence_ring_emit,
1036
			.emit_fence = &r600_fence_ring_emit,
1029
			.emit_semaphore = &r600_semaphore_ring_emit,
1037
			.emit_semaphore = &r600_semaphore_ring_emit,
1030
//			.cs_parse = &r600_cs_parse,
1038
//			.cs_parse = &r600_cs_parse,
1031
			.ring_test = &r600_ring_test,
1039
			.ring_test = &r600_ring_test,
1032
			.ib_test = &r600_ib_test,
1040
			.ib_test = &r600_ib_test,
1033
			.is_lockup = &r600_gpu_is_lockup,
1041
			.is_lockup = &r600_gfx_is_lockup,
1034
		},
1042
		},
1035
		[R600_RING_TYPE_DMA_INDEX] = {
1043
		[R600_RING_TYPE_DMA_INDEX] = {
1036
			.ib_execute = &r600_dma_ring_ib_execute,
1044
			.ib_execute = &r600_dma_ring_ib_execute,
1037
			.emit_fence = &r600_dma_fence_ring_emit,
1045
			.emit_fence = &r600_dma_fence_ring_emit,
1038
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1046
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
Line 1100... Line 1108...
1100
	.asic_reset = &r600_asic_reset,
1108
	.asic_reset = &r600_asic_reset,
1101
//	.vga_set_state = &r600_vga_set_state,
1109
//	.vga_set_state = &r600_vga_set_state,
1102
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1110
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1103
	.gui_idle = &r600_gui_idle,
1111
	.gui_idle = &r600_gui_idle,
1104
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
1112
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
-
 
1113
	.get_xclk = &rv770_get_xclk,
-
 
1114
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1105
	.gart = {
1115
	.gart = {
1106
		.tlb_flush = &r600_pcie_gart_tlb_flush,
1116
		.tlb_flush = &r600_pcie_gart_tlb_flush,
1107
		.set_page = &rs600_gart_set_page,
1117
		.set_page = &rs600_gart_set_page,
1108
	},
1118
	},
1109
	.ring = {
1119
	.ring = {
Line 1112... Line 1122...
1112
			.emit_fence = &r600_fence_ring_emit,
1122
			.emit_fence = &r600_fence_ring_emit,
1113
			.emit_semaphore = &r600_semaphore_ring_emit,
1123
			.emit_semaphore = &r600_semaphore_ring_emit,
1114
//			.cs_parse = &r600_cs_parse,
1124
//			.cs_parse = &r600_cs_parse,
1115
			.ring_test = &r600_ring_test,
1125
			.ring_test = &r600_ring_test,
1116
			.ib_test = &r600_ib_test,
1126
			.ib_test = &r600_ib_test,
1117
			.is_lockup = &r600_gpu_is_lockup,
1127
			.is_lockup = &r600_gfx_is_lockup,
1118
		},
1128
		},
1119
		[R600_RING_TYPE_DMA_INDEX] = {
1129
		[R600_RING_TYPE_DMA_INDEX] = {
1120
			.ib_execute = &r600_dma_ring_ib_execute,
1130
			.ib_execute = &r600_dma_ring_ib_execute,
1121
			.emit_fence = &r600_dma_fence_ring_emit,
1131
			.emit_fence = &r600_dma_fence_ring_emit,
1122
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1132
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1123
//			.cs_parse = &r600_dma_cs_parse,
1133
//			.cs_parse = &r600_dma_cs_parse,
1124
			.ring_test = &r600_dma_ring_test,
1134
			.ring_test = &r600_dma_ring_test,
1125
			.ib_test = &r600_dma_ib_test,
1135
			.ib_test = &r600_dma_ib_test,
1126
			.is_lockup = &r600_dma_is_lockup,
1136
			.is_lockup = &r600_dma_is_lockup,
-
 
1137
		},
-
 
1138
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1139
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1140
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1141
//			.emit_semaphore = &r600_uvd_semaphore_emit,
-
 
1142
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1143
//			.ring_test = &r600_uvd_ring_test,
-
 
1144
//			.ib_test = &r600_uvd_ib_test,
-
 
1145
//			.is_lockup = &radeon_ring_test_lockup,
1127
		}
1146
		}
1128
	},
1147
	},
1129
	.irq = {
1148
	.irq = {
1130
		.set = &r600_irq_set,
1149
		.set = &r600_irq_set,
1131
		.process = &r600_irq_process,
1150
		.process = &r600_irq_process,
Line 1138... Line 1157...
1138
//		.get_backlight_level = &atombios_get_backlight_level,
1157
//		.get_backlight_level = &atombios_get_backlight_level,
1139
	},
1158
	},
1140
	.copy = {
1159
	.copy = {
1141
		.blit = &r600_copy_blit,
1160
		.blit = &r600_copy_blit,
1142
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
1161
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
1143
		.dma = &r600_copy_dma,
1162
		.dma = &rv770_copy_dma,
1144
		.dma_ring_index = R600_RING_TYPE_DMA_INDEX,
1163
		.dma_ring_index = R600_RING_TYPE_DMA_INDEX,
1145
		.copy = &r600_copy_dma,
1164
		.copy = &rv770_copy_dma,
1146
		.copy_ring_index = R600_RING_TYPE_DMA_INDEX,
1165
		.copy_ring_index = R600_RING_TYPE_DMA_INDEX,
1147
	},
1166
	},
1148
	.surface = {
1167
	.surface = {
1149
		.set_reg = r600_set_surface_reg,
1168
		.set_reg = r600_set_surface_reg,
1150
		.clear_reg = r600_clear_surface_reg,
1169
		.clear_reg = r600_clear_surface_reg,
Line 1166... Line 1185...
1166
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1185
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1167
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1186
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1168
//		.get_pcie_lanes = &r600_get_pcie_lanes,
1187
//		.get_pcie_lanes = &r600_get_pcie_lanes,
1169
//		.set_pcie_lanes = &r600_set_pcie_lanes,
1188
//		.set_pcie_lanes = &r600_set_pcie_lanes,
1170
//		.set_clock_gating = &radeon_atom_set_clock_gating,
1189
//		.set_clock_gating = &radeon_atom_set_clock_gating,
-
 
1190
		.set_uvd_clocks = &rv770_set_uvd_clocks,
1171
	},
1191
	},
1172
	.pflip = {
1192
	.pflip = {
1173
//		.pre_page_flip = &rs600_pre_page_flip,
1193
//		.pre_page_flip = &rs600_pre_page_flip,
1174
//		.page_flip = &rv770_page_flip,
1194
//		.page_flip = &rv770_page_flip,
1175
//		.post_page_flip = &rs600_post_page_flip,
1195
//		.post_page_flip = &rs600_post_page_flip,
Line 1184... Line 1204...
1184
	.asic_reset = &evergreen_asic_reset,
1204
	.asic_reset = &evergreen_asic_reset,
1185
//	.vga_set_state = &r600_vga_set_state,
1205
//	.vga_set_state = &r600_vga_set_state,
1186
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1206
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1187
	.gui_idle = &r600_gui_idle,
1207
	.gui_idle = &r600_gui_idle,
1188
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1208
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1209
	.get_xclk = &rv770_get_xclk,
-
 
1210
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1189
	.gart = {
1211
	.gart = {
1190
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1212
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1191
		.set_page = &rs600_gart_set_page,
1213
		.set_page = &rs600_gart_set_page,
1192
	},
1214
	},
1193
	.ring = {
1215
	.ring = {
Line 1196... Line 1218...
1196
			.emit_fence = &r600_fence_ring_emit,
1218
			.emit_fence = &r600_fence_ring_emit,
1197
			.emit_semaphore = &r600_semaphore_ring_emit,
1219
			.emit_semaphore = &r600_semaphore_ring_emit,
1198
//			.cs_parse = &evergreen_cs_parse,
1220
//			.cs_parse = &evergreen_cs_parse,
1199
			.ring_test = &r600_ring_test,
1221
			.ring_test = &r600_ring_test,
1200
			.ib_test = &r600_ib_test,
1222
			.ib_test = &r600_ib_test,
1201
			.is_lockup = &evergreen_gpu_is_lockup,
1223
			.is_lockup = &evergreen_gfx_is_lockup,
1202
		},
1224
		},
1203
		[R600_RING_TYPE_DMA_INDEX] = {
1225
		[R600_RING_TYPE_DMA_INDEX] = {
1204
			.ib_execute = &evergreen_dma_ring_ib_execute,
1226
			.ib_execute = &evergreen_dma_ring_ib_execute,
1205
			.emit_fence = &evergreen_dma_fence_ring_emit,
1227
			.emit_fence = &evergreen_dma_fence_ring_emit,
1206
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1228
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1207
//			.cs_parse = &evergreen_dma_cs_parse,
1229
//			.cs_parse = &evergreen_dma_cs_parse,
1208
			.ring_test = &r600_dma_ring_test,
1230
			.ring_test = &r600_dma_ring_test,
1209
			.ib_test = &r600_dma_ib_test,
1231
			.ib_test = &r600_dma_ib_test,
1210
			.is_lockup = &r600_dma_is_lockup,
1232
			.is_lockup = &evergreen_dma_is_lockup,
-
 
1233
		},
-
 
1234
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1235
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1236
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1237
//			.emit_semaphore = &r600_uvd_semaphore_emit,
-
 
1238
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1239
//			.ring_test = &r600_uvd_ring_test,
-
 
1240
//			.ib_test = &r600_uvd_ib_test,
-
 
1241
//			.is_lockup = &radeon_ring_test_lockup,
1211
		}
1242
		}
1212
	},
1243
	},
1213
	.irq = {
1244
	.irq = {
1214
		.set = &evergreen_irq_set,
1245
		.set = &evergreen_irq_set,
1215
		.process = &evergreen_irq_process,
1246
		.process = &evergreen_irq_process,
Line 1250... Line 1281...
1250
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1281
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1251
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1282
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1252
//		.get_pcie_lanes = &r600_get_pcie_lanes,
1283
//		.get_pcie_lanes = &r600_get_pcie_lanes,
1253
//		.set_pcie_lanes = &r600_set_pcie_lanes,
1284
//		.set_pcie_lanes = &r600_set_pcie_lanes,
1254
//		.set_clock_gating = NULL,
1285
//		.set_clock_gating = NULL,
-
 
1286
		.set_uvd_clocks = &evergreen_set_uvd_clocks,
1255
	},
1287
	},
1256
	.pflip = {
1288
	.pflip = {
1257
//		.pre_page_flip = &evergreen_pre_page_flip,
1289
//		.pre_page_flip = &evergreen_pre_page_flip,
1258
//		.page_flip = &evergreen_page_flip,
1290
//		.page_flip = &evergreen_page_flip,
1259
//		.post_page_flip = &evergreen_post_page_flip,
1291
//		.post_page_flip = &evergreen_post_page_flip,
Line 1268... Line 1300...
1268
	.asic_reset = &evergreen_asic_reset,
1300
	.asic_reset = &evergreen_asic_reset,
1269
//	.vga_set_state = &r600_vga_set_state,
1301
//	.vga_set_state = &r600_vga_set_state,
1270
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1302
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1271
	.gui_idle = &r600_gui_idle,
1303
	.gui_idle = &r600_gui_idle,
1272
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1304
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1305
	.get_xclk = &r600_get_xclk,
-
 
1306
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1273
	.gart = {
1307
	.gart = {
1274
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1308
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1275
		.set_page = &rs600_gart_set_page,
1309
		.set_page = &rs600_gart_set_page,
1276
	},
1310
	},
1277
	.ring = {
1311
	.ring = {
Line 1280... Line 1314...
1280
			.emit_fence = &r600_fence_ring_emit,
1314
			.emit_fence = &r600_fence_ring_emit,
1281
			.emit_semaphore = &r600_semaphore_ring_emit,
1315
			.emit_semaphore = &r600_semaphore_ring_emit,
1282
//			.cs_parse = &evergreen_cs_parse,
1316
//			.cs_parse = &evergreen_cs_parse,
1283
			.ring_test = &r600_ring_test,
1317
			.ring_test = &r600_ring_test,
1284
			.ib_test = &r600_ib_test,
1318
			.ib_test = &r600_ib_test,
1285
			.is_lockup = &evergreen_gpu_is_lockup,
1319
			.is_lockup = &evergreen_gfx_is_lockup,
1286
		},
1320
		},
1287
		[R600_RING_TYPE_DMA_INDEX] = {
1321
		[R600_RING_TYPE_DMA_INDEX] = {
1288
			.ib_execute = &evergreen_dma_ring_ib_execute,
1322
			.ib_execute = &evergreen_dma_ring_ib_execute,
1289
			.emit_fence = &evergreen_dma_fence_ring_emit,
1323
			.emit_fence = &evergreen_dma_fence_ring_emit,
1290
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1324
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1291
//			.cs_parse = &evergreen_dma_cs_parse,
1325
//			.cs_parse = &evergreen_dma_cs_parse,
1292
			.ring_test = &r600_dma_ring_test,
1326
			.ring_test = &r600_dma_ring_test,
1293
			.ib_test = &r600_dma_ib_test,
1327
			.ib_test = &r600_dma_ib_test,
1294
			.is_lockup = &r600_dma_is_lockup,
1328
			.is_lockup = &evergreen_dma_is_lockup,
-
 
1329
		},
-
 
1330
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1331
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1332
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1333
//			.emit_semaphore = &r600_uvd_semaphore_emit,
-
 
1334
//           .cs_parse = &radeon_uvd_cs_parse,
-
 
1335
//			.ring_test = &r600_uvd_ring_test,
-
 
1336
//			.ib_test = &r600_uvd_ib_test,
-
 
1337
//			.is_lockup = &radeon_ring_test_lockup,
1295
		}
1338
		}
1296
	},
1339
	},
1297
	.irq = {
1340
	.irq = {
1298
		.set = &evergreen_irq_set,
1341
		.set = &evergreen_irq_set,
1299
		.process = &evergreen_irq_process,
1342
		.process = &evergreen_irq_process,
Line 1334... Line 1377...
1334
		.get_memory_clock = NULL,
1377
		.get_memory_clock = NULL,
1335
		.set_memory_clock = NULL,
1378
		.set_memory_clock = NULL,
1336
		.get_pcie_lanes = NULL,
1379
		.get_pcie_lanes = NULL,
1337
		.set_pcie_lanes = NULL,
1380
		.set_pcie_lanes = NULL,
1338
		.set_clock_gating = NULL,
1381
		.set_clock_gating = NULL,
-
 
1382
		.set_uvd_clocks = &sumo_set_uvd_clocks,
1339
	},
1383
	},
1340
	.pflip = {
1384
	.pflip = {
1341
//		.pre_page_flip = &evergreen_pre_page_flip,
1385
//		.pre_page_flip = &evergreen_pre_page_flip,
1342
//		.page_flip = &evergreen_page_flip,
1386
//		.page_flip = &evergreen_page_flip,
1343
//		.post_page_flip = &evergreen_post_page_flip,
1387
//		.post_page_flip = &evergreen_post_page_flip,
Line 1352... Line 1396...
1352
	.asic_reset = &evergreen_asic_reset,
1396
	.asic_reset = &evergreen_asic_reset,
1353
//	.vga_set_state = &r600_vga_set_state,
1397
//	.vga_set_state = &r600_vga_set_state,
1354
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1398
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1355
	.gui_idle = &r600_gui_idle,
1399
	.gui_idle = &r600_gui_idle,
1356
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1400
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1401
	.get_xclk = &rv770_get_xclk,
-
 
1402
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1357
	.gart = {
1403
	.gart = {
1358
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1404
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
1359
		.set_page = &rs600_gart_set_page,
1405
		.set_page = &rs600_gart_set_page,
1360
	},
1406
	},
1361
	.ring = {
1407
	.ring = {
Line 1364... Line 1410...
1364
			.emit_fence = &r600_fence_ring_emit,
1410
			.emit_fence = &r600_fence_ring_emit,
1365
			.emit_semaphore = &r600_semaphore_ring_emit,
1411
			.emit_semaphore = &r600_semaphore_ring_emit,
1366
//			.cs_parse = &evergreen_cs_parse,
1412
//			.cs_parse = &evergreen_cs_parse,
1367
			.ring_test = &r600_ring_test,
1413
			.ring_test = &r600_ring_test,
1368
			.ib_test = &r600_ib_test,
1414
			.ib_test = &r600_ib_test,
1369
			.is_lockup = &evergreen_gpu_is_lockup,
1415
			.is_lockup = &evergreen_gfx_is_lockup,
1370
		},
1416
		},
1371
		[R600_RING_TYPE_DMA_INDEX] = {
1417
		[R600_RING_TYPE_DMA_INDEX] = {
1372
			.ib_execute = &evergreen_dma_ring_ib_execute,
1418
			.ib_execute = &evergreen_dma_ring_ib_execute,
1373
			.emit_fence = &evergreen_dma_fence_ring_emit,
1419
			.emit_fence = &evergreen_dma_fence_ring_emit,
1374
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1420
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1375
//			.cs_parse = &evergreen_dma_cs_parse,
1421
//			.cs_parse = &evergreen_dma_cs_parse,
1376
			.ring_test = &r600_dma_ring_test,
1422
			.ring_test = &r600_dma_ring_test,
1377
			.ib_test = &r600_dma_ib_test,
1423
			.ib_test = &r600_dma_ib_test,
1378
			.is_lockup = &r600_dma_is_lockup,
1424
			.is_lockup = &evergreen_dma_is_lockup,
-
 
1425
		},
-
 
1426
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1427
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1428
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1429
//			.emit_semaphore = &r600_uvd_semaphore_emit,
-
 
1430
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1431
//			.ring_test = &r600_uvd_ring_test,
-
 
1432
//			.ib_test = &r600_uvd_ib_test,
-
 
1433
//			.is_lockup = &radeon_ring_test_lockup,
1379
		}
1434
		}
1380
	},
1435
	},
1381
	.irq = {
1436
	.irq = {
1382
		.set = &evergreen_irq_set,
1437
		.set = &evergreen_irq_set,
1383
		.process = &evergreen_irq_process,
1438
		.process = &evergreen_irq_process,
Line 1418... Line 1473...
1418
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1473
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1419
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1474
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1420
		.get_pcie_lanes = NULL,
1475
		.get_pcie_lanes = NULL,
1421
		.set_pcie_lanes = NULL,
1476
		.set_pcie_lanes = NULL,
1422
		.set_clock_gating = NULL,
1477
		.set_clock_gating = NULL,
-
 
1478
		.set_uvd_clocks = &evergreen_set_uvd_clocks,
1423
	},
1479
	},
1424
	.pflip = {
1480
	.pflip = {
1425
//		.pre_page_flip = &evergreen_pre_page_flip,
1481
//		.pre_page_flip = &evergreen_pre_page_flip,
1426
//		.page_flip = &evergreen_page_flip,
1482
//		.page_flip = &evergreen_page_flip,
1427
//		.post_page_flip = &evergreen_post_page_flip,
1483
//		.post_page_flip = &evergreen_post_page_flip,
Line 1436... Line 1492...
1436
	.asic_reset = &cayman_asic_reset,
1492
	.asic_reset = &cayman_asic_reset,
1437
//	.vga_set_state = &r600_vga_set_state,
1493
//	.vga_set_state = &r600_vga_set_state,
1438
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1494
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1439
	.gui_idle = &r600_gui_idle,
1495
	.gui_idle = &r600_gui_idle,
1440
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1496
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1497
	.get_xclk = &rv770_get_xclk,
-
 
1498
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1441
	.gart = {
1499
	.gart = {
1442
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
1500
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
1443
		.set_page = &rs600_gart_set_page,
1501
		.set_page = &rs600_gart_set_page,
1444
	},
1502
	},
1445
	.vm = {
1503
	.vm = {
Line 1455... Line 1513...
1455
			.emit_fence = &cayman_fence_ring_emit,
1513
			.emit_fence = &cayman_fence_ring_emit,
1456
			.emit_semaphore = &r600_semaphore_ring_emit,
1514
			.emit_semaphore = &r600_semaphore_ring_emit,
1457
//			.cs_parse = &evergreen_cs_parse,
1515
//			.cs_parse = &evergreen_cs_parse,
1458
			.ring_test = &r600_ring_test,
1516
			.ring_test = &r600_ring_test,
1459
			.ib_test = &r600_ib_test,
1517
			.ib_test = &r600_ib_test,
1460
			.is_lockup = &evergreen_gpu_is_lockup,
1518
			.is_lockup = &cayman_gfx_is_lockup,
1461
			.vm_flush = &cayman_vm_flush,
1519
			.vm_flush = &cayman_vm_flush,
1462
		},
1520
		},
1463
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1521
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1464
			.ib_execute = &cayman_ring_ib_execute,
1522
			.ib_execute = &cayman_ring_ib_execute,
1465
//           .ib_parse = &evergreen_ib_parse,
1523
//           .ib_parse = &evergreen_ib_parse,
1466
			.emit_fence = &cayman_fence_ring_emit,
1524
			.emit_fence = &cayman_fence_ring_emit,
1467
			.emit_semaphore = &r600_semaphore_ring_emit,
1525
			.emit_semaphore = &r600_semaphore_ring_emit,
1468
//			.cs_parse = &evergreen_cs_parse,
1526
//			.cs_parse = &evergreen_cs_parse,
1469
			.ring_test = &r600_ring_test,
1527
			.ring_test = &r600_ring_test,
1470
			.ib_test = &r600_ib_test,
1528
			.ib_test = &r600_ib_test,
1471
			.is_lockup = &evergreen_gpu_is_lockup,
1529
			.is_lockup = &cayman_gfx_is_lockup,
1472
			.vm_flush = &cayman_vm_flush,
1530
			.vm_flush = &cayman_vm_flush,
1473
		},
1531
		},
1474
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1532
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1475
			.ib_execute = &cayman_ring_ib_execute,
1533
			.ib_execute = &cayman_ring_ib_execute,
1476
//           .ib_parse = &evergreen_ib_parse,
1534
//           .ib_parse = &evergreen_ib_parse,
1477
			.emit_fence = &cayman_fence_ring_emit,
1535
			.emit_fence = &cayman_fence_ring_emit,
1478
			.emit_semaphore = &r600_semaphore_ring_emit,
1536
			.emit_semaphore = &r600_semaphore_ring_emit,
1479
//			.cs_parse = &evergreen_cs_parse,
1537
//			.cs_parse = &evergreen_cs_parse,
1480
			.ring_test = &r600_ring_test,
1538
			.ring_test = &r600_ring_test,
1481
			.ib_test = &r600_ib_test,
1539
			.ib_test = &r600_ib_test,
1482
			.is_lockup = &evergreen_gpu_is_lockup,
1540
			.is_lockup = &cayman_gfx_is_lockup,
1483
			.vm_flush = &cayman_vm_flush,
1541
			.vm_flush = &cayman_vm_flush,
1484
		},
1542
		},
1485
		[R600_RING_TYPE_DMA_INDEX] = {
1543
		[R600_RING_TYPE_DMA_INDEX] = {
1486
			.ib_execute = &cayman_dma_ring_ib_execute,
1544
			.ib_execute = &cayman_dma_ring_ib_execute,
1487
//			.ib_parse = &evergreen_dma_ib_parse,
1545
//			.ib_parse = &evergreen_dma_ib_parse,
Line 1501... Line 1559...
1501
//			.cs_parse = &evergreen_dma_cs_parse,
1559
//			.cs_parse = &evergreen_dma_cs_parse,
1502
			.ring_test = &r600_dma_ring_test,
1560
			.ring_test = &r600_dma_ring_test,
1503
			.ib_test = &r600_dma_ib_test,
1561
			.ib_test = &r600_dma_ib_test,
1504
			.is_lockup = &cayman_dma_is_lockup,
1562
			.is_lockup = &cayman_dma_is_lockup,
1505
			.vm_flush = &cayman_dma_vm_flush,
1563
			.vm_flush = &cayman_dma_vm_flush,
-
 
1564
		},
-
 
1565
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1566
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1567
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1568
//			.emit_semaphore = &cayman_uvd_semaphore_emit,
-
 
1569
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1570
//			.ring_test = &r600_uvd_ring_test,
-
 
1571
//			.ib_test = &r600_uvd_ib_test,
-
 
1572
//			.is_lockup = &radeon_ring_test_lockup,
1506
		}
1573
		}
1507
	},
1574
	},
1508
	.irq = {
1575
	.irq = {
1509
		.set = &evergreen_irq_set,
1576
		.set = &evergreen_irq_set,
1510
		.process = &evergreen_irq_process,
1577
		.process = &evergreen_irq_process,
Line 1545... Line 1612...
1545
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1612
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1546
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1613
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1547
		.get_pcie_lanes = NULL,
1614
		.get_pcie_lanes = NULL,
1548
		.set_pcie_lanes = NULL,
1615
		.set_pcie_lanes = NULL,
1549
		.set_clock_gating = NULL,
1616
		.set_clock_gating = NULL,
-
 
1617
		.set_uvd_clocks = &evergreen_set_uvd_clocks,
1550
	},
1618
	},
1551
	.pflip = {
1619
	.pflip = {
1552
//		.pre_page_flip = &evergreen_pre_page_flip,
1620
//		.pre_page_flip = &evergreen_pre_page_flip,
1553
//		.page_flip = &evergreen_page_flip,
1621
//		.page_flip = &evergreen_page_flip,
1554
//		.post_page_flip = &evergreen_post_page_flip,
1622
//		.post_page_flip = &evergreen_post_page_flip,
Line 1563... Line 1631...
1563
	.asic_reset = &cayman_asic_reset,
1631
	.asic_reset = &cayman_asic_reset,
1564
//	.vga_set_state = &r600_vga_set_state,
1632
//	.vga_set_state = &r600_vga_set_state,
1565
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1633
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1566
	.gui_idle = &r600_gui_idle,
1634
	.gui_idle = &r600_gui_idle,
1567
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1635
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1636
	.get_xclk = &r600_get_xclk,
-
 
1637
	.get_gpu_clock_counter = &r600_get_gpu_clock_counter,
1568
	.gart = {
1638
	.gart = {
1569
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
1639
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
1570
		.set_page = &rs600_gart_set_page,
1640
		.set_page = &rs600_gart_set_page,
1571
	},
1641
	},
1572
	.vm = {
1642
	.vm = {
Line 1582... Line 1652...
1582
			.emit_fence = &cayman_fence_ring_emit,
1652
			.emit_fence = &cayman_fence_ring_emit,
1583
			.emit_semaphore = &r600_semaphore_ring_emit,
1653
			.emit_semaphore = &r600_semaphore_ring_emit,
1584
//			.cs_parse = &evergreen_cs_parse,
1654
//			.cs_parse = &evergreen_cs_parse,
1585
			.ring_test = &r600_ring_test,
1655
			.ring_test = &r600_ring_test,
1586
			.ib_test = &r600_ib_test,
1656
			.ib_test = &r600_ib_test,
1587
			.is_lockup = &evergreen_gpu_is_lockup,
1657
			.is_lockup = &cayman_gfx_is_lockup,
1588
			.vm_flush = &cayman_vm_flush,
1658
			.vm_flush = &cayman_vm_flush,
1589
		},
1659
		},
1590
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1660
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1591
			.ib_execute = &cayman_ring_ib_execute,
1661
			.ib_execute = &cayman_ring_ib_execute,
1592
//           .ib_parse = &evergreen_ib_parse,
1662
//           .ib_parse = &evergreen_ib_parse,
1593
			.emit_fence = &cayman_fence_ring_emit,
1663
			.emit_fence = &cayman_fence_ring_emit,
1594
			.emit_semaphore = &r600_semaphore_ring_emit,
1664
			.emit_semaphore = &r600_semaphore_ring_emit,
1595
//			.cs_parse = &evergreen_cs_parse,
1665
//			.cs_parse = &evergreen_cs_parse,
1596
			.ring_test = &r600_ring_test,
1666
			.ring_test = &r600_ring_test,
1597
			.ib_test = &r600_ib_test,
1667
			.ib_test = &r600_ib_test,
1598
			.is_lockup = &evergreen_gpu_is_lockup,
1668
			.is_lockup = &cayman_gfx_is_lockup,
1599
			.vm_flush = &cayman_vm_flush,
1669
			.vm_flush = &cayman_vm_flush,
1600
		},
1670
		},
1601
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1671
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1602
			.ib_execute = &cayman_ring_ib_execute,
1672
			.ib_execute = &cayman_ring_ib_execute,
1603
//           .ib_parse = &evergreen_ib_parse,
1673
//           .ib_parse = &evergreen_ib_parse,
1604
			.emit_fence = &cayman_fence_ring_emit,
1674
			.emit_fence = &cayman_fence_ring_emit,
1605
			.emit_semaphore = &r600_semaphore_ring_emit,
1675
			.emit_semaphore = &r600_semaphore_ring_emit,
1606
//			.cs_parse = &evergreen_cs_parse,
1676
//			.cs_parse = &evergreen_cs_parse,
1607
			.ring_test = &r600_ring_test,
1677
			.ring_test = &r600_ring_test,
1608
			.ib_test = &r600_ib_test,
1678
			.ib_test = &r600_ib_test,
1609
			.is_lockup = &evergreen_gpu_is_lockup,
1679
			.is_lockup = &cayman_gfx_is_lockup,
1610
			.vm_flush = &cayman_vm_flush,
1680
			.vm_flush = &cayman_vm_flush,
1611
		},
1681
		},
1612
		[R600_RING_TYPE_DMA_INDEX] = {
1682
		[R600_RING_TYPE_DMA_INDEX] = {
1613
			.ib_execute = &cayman_dma_ring_ib_execute,
1683
			.ib_execute = &cayman_dma_ring_ib_execute,
1614
//			.ib_parse = &evergreen_dma_ib_parse,
1684
//			.ib_parse = &evergreen_dma_ib_parse,
Line 1628... Line 1698...
1628
//			.cs_parse = &evergreen_dma_cs_parse,
1698
//			.cs_parse = &evergreen_dma_cs_parse,
1629
			.ring_test = &r600_dma_ring_test,
1699
			.ring_test = &r600_dma_ring_test,
1630
			.ib_test = &r600_dma_ib_test,
1700
			.ib_test = &r600_dma_ib_test,
1631
			.is_lockup = &cayman_dma_is_lockup,
1701
			.is_lockup = &cayman_dma_is_lockup,
1632
			.vm_flush = &cayman_dma_vm_flush,
1702
			.vm_flush = &cayman_dma_vm_flush,
-
 
1703
		},
-
 
1704
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1705
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1706
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1707
//			.emit_semaphore = &cayman_uvd_semaphore_emit,
-
 
1708
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1709
//			.ring_test = &r600_uvd_ring_test,
-
 
1710
//			.ib_test = &r600_uvd_ib_test,
-
 
1711
//			.is_lockup = &radeon_ring_test_lockup,
1633
		}
1712
		}
1634
	},
1713
	},
1635
	.irq = {
1714
	.irq = {
1636
		.set = &evergreen_irq_set,
1715
		.set = &evergreen_irq_set,
1637
		.process = &evergreen_irq_process,
1716
		.process = &evergreen_irq_process,
Line 1672... Line 1751...
1672
		.get_memory_clock = NULL,
1751
		.get_memory_clock = NULL,
1673
		.set_memory_clock = NULL,
1752
		.set_memory_clock = NULL,
1674
		.get_pcie_lanes = NULL,
1753
		.get_pcie_lanes = NULL,
1675
		.set_pcie_lanes = NULL,
1754
		.set_pcie_lanes = NULL,
1676
		.set_clock_gating = NULL,
1755
		.set_clock_gating = NULL,
-
 
1756
		.set_uvd_clocks = &sumo_set_uvd_clocks,
1677
	},
1757
	},
1678
	.pflip = {
1758
	.pflip = {
1679
//		.pre_page_flip = &evergreen_pre_page_flip,
1759
//		.pre_page_flip = &evergreen_pre_page_flip,
1680
//		.page_flip = &evergreen_page_flip,
1760
//		.page_flip = &evergreen_page_flip,
1681
//		.post_page_flip = &evergreen_post_page_flip,
1761
//		.post_page_flip = &evergreen_post_page_flip,
Line 1690... Line 1770...
1690
	.asic_reset = &si_asic_reset,
1770
	.asic_reset = &si_asic_reset,
1691
//	.vga_set_state = &r600_vga_set_state,
1771
//	.vga_set_state = &r600_vga_set_state,
1692
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1772
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
1693
	.gui_idle = &r600_gui_idle,
1773
	.gui_idle = &r600_gui_idle,
1694
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
1774
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1775
	.get_xclk = &si_get_xclk,
-
 
1776
	.get_gpu_clock_counter = &si_get_gpu_clock_counter,
1695
	.gart = {
1777
	.gart = {
1696
		.tlb_flush = &si_pcie_gart_tlb_flush,
1778
		.tlb_flush = &si_pcie_gart_tlb_flush,
1697
		.set_page = &rs600_gart_set_page,
1779
		.set_page = &rs600_gart_set_page,
1698
	},
1780
	},
1699
	.vm = {
1781
	.vm = {
Line 1709... Line 1791...
1709
			.emit_fence = &si_fence_ring_emit,
1791
			.emit_fence = &si_fence_ring_emit,
1710
			.emit_semaphore = &r600_semaphore_ring_emit,
1792
			.emit_semaphore = &r600_semaphore_ring_emit,
1711
			.cs_parse = NULL,
1793
			.cs_parse = NULL,
1712
			.ring_test = &r600_ring_test,
1794
			.ring_test = &r600_ring_test,
1713
			.ib_test = &r600_ib_test,
1795
			.ib_test = &r600_ib_test,
1714
			.is_lockup = &si_gpu_is_lockup,
1796
			.is_lockup = &si_gfx_is_lockup,
1715
			.vm_flush = &si_vm_flush,
1797
			.vm_flush = &si_vm_flush,
1716
		},
1798
		},
1717
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1799
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
1718
			.ib_execute = &si_ring_ib_execute,
1800
			.ib_execute = &si_ring_ib_execute,
1719
//           .ib_parse = &si_ib_parse,
1801
//           .ib_parse = &si_ib_parse,
1720
			.emit_fence = &si_fence_ring_emit,
1802
			.emit_fence = &si_fence_ring_emit,
1721
			.emit_semaphore = &r600_semaphore_ring_emit,
1803
			.emit_semaphore = &r600_semaphore_ring_emit,
1722
			.cs_parse = NULL,
1804
			.cs_parse = NULL,
1723
			.ring_test = &r600_ring_test,
1805
			.ring_test = &r600_ring_test,
1724
			.ib_test = &r600_ib_test,
1806
			.ib_test = &r600_ib_test,
1725
			.is_lockup = &si_gpu_is_lockup,
1807
			.is_lockup = &si_gfx_is_lockup,
1726
			.vm_flush = &si_vm_flush,
1808
			.vm_flush = &si_vm_flush,
1727
		},
1809
		},
1728
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1810
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
1729
			.ib_execute = &si_ring_ib_execute,
1811
			.ib_execute = &si_ring_ib_execute,
1730
//           .ib_parse = &si_ib_parse,
1812
//           .ib_parse = &si_ib_parse,
1731
			.emit_fence = &si_fence_ring_emit,
1813
			.emit_fence = &si_fence_ring_emit,
1732
			.emit_semaphore = &r600_semaphore_ring_emit,
1814
			.emit_semaphore = &r600_semaphore_ring_emit,
1733
			.cs_parse = NULL,
1815
			.cs_parse = NULL,
1734
			.ring_test = &r600_ring_test,
1816
			.ring_test = &r600_ring_test,
1735
			.ib_test = &r600_ib_test,
1817
			.ib_test = &r600_ib_test,
1736
			.is_lockup = &si_gpu_is_lockup,
1818
			.is_lockup = &si_gfx_is_lockup,
1737
			.vm_flush = &si_vm_flush,
1819
			.vm_flush = &si_vm_flush,
1738
		},
1820
		},
1739
		[R600_RING_TYPE_DMA_INDEX] = {
1821
		[R600_RING_TYPE_DMA_INDEX] = {
1740
			.ib_execute = &cayman_dma_ring_ib_execute,
1822
			.ib_execute = &cayman_dma_ring_ib_execute,
1741
//			.ib_parse = &evergreen_dma_ib_parse,
1823
//			.ib_parse = &evergreen_dma_ib_parse,
1742
			.emit_fence = &evergreen_dma_fence_ring_emit,
1824
			.emit_fence = &evergreen_dma_fence_ring_emit,
1743
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1825
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1744
			.cs_parse = NULL,
1826
			.cs_parse = NULL,
1745
			.ring_test = &r600_dma_ring_test,
1827
			.ring_test = &r600_dma_ring_test,
1746
			.ib_test = &r600_dma_ib_test,
1828
			.ib_test = &r600_dma_ib_test,
1747
			.is_lockup = &cayman_dma_is_lockup,
1829
			.is_lockup = &si_dma_is_lockup,
1748
			.vm_flush = &si_dma_vm_flush,
1830
			.vm_flush = &si_dma_vm_flush,
1749
		},
1831
		},
1750
		[CAYMAN_RING_TYPE_DMA1_INDEX] = {
1832
		[CAYMAN_RING_TYPE_DMA1_INDEX] = {
1751
			.ib_execute = &cayman_dma_ring_ib_execute,
1833
			.ib_execute = &cayman_dma_ring_ib_execute,
1752
//			.ib_parse = &evergreen_dma_ib_parse,
1834
//			.ib_parse = &evergreen_dma_ib_parse,
1753
			.emit_fence = &evergreen_dma_fence_ring_emit,
1835
			.emit_fence = &evergreen_dma_fence_ring_emit,
1754
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1836
			.emit_semaphore = &r600_dma_semaphore_ring_emit,
1755
			.cs_parse = NULL,
1837
			.cs_parse = NULL,
1756
			.ring_test = &r600_dma_ring_test,
1838
			.ring_test = &r600_dma_ring_test,
1757
			.ib_test = &r600_dma_ib_test,
1839
			.ib_test = &r600_dma_ib_test,
1758
			.is_lockup = &cayman_dma_is_lockup,
1840
			.is_lockup = &si_dma_is_lockup,
1759
			.vm_flush = &si_dma_vm_flush,
1841
			.vm_flush = &si_dma_vm_flush,
-
 
1842
		},
-
 
1843
		[R600_RING_TYPE_UVD_INDEX] = {
-
 
1844
//			.ib_execute = &r600_uvd_ib_execute,
-
 
1845
//			.emit_fence = &r600_uvd_fence_emit,
-
 
1846
//			.emit_semaphore = &cayman_uvd_semaphore_emit,
-
 
1847
//			.cs_parse = &radeon_uvd_cs_parse,
-
 
1848
//			.ring_test = &r600_uvd_ring_test,
-
 
1849
//			.ib_test = &r600_uvd_ib_test,
-
 
1850
//			.is_lockup = &radeon_ring_test_lockup,
1760
		}
1851
		}
1761
	},
1852
	},
1762
	.irq = {
1853
	.irq = {
1763
		.set = &si_irq_set,
1854
		.set = &si_irq_set,
1764
		.process = &si_irq_process,
1855
		.process = &si_irq_process,
Line 1799... Line 1890...
1799
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1890
//		.get_memory_clock = &radeon_atom_get_memory_clock,
1800
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1891
//		.set_memory_clock = &radeon_atom_set_memory_clock,
1801
		.get_pcie_lanes = NULL,
1892
		.get_pcie_lanes = NULL,
1802
		.set_pcie_lanes = NULL,
1893
		.set_pcie_lanes = NULL,
1803
		.set_clock_gating = NULL,
1894
		.set_clock_gating = NULL,
-
 
1895
//       .set_uvd_clocks = &si_set_uvd_clocks,
1804
	},
1896
	},
1805
	.pflip = {
1897
	.pflip = {
1806
//		.pre_page_flip = &evergreen_pre_page_flip,
1898
//		.pre_page_flip = &evergreen_pre_page_flip,
1807
//		.page_flip = &evergreen_page_flip,
1899
//		.page_flip = &evergreen_page_flip,
1808
//		.post_page_flip = &evergreen_post_page_flip,
1900
//		.post_page_flip = &evergreen_post_page_flip,
Line 1827... Line 1919...
1827
	if (rdev->flags & RADEON_SINGLE_CRTC)
1919
	if (rdev->flags & RADEON_SINGLE_CRTC)
1828
		rdev->num_crtc = 1;
1920
		rdev->num_crtc = 1;
1829
	else
1921
	else
1830
		rdev->num_crtc = 2;
1922
		rdev->num_crtc = 2;
Line -... Line 1923...
-
 
1923
 
-
 
1924
	rdev->has_uvd = false;
1831
 
1925
 
1832
	switch (rdev->family) {
1926
	switch (rdev->family) {
1833
	case CHIP_R100:
1927
	case CHIP_R100:
1834
	case CHIP_RV100:
1928
	case CHIP_RV100:
1835
	case CHIP_RS100:
1929
	case CHIP_RS100:
Line 1891... Line 1985...
1891
	case CHIP_RV630:
1985
	case CHIP_RV630:
1892
	case CHIP_RV620:
1986
	case CHIP_RV620:
1893
	case CHIP_RV635:
1987
	case CHIP_RV635:
1894
	case CHIP_RV670:
1988
	case CHIP_RV670:
1895
		rdev->asic = &r600_asic;
1989
		rdev->asic = &r600_asic;
-
 
1990
		if (rdev->family == CHIP_R600)
-
 
1991
			rdev->has_uvd = false;
-
 
1992
		else
-
 
1993
			rdev->has_uvd = true;
1896
		break;
1994
		break;
1897
	case CHIP_RS780:
1995
	case CHIP_RS780:
1898
	case CHIP_RS880:
1996
	case CHIP_RS880:
1899
		rdev->asic = &rs780_asic;
1997
		rdev->asic = &rs780_asic;
-
 
1998
		rdev->has_uvd = true;
1900
		break;
1999
		break;
1901
	case CHIP_RV770:
2000
	case CHIP_RV770:
1902
	case CHIP_RV730:
2001
	case CHIP_RV730:
1903
	case CHIP_RV710:
2002
	case CHIP_RV710:
1904
	case CHIP_RV740:
2003
	case CHIP_RV740:
1905
		rdev->asic = &rv770_asic;
2004
		rdev->asic = &rv770_asic;
-
 
2005
		rdev->has_uvd = true;
1906
		break;
2006
		break;
1907
	case CHIP_CEDAR:
2007
	case CHIP_CEDAR:
1908
	case CHIP_REDWOOD:
2008
	case CHIP_REDWOOD:
1909
	case CHIP_JUNIPER:
2009
	case CHIP_JUNIPER:
1910
	case CHIP_CYPRESS:
2010
	case CHIP_CYPRESS:
Line 1913... Line 2013...
1913
		if (rdev->family == CHIP_CEDAR)
2013
		if (rdev->family == CHIP_CEDAR)
1914
			rdev->num_crtc = 4;
2014
			rdev->num_crtc = 4;
1915
		else
2015
		else
1916
			rdev->num_crtc = 6;
2016
			rdev->num_crtc = 6;
1917
		rdev->asic = &evergreen_asic;
2017
		rdev->asic = &evergreen_asic;
-
 
2018
		rdev->has_uvd = true;
1918
		break;
2019
		break;
1919
	case CHIP_PALM:
2020
	case CHIP_PALM:
1920
	case CHIP_SUMO:
2021
	case CHIP_SUMO:
1921
	case CHIP_SUMO2:
2022
	case CHIP_SUMO2:
1922
		rdev->asic = &sumo_asic;
2023
		rdev->asic = &sumo_asic;
-
 
2024
		rdev->has_uvd = true;
1923
		break;
2025
		break;
1924
	case CHIP_BARTS:
2026
	case CHIP_BARTS:
1925
	case CHIP_TURKS:
2027
	case CHIP_TURKS:
1926
	case CHIP_CAICOS:
2028
	case CHIP_CAICOS:
1927
		/* set num crtcs */
2029
		/* set num crtcs */
1928
		if (rdev->family == CHIP_CAICOS)
2030
		if (rdev->family == CHIP_CAICOS)
1929
			rdev->num_crtc = 4;
2031
			rdev->num_crtc = 4;
1930
		else
2032
		else
1931
			rdev->num_crtc = 6;
2033
			rdev->num_crtc = 6;
1932
		rdev->asic = &btc_asic;
2034
		rdev->asic = &btc_asic;
-
 
2035
		rdev->has_uvd = true;
1933
		break;
2036
		break;
1934
	case CHIP_CAYMAN:
2037
	case CHIP_CAYMAN:
1935
		rdev->asic = &cayman_asic;
2038
		rdev->asic = &cayman_asic;
1936
		/* set num crtcs */
2039
		/* set num crtcs */
1937
		rdev->num_crtc = 6;
2040
		rdev->num_crtc = 6;
-
 
2041
		rdev->has_uvd = true;
1938
		break;
2042
		break;
1939
	case CHIP_ARUBA:
2043
	case CHIP_ARUBA:
1940
		rdev->asic = &trinity_asic;
2044
		rdev->asic = &trinity_asic;
1941
		/* set num crtcs */
2045
		/* set num crtcs */
1942
		rdev->num_crtc = 4;
2046
		rdev->num_crtc = 4;
-
 
2047
		rdev->has_uvd = true;
1943
		break;
2048
		break;
1944
	case CHIP_TAHITI:
2049
	case CHIP_TAHITI:
1945
	case CHIP_PITCAIRN:
2050
	case CHIP_PITCAIRN:
1946
	case CHIP_VERDE:
2051
	case CHIP_VERDE:
-
 
2052
	case CHIP_OLAND:
-
 
2053
	case CHIP_HAINAN:
1947
		rdev->asic = &si_asic;
2054
		rdev->asic = &si_asic;
1948
		/* set num crtcs */
2055
		/* set num crtcs */
-
 
2056
		if (rdev->family == CHIP_HAINAN)
-
 
2057
			rdev->num_crtc = 0;
-
 
2058
		else if (rdev->family == CHIP_OLAND)
-
 
2059
			rdev->num_crtc = 2;
-
 
2060
		else
1949
		rdev->num_crtc = 6;
2061
		rdev->num_crtc = 6;
-
 
2062
		if (rdev->family == CHIP_HAINAN)
-
 
2063
			rdev->has_uvd = false;
-
 
2064
		else
-
 
2065
			rdev->has_uvd = true;
1950
		break;
2066
		break;
1951
	default:
2067
	default:
1952
		/* FIXME: not supported yet */
2068
		/* FIXME: not supported yet */
1953
		return -EINVAL;
2069
		return -EINVAL;
1954
	}
2070
	}