fix ADF scanning for Canon MF57x0 devices

- ignore result from calibrate(): don't interrupt @ PIXMA_STATUS_BUSY
- MF57x0 devices don't require abort_session() after the last page
- reported by Dmitry Deshevoy
merge-requests/1/head
Rolf Bensch 2016-10-05 19:51:35 +02:00
rodzic a9806de08e
commit c751a9ca22
1 zmienionych plików z 21 dodań i 13 usunięć

Wyświetl plik

@ -459,6 +459,10 @@ step1 (pixma_t * s)
default: default:
break; break;
} }
// ignore result from calibrate()
// don't interrupt @ PIXMA_STATUS_BUSY
error = 0;
} }
if (error >= 0) if (error >= 0)
error = activate (s, 0); error = activate (s, 0);
@ -747,19 +751,23 @@ mp730_finish_scan (pixma_t * s)
query_status (s); query_status (s);
activate (s, 0); activate (s, 0);
if (! aborted && s->cfg->pid == IR1020_PID) // MF57x0 devices don't require abort_session() after the last page
{ if (!aborted &&
error = abort_session (s); (s->param->source == PIXMA_SOURCE_ADF ||
if (error < 0) s->param->source == PIXMA_SOURCE_ADFDUP) &&
{ has_paper (s) &&
PDBG (pixma_dbg (s->cfg->pid == MF5730_PID ||
(1, "WARNING:abort_session() failed %s\n", s->cfg->pid == MF5750_PID ||
pixma_strerror (error))); s->cfg->pid == MF5770_PID ||
query_status (s); s->cfg->pid == IR1020_PID))
query_status (s); {
activate (s, 0); error = abort_session (s);
} if (error < 0)
} PDBG (pixma_dbg
(1, "WARNING:abort_session() failed %s\n",
pixma_strerror (error)));
}
mp->buf = mp->lbuf = mp->imgbuf = NULL; mp->buf = mp->lbuf = mp->imgbuf = NULL;
mp->state = state_idle; mp->state = state_idle;
/* fall through */ /* fall through */