fixed kernel 2.6 issue.

fixed also Bug #300698.
merge-requests/1/head
Gerhard Jaeger 2004-05-15 13:58:40 +00:00
rodzic f311994cf3
commit b43b7f0b01
1 zmienionych plików z 18 dodań i 20 usunięć

Wyświetl plik

@ -88,8 +88,7 @@
# define PPA_PROBE_EPP19 0x0200 # define PPA_PROBE_EPP19 0x0200
#else #else
/* /* the parport driver in Kernel 2.4 has changed. It does report the
* the parport driver in Kernel 2.4 has changed. It does report the
* possible modes in a different, more general way. As long, as * possible modes in a different, more general way. As long, as
* we do not use the parport-module change mode facility, I assume * we do not use the parport-module change mode facility, I assume
* the following correlations * the following correlations
@ -103,10 +102,8 @@
#endif #endif
#endif #endif
#define _A 16807 /* multiplier */ #define _PP_A 16807 /**< multiplier */
#define _M 2147483647L /* 2**31 - 1 */ #define _PP_M 2147483647L /**< 2**31 - 1 */
#define _Q 127773L /* m div a */
#define _R 2836 /* m mod a */
/*************************** some local vars *********************************/ /*************************** some local vars *********************************/
@ -426,17 +423,17 @@ static Long miscNextLongRand( Long seed )
{ {
ULong lo, hi; ULong lo, hi;
lo = _A * (Long)(seed & 0xFFFF); lo = _PP_A * (Long)(seed & 0xFFFF);
hi = _A * (Long)((ULong)seed >> 16); hi = _PP_A * (Long)((ULong)seed >> 16);
lo += (hi & 0x7FFF) << 16; lo += (hi & 0x7FFF) << 16;
if (lo > _M) { if (lo > _PP_M) {
lo &= _M; lo &= _PP_M;
++lo; ++lo;
} }
lo += hi >> 15; lo += hi >> 15;
if (lo > _M) { if (lo > _PP_M) {
lo &= _M; lo &= _PP_M;
++lo; ++lo;
} }
@ -447,7 +444,7 @@ static Long miscNextLongRand( Long seed )
*/ */
static void miscSeedLongRand( ULong seed ) static void miscSeedLongRand( ULong seed )
{ {
randomnum = seed ? (seed & _M) : 1; /* nonzero seed */ randomnum = seed ? (seed & _PP_M) : 1; /* nonzero seed */
} }
/************************ exported functions *********************************/ /************************ exported functions *********************************/
@ -689,23 +686,23 @@ _LOC int MiscRegisterPort( pScanData ps, int portAddr )
DBG( DBG_LOW, "Assigning port handle %i\n", portAddr ); DBG( DBG_LOW, "Assigning port handle %i\n", portAddr );
ps->pardev = portAddr; ps->pardev = portAddr;
#else #else
struct parport *pp = NULL;
DBG( DBG_LOW, "Requested port at 0x%02x\n", portAddr );
#ifdef LINUX_26 #ifdef LINUX_26
__ps = ps; __ps = ps;
__pa = portAddr; __pa = portAddr;
DBG( DBG_LOW, "Requested port at 0x%02x\n", portAddr );
if( parport_register_driver(&pt_drv)) { if( parport_register_driver(&pt_drv)) {
/* Failed; nothing we can do. */ /* Failed; nothing we can do. */
return _E_REGISTER; return _E_REGISTER;
} }
if( NULL == pp ) {
return _E_PORTSEARCH;
}
#else #else
struct parport *pp = NULL;
DBG( DBG_LOW, "Requested port at 0x%02x\n", portAddr );
pp = parport_enumerate(); pp = parport_enumerate();
ps->pardev = NULL; ps->pardev = NULL;
@ -728,6 +725,7 @@ _LOC int MiscRegisterPort( pScanData ps, int portAddr )
#endif #endif
if( NULL == ps->pp ) { if( NULL == ps->pp ) {
printk("PORT not found!!!\n");
return _E_NO_PORT; return _E_NO_PORT;
} }