|
|
|
@ -938,6 +938,13 @@ static struct radeon_asic cayman_asic = { |
|
|
|
|
int radeon_asic_init(struct radeon_device *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) { |
|
|
|
|
case CHIP_R100: |
|
|
|
|
case CHIP_RV100: |
|
|
|
@ -1017,6 +1024,11 @@ int radeon_asic_init(struct radeon_device *rdev) |
|
|
|
|
case CHIP_JUNIPER: |
|
|
|
|
case CHIP_CYPRESS: |
|
|
|
|
case CHIP_HEMLOCK: |
|
|
|
|
/* set num crtcs */ |
|
|
|
|
if (rdev->family == CHIP_CEDAR) |
|
|
|
|
rdev->num_crtc = 4; |
|
|
|
|
else |
|
|
|
|
rdev->num_crtc = 6; |
|
|
|
|
rdev->asic = &evergreen_asic; |
|
|
|
|
break; |
|
|
|
|
case CHIP_PALM: |
|
|
|
@ -1027,10 +1039,17 @@ int radeon_asic_init(struct radeon_device *rdev) |
|
|
|
|
case CHIP_BARTS: |
|
|
|
|
case CHIP_TURKS: |
|
|
|
|
case CHIP_CAICOS: |
|
|
|
|
/* set num crtcs */ |
|
|
|
|
if (rdev->family == CHIP_CAICOS) |
|
|
|
|
rdev->num_crtc = 4; |
|
|
|
|
else |
|
|
|
|
rdev->num_crtc = 6; |
|
|
|
|
rdev->asic = &btc_asic; |
|
|
|
|
break; |
|
|
|
|
case CHIP_CAYMAN: |
|
|
|
|
rdev->asic = &cayman_asic; |
|
|
|
|
/* set num crtcs */ |
|
|
|
|
rdev->num_crtc = 6; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
/* FIXME: not supported yet */ |
|
|
|
@ -1042,18 +1061,6 @@ int radeon_asic_init(struct radeon_device *rdev) |
|
|
|
|
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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|