[sane-devel] usb-IO-error with genesys

stef svoltz@wanadoo.fr
Tue, 19 Apr 2005 21:51:32 +0200


On Mon, Apr 18, 2005 at 10:08:55PM +0200, Philipp Schmid wrote:
> Hi Stef,
> 
> Thank you for answering my question. I cannot imagine that endpoint 0x82
> isn't a bulk write endpoint on GL841. There is a successful bulk write
> in my trace using endpoint 0x82. It is after genesys_create_slope_table:
> 
> [genesys] genesys_bulk_write_register (size = 162)
> [sanei_usb] sanei_usb_control_msg: rtype = 0x40, req = 4, value = 130,
> index = 0, len = 8
> [sanei_usb] 0000: 01 11 00 00 A2 00 00 00
> ................
> [sanei_usb] sanei_usb_write_bulk: trying to write 162 bytes
> [sanei_usb] 0000: 01 20 02 30 03 1F 04 13 05 40 06 18 07 00 08 01 .
> .0.....@......
> [sanei_usb] 0010: 09 03 0A 05 0B 07 10 00 11 00 12 00 13 00 14 00
> ................
> [sanei_usb] 0020: 15 00 16 33 17 05 18 31 19 2A 1A 00 1B 00 1C 00
> ...3...1.*......
> [sanei_usb] 0030: 1D 02 1E F0 1F 01 20 10 21 08 22 10 23 10 24 08 ......
> .!.".#.$.
> [sanei_usb] 0040: 25 00 26 00 27 D4 28 01 29 FF 2C 02 2D 58 2E 6E
> %.&.'.(.).,.-X.n
> [sanei_usb] 0050: 2F 6E 30 00 31 40 32 2A 33 F8 34 40 35 01 36 00
> /n0.1@2*3.4@5.6.
> [sanei_usb] 0060: 37 00 38 2A 39 F8 3D 00 3E 00 3F 01 52 13 53 17
> 7.8*9.=.>.?.R.S.
> [sanei_usb] 0070: 54 03 55 07 56 0B 57 0F 58 23 59 00 5A C1 5B 00
> T.U.V.W.X#Y.Z.[.
> [sanei_usb] 0080: 5C 00 5D 00 5E 00 60 00 61 00 62 00 63 00 64 00
> \.].^.`.a.b.c.d.
> [sanei_usb] 0090: 65 00 66 11 67 00 68 51 69 20 6A 40 6B FF 6C 00
> e.f.g.hQi j@k.l.
> [sanei_usb] 00A0: 6D 01
> m...............
> [sanei_usb] sanei_usb_write_bulk: wanted 162 bytes, wrote 162 bytes
> 
> I've another question about genesys_low.h.  Are the /* USB control
> message values */ the endpoints in the USB device or is this something
> different?
> 
> Thanks for helping
> 
>    Philipp
> 

	Hello,

	you are right, this a succeeding bulk write on endpoint 0x82. After
checking, it is used for reading/writing one register at a time (from the
log posted on the list). However, bulk writes are made on 0x8e in the log.
But in the current case, could occurs because of inconsistent registers 
content. I sometime hit such problems when sending bogus values with
my gl646 based scanner.
	It is unlikely that current backend sends values that fit for a gl841.
It haven't fully read the datasheet, but I spotted some registers that a few
different bits from gl646.

Regards,
	Stef