Subversion Repositories Kolibri OS

Rev

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

Rev 6104 Rev 6321
Line 435... Line 435...
435
		struct radeon_device *rdev = dev->dev_private;
435
		struct radeon_device *rdev = dev->dev_private;
436
		*i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93);
436
		*i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93);
437
	}
437
	}
Line 438... Line 438...
438
 
438
 
-
 
439
	/* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
-
 
440
	if (((dev->pdev->device == 0x9802) ||
439
	/* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
441
	     (dev->pdev->device == 0x9805) ||
440
	if (((dev->pdev->device == 0x9802) || (dev->pdev->device == 0x9806)) &&
442
	     (dev->pdev->device == 0x9806)) &&
441
	    (dev->pdev->subsystem_vendor == 0x1734) &&
443
	    (dev->pdev->subsystem_vendor == 0x1734) &&
442
	    (dev->pdev->subsystem_device == 0x11bd)) {
444
	    (dev->pdev->subsystem_device == 0x11bd)) {
443
		if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
445
		if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
444
			*connector_type = DRM_MODE_CONNECTOR_DVII;
446
			*connector_type = DRM_MODE_CONNECTOR_DVII;
445
			*line_mux = 0x3103;
447
			*line_mux = 0x3103;
446
		} else if (*connector_type == DRM_MODE_CONNECTOR_DVID) {
448
		} else if (*connector_type == DRM_MODE_CONNECTOR_DVID) {
447
			*connector_type = DRM_MODE_CONNECTOR_DVII;
449
			*connector_type = DRM_MODE_CONNECTOR_DVII;
448
		}
450
		}
Line 449... Line -...
449
	}
-
 
450
 
-
 
451
	/* Fujitsu D3003-S2 board lists DVI-I as DVI-I and VGA */
-
 
452
	if ((dev->pdev->device == 0x9805) &&
-
 
453
	    (dev->pdev->subsystem_vendor == 0x1734) &&
-
 
454
	    (dev->pdev->subsystem_device == 0x11bd)) {
-
 
455
		if (*connector_type == DRM_MODE_CONNECTOR_VGA)
-
 
456
			return false;
-
 
457
	}
451
	}
458
 
452
 
Line 459... Line 453...
459
	return true;
453
	return true;
460
}
454
}
Line 1110... Line 1104...
1110
	ATOM_FIRMWARE_INFO_V1_4 info_14;
1104
	ATOM_FIRMWARE_INFO_V1_4 info_14;
1111
	ATOM_FIRMWARE_INFO_V2_1 info_21;
1105
	ATOM_FIRMWARE_INFO_V2_1 info_21;
1112
	ATOM_FIRMWARE_INFO_V2_2 info_22;
1106
	ATOM_FIRMWARE_INFO_V2_2 info_22;
1113
};
1107
};
Line -... Line 1108...
-
 
1108
 
-
 
1109
union igp_info {
-
 
1110
	struct _ATOM_INTEGRATED_SYSTEM_INFO info;
-
 
1111
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2;
-
 
1112
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V6 info_6;
-
 
1113
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_7 info_7;
-
 
1114
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_8 info_8;
-
 
1115
};
-
 
1116
 
-
 
1117
static void radeon_atombios_get_dentist_vco_freq(struct radeon_device *rdev)
-
 
1118
{
-
 
1119
	struct radeon_mode_info *mode_info = &rdev->mode_info;
-
 
1120
	int index = GetIndexIntoMasterTable(DATA, IntegratedSystemInfo);
-
 
1121
	union igp_info *igp_info;
-
 
1122
	u8 frev, crev;
-
 
1123
	u16 data_offset;
-
 
1124
 
-
 
1125
	if (atom_parse_data_header(mode_info->atom_context, index, NULL,
-
 
1126
			&frev, &crev, &data_offset)) {
-
 
1127
		igp_info = (union igp_info *)(mode_info->atom_context->bios +
-
 
1128
			data_offset);
-
 
1129
		rdev->clock.vco_freq =
-
 
1130
			le32_to_cpu(igp_info->info_6.ulDentistVCOFreq);
-
 
1131
	}
-
 
1132
}
1114
 
1133
 
1115
bool radeon_atom_get_clock_info(struct drm_device *dev)
1134
bool radeon_atom_get_clock_info(struct drm_device *dev)
1116
{
1135
{
1117
	struct radeon_device *rdev = dev->dev_private;
1136
	struct radeon_device *rdev = dev->dev_private;
1118
	struct radeon_mode_info *mode_info = &rdev->mode_info;
1137
	struct radeon_mode_info *mode_info = &rdev->mode_info;
Line 1261... Line 1280...
1261
 
1280
 
1262
		/* not technically a clock, but... */
1281
		/* not technically a clock, but... */
1263
		rdev->mode_info.firmware_flags =
1282
		rdev->mode_info.firmware_flags =
Line -... Line 1283...
-
 
1283
			le16_to_cpu(firmware_info->info.usFirmwareCapability.susAccess);
-
 
1284
 
-
 
1285
		if (ASIC_IS_DCE8(rdev))
-
 
1286
			rdev->clock.vco_freq =
-
 
1287
				le32_to_cpu(firmware_info->info_22.ulGPUPLL_OutputFreq);
-
 
1288
		else if (ASIC_IS_DCE5(rdev))
-
 
1289
			rdev->clock.vco_freq = rdev->clock.current_dispclk;
-
 
1290
		else if (ASIC_IS_DCE41(rdev))
-
 
1291
			radeon_atombios_get_dentist_vco_freq(rdev);
-
 
1292
		else
-
 
1293
			rdev->clock.vco_freq = rdev->clock.current_dispclk;
-
 
1294
 
-
 
1295
		if (rdev->clock.vco_freq == 0)
1264
			le16_to_cpu(firmware_info->info.usFirmwareCapability.susAccess);
1296
			rdev->clock.vco_freq = 360000;	/* 3.6 GHz */
1265
 
1297
 
Line 1266... Line 1298...
1266
		return true;
1298
		return true;
1267
	}
1299
	}
Line 1268... Line -...
1268
 
-
 
1269
	return false;
-
 
1270
}
-
 
1271
 
-
 
1272
union igp_info {
-
 
1273
	struct _ATOM_INTEGRATED_SYSTEM_INFO info;
-
 
1274
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2;
-
 
1275
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V6 info_6;
-
 
1276
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_7 info_7;
1300
 
1277
	struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_8 info_8;
1301
	return false;
1278
};
1302
}
1279
 
1303
 
1280
bool radeon_atombios_sideport_present(struct radeon_device *rdev)
1304
bool radeon_atombios_sideport_present(struct radeon_device *rdev)