Lines 595-600
bool radeon_combios_get_clock_info(struct drm_device *dev)
Link Here
|
595 |
return false; |
595 |
return false; |
596 |
} |
596 |
} |
597 |
|
597 |
|
|
|
598 |
static const uint32_t default_primarydac_adj[CHIP_LAST] = { |
599 |
0x00000808, /* r100 */ |
600 |
0x00000808, /* rv100 */ |
601 |
0x00000808, /* rs100 */ |
602 |
0x00000808, /* rv200 */ |
603 |
0x00000808, /* rs200 */ |
604 |
0x00000808, /* r200 */ |
605 |
0x00000808, /* rv250 */ |
606 |
0x00000000, /* rs300 */ |
607 |
0x00000808, /* rv280 */ |
608 |
0x00000808, /* r300 */ |
609 |
0x00000808, /* r350 */ |
610 |
0x00000808, /* rv350 */ |
611 |
0x00000808, /* rv380 */ |
612 |
0x00000808, /* r420 */ |
613 |
0x00000808, /* r423 */ |
614 |
0x00000808, /* rv410 */ |
615 |
0x00000000, /* rs400 */ |
616 |
0x00000000, /* rs480 */ |
617 |
}; |
618 |
|
619 |
static void radeon_legacy_get_primary_dac_info_from_table(struct radeon_device *rdev, |
620 |
struct radeon_encoder_primary_dac *p_dac) |
621 |
{ |
622 |
p_dac->ps2_pdac_adj = default_primarydac_adj[rdev->family]; |
623 |
return; |
624 |
} |
625 |
|
598 |
struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct |
626 |
struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct |
599 |
radeon_encoder |
627 |
radeon_encoder |
600 |
*encoder) |
628 |
*encoder) |
Lines 604-623
struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
Link Here
|
604 |
uint16_t dac_info; |
632 |
uint16_t dac_info; |
605 |
uint8_t rev, bg, dac; |
633 |
uint8_t rev, bg, dac; |
606 |
struct radeon_encoder_primary_dac *p_dac = NULL; |
634 |
struct radeon_encoder_primary_dac *p_dac = NULL; |
|
|
635 |
int found = 0; |
607 |
|
636 |
|
608 |
if (rdev->bios == NULL) |
637 |
p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac), |
|
|
638 |
GFP_KERNEL); |
639 |
|
640 |
if (!p_dac) |
609 |
return NULL; |
641 |
return NULL; |
610 |
|
642 |
|
|
|
643 |
if (rdev->bios == NULL) |
644 |
goto out; |
645 |
|
611 |
/* check CRT table */ |
646 |
/* check CRT table */ |
612 |
dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE); |
647 |
dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE); |
613 |
if (dac_info) { |
648 |
if (dac_info) { |
614 |
p_dac = |
|
|
615 |
kzalloc(sizeof(struct radeon_encoder_primary_dac), |
616 |
GFP_KERNEL); |
617 |
|
618 |
if (!p_dac) |
619 |
return NULL; |
620 |
|
621 |
rev = RBIOS8(dac_info) & 0x3; |
649 |
rev = RBIOS8(dac_info) & 0x3; |
622 |
if (rev < 2) { |
650 |
if (rev < 2) { |
623 |
bg = RBIOS8(dac_info + 0x2) & 0xf; |
651 |
bg = RBIOS8(dac_info + 0x2) & 0xf; |
Lines 628-636
struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
Link Here
|
628 |
dac = RBIOS8(dac_info + 0x3) & 0xf; |
656 |
dac = RBIOS8(dac_info + 0x3) & 0xf; |
629 |
p_dac->ps2_pdac_adj = (bg << 8) | (dac); |
657 |
p_dac->ps2_pdac_adj = (bg << 8) | (dac); |
630 |
} |
658 |
} |
631 |
|
659 |
found = 1; |
632 |
} |
660 |
} |
633 |
|
661 |
|
|
|
662 |
out: |
663 |
if (!found) /* fallback to defaults */ |
664 |
radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac); |
665 |
|
634 |
return p_dac; |
666 |
return p_dac; |
635 |
} |
667 |
} |
636 |
|
668 |
|
637 |
- |
|
|