diff --git a/src/add-ons/accelerants/nvidia/engine/nv_acc_dma.c b/src/add-ons/accelerants/nvidia/engine/nv_acc_dma.c index d1133a933c..237f32e8ca 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_acc_dma.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_acc_dma.c @@ -1,7 +1,7 @@ /* NV Acceleration functions */ /* Author: - Rudolf Cornelissen 8/2003-6/2005. + Rudolf Cornelissen 8/2003-11/2005. This code was possible thanks to: - the Linux XFree86 NV driver, @@ -859,7 +859,6 @@ status_t nv_acc_init_dma() } } } -//fixme: still check rest down: if (si->ps.card_arch >= NV40A) { @@ -868,8 +867,8 @@ status_t nv_acc_init_dma() /* copy some RAM configuration info(?) */ ACCW(NV20_WHAT_T0, NV_REG32(NV32_PFB_CONFIG_0)); ACCW(NV20_WHAT_T1, NV_REG32(NV32_PFB_CONFIG_1)); - ACCW(NV40_WHAT_T2, NV_REG32(NV32_PFB_CONFIG_0));//updated? - ACCW(NV40_WHAT_T3, NV_REG32(NV32_PFB_CONFIG_1));//updated? + ACCW(NV40_WHAT_T2, NV_REG32(NV32_PFB_CONFIG_0)); + ACCW(NV40_WHAT_T3, NV_REG32(NV32_PFB_CONFIG_1)); /* setup location of active screen in framebuffer */ ACCW(NV20_OFFSET0, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer)); @@ -880,11 +879,23 @@ status_t nv_acc_init_dma() } else { + /* NV41, 43, 44, 47 */ + /* copy some RAM configuration info(?) */ - ACCW(NV40P_WHAT_T0, NV_REG32(NV32_PFB_CONFIG_0)); - ACCW(NV40P_WHAT_T1, NV_REG32(NV32_PFB_CONFIG_1)); - ACCW(NV40P_WHAT_T2, NV_REG32(NV32_PFB_CONFIG_0));//updated? - ACCW(NV40P_WHAT_T3, NV_REG32(NV32_PFB_CONFIG_1));//updated? + if (si->ps.card_type == NV47) + /* or ID == 0x01dx or ID == 0x029x: but no cards defined yet */ + { + ACCW(NV47_WHAT_T0, NV_REG32(NV32_PFB_CONFIG_0)); + ACCW(NV47_WHAT_T1, NV_REG32(NV32_PFB_CONFIG_1)); + } + else + { + /* NV41, 43, 44 */ + ACCW(NV40P_WHAT_T0, NV_REG32(NV32_PFB_CONFIG_0)); + ACCW(NV40P_WHAT_T1, NV_REG32(NV32_PFB_CONFIG_1)); + } + ACCW(NV40P_WHAT_T2, NV_REG32(NV32_PFB_CONFIG_0)); + ACCW(NV40P_WHAT_T3, NV_REG32(NV32_PFB_CONFIG_1)); /* setup location of active screen in framebuffer */ ACCW(NV40P_OFFSET0, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer)); diff --git a/src/add-ons/accelerants/nvidia/engine/nv_general.c b/src/add-ons/accelerants/nvidia/engine/nv_general.c index 987d44daba..1b72d03d0a 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_general.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_general.c @@ -91,7 +91,7 @@ status_t nv_general_powerup() { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 0.64 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 0.65 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned)