Re: Snapscan SCSI 1236s + aha152x + linux 2.4.0 = problem

From: abel deuring (a.deuring@satzbau-gmbh.de)
Date: Tue Feb 20 2001 - 06:40:45 PST

  • Next message: Wolfgang Rapp: "HP2100C USB scanner ?"

    Juergen E Fischer wrote:
    >
    > Hi there,
    >
    > On Tue, Feb 20, 2001 at 12:06:21PM +0100, anvil@amin.unice.fr wrote:
    > > Thank you for your patch, i recompiled the module... But the problem is
    > > still present : xsane freeze when trying to acquire preview and lots of
    > > (scsi0:2:0) no buffers left for 128(128) bytes (data overrun!?) ending
    > > by a (scsi0:2:0) no buffers left for 16(16) bytes (data overrun!?) are
    > > in the dmesg....
    >
    > Douglas,
    > might this somehow relate to the resid feature? With data data overruns
    > the value of resid should be different. Is this handled somewhere?
    >
    > Abel,
    > weren't you tracking this issue further down with a lend snapscan?
    > Did you gain more insights? IIRC, we solved the aha152x problems,
    > but there were still problems in the sane backend.

    Juergen, Douglas and Dams,

    right, there were a few problems... I don't recall every detail at
    present, and I last week had to return the Snapscan to its owner.

    One possible cause of data overruns is the SEND DIAGNOSTIC command in
    the Snapscan backend. As I understand it, the backend does not expect
    any data to be returned for this command, but the scanner sends some
    bytes anyway. IIRC, Karsten Strunk or Marcel Martin tried successfully
    to disable this command.

    Perhaps the folloing patch in snapscan-scsi.c (line 821 in the current
    CVS version) helps.

    Original version:

    static SANE_Status send_diagnostic (SnapScan_Scanner *pss)
    {
        static const char *me = "send_diagnostic";
        u_char cmd[] = {SEND_DIAGNOSTIC, 0x04, 0, 0, 0, 0}; /* self-test */
        SANE_Status status;
     
        if (pss->pdev->model == PRISA620S /* GP added */
            ||
            pss->pdev->model == VUEGO610S) /* SJU added */
        {
            return SANE_STATUS_GOOD;
        }
        DBG (DL_CALL_TRACE, "%s\n", me);
     
        status = sanei_scsi_cmd (pss->fd, cmd, sizeof (cmd), NULL, NULL);
        if (status != SANE_STATUS_GOOD)
        {
            DBG (DL_MAJOR_ERROR,
                 "%s: scsi command error: %s\n",
                 me,
                 sane_strstatus (status));
        }
        return status;
    }

    patched version:

    static SANE_Status send_diagnostic (SnapScan_Scanner *pss)
    {
        return SANE_STATUS_GOOD;
    }

    Abel

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



    This archive was generated by hypermail 2b29 : Tue Feb 20 2001 - 08:50:18 PST