diff -rpu mach64.org/mach64.c mach64/mach64.c --- mach64.org/mach64.c Tue Nov 7 02:19:26 2000 +++ mach64/mach64.c Tue Nov 7 02:22:02 2000 @@ -608,13 +608,13 @@ static ATIInformationBlock *GetATIInform #if 0 if (tmp2 & AUTO_HORZ_RATIO) #endif - info.LCDHorizontal = (((tmp2 >> 20) & 0x0FF) + 1) << 3; + info.LCDHorizontal = (((tmp2 >> 20) & 0x0FF) + 1) << 3; outb(ioLCD_INDEX, LCD_EXT_VERT_STRETCH); tmp2 = inl(ioLCD_DATA); #if 0 if (tmp2 & AUTO_VERT_RATIO) #endif - info.LCDVertical = ((tmp2 >> 11) & 0x7FF) + 1; + info.LCDVertical = ((tmp2 >> 11) & 0x7FF) + 1; outb(ioLCD_INDEX, LCD_GEN_CNTL); tmp2 = inl(ioLCD_DATA); break; @@ -801,10 +801,10 @@ static ATIInformationBlock *GetATIInform info.PanelID = bios_data[LCDPanelInfo]; info.LCDHorizontal = - (bios_data[LCDPanelInfo + 0x1A] << 8) + bios_data[LCDPanelInfo + 0x19]; - info.LCDVertical = - (bios_data[LCDPanelInfo + 0x1C] << 8) + bios_data[LCDPanelInfo + 0x1B]; - + (bios_data[LCDPanelInfo + 0x1A] << 8) + bios_data[LCDPanelInfo + 0x19]; + info.LCDVertical = + (bios_data[LCDPanelInfo + 0x1C] << 8) + bios_data[LCDPanelInfo + 0x1B]; + return &info; } @@ -1559,13 +1559,27 @@ mach64Probe() CARD32 h_total_disp, h_sync_strt_wid, v_total_disp, v_sync_strt_wid; int HDisplay, VDisplay; + /* modified by T.Kinjo 20001108 */ + /* force value to fit VAIO-C1 Super-XSVGA 1024x480 */ + /* autoprobe seems to be failed... */ + + ErrorF("!!! CAUTION: THIS SERVER IS FOR _VAIO-C1VJ_ ONLY !!!\n"); + ErrorF(" This XF86_Mach64 server is modified by T. Kinjo\n"); + ErrorF(" 2000/11/08\n"); + mach64LCDHorizontal = info->LCDHorizontal; mach64LCDVertical = info->LCDVertical; mach64LCDClock = mach64GetCTClock(0); - ErrorF("%s %s: %dx%d panel (ID %d) detected; clock %.2f MHz\n", - XCONFIG_PROBED, mach64InfoRec.name, - mach64LCDHorizontal, mach64LCDVertical, mach64LCDPanelID, - (double)mach64LCDClock / 100.0); + ErrorF("(tk) %s: %dx%d panel (ID %d) detected; clock %.2f MHz\n", + mach64InfoRec.name, + mach64LCDHorizontal, mach64LCDVertical, mach64LCDPanelID, + (double)mach64LCDClock / 100.0); + + mach64LCDVertical = 480; /* force fixed value */ + mach64LCDClock = 6000; /* force fixed value */ + ErrorF(" -> %dx%d panel; clock %.2f MHz(forced)\n", + mach64LCDHorizontal, mach64LCDVertical, + (double)mach64LCDClock / 100.0); /* * Determine porch data. The intent here is to produce stretched modes @@ -1576,6 +1590,14 @@ mach64Probe() h_sync_strt_wid = inl(ioCRTC_H_SYNC_STRT_WID); v_total_disp = inl(ioCRTC_V_TOTAL_DISP); v_sync_strt_wid = inl(ioCRTC_V_SYNC_STRT_WID); + ErrorF("(tk) %s: (v_total:%d, v_sync_strt_w:%d)\n", + mach64InfoRec.name, + v_total_disp, v_sync_strt_wid ); + + v_total_disp = (480 << 16) + 29129990; + v_sync_strt_wid = inl(ioCRTC_V_SYNC_STRT_WID) + 804; + ErrorF(" -> (%d, %d)(forced)\n", + v_total_disp, v_sync_strt_wid ); HDisplay = h_total_disp >> 16; VDisplay = v_total_disp >> 16; @@ -1590,7 +1612,7 @@ mach64Probe() LCDVBlankWidth = (v_total_disp & 0x7FF) - VDisplay; if (!(inl(ioCRTC_GEN_CNTL) & CRTC_EXT_DISP_EN)) { - /* Adjust for VGA */ + /* Adjust for VGA */ LCDHSyncWidth = (LCDHSyncWidth - LCDHSyncStart - HDisplay) & 0x1F; LCDHBlankWidth += 4; LCDVSyncWidth = (LCDVSyncWidth - LCDVSyncStart - VDisplay) & 0x0F; diff -rpu mach64.org/mach64init.c mach64/mach64init.c --- mach64.org/mach64init.c Tue Nov 7 02:19:26 2000 +++ mach64/mach64init.c Tue Nov 7 02:22:21 2000 @@ -2433,7 +2433,8 @@ void mach64InitDisplay(screen_idx) old_VERT_STRETCHING = regr(VERT_STRETCHING); old_POWER_MANAGEMENT = regr(POWER_MANAGEMENT); /* Disable panel's APM */ - regw(POWER_MANAGEMENT, old_POWER_MANAGEMENT & ~PWR_MGT_ON); + /* modified by T.Kinjo 20001012 */ + regw(POWER_MANAGEMENT, old_POWER_MANAGEMENT | PWR_MGT_ON); } else { /* All others */ old_LCD_INDEX = inl(ioLCD_INDEX); @@ -2461,7 +2462,8 @@ void mach64InitDisplay(screen_idx) outb(ioLCD_INDEX, LCD_POWER_MANAGEMENT); old_POWER_MANAGEMENT = inl(ioLCD_DATA); /* Disable panel's APM */ - outl(ioLCD_DATA, old_POWER_MANAGEMENT & ~PWR_MGT_ON); + /* modified by T.Kinjo 20001012 */ + outl(ioLCD_DATA, old_POWER_MANAGEMENT | PWR_MGT_ON); if ((mach64ChipType != MACH64_LB_ID) && (mach64ChipType != MACH64_LD_ID) && (mach64ChipType != MACH64_LI_ID) &&