- fix for HP4400 init

merge-requests/1/head
Stéphane Voltz 2008-08-14 05:26:05 +00:00
rodzic 852411f3f4
commit b7db21cf61
3 zmienionych plików z 21 dodań i 19 usunięć

Wyświetl plik

@ -1,3 +1,6 @@
2008-08-14 Stéphane Voltz <stef.dev@free.fr>
* backend/rts8891.c backend/rts88xx_lib.c: fix for hp4400 init
2008-08-13 m. allan noah <kitno455 a t gmail d o t com> 2008-08-13 m. allan noah <kitno455 a t gmail d o t com>
* backend/fujitsu.[ch]: backend v76 * backend/fujitsu.[ch]: backend v76
- add independent maximum area values for flatbed - add independent maximum area values for flatbed

Wyświetl plik

@ -3339,10 +3339,10 @@ initialize_device (struct Rts8891_Device *dev)
/* read scanner present register */ /* read scanner present register */
sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &control); sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &control);
if (control != 0x00) if (control != 0x00 && control != 0x01)
{ {
DBG (DBG_warn, DBG (DBG_warn,
"initialize_device: expected LINK_REG=0x00, got 0x%02x\n", "initialize_device: unexpected LINK_REG=0x%02x\n",
control); control);
} }
@ -3467,7 +3467,7 @@ init_device (struct Rts8891_Device *dev)
{ {
SANE_Status status = SANE_STATUS_GOOD; SANE_Status status = SANE_STATUS_GOOD;
SANE_Byte control, reg; SANE_Byte control, reg;
SANE_Int i, page; SANE_Int i, page, id;
SANE_Byte buffer[2072]; SANE_Byte buffer[2072];
char message[256 * 6]; char message[256 * 6];
@ -3560,13 +3560,13 @@ init_device (struct Rts8891_Device *dev)
dev->regs[0x20], dev->regs[0x21], dev->regs[0x22]); dev->regs[0x20], dev->regs[0x21], dev->regs[0x22]);
/* read mainboard ID/scanner present register */ /* read mainboard ID/scanner present register */
sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &control); sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &id);
DBG (DBG_io, "init_device: link=0x%02x\n", control); DBG (DBG_io, "init_device: link=0x%02x\n", id);
/* only known ID is currently 0x00 */ /* only known ID is currently 0x00 or 0x01 */
if (control != 0x00) if (id != 0x00 && id!=0x01)
{ {
DBG (DBG_warn, "init_device: expected id=0x00, got 0x%02x\n", control); DBG (DBG_warn, "init_device: expected id=0x00 or 0x01, got 0x%02x\n", id);
} }
/* write 0x00 twice to control */ /* write 0x00 twice to control */
@ -3851,10 +3851,10 @@ init_device (struct Rts8891_Device *dev)
sanei_rts88xx_read_reg (dev->devnum, LAMP_REG, &control); sanei_rts88xx_read_reg (dev->devnum, LAMP_REG, &control);
sanei_rts88xx_write_control (dev->devnum, 0x00); sanei_rts88xx_write_control (dev->devnum, 0x00);
sanei_rts88xx_write_control (dev->devnum, 0x00); sanei_rts88xx_write_control (dev->devnum, 0x00);
sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &control); sanei_rts88xx_read_reg (dev->devnum, LINK_REG, &id);
if (control != 0x00) if (id != 0x00 && id !=0x01)
{ {
DBG (DBG_warn, "init_device: expected id=0x00, got 0x%02x\n", control); DBG (DBG_warn, "init_device: got unexpected id 0x%02x\n", id);
} }
@ -3906,11 +3906,11 @@ init_device (struct Rts8891_Device *dev)
/* check the data returned */ /* check the data returned */
for (i = 0; i < 2072; i++) for (i = 0; i < 2072; i++)
{ {
if (buffer[i] != 0) if (buffer[i] != id)
{ {
DBG (DBG_error, "init_device: memory at %d is not 0x00 (0x%02x)\n", DBG (DBG_error, "init_device: memory at %d is not 0x%02d (0x%02x)\n",
i, buffer[i]); i, id, buffer[i]);
return SANE_STATUS_IO_ERROR; /* XXX STEF XXX return SANE_STATUS_IO_ERROR; */
} }
} }
DBG (DBG_info, "init_device: memory set #1 passed\n"); DBG (DBG_info, "init_device: memory set #1 passed\n");
@ -3932,7 +3932,7 @@ init_device (struct Rts8891_Device *dev)
DBG (DBG_error, DBG (DBG_error,
"init_device: memory at %d is not 0x%02x (0x%02x)\n", i, "init_device: memory at %d is not 0x%02x (0x%02x)\n", i,
(i + 0x36) % 97, buffer[i]); (i + 0x36) % 97, buffer[i]);
return SANE_STATUS_IO_ERROR; /* XXX STEF XXX return SANE_STATUS_IO_ERROR; */
} }
} }
for (i = 993; i < 2072; i++) for (i = 993; i < 2072; i++)
@ -3942,7 +3942,7 @@ init_device (struct Rts8891_Device *dev)
DBG (DBG_error, DBG (DBG_error,
"init_device: memory at %d is invalid 0x%02x, instead of 0x%02x\n", "init_device: memory at %d is invalid 0x%02x, instead of 0x%02x\n",
i, buffer[i], i % 97); i, buffer[i], i % 97);
return SANE_STATUS_IO_ERROR; /* XXX STEF XXX return SANE_STATUS_IO_ERROR; */
} }
} }
DBG (DBG_info, "init_device: memory set #2 passed\n"); DBG (DBG_info, "init_device: memory set #2 passed\n");
@ -4223,7 +4223,6 @@ detect_device (struct Rts8891_Device *dev)
{ {
DBG (DBG_warn, "detect_device: expected LINK_REG=0x00, got 0x%02x\n", DBG (DBG_warn, "detect_device: expected LINK_REG=0x00, got 0x%02x\n",
control); control);
/* TODO : fail here ? */
} }
/* write 0x00 twice to control: cancel/stop ? */ /* write 0x00 twice to control: cancel/stop ? */

Wyświetl plik

@ -59,7 +59,7 @@ void
sanei_rts88xx_lib_init (void) sanei_rts88xx_lib_init (void)
{ {
DBG_INIT (); DBG_INIT ();
DBG (DBG_info, "RTS88XX library, version %d.%d-rc-%d\n", V_MAJOR, V_MINOR, DBG (DBG_info, "RTS88XX library, version %d.%d-%d\n", V_MAJOR, V_MINOR,
RTS88XX_LIB_BUILD); RTS88XX_LIB_BUILD);
} }