diff --git a/backend/plustek-pp_detect.c b/backend/plustek-pp_detect.c index ad7c32885..68c6d0d67 100644 --- a/backend/plustek-pp_detect.c +++ b/backend/plustek-pp_detect.c @@ -490,7 +490,7 @@ _LOC int DetectScanner( pScanData ps, int mode ) } else { /* this will be called each time before operating on a previously - * detected device, to make sure we're already operating on the same one + * detected device, to make sure we are still operating on the same one */ if( _ASIC_IS_98001 == mode ) { diff --git a/backend/plustek-pp_hwdefs.h b/backend/plustek-pp_hwdefs.h index d6f705a0c..2891f30ed 100644 --- a/backend/plustek-pp_hwdefs.h +++ b/backend/plustek-pp_hwdefs.h @@ -203,18 +203,19 @@ /* * for Asic I/O signal control */ -#define _CTRL_GENSIGNAL (_CTRL_RESERVED + _CTRL_NOT_INIT) /* 0xc4 */ -#define _CTRL_NORMAL _CTRL_GENSIGNAL -#define _CTRL_SIGNAL_REGWRITE (_CTRL_GENSIGNAL + _CTRL_SELECT_IN) /* 0xcc */ -#define _CTRL_END_REGWRITE (_CTRL_GENSIGNAL) /* 0xc4 */ -#define _CTRL_SIGNAL_DATAWRITE (_CTRL_GENSIGNAL + _CTRL_AUTOLF) /* 0xc6 */ -#define _CTRL_END_DATAWRITE (_CTRL_GENSIGNAL) /* 0xc4 */ -#define _CTRL_EPPSIGNAL_WRITE (_CTRL_GENSIGNAL + _CTRL_STROBE) /* 0xc5 */ +#define _CTRL_GENSIGNAL (_CTRL_RESERVED + _CTRL_NOT_INIT) /* 0xc4 */ + +#define _CTRL_START_REGWRITE (_CTRL_GENSIGNAL + _CTRL_SELECT_IN) /* 0xcc */ +#define _CTRL_END_REGWRITE (_CTRL_GENSIGNAL) /* 0xc4 */ + +#define _CTRL_START_DATAWRITE (_CTRL_GENSIGNAL + _CTRL_AUTOLF) /* 0xc6 */ +#define _CTRL_END_DATAWRITE (_CTRL_GENSIGNAL) /* 0xc4 */ + +#define _CTRL_EPPSIGNAL_WRITE (_CTRL_GENSIGNAL + _CTRL_STROBE) /* 0xc5 */ #define _CTRL_EPPTRIG_REGWRITE (_CTRL_GENSIGNAL + _CTRL_SELECT_IN + _CTRL_STROBE) -#define _CTRL_END_DATAREAD (_CTRL_GENSIGNAL) /* 0xc4 */ -#define _CTRL_SIGNAL_BIDIREAD (_CTRL_GENSIGNAL + _CTRL_DIRECTION + _CTRL_AUTOLF) -#define _CTRL_END_BIDIREAD (_CTRL_GENSIGNAL + _CTRL_DIRECTION) /* 0xe4 */ +#define _CTRL_START_BIDIREAD (_CTRL_GENSIGNAL + _CTRL_DIRECTION + _CTRL_AUTOLF) +#define _CTRL_END_BIDIREAD (_CTRL_GENSIGNAL + _CTRL_DIRECTION) /* 0xe4 */ typedef struct diff --git a/backend/plustek-pp_io.c b/backend/plustek-pp_io.c index c9a3f2efb..748e7641f 100644 --- a/backend/plustek-pp_io.c +++ b/backend/plustek-pp_io.c @@ -73,10 +73,15 @@ static Bool fnEPPRead ( pScanData ps, pUChar pBuffer, ULong ulSize ); static Bool fnSPPRead ( pScanData ps, pUChar pBuffer, ULong ulSize ); static Bool fnBiDirRead( pScanData ps, pUChar pBuffer, ULong ulSize ); -static pFnReadData ioReadFunc[3] = { - fnEPPRead, - fnSPPRead, - fnBiDirRead +typedef struct { + pFnReadData func; + char *name; +} ioReadFuncDef; + +static ioReadFuncDef ioReadFunc[3] = { + { fnEPPRead, "fnEPPRead" }, + { fnSPPRead, "fnSPPRead" }, + { fnBiDirRead, "fnBiDirRead" } }; /*************************** some definitions ********************************/ @@ -216,51 +221,8 @@ static UChar ioDataFromSPPSlowest( pScanData ps ) return bData; } -/** Using buffered I/O to read data from EPP Data Port - */ -static Bool fnEPPRead( pScanData ps, pUChar pBuffer, ULong ulSize ) -{ - register ULong i; - - if( _IS_ASIC98(ps->sCaps.AsicID)) { - -#ifndef __KERNEL__ - if( sanei_pp_uses_directio()) { - _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION)); - _DO_UDELAY( 1 ); - } else { - sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAIN ); - } -#else - _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION)); - _DO_UDELAY( 1 ); -#endif - for( i = 0; i < ulSize; i++ ) - pBuffer[i] = _INB_EPPDATA( ps ); - -#ifndef __KERNEL__ - if( sanei_pp_uses_directio()) { - _OUTB_CTRL( ps, _CTRL_GENSIGNAL ); - _DO_UDELAY( 1 ); - } else { - sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAOUT ); - } -#else - _OUTB_CTRL( ps, _CTRL_GENSIGNAL ); - _DO_UDELAY( 1 ); -#endif - } else { - - for( i = 0; i < ulSize; i++ ) - pBuffer[i] = _INB_EPPDATA( ps ); - } - - return _TRUE; -} - -/*............................................................................. - * Read data from STATUS port. We have to read twice and combine two nibble - * data to one byte +/** Read data from STATUS port. We have to read twice and combine two nibble + * data to one byte. */ static Bool fnSPPRead( pScanData ps, pUChar pBuffer, ULong ulSize ) { @@ -290,33 +252,80 @@ static Bool fnSPPRead( pScanData ps, pUChar pBuffer, ULong ulSize ) return _TRUE; } -/*............................................................................. - * + +/** Using buffered I/O to read data from EPP Data Port + */ +static Bool fnEPPRead( pScanData ps, pUChar pBuffer, ULong ulSize ) +{ + register ULong i; + + if( _IS_ASIC98(ps->sCaps.AsicID)) { + +#ifndef __KERNEL__ + sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAIN ); +#else + _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION)); + _DO_UDELAY( 1 ); +#endif + for( i = 0; i < ulSize; i++ ) + pBuffer[i] = _INB_EPPDATA( ps ); + +#ifndef __KERNEL__ + sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAOUT ); +#else + _OUTB_CTRL( ps, _CTRL_GENSIGNAL ); + _DO_UDELAY( 1 ); +#endif + } else { + + for( i = 0; i < ulSize; i++ ) + pBuffer[i] = _INB_EPPDATA( ps ); + } + + return _TRUE; +} + +/** */ static Bool fnBiDirRead( pScanData ps, pUChar pBuffer, ULong ulSize ) { - if( _IS_ASIC98(ps->sCaps.AsicID)) + UChar start, end; + + start = _CTRL_START_BIDIREAD; + end = _CTRL_END_BIDIREAD; + +#ifndef __KERNEL__ + sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAIN ); + + if( !sanei_pp_uses_directio()) { + start &= ~_CTRL_DIRECTION; + end &= ~_CTRL_DIRECTION; + } +#else + if( _IS_ASIC98(ps->sCaps.AsicID)) { _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION)); + } +#endif switch( ps->IO.delay ) { case 0: - for(; ulSize; ulSize--, pBuffer++ ) { - _OUTB_CTRL( ps, _CTRL_SIGNAL_BIDIREAD); /* 0xe6 */ + for( ; ulSize; ulSize--, pBuffer++ ) { + _OUTB_CTRL( ps, start ); *pBuffer = _INB_DATA( ps ); - _OUTB_CTRL( ps, _CTRL_END_BIDIREAD ); /* 0xe4 */ + _OUTB_CTRL( ps, end ); } break; case 1: _DO_UDELAY( 1 ); for(; ulSize; ulSize--, pBuffer++ ) { - _OUTB_CTRL( ps, _CTRL_SIGNAL_BIDIREAD); /* 0xe6 */ + _OUTB_CTRL( ps, start ); _DO_UDELAY( 1 ); *pBuffer = _INB_DATA( ps ); - _OUTB_CTRL( ps, _CTRL_END_BIDIREAD ); /* 0xe4 */ + _OUTB_CTRL( ps, end ); _DO_UDELAY( 1 ); } break; @@ -324,55 +333,53 @@ static Bool fnBiDirRead( pScanData ps, pUChar pBuffer, ULong ulSize ) default: _DO_UDELAY( 2 ); for(; ulSize; ulSize--, pBuffer++ ) { - _OUTB_CTRL( ps, _CTRL_SIGNAL_BIDIREAD); /* 0xe6 */ + _OUTB_CTRL( ps, start ); _DO_UDELAY( 2 ); *pBuffer = _INB_DATA( ps ); - _OUTB_CTRL( ps, _CTRL_END_BIDIREAD ); /* 0xe4 */ + _OUTB_CTRL( ps, end ); _DO_UDELAY( 2 ); } break; } - if( _IS_ASIC98(ps->sCaps.AsicID)) - _OUTB_CTRL( ps, _CTRL_END_DATAREAD ); /* 0xc4 */ - - return _TRUE; +#ifndef __KERNEL__ + sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAOUT ); +#else + if( _IS_ASIC98(ps->sCaps.AsicID)) { + _OUTB_CTRL( ps, _CTRL_GENSIGNAL ); + } +#endif + return _TRUE; } -/*............................................................................. - * as the name says, we switch to SPP mode +/** as the name says, we switch to SPP mode */ static void ioSwitchToSPPMode( pScanData ps ) { - /* - * save the control and data port value + /* save the control and data port value */ ps->IO.bOldControlValue = _INB_CTRL( ps ); ps->IO.bOldDataValue = _INB_DATA( ps ); - _OUTB_CTRL( ps, _CTRL_NORMAL ); /* 0xc4 */ - _DO_UDELAY( 2 ); + _OUTB_CTRL( ps, _CTRL_GENSIGNAL ); /* 0xc4 */ + _DO_UDELAY( 2 ); } -/*............................................................................. - * restore the settings +/** restore the port settings */ static void ioRestoreParallelMode( pScanData ps ) { _OUTB_CTRL( ps, ps->IO.bOldControlValue & 0x3f ); - _DO_UDELAY( 1 ); + _DO_UDELAY( 1 ); _OUTB_DATA( ps, ps->IO.bOldDataValue ); - _DO_UDELAY( 1 ); + _DO_UDELAY( 1 ); } -/*............................................................................. - * try to connect to scanner - */ -/*static void ioP98001EstablishScannerConnection( pScanData, ULong ); +/** try to connect to scanner (ASIC 9600x and 98001) */ _LOC _INL void ioP98001EstablishScannerConnection( pScanData ps, ULong delTime ) { @@ -392,8 +399,24 @@ _LOC _INL void ioP98001EstablishScannerConnection( pScanData ps, ULong delTime ) _DO_UDELAY( delTime ); } -/*............................................................................. - * switch the printer interface to scanner +/** try to connect to scanner (ASIC 98003) + */ +static void ioP98003EstablishScannerConnection( pScanData ps, ULong delTime ) +{ + _OUTB_DATA( ps, _ID1ST ); + _DO_UDELAY( delTime ); + + _OUTB_DATA( ps, _ID2ND ); + _DO_UDELAY( delTime ); + + _OUTB_DATA( ps, _ID3RD ); + _DO_UDELAY( delTime ); + + _OUTB_DATA( ps, _ID4TH ); + _DO_UDELAY( delTime ); +} + +/** switch the printer interface to scanner */ static Bool ioP96OpenScanPath( pScanData ps ) { @@ -419,23 +442,7 @@ static Bool ioP96OpenScanPath( pScanData ps ) return _TRUE; } -static void ioP98003EstablishScannerConnection( pScanData ps, ULong delTime ) -{ - _OUTB_DATA( ps, _ID1ST ); - _DO_UDELAY( delTime ); - - _OUTB_DATA( ps, _ID2ND ); - _DO_UDELAY( delTime ); - - _OUTB_DATA( ps, _ID3RD ); - _DO_UDELAY( delTime ); - - _OUTB_DATA( ps, _ID4TH ); - _DO_UDELAY( delTime ); -} - -/*............................................................................. - * try to connect to scanner +/** try to connect to scanner */ static Bool ioP98OpenScanPath( pScanData ps ) { @@ -463,8 +470,8 @@ static Bool ioP98OpenScanPath( pScanData ps ) ioP98003EstablishScannerConnection( ps, dw ); } - _INB_STATUS( ps ); - tmp = _INB_STATUS( ps ); + _INB_STATUS( ps ); + tmp = _INB_STATUS( ps ); if( 0x50 == ( tmp & 0xf0 )) { @@ -490,8 +497,7 @@ static Bool ioP98OpenScanPath( pScanData ps ) return _TRUE; } -/*............................................................................. - * Switch back to printer mode +/** Switch back to printer mode. * Restore the printer control/data port value. */ static void ioCloseScanPath( pScanData ps ) @@ -499,7 +505,7 @@ static void ioCloseScanPath( pScanData ps ) if( ps->IO.bOpenCount && !(--ps->IO.bOpenCount)) { #ifdef DEBUG - ps->IO.bOpenCount = 1; + ps->IO.bOpenCount = 1; #endif IORegisterToScanner( ps, 0xff ); @@ -516,9 +522,8 @@ static void ioCloseScanPath( pScanData ps ) } } -/*............................................................................. - * check the memory to see that the data-transfers will work - * ASIC 9800x only +/** check the memory to see that the data-transfers will work. + * (ASIC 9800x only) */ static int ioP98ReadWriteTest( pScanData ps ) { @@ -531,7 +536,6 @@ static int ioP98ReadWriteTest( pScanData ps ) /* _MEMTEST_SIZE: Read, _MEMTEST_SIZE:Write */ buffer = _KALLOC( sizeof(UChar) * _MEMTEST_SIZE*2, GFP_KERNEL ); - if( NULL == buffer ) return _E_ALLOC; @@ -545,7 +549,7 @@ static int ioP98ReadWriteTest( pScanData ps ) tmp = ps->bLastLampStatus + _SCAN_BYTEMODE; IODataToRegister( ps, ps->RegScanControl, tmp ); - IODataToRegister( ps, ps->RegModelControl, (_LED_ACTIVITY | _LED_CONTROL)); + IODataToRegister( ps, ps->RegModelControl, (_LED_ACTIVITY | _LED_CONTROL)); IODataToRegister( ps, ps->RegModeControl, _ModeMappingMem ); IODataToRegister( ps, ps->RegMemoryLow, 0 ); @@ -560,19 +564,17 @@ static int ioP98ReadWriteTest( pScanData ps ) IODataToRegister( ps, ps->RegWidthPixelsLow, 0 ); IODataToRegister( ps, ps->RegWidthPixelsHigh, 5 ); - ps->AsicReg.RD_ModeControl = _ModeReadMappingMem; + ps->AsicReg.RD_ModeControl = _ModeReadMappingMem; - if( _ASIC_IS_98001 == ps->sCaps.AsicID ) - ps->CloseScanPath( ps ); + if( _ASIC_IS_98001 == ps->sCaps.AsicID ) + ps->CloseScanPath( ps ); IOReadScannerImageData( ps, buffer + _MEMTEST_SIZE, _MEMTEST_SIZE ); - if( _ASIC_IS_98003 == ps->sCaps.AsicID ) - ps->CloseScanPath( ps ); + if( _ASIC_IS_98003 == ps->sCaps.AsicID ) + ps->CloseScanPath( ps ); - /* - * check the result ! - */ + /* check the result ! */ retval = _OK; for( ul = 0; ul < _MEMTEST_SIZE; ul++ ) { @@ -588,8 +590,7 @@ static int ioP98ReadWriteTest( pScanData ps ) return retval; } -/*............................................................................. - * Put data to DATA port and trigger hardware through CONTROL port to read it. +/** Put data to DATA port and trigger hardware through CONTROL port to read it. */ static void ioSPPWrite( pScanData ps, pUChar pBuffer, ULong size ) { @@ -600,7 +601,7 @@ static void ioSPPWrite( pScanData ps, pUChar pBuffer, ULong size ) case 0: for (; size; size--, pBuffer++) { _OUTB_DATA( ps, *pBuffer ); - _OUTB_CTRL( ps, _CTRL_SIGNAL_DATAWRITE ); + _OUTB_CTRL( ps, _CTRL_START_DATAWRITE ); _OUTB_CTRL( ps, _CTRL_END_DATAWRITE ); } break; @@ -610,7 +611,7 @@ static void ioSPPWrite( pScanData ps, pUChar pBuffer, ULong size ) for (; size; size--, pBuffer++) { _OUTB_DATA( ps, *pBuffer ); _DO_UDELAY( 1 ); - _OUTB_CTRL( ps, _CTRL_SIGNAL_DATAWRITE ); + _OUTB_CTRL( ps, _CTRL_START_DATAWRITE ); _DO_UDELAY( 1 ); _OUTB_CTRL( ps, _CTRL_END_DATAWRITE ); _DO_UDELAY( 2 ); @@ -621,7 +622,7 @@ static void ioSPPWrite( pScanData ps, pUChar pBuffer, ULong size ) for (; size; size--, pBuffer++) { _OUTB_DATA( ps, *pBuffer ); _DO_UDELAY( 1 ); - _OUTB_CTRL( ps, _CTRL_SIGNAL_DATAWRITE ); + _OUTB_CTRL( ps, _CTRL_START_DATAWRITE ); _DO_UDELAY( 2 ); _OUTB_CTRL( ps, _CTRL_END_DATAWRITE ); _DO_UDELAY( 3 ); @@ -638,24 +639,22 @@ static void ioEnterReadMode( pScanData ps ) if( ps->IO.portMode != _PORT_SPP ) { _DO_UDELAY( 1 ); - IORegisterToScanner( ps, ps->RegEPPEnable ); - if( _IS_ASIC98( ps->sCaps.AsicID )) - ps->IO.useEPPCmdMode = _TRUE; + if( _IS_ASIC98( ps->sCaps.AsicID )) + ps->IO.useEPPCmdMode = _TRUE; } - if( _ASIC_IS_98003 == ps->sCaps.AsicID ) - ps->IO.bOldControlValue = _INB_CTRL( ps ); + if( _ASIC_IS_98003 == ps->sCaps.AsicID ) + ps->IO.bOldControlValue = _INB_CTRL( ps ); /* ask ASIC to enter read mode */ - IORegisterToScanner( ps, ps->RegReadDataMode ); + IORegisterToScanner( ps, ps->RegReadDataMode ); } /************************ exported functions *********************************/ -/*............................................................................. - * here we do some init work +/** here we do some init work */ _LOC int IOInitialize( pScanData ps ) { @@ -667,7 +666,7 @@ _LOC int IOInitialize( pScanData ps ) if( _IS_ASIC98(ps->sCaps.AsicID)) { ps->OpenScanPath = ioP98OpenScanPath; - ps->ReadWriteTest = ioP98ReadWriteTest; + ps->ReadWriteTest = ioP98ReadWriteTest; } else if( _IS_ASIC96(ps->sCaps.AsicID)) { @@ -680,60 +679,58 @@ _LOC int IOInitialize( pScanData ps ) } ps->CloseScanPath = ioCloseScanPath; - ps->Device.ReadData = ioReadFunc[ps->IO.portMode]; - + ps->Device.ReadData = ioReadFunc[ps->IO.portMode].func; + DBG( DBG_HIGH, "* using readfunction >%s<\n", + ioReadFunc[ps->IO.portMode].name ); return _OK; } -/*............................................................................. - * Write specific length buffer to scanner +/** Write specific length buffer to scanner * The scan path is already established */ _LOC void IOMoveDataToScanner( pScanData ps, pUChar pBuffer, ULong size ) { #ifdef DEBUG - if( 0 == ps->IO.bOpenCount ) - DBG( DBG_IO, "IOMoveDataToScanner - no connection!\n" ); + if( 0 == ps->IO.bOpenCount ) + DBG( DBG_IO, "IOMoveDataToScanner - no connection!\n" ); #endif - IORegisterToScanner( ps, ps->RegInitDataFifo ); - IORegisterToScanner( ps, ps->RegWriteDataMode ); + IORegisterToScanner( ps, ps->RegInitDataFifo ); + IORegisterToScanner( ps, ps->RegWriteDataMode ); - ioSPPWrite( ps, pBuffer, size ); + ioSPPWrite( ps, pBuffer, size ); } -/*............................................................................. - * Calling SITUATION: Scanner path is established. +/** Calling SITUATION: Scanner path is established. * download a scanstate-table */ _LOC void IODownloadScanStates( pScanData ps ) { - TimerDef timer; + TimerDef timer; #ifdef DEBUG - if( 0 == ps->IO.bOpenCount ) - DBG( DBG_IO, "IODownloadScanStates - no connection!\n" ); + if( 0 == ps->IO.bOpenCount ) + DBG( DBG_IO, "IODownloadScanStates - no connection!\n" ); #endif - IORegisterToScanner( ps, ps->RegScanStateControl ); + IORegisterToScanner( ps, ps->RegScanStateControl ); - ioSPPWrite( ps, ps->a_nbNewAdrPointer, _SCANSTATE_BYTES ); + ioSPPWrite( ps, ps->a_nbNewAdrPointer, _SCANSTATE_BYTES ); - if( ps->Scan.fRefreshState ) { + if( ps->Scan.fRefreshState ) { - IORegisterToScanner( ps, ps->RegRefreshScanState ); + IORegisterToScanner( ps, ps->RegRefreshScanState ); - MiscStartTimer( &timer, (_SECOND/2)); - do { + MiscStartTimer( &timer, (_SECOND/2)); + do { - if (!( IOGetScanState( ps, _TRUE) & _SCANSTATE_STOP)) - break; - } - while( !MiscCheckTimer(&timer)); - } + if (!( IOGetScanState( ps, _TRUE) & _SCANSTATE_STOP)) + break; + } + while( !MiscCheckTimer(&timer)); + } } -/*............................................................................. - * Calling SITUATION: Scanner path is established. +/** Calling SITUATION: Scanner path is established. * Write a data to asic */ _LOC void IODataToScanner( pScanData ps, Byte bValue ) @@ -741,7 +738,7 @@ _LOC void IODataToScanner( pScanData ps, Byte bValue ) ULong deltime = 4; #ifdef DEBUG - if( 0 == ps->IO.bOpenCount ) + if( 0 == ps->IO.bOpenCount ) DBG( DBG_IO, "IODataToScanner - no connection!\n" ); #endif @@ -753,7 +750,7 @@ _LOC void IODataToScanner( pScanData ps, Byte bValue ) _DO_UDELAY( deltime ); /* notify asic there is data */ - _OUTB_CTRL( ps, _CTRL_SIGNAL_DATAWRITE ); + _OUTB_CTRL( ps, _CTRL_START_DATAWRITE ); _DO_UDELAY( deltime ); /* end write cycle */ @@ -761,8 +758,7 @@ _LOC void IODataToScanner( pScanData ps, Byte bValue ) _DO_UDELAY( deltime-1 ); } -/*............................................................................. - * Calling SITUATION: Scanner path is established. +/** Calling SITUATION: Scanner path is established. * Write a data to specific asic's register */ _LOC void IODataToRegister( pScanData ps, Byte bReg, Byte bData ) @@ -779,13 +775,12 @@ _LOC void IODataToRegister( pScanData ps, Byte bReg, Byte bData ) IODataToScanner( ps, bData ); } -/*............................................................................. - * Calling SITUATION: Scanner path is established. +/** Calling SITUATION: Scanner path is established. * Read the content of specific asic's register */ _LOC Byte IODataFromRegister( pScanData ps, Byte bReg ) { - IORegisterToScanner( ps, bReg ); + IORegisterToScanner( ps, bReg ); if( 0 == ps->IO.delay ) return ioDataFromSPPFast( ps ); @@ -797,8 +792,7 @@ _LOC Byte IODataFromRegister( pScanData ps, Byte bReg ) return ioDataFromSPPSlowest( ps ); } -/*............................................................................. - * Calling SITUATION: Scanner path is established. +/** Calling SITUATION: Scanner path is established. * Write a register to asic (used for a command without parameter) */ _LOC void IORegisterToScanner( pScanData ps, Byte bReg ) @@ -835,13 +829,13 @@ _LOC void IORegisterToScanner( pScanData ps, Byte bReg ) if( ps->IO.delay < 2 ) { _DO_UDELAY( 1 ); - _OUTB_CTRL( ps, _CTRL_SIGNAL_REGWRITE); + _OUTB_CTRL( ps, _CTRL_START_REGWRITE); _DO_UDELAY( 1 ); _OUTB_CTRL( ps, _CTRL_END_REGWRITE); } else { _DO_UDELAY( 2 ); - _OUTB_CTRL( ps, _CTRL_SIGNAL_REGWRITE); + _OUTB_CTRL( ps, _CTRL_START_REGWRITE); _DO_UDELAY( 2 ); _OUTB_CTRL( ps, _CTRL_END_REGWRITE); _DO_UDELAY( 2 ); @@ -849,8 +843,7 @@ _LOC void IORegisterToScanner( pScanData ps, Byte bReg ) } } -/*............................................................................. - * write data to the DAC - ASIC 98001/3 only +/** write data to the DAC - ASIC 98001/3 only */ _LOC void IODataRegisterToDAC( pScanData ps, Byte bReg, Byte bData ) { @@ -865,15 +858,14 @@ _LOC void IODataRegisterToDAC( pScanData ps, Byte bReg, Byte bData ) for( i = 4; i; i-- ) { - _OUTB_CTRL( ps, _CTRL_SIGNAL_DATAWRITE ); + _OUTB_CTRL( ps, _CTRL_START_DATAWRITE ); _DO_UDELAY( 5 ); - _OUTB_CTRL( ps, _CTRL_NORMAL ); + _OUTB_CTRL( ps, _CTRL_END_DATAWRITE ); _DO_UDELAY( 12 ); } } -/*............................................................................. - * Calling SITUATION: Scanner path was not established. +/** Calling SITUATION: Scanner path was not established. * Read the content of specific asics' register */ _LOC Byte IODataRegisterFromScanner( pScanData ps, Byte bReg ) @@ -887,8 +879,7 @@ _LOC Byte IODataRegisterFromScanner( pScanData ps, Byte bReg ) return bData; } -/*............................................................................. - * Calling SITUATION: Scanner path not established. +/** Calling SITUATION: Scanner path not established. * Write a value of register to asic */ _LOC void IOCmdRegisterToScanner( pScanData ps, Byte bReg, Byte bData ) @@ -898,8 +889,7 @@ _LOC void IOCmdRegisterToScanner( pScanData ps, Byte bReg, Byte bData ) ps->CloseScanPath( ps ); } -/*............................................................................. - * Calling SITUATION: Scanner path not established. +/** Calling SITUATION: Scanner path not established. * Write a register to asic (used for a command without parameter) */ _LOC void IORegisterDirectToScanner( pScanData ps, Byte bReg ) @@ -909,8 +899,7 @@ _LOC void IORegisterDirectToScanner( pScanData ps, Byte bReg ) ps->CloseScanPath( ps ); /* disconnect */ } -/*............................................................................. - * perform a SW reset of ASIC 98003 models +/** perform a SW reset of ASIC 98003 models */ _LOC void IOSoftwareReset( pScanData ps ) { @@ -1007,6 +996,6 @@ _LOC Byte IOInDelayed( UShort port ) return inb_p( port ); #endif } -#endif +#endif /* guard __KERNEL__ */ /* END PLUSTEK-PP_IO.C ......................................................*/ diff --git a/backend/plustek-pp_misc.c b/backend/plustek-pp_misc.c index 04cf23360..6b4912f31 100644 --- a/backend/plustek-pp_misc.c +++ b/backend/plustek-pp_misc.c @@ -492,10 +492,10 @@ _LOC int MiscInitPorts( pScanData ps, int port ) ps->IO.pbStatusPort = (UShort)port+1; ps->IO.pbControlPort = (UShort)port+2; ps->IO.pbEppDataPort = (UShort)port+4; - + #else int mode; - + if( NULL == ps ) return _E_NULLPTR; diff --git a/backend/plustek_pp.c b/backend/plustek_pp.c index df931d4bf..84278b747 100644 --- a/backend/plustek_pp.c +++ b/backend/plustek_pp.c @@ -246,11 +246,12 @@ static SANE_Auth_Callback auth = NULL; static void show_cnf( pCnfDef cnf ) { DBG( _DBG_SANE_INIT,"Device configuration:\n" ); - DBG( _DBG_SANE_INIT,"device name : >%s<\n", cnf->devName ); - DBG( _DBG_SANE_INIT,"direct I/O : %s\n", _YN(cnf->adj.direct_io )); - DBG( _DBG_SANE_INIT,"warmup : %ds\n", cnf->adj.warmup ); - DBG( _DBG_SANE_INIT,"lampOff : %d\n", cnf->adj.lampOff ); - DBG( _DBG_SANE_INIT,"lampOffOnEnd : %s\n", _YN(cnf->adj.lampOffOnEnd )); + DBG( _DBG_SANE_INIT,"device name : >%s<\n", cnf->devName ); + DBG( _DBG_SANE_INIT,"direct I/O : %s\n", _YN(cnf->adj.direct_io )); + DBG( _DBG_SANE_INIT,"warmup : %ds\n", cnf->adj.warmup ); + DBG( _DBG_SANE_INIT,"lampOff : %d\n", cnf->adj.lampOff ); + DBG( _DBG_SANE_INIT,"lampOffOnEnd : %s\n", _YN(cnf->adj.lampOffOnEnd )); + DBG( _DBG_SANE_INIT,"model override: %d\n", cnf->adj.mov ); DBG( _DBG_SANE_INIT,"---------------------\n" ); }