|
@@ -760,7 +760,9 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
|
|
|
dac = RBIOS8(dac_info + 0x3) & 0xf;
|
|
|
p_dac->ps2_pdac_adj = (bg << 8) | (dac);
|
|
|
}
|
|
|
- found = 1;
|
|
|
+ /* if the values are all zeros, use the table */
|
|
|
+ if (p_dac->ps2_pdac_adj)
|
|
|
+ found = 1;
|
|
|
}
|
|
|
|
|
|
if (!found) /* fallback to defaults */
|
|
@@ -895,7 +897,9 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
|
|
|
bg = RBIOS8(dac_info + 0x10) & 0xf;
|
|
|
dac = RBIOS8(dac_info + 0x11) & 0xf;
|
|
|
tv_dac->ntsc_tvdac_adj = (bg << 16) | (dac << 20);
|
|
|
- found = 1;
|
|
|
+ /* if the values are all zeros, use the table */
|
|
|
+ if (tv_dac->ps2_tvdac_adj)
|
|
|
+ found = 1;
|
|
|
} else if (rev > 1) {
|
|
|
bg = RBIOS8(dac_info + 0xc) & 0xf;
|
|
|
dac = (RBIOS8(dac_info + 0xc) >> 4) & 0xf;
|
|
@@ -908,7 +912,9 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
|
|
|
bg = RBIOS8(dac_info + 0xe) & 0xf;
|
|
|
dac = (RBIOS8(dac_info + 0xe) >> 4) & 0xf;
|
|
|
tv_dac->ntsc_tvdac_adj = (bg << 16) | (dac << 20);
|
|
|
- found = 1;
|
|
|
+ /* if the values are all zeros, use the table */
|
|
|
+ if (tv_dac->ps2_tvdac_adj)
|
|
|
+ found = 1;
|
|
|
}
|
|
|
tv_dac->tv_std = radeon_combios_get_tv_info(rdev);
|
|
|
}
|
|
@@ -925,7 +931,9 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
|
|
|
(bg << 16) | (dac << 20);
|
|
|
tv_dac->pal_tvdac_adj = tv_dac->ps2_tvdac_adj;
|
|
|
tv_dac->ntsc_tvdac_adj = tv_dac->ps2_tvdac_adj;
|
|
|
- found = 1;
|
|
|
+ /* if the values are all zeros, use the table */
|
|
|
+ if (tv_dac->ps2_tvdac_adj)
|
|
|
+ found = 1;
|
|
|
} else {
|
|
|
bg = RBIOS8(dac_info + 0x4) & 0xf;
|
|
|
dac = RBIOS8(dac_info + 0x5) & 0xf;
|
|
@@ -933,7 +941,9 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
|
|
|
(bg << 16) | (dac << 20);
|
|
|
tv_dac->pal_tvdac_adj = tv_dac->ps2_tvdac_adj;
|
|
|
tv_dac->ntsc_tvdac_adj = tv_dac->ps2_tvdac_adj;
|
|
|
- found = 1;
|
|
|
+ /* if the values are all zeros, use the table */
|
|
|
+ if (tv_dac->ps2_tvdac_adj)
|
|
|
+ found = 1;
|
|
|
}
|
|
|
} else {
|
|
|
DRM_INFO("No TV DAC info found in BIOS\n");
|