[sane-devel] Anybody with access to Pixma MP160 or MP780? [was: Re: Pixma MP600 broken by 1430217e1919801fa6418c36589cc4360e5f1779] (fwd)

Gernot Hassenpflug aikishugyo at gmail.com
Wed Dec 22 13:55:10 UTC 2010


On Sat, Dec 18, 2010 at 7:27 AM, Tomas Pospisek <tpo_deb at sourcepole.ch> wrote:
> On Thu, 16 Dec 2010, Gernot Hassenpflug wrote:
>
>> On Wed, Dec 15, 2010 at 7:56 PM, Tomas Pospisek <tpo_deb at sourcepole.ch>
>> wrote:
>>>
>>> Hello Nicolas (and List),
>>>
>>> any chance we could get the Canon Pixma Generation #2 fix into the pixma
>>> backend?
>>> *t
>>
>> Just one comment (I will only be able to test the MP810 this Saturday):
>>
>> Since the code, I believe, is in a condition that is <= generation 2,
>> the code line that had the exceptions for individual generation 2
>> machines should have the exception line changed to check == generation
>> 2. In other words, generation 1 machines I think need to be excluded.
>
> So the patch would be:
>
> diff --git a/backend/pixma_mp150.c b/backend/pixma_mp150.c
> index ebee20c..fbcca2e 100644
> --- a/backend/pixma_mp150.c
> +++ b/backend/pixma_mp150.c
> @@ -676,7 +676,7 @@ send_scan_param (pixma_t * s)
>       pixma_set_be16 (s->param->xdpi | 0x8000, data + 0x04);
>       pixma_set_be16 (s->param->ydpi | 0x8000, data + 0x06);
>       pixma_set_be32 (s->param->x, data + 0x08);
> -      if (s->cfg->pid == MP460_PID || s->cfg->pid == MP510_PID)
> +      if (mp->generation == 2)
>         pixma_set_be32 (s->param->x - s->param->xs, data + 0x08);
>       pixma_set_be32 (s->param->y, data + 0x0c);
>       pixma_set_be32 (raw_width, data + 0x10);
>
> *t
>
>>> ---------- Forwarded message ----------
>>> Date: Wed, 15 Dec 2010 09:37:21 +0900
>>> From: Gernot Hassenpflug
>>> To: Tomas Pospisek
>>> Subject: Re: Anybody with access to Pixma MP160 or MP780? [was: Re:
>>> [sane-devel]
>>>     Pixma MP600 broken by 1430217e1919801fa6418c36589cc4360e5f1779]
>>>
>>> On Wed, Dec 15, 2010 at 6:30 AM, Tomas Pospisek wrote:
>>>>
>>>> Hello Gernot,
>>>>
>>>> any chance to get this change in before Debian releases (which I guess
>>>> will
>>>> be over this holidays...)?
>>>> *t
>>>
>>> Hi Tomas,
>>>
>>> I don't know if you meant to send the mail to Nicolas instead of to
>>> me, as he is the maintainer of the Canon backend in SANE.
>>>
>>> I have to still unpack the MP810 for testing, after I send off two
>>> boxes tonight I should have space in my room to do that.
>>>
>>> Best regards,
>>> Gernot Hassenpflug
>>>
>>>> On Tue, 7 Dec 2010, Tomas Pospisek wrote:
>>>>
>>>>> On Tue, 7 Dec 2010, Gernot Hassenpflug wrote:
>>>>>
>>>>>> On Tue, Dec 7, 2010 at 6:08 AM, Tomas Pospisek wrote:
>>>>>>>
>>>>>>> Is there anybody here, that could test that the proposed fix [1]
>>>>>>> makes
>>>>>>> MP160
>>>>>>> or MP780 or other Pixma generation#2 scanners [2] work again with the
>>>>>>> current devel sane version?
>>>>>>>
>>>>>>> I've received a confirmation of another MP600 user, that the proposed
>>>>>>> fix
>>>>>>> [1] solves the scanning problem. Unfortunately I have not heard of
>>>>>>> any
>>>>>>> other
>>>>>>> Pixma generation#2 users.
>>>>>>>
>>>>>>> I'd be very happy if this fix could make it into the backend and into
>>>>>>> Debian
>>>>>>> Squeeze.
>>>>>>>
>>>>>>> *t
>>>>>>>
>>>>>>> [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=585887#85
>>>>>>> [2] MP160, MP180, MP460, MP510, MP600R, MP810, MP960, MP140
>>>>>>
>>>>>> I have an MP810 and MP960 that I can test.
>>>>>>
>>>>>> Please give me a couple of days. Is this fix now in CVS (if not I can
>>>>>> remove the exception from my own code).
>>>>>
>>>>> No, it's not in CVS (git) yet.

Unless we are talking about the MP760 instead of the MP160 here, we
are mixing in my opinion two different problems. MP160 etc., is
supported by pixma_mp150.c. The list of generation 2 devices is below:

  /* Generation 2: CIS */
  DEVICE ("Canon PIXMA MP140", "MP140", MP140_PID, 600, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP160", "MP160", MP160_PID, 600, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP180", "MP180", MP180_PID, 1200, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP460", "MP460", MP460_PID, 1200, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP510", "MP510", MP510_PID, 1200, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP600", "MP600", MP600_PID, 2400, 638, 877,
PIXMA_CAP_CIS),
  DEVICE ("Canon PIXMA MP600R", "MP600R", MP600R_PID, 2400, 638, 877,
PIXMA_CAP_CIS),

  /* Generation 2: CCD */
  DEVICE ("Canon PIXMA MP810", "MP810", MP810_PID, 4800, 638, 877,
PIXMA_CAP_CCD | PIXMA_CAP_TPU),
  DEVICE ("Canon PIXMA MP960", "MP960", MP960_PID, 4800, 638, 877,
PIXMA_CAP_CCD | PIXMA_CAP_TPU),

On the other hand, the MP750, MP760 (MP770 is the same), and MP780
(MP790 is the same) are supported by pixma_mp750.c. See my mail in the
other thread (tonight) on a possible solution there. I do not
understand why pixma_mp150.c code is affecting devices supported by
pixma_mp750.c.

In any case, I have recompiled my SANE code with the following lines
in pixma_mp150.c (sned_scan_param function):

      /*      if ((s->cfg->pid == MP460_PID) || (s->cfg->pid ==
MP510_PID) || (s->cfg->pid==MP960_PID))*/ /* generation 2 devices
behaving like generation 3 */
      if (mp->generation == 2)
	pixma_set_be32 (s->param->x - s->param->xs, data + 0x08);

In comments is what I had before for the devices I could test. The
MP960 still works, prescan takes about 45 seconds of calibration and
warm-up, and then about 5 seconds for a color A4 page.

I then tested the MP810 finally: after about a minute of warming up
and calibration (first time to start up after factory repairs) it did
the pre-scan in about 5 seconds flat.

I do not currently have a generation 1 device to test, unfortunately.

Best regards,
Gernot Hassenpflug
-- 
ISP Asahi-Net: http://asahi-net.jp/en/
No.1 in Japan by customer satisfaction
(Nikkei News, 7 July 2010)



More information about the sane-devel mailing list