<br><br><div class="gmail_quote">2011/1/4 stef <span dir="ltr">&lt;<a href="mailto:stef.dev@free.fr">stef.dev@free.fr</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Le Friday 31 December 2010 13:36:20 Stefan Larsson, vous avez écrit :<br>
<div class="im">&gt; Thank you for the information.<br>
&gt;<br>
&gt; I have extracted some information but it is a bit unclear how to proceed. I<br>
&gt; need to be able to isolate which portions are doing what. How do you<br>
&gt; usually perform the analysis in an efficient manner?  Since I am totally<br>
&gt; unfamiliar with the protocol I am not sure how to start finding the<br>
&gt; appropriate information.<br>
&gt;<br>
&gt; All the files are present in the attached file. Check readme.txt for<br>
&gt; further information.<br>
&gt;<br>
&gt; I also contacted Canon Sweden to ask for any technical information or a<br>
&gt; contact person which may simplify things. The support issue just got<br>
&gt; escalated to another department. We will see what that could give.<br>
&gt;<br>
&gt; /Stefan<br>
&gt;<br>
</div>        Hello,<br>
<br>
        the decoded windows log seems to be missing the first URB when scanner is<br>
plugged. Important things happen then. You should logged it at least once. It<br>
helps determining the memory layout, the initial reigster set and the starting<br>
GPIO.<br>
        Try to record it, then the first step you could try is to adjust the<br>
registers for the memory layout. There is a table &#39;layouts&#39; in genesys_gl847.h<br>
where you should tune registers d0-d2, e0-e7 based on the value you&#39;ll find in<br>
the decoded log.<br>
        The next step would be the GPIO, the registers to look are used in<br>
gl847_init_pio(), have special care for REG6C occurences.<br>
<br>
Regards,<br>
<font color="#888888">        Stef<br>
</font></blockquote></div><br>Ok, I have been able to get some initial very short &quot;buzz&quot;-sound out of the scanner now, which means it is responding to the initial register initialization. The execution is ending with the log below (I guess that the problem is with the unsupported frontend type 0):<br>
<br>...<br>[genesys_gl847] gl847_init_memory_layout completed<br>[genesys_low] sanei_genesys_write_gl847_register (0xf8, 0x01) completed<br>[genesys_gl847] gl847_cold_boot completed<br>[genesys_gl847] gl847_set_fe (init)<br>
[genesys_low] sanei_genesys_read_gl847_register(0x04)=0x20<br>[genesys_gl847] gl847_set_fe(): unsupported frontend type 0<br>[genesys_gl847] gl847_set_fe completed<br>scanimage: open of device genesys:libusb:001:003 failed: Operation not supported<br>
[genesys] sane_exit: start<br>[genesys] sane_exit: exit<br><br>The changes so far are attached in the diff-file. I am not sure how such changes are to be incorporated in the code. There needs to be some kind of adaptability such as for the memory mapping.<br>
<br>I was also unable to find any values for 0xd1 and 0xd2.<br><br>Regarding the GPIO i am unsure how to interpret the rules in gl847_init_gpio() and what I am seeing in the logs. I guess I have to modify those rules to comply with what is seen below:<br>
<br>genesys_read_register(0x6c)=0x80<br>genesys_write_register(0x6c,0x80)<br>genesys_read_register(0x6c)=0x80<br>genesys_write_register(0x6c,0x80)<br><br>genesys_read_register(0x6c)=0x80<br>genesys_write_register(0x6c,0x81)<br>
genesys_read_register(0x6c)=0x81<br>genesys_write_register(0x6c,0xc1)<br>genesys_read_register(0x6c)=0xc1<br>genesys_write_register(0x6c,0xd1)<br><br>genesys_read_register(0x6c)=0xd1<br>genesys_write_register(0x6c,0xd1)<br>
genesys_read_register(0x6c)=0xd1<br>genesys_read_register(0x6c)=0xd1<br>genesys_write_register(0x6c,0xf1)<br>genesys_read_register(0x6c)=0xf1<br><br>genesys_read_register(0x6c)=0xf1<br>genesys_write_register(0x6c,0xf1)<br>
genesys_read_register(0x6c)=0xf1<br>genesys_write_register(0x6c,0xf1)<br><br>genesys_read_register(0x6c)=0xf1<br>genesys_write_register(0x6c,0xf1)<br>genesys_read_register(0x6c)=0xf1<br>genesys_write_register(0x6c,0xf1)<br>
<br>/Stefan<br>