Lines Matching refs:mp

283   mp810_t *mp = (mp810_t *) s->subdriver;
287 mp->cb.buf, 1024);
291 mp->cb.buf[datalen] = 0;
294 PDBG(pixma_dbg (10, "XML response back from scanner:\n%s\n", mp->cb.buf));
297 return pixma_parse_xml_response((const char*)mp->cb.buf) == PIXMA_STATUS_OK;
299 return (strcasestr ((const char *) mp->cb.buf, XML_OK) != NULL);
311 mp810_t *mp = (mp810_t *) s->subdriver;
313 new_cmd_tpu_msg (s, &mp->cb, cmd_start_session);
314 return pixma_exec (s, &mp->cb);
319 mp810_t *mp = (mp810_t *) s->subdriver;
321 new_cmd_tpu_msg (s, &mp->cb, cmd_scan_start_3);
322 return pixma_exec (s, &mp->cb);
327 mp810_t *mp = (mp810_t *) s->subdriver;
329 pixma_newcmd (&mp->cb, cmd_start_calibrate_ccd_3, 0, 0);
330 mp->cb.buf[3] = 0x01;
331 return pixma_exec (s, &mp->cb);
336 mp810_t *mp = (mp810_t *) s->subdriver;
337 if (mp->generation >= 3)
339 return ((mp->current_status[0] & 0x01) == 1);
341 if (mp->generation == 1)
343 return (mp->current_status[8] == 1);
347 return (mp->current_status[9] == 1);
353 mp810_t *mp = (mp810_t *) s->subdriver;
356 return (mp->current_status[1] == 0 || mp->current_status[2] == 0);
358 return (mp->current_status[1] == 0);
363 mp810_t *mp = (mp810_t *) s->subdriver;
364 while (pixma_read (s->io, mp->imgbuf, IMAGE_BLOCK_SIZE) >= 0)
370 mp810_t *mp = (mp810_t *) s->subdriver;
371 return pixma_exec_short_cmd (s, &mp->cb, cmd_abort_session);
376 mp810_t *mp = (mp810_t *) s->subdriver;
377 return pixma_exec_short_cmd (s, &mp->cb, cmd_e920);
382 mp810_t *mp = (mp810_t *) s->subdriver;
385 data = pixma_newcmd (&mp->cb, cmd_select_source, 12, 0);
386 data[5] = ((mp->generation == 2) ? 1 : 0);
415 return pixma_exec (s, &mp->cb);
420 mp810_t *mp = (mp810_t *) s->subdriver;
424 data = pixma_newcmd (&mp->cb, cmd_get_tpu_info_3, 0, 0x34);
425 RET_IF_ERR(pixma_exec (s, &mp->cb));
426 memcpy (mp->tpu_data, data, 0x34);
432 mp810_t *mp = (mp810_t *) s->subdriver;
435 if (mp->tpu_datalen == 0)
437 data = pixma_newcmd (&mp->cb, cmd_set_tpu_info_3, 0x34, 0);
438 memcpy (data, mp->tpu_data, 0x34);
439 return pixma_exec (s, &mp->cb);
444 mp810_t *mp = (mp810_t *) s->subdriver;
450 data = pixma_newcmd (&mp->cb, cmd_gamma, 4096 + 8, 0);
471 data = pixma_newcmd (&mp->cb, cmd_gamma, 1024 * 2 + 8, 0);
489 return pixma_exec (s, &mp->cb);
492 static unsigned calc_raw_width (const mp810_t * mp,
499 if (mp->generation >= 2)
584 mp810_t *mp = (mp810_t *) s->subdriver;
587 mp->stripe_shift = 0;
588 mp->stripe_shift2 = 0;
589 mp->jumplines = 0;
599 mp->stripe_shift = 6;
601 mp->stripe_shift = 3;
605 mp->color_shift = s->param->ydpi / ((s->param->ydpi < 1200) ? 150 : 75);
608 mp->color_shift = s->param->ydpi / 75;
612 mp->shift[1] = mp->color_shift * get_cis_ccd_line_size (s);
615 mp->shift[0] = 0;
616 mp->shift[2] = 2 * mp->shift[1];
620 mp->shift[0] = 2 * mp->shift[1];
621 mp->shift[2] = 0;
631 mp->stripe_shift = 6;
633 mp->stripe_shift = 3;
642 mp->stripe_shift = 6; /* should work for CS9000F same as manual */
644 mp->stripe_shift = 3;
651 mp->stripe_shift = 6; /* for 1st set of 4 images */
653 mp->stripe_shift2 = 6; /* for 2nd set of 4 images */
654 mp->jumplines = 32; /* try 33 or 34 */
664 mp->stripe_shift = 6;
666 mp->stripe_shift = 3;
672 mp->stripe_shift = 6;
673 mp->stripe_shift2 = 6;
677 mp->stripe_shift = 3;
678 mp->stripe_shift2 = 3;
680 mp->jumplines = 33; /* better than 32 or 34 : applies to flatbed & TPU */
688 mp->stripe_shift = 6;
690 mp->stripe_shift = 3;
696 mp->stripe_shift = 6;
697 mp->stripe_shift2 = 6;
701 mp->stripe_shift = 3;
702 mp->stripe_shift2 = 3;
704 mp->jumplines = 33; /* better than 32 or 34 : applies to flatbed & TPU */
713 mp->stripe_shift = 6;
714 mp->stripe_shift2 = 6;
718 mp->stripe_shift = 3;
719 mp->stripe_shift2 = 3;
721 mp->jumplines = 34; /* better than 32 or 34 : applies to flatbed & TPU */
729 mp->color_shift = mp->shift[0] = mp->shift[1] = mp->shift[2] = 0;
736 mp->color_shift = s->param->ydpi / 50;
737 mp->shift[1] = mp->color_shift * get_cis_ccd_line_size (s);
738 mp->shift[0] = 0;
739 mp->shift[2] = 2 * mp->shift[1];
744 mp->color_shift = s->param->ydpi / 30;
745 mp->shift[1] = mp->color_shift * get_cis_ccd_line_size (s);
746 mp->shift[0] = 0;
747 mp->shift[2] = 2 * mp->shift[1];
755 mp->color_shift = s->param->ydpi / 75;
756 mp->shift[1] = mp->color_shift * get_cis_ccd_line_size (s);
757 mp->shift[0] = 0;
758 mp->shift[2] = 2 * mp->shift[1];
764 mp->color_shift = s->param->ydpi / 50;
766 mp->color_shift = s->param->ydpi / 50;
767 mp->shift[1] = mp->color_shift * get_cis_ccd_line_size (s);
768 mp->shift[0] = 2 * mp->shift[1];
769 mp->shift[2] = 0;
786 mp->color_shift = 5;
787 mp->shift[1] = 0;
788 mp->shift[0] = 0;
789 mp->shift[2] = 0;
795 mp->color_shift, mp->stripe_shift, mp->jumplines)); */
796 return (2 * mp->color_shift + mp->stripe_shift + mp->jumplines); /* note impact of stripe shift2 later if needed! */
801 mp810_t *mp = (mp810_t *) s->subdriver;
803 unsigned raw_width = calc_raw_width (mp, s->param);
815 if (mp->generation >= 4) /* use most global condition */
832 if (mp->generation <= 2)
834 data = pixma_newcmd (&mp->cb, cmd_scan_param, 0x30, 0);
838 if (mp->generation == 2)
927 data = pixma_newcmd (&mp->cb, cmd_scan_param_3, 0x38, 0);
1028 return pixma_exec (s, &mp->cb);
1033 mp810_t *mp = (mp810_t *) s->subdriver;
1038 data = pixma_newcmd (&mp->cb, cmd_status_3, 0, status_len);
1039 RET_IF_ERR(pixma_exec (s, &mp->cb));
1040 memcpy (mp->current_status, data, status_len);
1046 mp810_t *mp = (mp810_t *) s->subdriver;
1050 status_len = (mp->generation == 1) ? 12 : 16;
1051 data = pixma_newcmd (&mp->cb, cmd_status, 0, status_len);
1052 RET_IF_ERR(pixma_exec (s, &mp->cb));
1053 memcpy (mp->current_status, data, status_len);
1066 mp810_t *mp = (mp810_t *) s->subdriver;
1068 data = pixma_newcmd (&mp->cb, cmd_time, 20, 0);
1073 return pixma_exec (s, &mp->cb);
1081 mp810_t *mp = (mp810_t *) s->subdriver;
1086 /* PDBG (pixma_dbg (4, "* read_image_block: last_block\n", mp->last_block)); */
1088 if ((mp->last_block & 0x20) == 0)
1093 mp->state = state_transfering;
1094 mp->cb.reslen = pixma_cmd_transaction (s, cmd, sizeof(cmd), mp->cb.buf, 512); /* read 1st 512 bytes of image block */
1095 datalen = mp->cb.reslen;
1099 memcpy (header, mp->cb.buf, hlen);
1105 memcpy (data, mp->cb.buf + hlen, datalen);
1107 if (mp->cb.reslen == 512)
1115 mp->state = state_scanning;
1116 mp->cb.expected_reslen = 0;
1117 RET_IF_ERR(pixma_check_result (&mp->cb));
1118 if (mp->cb.reslen < hlen)
1126 mp810_t *mp = (mp810_t *) s->subdriver;
1130 data = pixma_newcmd (&mp->cb, cmd_error_info, 0, len);
1131 RET_IF_ERR(pixma_exec (s, &mp->cb));
1245 mp810_t *mp = (mp810_t *) s->subdriver;
1257 data = pixma_newcmd (&mp->cb, cmd_end_calibrate_ccd_3, 0, status_len);
1258 RET_IF_ERR(pixma_exec (s, &mp->cb));
1259 memcpy (mp->current_status, data, status_len);
1261 if (mp->current_status[0] == 3 || !is_scanning_from_tpu (s))
1270 mp810_t *mp = (mp810_t *) s->subdriver;
1273 RET_IF_ERR((mp->generation >= 3) ? query_status_3 (s) : query_status (s));
1277 if (mp->generation >= 3)
1604 * Each complete line in mp->imgbuf is processed for shifting CCD sensor
1609 mp810_t *mp = (mp810_t *) s->subdriver;
1629 if (mp->generation >= 3)
1656 sptr = dptr = gptr = cptr = mp->imgbuf;
1659 /* PDBG (pixma_dbg (4, "*post_process_image_data***** ----- spr=dpr=%u, linebuf=%u ----- ***** \n", sptr, mp->linebuf)); */
1661 lines = (mp->data_left_ofs - mp->imgbuf) / line_size;
1662 /* PDBG (pixma_dbg (4, "*post_process_image_data***** lines = %i > 2 * mp->color_shift + mp->stripe_shift = %i ***** \n",
1663 lines, 2 * mp->color_shift + mp->stripe_shift)); */
1664 /* PDBG (pixma_dbg (4, "*post_process_image_data***** mp->color_shift = %u, mp->stripe_shift = %u, , mp->stripe_shift2 = %u ***** \n",
1665 mp->color_shift, mp->stripe_shift, mp->stripe_shift2)); */
1667 /*color_shift = mp->color_shift;*/
1668 /*stripe_shift = mp->stripe_shift;*/
1669 /*stripe_shift2 = mp->stripe_shift2;*/
1670 jumplines = mp->jumplines;
1698 reducelines = ((2 * mp->color_shift + mp->stripe_shift) + jumplines);
1718 s->cfg->pid, c, mp->shift,
1719 mp->stripe_shift, mp->stripe_shift2,
1730 mp->shift, mp->stripe_shift,
1731 mp->stripe_shift2,
1737 s->cfg->pid, c, mp->shift, mp->stripe_shift);
1756 reorder_pixels (mp->linebuf, sptr, c, n, m, s->param->wx, line_size);
1763 cs9000f_initial_reorder_pixels (mp->linebuf, sptr, c, n, m,
1766 cs9000f_second_reorder_pixels (mp->linebuf, sptr, c, s->param->wx,
1778 mp960_reorder_pixels (mp->linebuf, sptr, c, n, m, s->param->wx,
1788 mp970_reorder_pixels (mp->linebuf, sptr, c, s->param->wx, line_size);
1819 ib->rptr = mp->imgbuf;
1821 return mp->data_left_ofs - sptr; /* # of non processed bytes */
1828 mp810_t *mp;
1831 mp = (mp810_t *) calloc (1, sizeof(*mp));
1832 if (!mp)
1838 free (mp);
1842 s->subdriver = mp;
1843 mp->state = state_idle;
1845 mp->cb.buf = buf;
1846 mp->cb.size = CMDBUF_SIZE;
1847 mp->cb.res_header_len = 8;
1848 mp->cb.cmd_header_len = 16;
1849 mp->cb.cmd_len_field_ofs = 14;
1851 mp->imgbuf = buf + CMDBUF_SIZE;
1854 mp->generation = (s->cfg->pid >= MP810_PID) ? 2 : 1;
1857 mp->generation = 3;
1860 mp->generation = 4;
1864 mp->generation = 3;
1867 mp->generation = 4;
1870 mp->tpu_datalen = 0;
1872 if (mp->generation < 4)
1881 if (mp->generation == 3 && has_ccd_sensor (s))
1890 mp810_t *mp = (mp810_t *) s->subdriver;
1893 free (mp->cb.buf);
1894 free (mp);
1900 mp810_t *mp = (mp810_t *) s->subdriver;
2041 if (mp->generation >= 2)
2052 sp->wx = calc_raw_width (mp, sp);
2061 && mp->generation >= 4)
2092 && ((mp->generation >= 3) || (s->cfg->pid == MP810_PID) || (s->cfg->pid == MP960_PID)))
2123 mp810_t *mp = (mp810_t *) s->subdriver;
2125 if (mp->state != state_idle)
2129 if (mp->generation == 4 && s->param->adf_pageid == 0)
2157 if (has_ccd_sensor (s) && (mp->generation <= 2))
2183 if (s->param->adf_pageid == 0 || mp->generation <= 2)
2207 if ((error >= 0) || (mp->generation >= 3))
2208 mp->state = state_warmup;
2209 if ((error >= 0) && (mp->generation <= 2))
2211 if ((error >= 0) && (mp->generation >= 3) && has_ccd_sensor (s))
2221 for (i = (mp->generation >= 3) ? 3 : 1; i > 0 && error >= 0; i--)
2231 if ((error >= 0) || (mp->generation >= 3))
2232 mp->state = state_warmup;
2235 if ((error >= 0) && (mp->generation >= 3))
2239 mp->last_block = 0x38; /* Force abort session if ADF scan */
2249 mp810_t *mp = (mp810_t *) s->subdriver;
2253 if (mp->state == state_warmup)
2260 mp->state = state_scanning;
2261 mp->last_block = 0;
2265 mp->cb.buf = realloc (mp->cb.buf, CMDBUF_SIZE + IMAGE_BLOCK_SIZE + proc_buf_size);
2266 if (!mp->cb.buf)
2268 mp->linebuf = mp->cb.buf + CMDBUF_SIZE;
2269 mp->imgbuf = mp->data_left_ofs = mp->linebuf + line_size;
2270 mp->data_left_len = 0;
2277 if ((mp->last_block & 0x28) == 0x28)
2279 mp->state = state_finished;
2283 /* PDBG (pixma_dbg (4, "*mp810_fill_buffer***** moving %u bytes into buffer *****\n", mp->data_left_len)); */
2284 memmove (mp->imgbuf, mp->data_left_ofs, mp->data_left_len);
2285 error = read_image_block (s, header, mp->imgbuf + mp->data_left_len);
2299 mp->last_block = header[8] & 0x38;
2318 bytes_received = pack_48_24_bpc (mp->imgbuf + mp->data_left_len, bytes_received);
2322 mp->data_left_ofs = mp->imgbuf + mp->data_left_len + bytes_received;
2323 mp->data_left_len = post_process_image_data (s, ib);
2324 mp->data_left_ofs -= mp->data_left_len;
2325 /* PDBG (pixma_dbg (4, "* mp810_fill_buffer: data_left_len %u \n", mp->data_left_len)); */
2326 /* PDBG (pixma_dbg (4, "* mp810_fill_buffer: data_left_ofs %u \n", mp->data_left_ofs)); */
2336 mp810_t *mp = (mp810_t *) s->subdriver;
2338 switch (mp->state)
2347 if (is_scanning_from_tpu (s) && mp->tpu_datalen == 0)
2351 if (mp->generation <= 2 || !is_scanning_from_adf (s)
2352 || mp->last_block == 0x38)
2359 if (mp->generation == 4)
2365 mp->state = state_idle;