Index: backend/pixma_mp730.c =================================================================== RCS file: /cvsroot/sane/sane-backends/backend/pixma_mp730.c,v retrieving revision 1.9 diff -u -r1.9 pixma_mp730.c --- backend/pixma_mp730.c 2 Feb 2009 21:16:44 -0000 1.9 +++ backend/pixma_mp730.c 26 Apr 2009 06:55:31 -0000 @@ -106,6 +106,7 @@ unsigned imgbuf_len; unsigned last_block:1; + unsigned session_open; } mp730_t; @@ -452,6 +453,12 @@ { } + if (s->param->xdpi > 600 && s->param->source == PIXMA_SOURCE_ADF) + { + PDBG (pixma_dbg (1, "ERROR: maximum resolution of ADF is 600dpi. Requested %udpi\n", s->param->xdpi)); + return PIXMA_EINVAL; + } + mp->raw_width = calc_raw_width (s->param); PDBG (pixma_dbg (3, "raw_width = %u\n", mp->raw_width)); @@ -465,12 +472,15 @@ mp->imgbuf_len = 0; error = step1 (s); - if (error >= 0) - error = start_session (s); - if (error >= 0) - mp->state = state_scanning; - if (error >= 0) - error = select_source (s); + if (error >= 0 && ! mp->session_open) + { + mp->session_open++; + error = start_session (s); + if (error >= 0) + mp->state = state_scanning; + if (error >= 0) + error = select_source (s); + } if (error >= 0) error = send_scan_param (s); if (error < 0)