|
@@ -938,6 +938,13 @@ static struct radeon_asic cayman_asic = {
|
|
int radeon_asic_init(struct radeon_device *rdev)
|
|
int radeon_asic_init(struct radeon_device *rdev)
|
|
{
|
|
{
|
|
radeon_register_accessor_init(rdev);
|
|
radeon_register_accessor_init(rdev);
|
|
|
|
+
|
|
|
|
+ /* set the number of crtcs */
|
|
|
|
+ if (rdev->flags & RADEON_SINGLE_CRTC)
|
|
|
|
+ rdev->num_crtc = 1;
|
|
|
|
+ else
|
|
|
|
+ rdev->num_crtc = 2;
|
|
|
|
+
|
|
switch (rdev->family) {
|
|
switch (rdev->family) {
|
|
case CHIP_R100:
|
|
case CHIP_R100:
|
|
case CHIP_RV100:
|
|
case CHIP_RV100:
|
|
@@ -1017,6 +1024,11 @@ int radeon_asic_init(struct radeon_device *rdev)
|
|
case CHIP_JUNIPER:
|
|
case CHIP_JUNIPER:
|
|
case CHIP_CYPRESS:
|
|
case CHIP_CYPRESS:
|
|
case CHIP_HEMLOCK:
|
|
case CHIP_HEMLOCK:
|
|
|
|
+ /* set num crtcs */
|
|
|
|
+ if (rdev->family == CHIP_CEDAR)
|
|
|
|
+ rdev->num_crtc = 4;
|
|
|
|
+ else
|
|
|
|
+ rdev->num_crtc = 6;
|
|
rdev->asic = &evergreen_asic;
|
|
rdev->asic = &evergreen_asic;
|
|
break;
|
|
break;
|
|
case CHIP_PALM:
|
|
case CHIP_PALM:
|
|
@@ -1027,10 +1039,17 @@ int radeon_asic_init(struct radeon_device *rdev)
|
|
case CHIP_BARTS:
|
|
case CHIP_BARTS:
|
|
case CHIP_TURKS:
|
|
case CHIP_TURKS:
|
|
case CHIP_CAICOS:
|
|
case CHIP_CAICOS:
|
|
|
|
+ /* set num crtcs */
|
|
|
|
+ if (rdev->family == CHIP_CAICOS)
|
|
|
|
+ rdev->num_crtc = 4;
|
|
|
|
+ else
|
|
|
|
+ rdev->num_crtc = 6;
|
|
rdev->asic = &btc_asic;
|
|
rdev->asic = &btc_asic;
|
|
break;
|
|
break;
|
|
case CHIP_CAYMAN:
|
|
case CHIP_CAYMAN:
|
|
rdev->asic = &cayman_asic;
|
|
rdev->asic = &cayman_asic;
|
|
|
|
+ /* set num crtcs */
|
|
|
|
+ rdev->num_crtc = 6;
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
/* FIXME: not supported yet */
|
|
/* FIXME: not supported yet */
|
|
@@ -1042,18 +1061,6 @@ int radeon_asic_init(struct radeon_device *rdev)
|
|
rdev->asic->set_memory_clock = NULL;
|
|
rdev->asic->set_memory_clock = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
- /* set the number of crtcs */
|
|
|
|
- if (rdev->flags & RADEON_SINGLE_CRTC)
|
|
|
|
- rdev->num_crtc = 1;
|
|
|
|
- else {
|
|
|
|
- if (ASIC_IS_DCE41(rdev))
|
|
|
|
- rdev->num_crtc = 2;
|
|
|
|
- else if (ASIC_IS_DCE4(rdev))
|
|
|
|
- rdev->num_crtc = 6;
|
|
|
|
- else
|
|
|
|
- rdev->num_crtc = 2;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|