[sane-devel] backends-1.0.14 scsi epson

Karl Heinz Kremer khk@khk.net
Sat, 1 May 2004 15:56:35 -0400


On May 1, 2004, at 3:37 PM, Klaus Dittrich wrote:

> Klaus Dittrich wrote:
>
>> abel deuring wrote:
>>
>>> sorry Klaus, I should have had a closer look into your other mail 
>>> containing the debug output.
>>>
>>> abel deuring wrote:
>>>
>>>> Klaus Dittrich wrote:
>>>
>>>
>>> [...]
>>>
>>>>> Starting with backend-1.0.13 the sanei_scsi layer has changed
>>>>> and therefore I assume a bug in the scsi status handling, because
>>>>> expect_ack() has not changed since sane-backends-1.0.12.
>>>>>
>>>>> Maybe one of the sanei_scsi developers can help here ?
>>>>
>>>>
>>>> T
>>>>
>>>> As far as I can see, the only changes in sanei_scsi.c after the 
>>>> release of sane-backends-1.0.12 affecting Linux are indentation 
>>>> fixes and similar "formal" modifications. But the "real" code is 
>>>> the same. So I don't think that your problems are related to 
>>>> sanei_scsi.c. Anyway, could you send me the log output from trying 
>>>> a scan with the backend version 1.0.12 and a newer version,  while 
>>>> SANEI_DEBUG_EPSON and SANE_DEBUG_SANEI_SCSI are set to 255?
>>>
>>>
>>>
>>> the last lines from your debug data:
>>>
>>> dev_max(currently)=6 max_active_device=4 (origin 1)
>>>  def_reserved_size=32768
>>>  >>> device=sg3 scsi2 chan=0 id=5 lun=0   em=0 sg_tablesize=96 excl=1
>>>    FD(1): timeout=120000ms bufflen=131072 (res)sgat=4 low_dma=0
>>>    cmd_q=1 f_packid=0 k_orphan=0 closed=0
>>>      rb>> rcv: id=28 blen=1 dur=3ms sgat=0 op=0x08
>>> [sanei_scsi] sanei_scsi_req_wait: read 64 bytes
>>> [sanei_scsi] sanei_scsi_req_wait: SCSI command complained: Success
>>> [sanei_scsi] sense buffer: f0 00 05 00 00 00 00 00 00 00 00 00 00 00 
>>> 00 00
>>> [sanei_scsi] target status: 02 host status: 0000 driver status: 0008
>>> [sanei_scsi] sanei_scsi_req_wait: SG driver returned resid 1
>>> [sanei_scsi]                      NOTE: This value may be bogus
>>>
>>> That's the relevant part of the debug data you've sent: It simply 
>>> tells us that the scanner returned the status CHECK CONDITION for 
>>> the last command; The sense data means "illegal request". This 
>>> generally means that the SCSI command sent to the device contained 
>>> some error. Within sanei_scsi.c, that's "perfectly normal": This 
>>> library does not issue any SCSI commands by itself during a scan, it 
>>> only "forwards" commands issued by a backend to the kernel. So I 
>>> assume that some change in the Epson backend caused the error.
>>>
>>> Abel
>>>
>>>
>> Thanks for your answer. I will try some more experiments. May be 
>> there is more
>> code sent to the scanner than necessary in the case of ADF usage.
>> With USB and linux-2.6.6-rc3 I get this ..
>>
>> kernel: usbfs: USBDEVFS_BULK failed dev 11 ep 0x81 len 1 ret -110
>>
>> error each time I use the ADF. Using flatbed works.
>>
>> -- 
>> Klaus
>
> Seems feed() in epson.c is not needed at all.
> I made it return SANE_STATUS_GOOD immediately and ADF scanning still 
> works.
> Karl Heinz it seems the LOAD PAPER (0x19) from EPSON's 
> 12_3065_esci_revl.pdf
> has other purposes.   Do other scanners with ADF need this?

Yes, that's the reason it's there :-) It looks like I have to blacklist 
some scanners (e.g. the 1640) so that this command is not used.

Karl Heinz