summaryrefslogtreecommitdiff
path: root/backend/pixma_mp810.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/pixma_mp810.c')
-rw-r--r--backend/pixma_mp810.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/backend/pixma_mp810.c b/backend/pixma_mp810.c
index 5b6cdfe..5f9043e 100644
--- a/backend/pixma_mp810.c
+++ b/backend/pixma_mp810.c
@@ -1,8 +1,8 @@
/* SANE - Scanner Access Now Easy.
+ Copyright (C) 2011-2015 Rolf Bensch <rolf at bensch hyphen online dot de>
Copyright (C) 2007-2009 Nicolas Martin, <nicols-guest at alioth dot debian dot org>
Copyright (C) 2006-2007 Wittawat Yamwong <wittawat@web.de>
- Copyright (C) 2011-2013 Rolf Bensch <rolf at bensch hyphen online dot de>
This file is part of the SANE package.
@@ -657,6 +657,23 @@ static unsigned calc_shifting (pixma_t * s)
}
break;
+ case MP990_PID:
+ if (s->param->xdpi == 4800)
+ {
+ if (is_scanning_from_tpu (s))
+ {
+ mp->stripe_shift = 6;
+ mp->stripe_shift2 = 6;
+ }
+ else
+ {
+ mp->stripe_shift = 3;
+ mp->stripe_shift2 = 3;
+ }
+ mp->jumplines = 34; /* better than 32 or 34 : applies to flatbed & TPU */
+ }
+ break;
+
default: /* Default, and all CIS devices */
break;
}
@@ -850,7 +867,7 @@ static int send_scan_param (pixma_t * s)
* 0x24 | 1 | all | 0x01
* -----+-------+---------+---------------------------
* 0x25 | 1 | default | 0x00; cs8800f: 0x01
- * | | tpu | 0x00; cs9000f, mg8200: 0x01
+ * | | tpu | 0x00; cs9000f, mg8200, mp990: 0x01
* | | tpuir | cs9000f: 0x00
* -----+-------+---------+---------------------------
* ... | 1 | all | 0x00
@@ -908,8 +925,8 @@ static int send_scan_param (pixma_t * s)
data[0x23] = 0x02;
data[0x24] = 0x01;
- /* MG8200 addition */
- if (s->cfg->pid == MG8200_PID)
+ /* MG8200 & MP990 addition */
+ if (s->cfg->pid == MG8200_PID || s->cfg->pid == MP990_PID)
{
if (is_scanning_from_tpu (s))
{
@@ -1691,7 +1708,8 @@ static unsigned post_process_image_data (pixma_t * s, pixma_imagebuf_t * ib)
/* comment: MP970, CS8800F, CS9000F specific reordering for 4800 dpi */
if ((s->cfg->pid == MP970_PID || s->cfg->pid == CS8800F_PID
- || s->cfg->pid == CS9000F_PID || s->cfg->pid == CS9000F_MII_PID) && (s->param->xdpi == 4800))
+ || s->cfg->pid == CS9000F_PID || s->cfg->pid == CS9000F_MII_PID
+ || s->cfg->pid == MP990_PID) && (s->param->xdpi == 4800))
{
/*PDBG (pixma_dbg (4, "*post_process_image_data***** mp970_reordering pixels n = %i *****\n", n)); */
mp970_reorder_pixels (mp->linebuf, sptr, c, s->param->wx, line_size);