From 258b48fd5a7554fe30bd071e604efbcd6c280e48 Mon Sep 17 00:00:00 2001 From: Gerhard Jaeger Date: Thu, 26 Jul 2007 20:39:48 +0000 Subject: [PATCH] Force output bit set on misc I/O, when lamp is switched --- backend/plustek-usbhw.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/backend/plustek-usbhw.c b/backend/plustek-usbhw.c index 96d56cb85..49e91fbb4 100644 --- a/backend/plustek-usbhw.c +++ b/backend/plustek-usbhw.c @@ -53,6 +53,7 @@ * - fixed button handling for Plustek/Genius devices and added * some more debug output to that code path * - 0.52 - changed DCapsDef, lamp -> misc_io + * - hammer in output bit, when using misc io pins for lamp switching * . *
* This file is part of the SANE package. @@ -1145,10 +1146,18 @@ usb_switchLampX( Plustek_Device *dev, SANE_Bool on, SANE_Bool tpa ) DBG( _DBG_INFO, "usb_switchLampX(ON=%u,TPA=%u)\n", on, tpa ); - if( on ) + if( on ) { + /* in fact the output bit should be set by the default settings + * but we make sure, that it is set anyway... + */ + if (msk & 0x08) + msk |= 0x01; + else + msk |= 0x10; regs[reg] |= msk; - else + } else { regs[reg] &= ~msk; + } DBG( _DBG_INFO, "Switch Lamp: %u, regs[0x%02x] = 0x%02x\n", on, reg, regs[reg] );