Relisys Backend devel snags -- lockup when scanner buffer fills

martica@martica.org
Sat, 10 Apr 1999 18:56:09 -0600 (MDT)

Howdy all,

I've been working on the backend for the Relisys/Teco lines, and have
got things working pretty darn good for 24bit color scans at low
resolutions.

PROBLEM: Scanner pauses scanning when buffer fills and machine locks
after almost emptying the buffer.

I've run into some sort of problem, which I think is somehow scsi
related. When I scan at a high resolution the scanners internal buffer
fills faster than I can read the data out of it. I could try to increase
the sg buffer size, but I don't think that that is really a solution and
the problem will still exist with high res scans of the entire flatbed
area.

When scanner under the Windows twain driver the scanner will pause
scanning when its buffer fills and restart when it empties again. This
seems to happen under linux, but the restart never occurs. When my
backend reads the second last 32k chunk from the scanner the entire
machine locks up and I have to shutdown the scanner to have it continue.

I have to admit that this is my first foray into interfaceing with the
scsi subsystem, and have some hope that one of you scsi/scanner gurus
might have a clue to impart to me on possible reasons for this behavior.

Thanks for your time,
Tyler Bindon
martica@martica.org

Sample Scan Output for your perusal:

% scanimage -x 200 -y 120 --resolution=300 > test.pnm
.
. many many many lines ommited
.
reader: waiting for data.[sanei_scsi] scsi_req_enter: entered 0x807ec10
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x807ec10
[sanei_scsi] sanei_scsi.issue: 0x807ec10
[sanei_scsi] sanei_scsi_req_wait: read 54 bytes
[relisys] avail = 181797
! 181797 bytes available.
reader: About to read 32000 bytes, [sanei_scsi] scsi_req_enter: entered
0x807ec1
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x807ec10
[sanei_scsi] sanei_scsi.issue: 0x807ec10
[sanei_scsi] sanei_scsi_req_wait: read 32036 bytes
Successful.
Outputting 32000 bytes to fd,
reader: waiting for data.[sanei_scsi] scsi_req_enter: entered 0x807ec10
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x807ec10
[sanei_scsi] sanei_scsi.issue: 0x807ec10
[sanei_scsi] sanei_scsi_req_wait: read 54 bytes
[relisys] avail = 151104
! 151104 bytes available.
reader: About to read 32000 bytes, [sanei_scsi] scsi_req_enter: entered
0x807ec1
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x807ec10
[sanei_scsi] sanei_scsi.issue: 0x807ec10

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com