[sane-devel] Epson Perfection 3490 -> included bugfix makes it work

Bauke Jan Douma bjdouma at xs4all.nl
Thu Sep 15 16:24:18 UTC 2005


Hi!

Good news for all you with an Epson Perfection 3490 USB scanner.

Here is a bugfix to get the 'Epson Perfection 3490' scanner working.
It now makes perfect color *.pnm scans, at full A4 size.

The details: I've been looking over some usbmon dumps and scanimage
debug logs, and the Perfection 3490 should just read 120 bytes even
when firmware isn't loaded yet.

The fix is in snapscan-scsi.c.
Here are two kinds of diffs, I'm not sure which format is mandatory.
The diffs are against CVS snapshot sane-backends-2005-09-15.

Regards,

Bauke Jan Douma
bjdouma at xs4all.nl

September 15th, 2005





diff -uprN ./sane-backends-2005-09-15/backend/snapscan-scsi.c ./sane-backends-2005-09-15-bjd/backend/snapscan-scsi.c
--- ./sane-backends-2005-09-15/backend/snapscan-scsi.c	2005-09-03 13:31:31.000000000 +0200
+++ ./sane-backends-2005-09-15-bjd/backend/snapscan-scsi.c	2005-09-15 18:04:53.000000000 +0200
@@ -439,9 +439,15 @@ static SANE_Status inquiry (SnapScan_Sca
     switch (pss->pdev->model)
     {
     case PERFECTION2480:
-    case PERFECTION3490:
         pss->read_bytes = (pss->firmware_loaded) ?  139 : INQUIRY_RET_LEN;
         break;
+    case PERFECTION3490:
+    	/*
+    	 * The 'Epson Perfection 3490' only returns 120, so don't try to read 139.
+    	 * Bauke Jan Douma, bjdouma at xs4all.nl, 20050915
+    	 */
+        pss->read_bytes = INQUIRY_RET_LEN;
+        break;
     default:
         pss->read_bytes = INQUIRY_RET_LEN;
         break;
@@ -480,7 +486,6 @@ static SANE_Status inquiry (SnapScan_Sca
         pss->chroma = 0;
         break;
     case PERFECTION2480:
-    case PERFECTION3490:
         /* TODO: remove */
         if (pss->firmware_loaded)
         {





diff -c3 --recursive --new-file ./sane-backends-2005-09-15/backend/snapscan-scsi.c ./sane-backends-2005-09-15-bjd/backend/snapscan-scsi.c
*** ./sane-backends-2005-09-15/backend/snapscan-scsi.c	Sat Sep  3 13:31:31 2005
--- ./sane-backends-2005-09-15-bjd/backend/snapscan-scsi.c	Thu Sep 15 18:04:53 2005
***************
*** 439,447 ****
      switch (pss->pdev->model)
      {
      case PERFECTION2480:
-     case PERFECTION3490:
          pss->read_bytes = (pss->firmware_loaded) ?  139 : INQUIRY_RET_LEN;
          break;
      default:
          pss->read_bytes = INQUIRY_RET_LEN;
          break;
--- 439,453 ----
      switch (pss->pdev->model)
      {
      case PERFECTION2480:
          pss->read_bytes = (pss->firmware_loaded) ?  139 : INQUIRY_RET_LEN;
          break;
+     case PERFECTION3490:
+     	/*
+     	 * The 'Epson Perfection 3490' only returns 120, so don't try to read 139.
+     	 * Bauke Jan Douma, bjdouma at xs4all.nl, 20050915
+     	 */
+         pss->read_bytes = INQUIRY_RET_LEN;
+         break;
      default:
          pss->read_bytes = INQUIRY_RET_LEN;
          break;
***************
*** 480,486 ****
          pss->chroma = 0;
          break;
      case PERFECTION2480:
-     case PERFECTION3490:
          /* TODO: remove */
          if (pss->firmware_loaded)
          {
--- 486,491 ----



More information about the sane-devel mailing list