Lines Matching refs:ps
344 static void fnLineArtSpeed( pScanData ps );
345 static void fnGraySpeed ( pScanData ps );
346 static void fnColorSpeed ( pScanData ps );
348 static void fnSppLineArtSpeed( pScanData ps );
349 static void fnSppGraySpeed ( pScanData ps );
350 static void fnSppColorSpeed ( pScanData ps );
352 static void fnBppLineArtSpeed( pScanData ps );
353 static void fnBppGraySpeed ( pScanData ps );
354 static void fnBppColorSpeed ( pScanData ps );
389 static void ioP96InitialSetCurrentSpeed( pScanData ps )
393 switch ( ps->DataInf.wPhyDataType ) {
396 ps->bCurrentSpeed = (ps->DataInf.dwAsicPixelsPerPlane >
401 if ( COLOR_256GRAY == ps->DataInf.wAppDataType ) {
403 ps->bCurrentSpeed = (Byte)(ps->a_wGrayInitTime[ps->IO.portMode] /
404 ps->wLinesPer64kTime);
405 if (!ps->bCurrentSpeed)
406 ps->bCurrentSpeed = 1;
408 if ((ps->DataInf.dwAsicPixelsPerPlane>=1500) && (ps->bCurrentSpeed==1))
409 ps->bCurrentSpeed = 2;
411 if ( ps->DataInf.xyAppDpi.x > 1200) {
412 ps->bCurrentSpeed += 2; /* 1201-2400 */
414 if ( ps->DataInf.xyAppDpi.x > 2400 )
415 ps->bCurrentSpeed += 2; /* >= 2401 */
418 MotorP96AdjustCurrentSpeed( ps, ps->bCurrentSpeed );
422 if ( _PORT_SPP != ps->IO.portMode ) {
423 if( ps->DataInf.dwAsicPixelsPerPlane <= 1280 )
424 ps->bCurrentSpeed = 1; /* <= 1280 pixels */
426 else if( ps->DataInf.dwAsicPixelsPerPlane <= 1720 )
427 ps->bCurrentSpeed = 2; /* 1281-1720 */
429 else if( ps->DataInf.dwAsicPixelsPerPlane <= 3780 )
430 ps->bCurrentSpeed = 4; /* 1721-3780 */
433 ps->bCurrentSpeed = 6; /* >= 3780 */
437 if( ps->DataInf.dwAsicPixelsPerPlane <= 400 )
438 ps->bCurrentSpeed = 1; /* <= 400 pixels */
440 else if( ps->DataInf.dwAsicPixelsPerPlane <= 853 )
441 ps->bCurrentSpeed = 2; /* 401-853 */
443 else if( ps->DataInf.dwAsicPixelsPerPlane <= 1280 )
444 ps->bCurrentSpeed = 4; /* 854-1280 */
446 else if( ps->DataInf.dwAsicPixelsPerPlane <= 1728 )
447 ps->bCurrentSpeed = 6; /* 1281-1728 */
449 else if( ps->DataInf.dwAsicPixelsPerPlane <= 3780 )
450 ps->bCurrentSpeed = 8; /* 1729-3780 */
453 ps->bCurrentSpeed = 10; /* > 3780 */
459 ps->bCurrentSpeed = (Byte)(ps->a_wColorInitTime[ps->IO.portMode] /
460 ps->wLinesPer64kTime);
462 if( 0 == ps->bCurrentSpeed ) {
464 ps->bCurrentSpeed = 1;
467 if (ps->DataInf.xyAppDpi.x > 150) {
468 if (ps->bCurrentSpeed < 4)
469 ps->bCurrentSpeed = 4;
473 // if (ps->DataInf.xyAppDpi.x > 100)
475 if (ps->DataInf.xyAppDpi.x > 75)
476 if (ps->bCurrentSpeed < 2)
477 ps->bCurrentSpeed = 2;
480 if( 1 != ps->bCurrentSpeed )
481 ps->bCurrentSpeed += ps->bExtraAdd;
483 if (ps->DataInf.xyAppDpi.x > ps->PhysicalDpi) {
484 if (ps->DataInf.xyAppDpi.x <= 600)
485 ps->bCurrentSpeed += 2;
486 else if (ps->DataInf.xyAppDpi.x <= 1200)
487 ps->bCurrentSpeed += 2;
488 else if (ps->DataInf.xyAppDpi.x <= 2400)
489 ps->bCurrentSpeed += 2;
491 ps->bCurrentSpeed += 2;
494 MotorP96AdjustCurrentSpeed( ps, ps->bCurrentSpeed );
497 DBG( DBG_LOW, "Current Speed = %u\n", ps->bCurrentSpeed );
503 static void fnLineArtSpeed( pScanData ps )
508 if (ps->DataInf.xyAppDpi.y > 75) {
513 if (ps->DataInf.xyAppDpi.y > 150) {
514 if (ps->DataInf.xyAppDpi.y <= 300) {
527 static void fnGraySpeed( pScanData ps )
532 if (ps->DataInf.xyAppDpi.y > 75) {
537 if ( ps->DataInf.xyAppDpi.y > 150) {
538 if (ps->DataInf.xyAppDpi.y <= 300) {
544 if (ps->DataInf.dwAsicPixelsPerPlane > 3000)
553 static void fnColorSpeed( pScanData ps )
559 if ( ps->DataInf.xyAppDpi.y <= ps->wMinCmpDpi ) {
565 if (ps->DataInf.xyAppDpi.y <= 100) {
569 if (ps->DataInf.dwAsicBytesPerPlane > 1400)
572 if (ps->DataInf.xyAppDpi.y <= 150) {
576 if (ps->DataInf.dwAsicBytesPerPlane > 1900)
579 if (ps->DataInf.xyAppDpi.y <= 300) {
582 if (ps->DataInf.dwAsicBytesPerPlane <= 1200)
585 if (ps->DataInf.dwAsicBytesPerPlane > 4000)
593 if (ps->DataInf.dwAsicBytesPerPlane <= 4000) {
595 if (ps->DataInf.dwAsicBytesPerPlane <= 2800) {
598 if (ps->DataInf.dwAsicBytesPerPlane <= 1200)
602 if (ps->DataInf.dwAsicBytesPerPlane >= 9600)
614 static void fnSppLineArtSpeed( pScanData ps )
619 if (ps->DataInf.xyAppDpi.y > 75) {
625 if (ps->DataInf.xyAppDpi.y > 150) {
626 if (ps->DataInf.xyAppDpi.y <= 300) {
639 static void fnSppGraySpeed( pScanData ps )
644 if (ps->DataInf.xyAppDpi.y > 75) {
648 if (ps->DataInf.xyAppDpi.y > 150) {
650 if (ps->DataInf.xyAppDpi.y <= 300) {
658 if (ps->DataInf.dwAsicPixelsPerPlane <= 3200)
662 if (ps->DataInf.dwAsicPixelsPerPlane <= 1600)
666 if (ps->DataInf.dwAsicPixelsPerPlane <= 800)
674 static void fnSppColorSpeed( pScanData ps )
679 if (ps->DataInf.xyAppDpi.y > ps->wMinCmpDpi) {
683 if (ps->DataInf.xyAppDpi.y > 100) {
687 if (ps->DataInf.xyAppDpi.y > 150) {
691 if (ps->DataInf.xyAppDpi.y > 300) {
696 if (ps->DataInf.dwAsicBytesPerPlane > 4000)
701 if (ps->DataInf.dwAsicBytesPerPlane > 3000)
706 if (ps->DataInf.dwAsicBytesPerPlane <= 2000) {
708 if (ps->DataInf.dwAsicBytesPerPlane <= 1000) {
711 if (ps->DataInf.dwAsicBytesPerPlane <= 500)
717 if (ps->DataInf.dwAsicBytesPerPlane <= 800)
727 static void fnBppLineArtSpeed( pScanData ps )
735 if( ps->DataInf.xyAppDpi.y > 75 ) {
740 if( ps->DataInf.xyAppDpi.y > 150 ) {
741 if( ps->DataInf.xyAppDpi.y <= 300 ) {
754 static void fnBppGraySpeed( pScanData ps )
762 if( ps->DataInf.xyAppDpi.y > 75 ) {
767 if( ps->DataInf.xyAppDpi.y > 150 ) {
770 if( ps->DataInf.xyAppDpi.y > 300 ) {
773 if( ps->DataInf.dwAsicPixelsPerPlane <= 3200 )
776 if( ps->DataInf.dwAsicPixelsPerPlane <= 1600 )
784 static void fnBppColorSpeed( pScanData ps )
789 if (ps->DataInf.xyAppDpi.y > ps->wMinCmpDpi ) {
793 if( ps->DataInf.xyAppDpi.y > 100 ) {
796 if( ps->DataInf.xyAppDpi.y > 150 ) {
799 if( ps->DataInf.xyAppDpi.y > 300 ) {
802 if( ps->DataInf.dwAsicBytesPerPlane <= 3200 )
808 if( ps->DataInf.dwAsicBytesPerPlane <= 1600 )
812 if( ps->DataInf.dwAsicBytesPerPlane <= 800 )
821 static void ioP98SppNegativeProcs( pScanData ps )
823 if ( ps->DataInf.dwScanFlag & SCANDEF_Negative )
830 if (ps->DataInf.xyAppDpi.y > 150) {
831 if (ps->DataInf.xyAppDpi.y < 300) {
840 if (ps->DataInf.dwScanFlag & SCANDEF_Negative) {
841 if (ps->AsicReg.RD_LineControl == 144)
844 if (ps->AsicReg.RD_LineControl == 192)
852 static void ioP98EppNegativeProcs( pScanData ps )
854 if (ps->DataInf.dwScanFlag & SCANDEF_Negative)
861 if (ps->DataInf.xyAppDpi.y > 150) {
862 if (ps->DataInf.xyAppDpi.y < 300)
872 if (ps->DataInf.dwScanFlag & SCANDEF_Negative) {
873 if (ps->AsicReg.RD_LineControl == 144)
876 if (ps->AsicReg.RD_LineControl == 192)
884 static void ioP98BppNegativeProcs( pScanData ps )
886 if( ps->DataInf.dwScanFlag & SCANDEF_Negative) {
894 if( ps->DataInf.xyAppDpi.y > 150 ) {
895 if( ps->DataInf.xyAppDpi.y < 300 ) {
904 if ( ps->DataInf.dwScanFlag & SCANDEF_Negative ) {
905 if( ps->AsicReg.RD_LineControl == 144 ) {
908 if( ps->AsicReg.RD_LineControl == 192 )
917 static void ioControlLampOnOff( pScanData ps )
921 ps->fWarmupNeeded = _TRUE;
923 if( _IS_ASIC98(ps->sCaps.AsicID)) {
925 lampStatus = ps->AsicReg.RD_ScanControl & _SCAN_LAMPS_ON;
927 if (ps->bLastLampStatus != lampStatus) {
930 ps->bLastLampStatus = lampStatus;
932 IOCmdRegisterToScanner( ps, ps->RegScanControl,
933 ps->AsicReg.RD_ScanControl);
938 lampStatus = ps->AsicReg.RD_ScanControl & _SCAN_LAMP_ON;
940 if (ps->DataInf.dwScanFlag&(SCANDEF_Transparency + SCANDEF_Negative)) {
941 ps->bLampOn = 0;
943 ps->bLampOn = _SCAN_LAMP_ON;
946 if (ps->bLastLampStatus != lampStatus) {
948 ps->bLastLampStatus = lampStatus;
953 ps->fWarmupNeeded = _FALSE;
960 static void ioP98InitialSetCurrentSpeed( pScanData ps )
964 if( ps->DataInf.dwScanFlag & SCANDEF_TPA) {
966 switch (ps->IO.portMode)
968 case _PORT_SPP: ioP98SppNegativeProcs( ps ); break;
969 case _PORT_BIDI: ioP98BppNegativeProcs( ps ); break;
971 default: ioP98EppNegativeProcs( ps ); break;
975 switch (ps->IO.portMode) {
977 a_fnSppSpeedProcs[ps->DataInf.wAppDataType](ps);
981 a_fnBppSpeedProcs[ps->DataInf.wAppDataType](ps);
985 a_fnSpeedProcs[ps->DataInf.wAppDataType](ps);
990 ps->wInitialStep = pModeType->wHomePos;
991 ps->wMaxMoveStep = pModeType->wMaxSteps;
993 ps->AsicReg.RD_LineControl = pModeType->bExposureTime;
995 if (ps->DataInf.dwScanFlag & SCANDEF_Negative)
996 ps->AsicReg.RD_LineControl = 144;
999 if( pModeType->bFlagScanMode != ps->Shade.bIntermediate )
1003 ps->bHpMotor = pModeType->bMotorStep;
1004 ps->bSetScanModeFlag = pModeType->bFlagScanMode;
1005 ps->bShadingTimeFlag = pModeType->bTimesShading;
1007 ps->dwFullStateSpeed = pModeDiff->dwFullSpeed;
1008 ps->bCurrentSpeed = pModeDiff->bCurrentSpeed;
1009 ps->bStepSpeed = pModeDiff->bStepSpeed;
1011 if( ps->DataInf.xyAppDpi.y > 600 ) {
1012 if( ps->dwFullStateSpeed )
1013 ps->dwFullStateSpeed = 0;
1015 ps->bStepSpeed <<= 1;
1016 ps->wMaxMoveStep <<= 1;
1025 _LOC int IOFuncInitialize( pScanData ps )
1029 if( NULL == ps )
1032 ps->lpEppColorHomePos = &a_ColorSettings[0];
1033 ps->lpEppColorExposure = &a_ColorSettings[4];
1034 ps->lpBppColorHomePos = &a_ColorSettings[5];
1035 ps->lpSppColorHomePos = &a_ColorSettings[10];
1036 ps->a_tabDiffParam = a_tabDiffParam;
1037 ps->a_ColorSettings = a_ColorSettings;
1042 if( _IS_ASIC98(ps->sCaps.AsicID)) {
1044 ps->InitialSetCurrentSpeed = ioP98InitialSetCurrentSpeed;
1046 } else if( _IS_ASIC96(ps->sCaps.AsicID)) {
1048 ps->InitialSetCurrentSpeed = ioP96InitialSetCurrentSpeed;
1064 _LOC Byte IOSetToMotorRegister( pScanData ps )
1066 ps->OpenScanPath( ps );
1068 IORegisterToScanner( ps, ps->RegInitScanState );
1070 IODownloadScanStates( ps );
1072 ps->CloseScanPath( ps );
1074 if( _ASIC_IS_98001 != ps->sCaps.AsicID ) {
1078 ps->Scan.bOldScanState = IOGetScanState( ps, _FALSE );
1080 return ps->Scan.bOldScanState;
1088 _LOC Byte IOGetScanState( pScanData ps, Bool fOpenned )
1092 if( !fOpenned && (_ASIC_IS_98003 != ps->sCaps.AsicID))
1093 ps->OpenScanPath( ps );
1095 bScanState = IODataFromRegister( ps, ps->RegGetScanState );
1096 bScanStateNow = IODataFromRegister( ps, ps->RegGetScanState );
1099 || ((ps->sCaps.AsicID == _ASIC_IS_98001 && bScanState & 0x40))) {
1100 bScanState = IODataFromRegister( ps, ps->RegGetScanState);
1103 if( !fOpenned && (_ASIC_IS_98003 != ps->sCaps.AsicID))
1104 ps->CloseScanPath( ps );
1112 _LOC Byte IOGetExtendedStatus( pScanData ps )
1116 b = IODataFromRegister( ps, ps->RegStatus2 );
1126 _LOC void IOGetCurrentStateCount( pScanData ps, pScanState pScanStep )
1128 pScanStep->bStatus = IOGetScanState( ps, _FALSE );
1142 _LOC int IOIsReadyForScan( pScanData ps )
1147 if((_NO_BASE != ps->sCaps.wIOBase) &&
1148 (ps->DataInf.dwVxdFlag & _VF_ENVIRONMENT_READY)) {
1150 if( _ASIC_IS_98001 == ps->sCaps.AsicID ) {
1152 IOSelectLampSource( ps );
1153 ioControlLampOnOff( ps );
1154 ps->AsicReg.RD_Motor0Control = 0; /* motor off */
1155 ps->AsicReg.RD_Motor1Control = 0; /* motor off */
1156 ps->AsicReg.RD_ModelControl = (_ModelDpi600 +
1158 ps->AsicReg.RD_Origin = 0;
1159 ps->AsicReg.RD_Pixels = 5110;
1161 } else if( _ASIC_IS_98003 == ps->sCaps.AsicID ) {
1163 ps->OpenScanPath( ps );
1164 P12SetGeneralRegister( ps );
1165 ps->CloseScanPath( ps );
1167 ioControlLampOnOff( ps );
1171 ioControlLampOnOff( ps );
1174 ps->pPutBufR = ps->pGetBufR = ps->pPrescan16; /* 1st color plane */
1175 ps->pPutBufG = ps->pGetBufG = ps->pPrescan8; /* 2nd color plane */
1177 ps->AsicReg.RD_ScanControl = ps->bLampOn;
1178 ps->Asic96Reg.RD_MotorControl = 0;
1179 ps->AsicReg.RD_Origin = 0;
1180 ps->AsicReg.RD_ModelControl = ps->Device.ModelCtrl | _ModelWhiteIs0;
1181 ps->AsicReg.RD_Pixels = 5110; /* ps->RdPix; */
1182 IOPutOnAllRegisters( ps );
1188 if( _ASIC_IS_98003 != ps->sCaps.AsicID ) {
1190 pdwTable = (pULong)ps->a_wMoveStepTable; dw; dw--, pdwTable++) {
1194 memset( ps->a_bColorByteTable, 0, _NUMBER_OF_SCANSTEPS );
1206 _LOC void IOSetXStepLineScanTime( pScanData ps, Byte b )
1208 ps->AsicReg.RD_LineControl = b;
1209 ps->bSpeed1 = b;
1210 ps->bSpeed2 = b >> 1;
1211 ps->bSpeed4 = b >> 2;
1212 ps->bSpeed8 = b >> 3;
1213 ps->bSpeed16 = b >> 4;
1214 ps->bSpeed32 = b >> 5;
1215 ps->bSpeed24 = b / 24;
1216 ps->bSpeed12 = b / 12;
1217 ps->bSpeed6 = b / 6;
1218 ps->bSpeed3 = b / 3;
1226 _LOC void IOSetToMotorStepCount( pScanData ps )
1232 ps->OpenScanPath( ps );
1234 if( _ASIC_IS_98001 == ps->sCaps.AsicID ) {
1235 IORegisterToScanner( ps, ps->RegInitScanState );
1237 ps->AsicReg.RD_ModeControl = _ModeScan;
1238 IODataToRegister( ps, ps->RegModeControl, _ModeScan );
1240 IORegisterToScanner( ps, ps->RegScanStateControl );
1242 for (dw = _SCANSTATE_BYTES, pb = ps->a_nbNewAdrPointer; dw; dw--, pb++)
1243 IODataToScanner( ps, *pb );
1245 IORegisterToScanner( ps, ps->RegRefreshScanState );
1250 if (!( IOGetScanState( ps, _TRUE) & _SCANSTATE_STOP))
1258 ps->Scan.bOldScanState = IOGetScanState( ps, _TRUE );
1260 ps->CloseScanPath( ps );
1266 _LOC void IOSelectLampSource( pScanData ps )
1268 ps->AsicReg.RD_ScanControl &= (~_SCAN_LAMPS_ON);
1270 if (ps->DataInf.dwScanFlag & (SCANDEF_TPA)) {
1271 ps->AsicReg.RD_ScanControl |= _SCAN_TPALAMP_ON;
1273 ps->AsicReg.RD_ScanControl |= _SCAN_NORMALLAMP_ON;
1280 _LOC Bool IOReadOneShadingLine( pScanData ps, pUChar pBuf, ULong len )
1286 if( _ASIC_IS_98003 == ps->sCaps.AsicID )
1287 ps->Scan.bFifoSelect = ps->RegGFifoOffset;
1290 if( IOReadFifoLength( ps ) >= ps->AsicReg.RD_Pixels ) {
1292 IOReadColorData( ps, pBuf, len );
1303 _LOC ULong IOReadFifoLength( pScanData ps )
1309 if( _ASIC_IS_98003 != ps->sCaps.AsicID )
1310 ps->OpenScanPath( ps );
1312 IODataToRegister( ps, ps->RegBitDepth, _BIT0_7 );
1313 Data.dwOverlap.w1st.b1st = IODataFromRegister( ps, ps->Scan.bFifoSelect );
1315 IODataToRegister( ps, ps->RegBitDepth, _BIT8_15 );
1316 Data.dwOverlap.w1st.b2nd = IODataFromRegister( ps, ps->Scan.bFifoSelect );
1318 IODataToRegister( ps, ps->RegBitDepth, _BIT16_20 );
1319 Data.dwOverlap.w2nd.b1st = (IODataFromRegister( ps, ps->Scan.bFifoSelect) & 0x0f);
1321 if( _ASIC_IS_98003 != ps->sCaps.AsicID )
1322 ps->CloseScanPath( ps );
1329 * 2) Write the contents to corresponding registers (from ps->RegModeControl to
1330 * ps->RegGreenGainOutDirect (P9363) or from ps->RegModeControl to
1331 * ps->RegModeControl2 (48xx)
1333 _LOC void IOPutOnAllRegisters( pScanData ps )
1339 if( _ASIC_IS_98003 == ps->sCaps.AsicID )
1340 IODownloadScanStates( ps );
1342 IOSetToMotorRegister( ps );
1343 ps->OpenScanPath( ps );
1346 if( _IS_ASIC98(ps->sCaps.AsicID)) {
1348 IODataToRegister(ps, ps->RegStepControl, ps->AsicReg.RD_StepControl);
1349 IODataToRegister(ps, ps->RegMotor0Control,
1350 ps->AsicReg.RD_Motor0Control);
1352 if( _ASIC_IS_98003 == ps->sCaps.AsicID )
1353 IODataToRegister(ps,ps->RegLineControl,ps->AsicReg.RD_LineControl);
1355 IODataToRegister(ps, ps->RegXStepTime, ps->AsicReg.RD_XStepTime);
1356 IODataToRegister(ps, ps->RegModelControl, ps->AsicReg.RD_ModelControl);
1359 pValue = (pUChar)&ps->AsicReg.RD_Dpi;
1362 for (bReg = ps->RegDpiLow;
1363 bReg <= ps->RegThresholdHigh; bReg++, pValue++) {
1365 IODataToRegister( ps, bReg, *pValue);
1368 IORegisterToScanner( ps, ps->RegInitDataFifo );
1369 IORegisterToScanner( ps, ps->RegRefreshScanState );
1371 if( _ASIC_IS_98003 == ps->sCaps.AsicID )
1372 IODataToRegister( ps, ps->RegModeControl, _ModeScan );
1374 IODataToRegister( ps, ps->RegModeControl, (_ModeScan + _ModeFifoRSel));
1384 IODataToRegister( ps, ps->RegModeControl, ps->AsicReg.RD_ModeControl );
1385 IODataToRegister( ps, ps->RegLineControl, ps->AsicReg.RD_LineControl );
1386 IODataToRegister( ps, ps->RegScanControl, ps->AsicReg.RD_ScanControl );
1387 IODataToRegister( ps, ps->RegMotorControl,
1388 ps->Asic96Reg.RD_MotorControl );
1389 IODataToRegister( ps, ps->RegModelControl,
1390 ps->AsicReg.RD_ModelControl );
1391 IODataToRegister( ps, ps->RegMemAccessControl,
1392 ps->Asic96Reg.RD_MemAccessControl );
1396 ps->RegModeControl, ps->AsicReg.RD_ModeControl );
1398 ps->RegLineControl, ps->AsicReg.RD_LineControl );
1400 ps->RegScanControl, ps->AsicReg.RD_ScanControl );
1402 ps->RegMotorControl, ps->Asic96Reg.RD_MotorControl );
1404 ps->RegModelControl, ps->AsicReg.RD_ModelControl );
1406 ps->RegMemAccessControl, ps->Asic96Reg.RD_MemAccessControl );
1409 pValue = (pUChar)&ps->AsicReg.RD_Dpi;
1412 for (bReg = ps->RegDpiLow;
1413 bReg <= ps->RegWidthPixelsHigh; bReg++, pValue++) {
1415 IODataToRegister( ps, bReg, *pValue );
1422 IODataToRegister( ps, ps->RegThresholdControl,
1423 (Byte)ps->AsicReg.RD_ThresholdControl );
1425 IODataToRegister( ps, ps->RegWatchDogControl,
1426 (Byte)ps->Asic96Reg.RD_WatchDogControl );
1428 IODataToRegister( ps, ps->RegModelControl2,
1429 ps->Asic96Reg.u26.RD_ModelControl2 );
1433 ps->RegThresholdControl, ps->AsicReg.RD_ThresholdControl );
1435 ps->RegWatchDogControl, ps->Asic96Reg.RD_WatchDogControl );
1437 ps->RegModelControl2, ps->Asic96Reg.u26.RD_ModelControl2 );
1439 IORegisterToScanner( ps, ps->RegInitDataFifo );
1442 if( _ASIC_IS_98003 != ps->sCaps.AsicID )
1443 ps->CloseScanPath( ps );
1449 _LOC void IOReadColorData( pScanData ps, pUChar pBuf, ULong len )
1451 ps->AsicReg.RD_ModeControl = _ModeFifoRSel;
1452 IOReadScannerImageData( ps, pBuf, len );
1454 ps->AsicReg.RD_ModeControl = _ModeFifoGSel;
1455 IOReadScannerImageData( ps, pBuf + len, len );
1457 ps->AsicReg.RD_ModeControl = _ModeFifoBSel;
1458 IOReadScannerImageData( ps, pBuf + len * 2, len );