add viewport registers; correct chipset dependent scale code; rename virtualheight to make it more consistant; spell check

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41557 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-05-17 18:00:58 +00:00
parent fc7b565382
commit c41d9ce694
3 changed files with 15 additions and 8 deletions
@@ -188,7 +188,9 @@ init_registers()
gRegister->grphYStart = EVERGREEN_GRPH_Y_START;
gRegister->grphXEnd = EVERGREEN_GRPH_X_END;
gRegister->grphYEnd = EVERGREEN_GRPH_Y_END;
gRegister->grphDesktopHeight = EVERGREEN_DESKTOP_HEIGHT;
gRegister->modeDesktopHeight = EVERGREEN_DESKTOP_HEIGHT;
gRegister->viewportStart = EVERGREEN_VIEWPORT_START;
gRegister->viewportSize = EVERGREEN_VIEWPORT_SIZE;
} else if (chipset >= RADEON_R600 && chipset < RADEON_R800) {
gRegister->regOffsetCRT0 = D1_REG_OFFSET;
gRegister->regOffsetCRT1 = D2_REG_OFFSET;
@@ -203,14 +205,16 @@ init_registers()
gRegister->grphYStart = D1GRPH_Y_START;
gRegister->grphXEnd = D1GRPH_X_END;
gRegister->grphYEnd = D1GRPH_Y_END;
gRegister->grphDesktopHeight = D1MODE_DESKTOP_HEIGHT;
gRegister->modeDesktopHeight = D1MODE_DESKTOP_HEIGHT;
gRegister->viewportStart = D1MODE_VIEWPORT_START;
gRegister->viewportSize = D1MODE_VIEWPORT_SIZE;
} else {
// this really shouldn't happen unless a driver PCIID chipset is wrong
TRACE("%s, unknown Radeon chipset: r%X\n", __func__, chipset);
return B_ERROR;
}
TRACE("%s, registers for ATI chipset r%X initilized\n", __func__, chipset);
TRACE("%s, registers for ATI chipset r%X initialized\n", __func__, chipset);
return B_OK;
}
@@ -51,7 +51,9 @@ struct register_info {
uint16_t grphYStart;
uint16_t grphXEnd;
uint16_t grphYEnd;
uint16_t grphDesktopHeight;
uint16_t modeDesktopHeight;
uint16_t viewportStart;
uint16_t viewportSize;
};
+5 -4
View File
@@ -205,7 +205,7 @@ CardFBSet(int crtNumber, display_mode *mode)
write32(regOffset + gRegister->grphYEnd, mode->virtual_height);
/* D1Mode registers */
write32(regOffset + gRegister->grphDesktopHeight, mode->virtual_height);
write32(regOffset + gRegister->modeDesktopHeight, mode->virtual_height);
// update shared info
gInfo->shared_info->bytes_per_row = bytesPerRow;
@@ -284,12 +284,13 @@ CardModeSet(int crtNumber, display_mode *mode)
static void
CardModeScale(int crtNumber, display_mode *mode)
{
uint16_t regOffset = (crtNumber == 2) ? D2_REG_OFFSET : D1_REG_OFFSET;
uint16_t regOffset = (crtNumber == 0)
? gRegister->regOffsetCRT0 : gRegister->regOffsetCRT1;
/* D1Mode registers */
write32(regOffset + D1MODE_VIEWPORT_SIZE,
write32(regOffset + gRegister->viewportSize,
mode->timing.v_display | (mode->timing.h_display << 16));
write32(regOffset + D1MODE_VIEWPORT_START, 0);
write32(regOffset + gRegister->viewportStart, 0);
/* write32(regOffset + D1MODE_EXT_OVERSCAN_LEFT_RIGHT,
(Overscan.OverscanLeft << 16) | Overscan.OverscanRight);