[sane-devel] Scsi problem with Solaris 2.6

abel deuring a.deuring@satzbau-gmbh.de
Thu, 26 Jun 2003 21:58:59 +0200


Henrik Schmidt schrieb:
> I'm trying to use a Microtek ScanMaker III with Solaris 2.6 and the scg
> SCSI driver. I'm using sane-backends 1.0.12 with frontend 1.0.10.

> 
> Jun 25 13:08:25 cortex unix: WARNING:
> /iommu@f,e0000000/sbus@f,e0001000/espdma@f
> ,400000/esp@f,800000 (esp0):^M^M
> Jun 25 13:08:25 cortex unix:    data transfer overrun: current esp state:
                                   ^^^^^^^^^^^^^^^^^^^^^
[...]
> Jun 25 13:08:25 cortex unix: esp:               Cmd dump for Target 5 Lun
> 0:^M^M
> Jun 25 13:08:25 cortex unix: esp:               cdblen=6, cdb=[ 0x8 0x0
> 0x0 0x0
> 0x91 0x0 ]^M^M

That's a READ of just 0x91 (145) bytes; shouldn't cause any buffer 
overflow, but it's an odd number of bytes. A long shot: It could be that 
the SCG driver does not like to transfer an odd number of bytes.

Matt and Henrik, I'm admittedly too lazy to look closer into the 
Microtek backend, but I guess that it is trying to read a complete scan 
line with one SCSI command. Would it be difficult to change this 
behaviour to read an even number of bytes?

Henrik, a test of my guess should not be too difficult: Just select a 
scan window with an even number of horizontal pixels. (Or perhaps better 
choose a multiple of 4 or 8 as the scan width, just in case that the SCG 
driver or some other Solaris part insists on using the complete bus 
width of 32 or 64 bit)

Abel

PS: If my guess is right, a number of backends would need to be 
modified, I'm afraid...