From 2d2e1091d573238bbc829fd7e1cd28d75ee97a96 Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Mon, 30 Aug 2004 09:00:25 +0000 Subject: [PATCH] yacs: yet another coldstart scriptcmd. One (Extensive) one to go for ELSA erazor III.. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8722 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/accelerants/nvidia/engine/nv_info.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/add-ons/accelerants/nvidia/engine/nv_info.c b/src/add-ons/accelerants/nvidia/engine/nv_info.c index d4695e4545..98a95d1de1 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_info.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_info.c @@ -259,8 +259,6 @@ static status_t exec_type1_script(uint8* rom, uint16 adress, int16* size) log_pll(reg); break; case 0x5a: - LOG(8,("xxx cmd, skipping...\n")); - *size -= 7; if (*size < 0) { @@ -270,7 +268,15 @@ static status_t exec_type1_script(uint8* rom, uint16 adress, int16* size) break; } - adress += 7; + /* execute */ + adress += 1; + reg = *((uint32*)(&(rom[adress]))); + adress += 4; + data = *((uint16*)(&(rom[adress]))); + adress += 2; + data2 = *((uint32*)(&(rom[data]))); + LOG(8,("cmd 'WR indirect 32bit REG' $%08x = $%08x\n", reg, data2)); + if (exec) NV_REG32(reg) = data2; break; case 0x63: LOG(8,("xxx cmd, skipping...\n"));