On Wed, Dec 22, 2010 at 6:15 PM, Tom?? Posp??ek <tpo_deb at sourcepole.ch> wrote: > Hello List, Nicolas, Gernot, > > this is a report from peter pilsl about whether current sane with Nicolas > suggested patch here: > > ?http://lists.alioth.debian.org/pipermail/sane-devel/2010-November/027736.html > > works with mp780.
I am not sure how changes to pixma_mp150.c can affect the code in pixma_mp750.c which is what the MP780 uses. Maybe one needs to have some other code there instead of fixed at "4", but I found a problem with segmentation fault (maybe similar to the issue I found in pixma_mp150.c at the time). Nicolas, does this make any sense? raw_width = ALIGN_SUP (sp->w, 4); sp->line_size = raw_width * sp->channels * (sp->depth / 8); in pixma_mp750.c the CVS currently has what is commented out in function mp750_check_param: mp750_check_param (pixma_t * s, pixma_scan_param_t * sp) { unsigned raw_width; UNUSED (s); sp->depth = 8; /* FIXME: Does MP750 supports other depth? */ /* original implementation */ /* if (sp->channels == 1) raw_width = ALIGN_SUP (sp->w, 12); else raw_width = ALIGN_SUP (sp->w, 4);*/ /* GH: my initial implementation */ /* if ((sp->channels == 3) || (is_ccd_grayscale (s))) raw_width = ALIGN_SUP (sp->w, 4); else raw_width = ALIGN_SUP (sp->w, 12);*/ /* the above code gives segmentation fault?!? why... it seems to work in the mp750_scan function */ /* so my final version here */ raw_width = ALIGN_SUP (sp->w, 4); /*sp->line_size = raw_width * sp->channels;*/ sp->line_size = raw_width * sp->channels * (sp->depth / 8); /* no cropping? */ return 0; } Regards, Gernot