kopia lustrzana https://gitlab.com/sane-project/backends
Fixed bug in parport setup routine.
rodzic
84c0a8797c
commit
4758f4dabc
|
@ -77,38 +77,39 @@
|
|||
|
||||
/*
|
||||
* port modes
|
||||
* (WARNING: never change these defines, as they´re used as entries
|
||||
* (WARNING: never change these defines, as they are used as entries
|
||||
* to jump tables !!!)
|
||||
*/
|
||||
#define _PORT_EPP 0
|
||||
#define _PORT_SPP 1
|
||||
#define _PORT_BIDI 2
|
||||
#define _PORT_ECP 3
|
||||
#define _PORT_ESP 4
|
||||
#define _PORT_EPP 0
|
||||
#define _PORT_SPP 1
|
||||
#define _PORT_BIDI 2
|
||||
#define _PORT_ECP 3
|
||||
#define _PORT_ESP 4
|
||||
#define _PORT_NONE 5
|
||||
|
||||
/*
|
||||
* ScannerSize
|
||||
*/
|
||||
#define _SCANSIZE_A4 0
|
||||
#define _SCANSIZE_A4 0
|
||||
#define _SCANSIZE_LETTER 1
|
||||
#define _SCANSIZE_LEGAL 2
|
||||
#define _SCANSIZE_A3 3
|
||||
#define _SCANSIZE_LEGAL 2
|
||||
#define _SCANSIZE_A3 3
|
||||
|
||||
/*
|
||||
* Magic IDs switch printer port to scanner mode
|
||||
*/
|
||||
#define _ID1ST 0x69
|
||||
#define _ID2ND 0x96
|
||||
#define _ID3RD 0xa5
|
||||
#define _ID4TH 0x5a
|
||||
#define _ID1ST 0x69
|
||||
#define _ID2ND 0x96
|
||||
#define _ID3RD 0xa5
|
||||
#define _ID4TH 0x5a
|
||||
|
||||
/*
|
||||
* Special IDs used to reset scanner (ASIC98003)
|
||||
*/
|
||||
#define _RESET1ST 0x69
|
||||
#define _RESET2ND 0x96
|
||||
#define _RESET3RD 0xaa
|
||||
#define _RESET4TH 0x55
|
||||
#define _RESET1ST 0x69
|
||||
#define _RESET2ND 0x96
|
||||
#define _RESET3RD 0xaa
|
||||
#define _RESET4TH 0x55
|
||||
|
||||
/*
|
||||
* ID switch to printer mode
|
||||
|
|
|
@ -494,31 +494,35 @@ _LOC int MiscInitPorts( pScanData ps, int port )
|
|||
ps->IO.pbEppDataPort = (UShort)port+4;
|
||||
|
||||
#else
|
||||
int mode;
|
||||
int mode, mts;
|
||||
|
||||
if( NULL == ps )
|
||||
return _E_NULLPTR;
|
||||
|
||||
if( SANE_STATUS_GOOD != sanei_pp_getmodes( ps->pardev, &mode )) {
|
||||
DBG(DBG_HIGH, "Cannot get port mode!\n" );
|
||||
DBG( DBG_HIGH, "Cannot get port mode!\n" );
|
||||
return _E_NO_PORT;
|
||||
}
|
||||
|
||||
ps->IO.portMode = _PORT_NONE;
|
||||
mts = -1;
|
||||
if( mode & SANEI_PP_MODE_SPP ) {
|
||||
DBG( DBG_LOW, "Setting SPP-mode\n" );
|
||||
ps->IO.portMode = _PORT_SPP;
|
||||
mts = SANEI_PP_MODE_SPP;
|
||||
}
|
||||
if( mode & SANEI_PP_MODE_BIDI ) {
|
||||
DBG( DBG_LOW, "Setting PS/2-mode\n" );
|
||||
ps->IO.portMode = _PORT_BIDI;
|
||||
mts = SANEI_PP_MODE_BIDI;
|
||||
}
|
||||
if( mode & SANEI_PP_MODE_EPP ) {
|
||||
DBG( DBG_LOW, "Setting EPP-mode\n" );
|
||||
ps->IO.portMode = _PORT_EPP;
|
||||
mts = SANEI_PP_MODE_EPP;
|
||||
}
|
||||
if( mode & SANEI_PP_MODE_ECP ) {
|
||||
DBG( DBG_HIGH, "ECP detected --> not supported\n" );
|
||||
return _E_NOSUPP;
|
||||
}
|
||||
|
||||
if( sanei_pp_uses_directio()) {
|
||||
|
@ -527,6 +531,12 @@ _LOC int MiscInitPorts( pScanData ps, int port )
|
|||
DBG( DBG_LOW, "We're using libIEEE1284 I/O\n" );
|
||||
}
|
||||
|
||||
if( ps->IO.portMode == _PORT_NONE ) {
|
||||
DBG( DBG_HIGH, "None of the portmodes is supported.\n" );
|
||||
return _E_NOSUPP;
|
||||
}
|
||||
|
||||
sanei_pp_setmode( ps->pardev, mts );
|
||||
_VAR_NOT_USED( port );
|
||||
#endif
|
||||
return _OK;
|
||||
|
|
Ładowanie…
Reference in New Issue