added 3092 support

bug fixes
DEVEL_2_0_BRANCH-1
Oliver Schirrmeister 2002-09-16 12:19:56 +00:00
rodzic adf9178abc
commit 2b2453029f
4 zmienionych plików z 2442 dodań i 2204 usunięć

Wyświetl plik

@ -99,6 +99,7 @@ scsiblk;
#define SCAN 0x1b
#define IMPRINTER 0xc1
#define HW_STATUS 0xc2
#define RESET_UNIT 0xf1
/* ==================================================================== */
@ -115,6 +116,12 @@ static scsiblk release_unitB = { release_unitC, sizeof (release_unitC) };
/* ==================================================================== */
static unsigned char reset_unitC[] =
{ RESET_UNIT, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static scsiblk reset_unitB = { reset_unitC, sizeof (reset_unitC) };
/* ==================================================================== */
static unsigned char inquiryC[] = { INQUIRY, 0x00, 0x00, 0x00, 0x1f, 0x00 };
static scsiblk inquiryB = { inquiryC, sizeof (inquiryC) };
@ -180,14 +187,15 @@ static scsiblk inquiryB = { inquiryC, sizeof (inquiryC) };
#define get_IN_trancepareny(in) getbitfield(in+0x20, 1, 5)
#define get_IN_flatbed(in) getbitfield(in+0x20, 1, 6)
#define get_IN_adf(in) getbitfield(in+0x20, 1, 7)
#define get_IN_buffer_bytes(in) getnbyte(in + 0x22, 4)
#define get_IN_has_set_subwindow(in) (getnbyte(in+0x2a, 2)) & 1
#define get_IN_has_imprinter(in) (getnbyte(in+0x2a, 2)) & 2
#define get_IN_has_hw_status(in) (getnbyte(in+0x2a, 2)) & 4
#define get_IN_brightness_steps(in) getnbyte(in+0x52, 1)
#define get_IN_threshold_steps(in) getnbyte(in+0x53, 1)
#define get_IN_contrast_steps(in) getnbyte(in+0x54, 1)
#define get_IN_ipc_bw_reverse(in) getbitfield(in+0x58, 1, 6)
#define get_IN_ipc_auto1(in) getbitfield(in+0x58, 1, 5)
#define get_IN_ipc_bw_reverse(in) getbitfield(in+0x58, 1, 7)
#define get_IN_ipc_auto1(in) getbitfield(in+0x58, 1, 6)
#define get_IN_ipc_auto2(in) getbitfield(in+0x58, 1, 5)
#define get_IN_ipc_outline_extraction(in) getbitfield(in+0x58, 1, 4)
#define get_IN_ipc_image_emphasis(in) getbitfield(in+0x58, 1, 3)

Plik diff jest za duży Load Diff

Wyświetl plik

@ -358,6 +358,8 @@ struct fujitsu
/** fi-???? */
#define MODEL_FI 6
#define MODEL_3097 7
/** Fujitsu M3092DCd (300x600dpi, color, duplex, FB and ADF) */
#define MODEL_3092 8
/* A note regarding the MODEL... constants. There's a place in
* identifyScanner() where the INQUIRY data is parsed and the model
@ -482,12 +484,14 @@ static int grabScanner (struct fujitsu *s);
static int freeScanner (struct fujitsu *s);
static int waitScanner (struct fujitsu *s);
static int wait_scanner (struct fujitsu *s);
static int object_position (struct fujitsu *s, int i_load);
static SANE_Status doCancel (struct fujitsu *scanner);
static SANE_Status do_reset (struct fujitsu *scanner);
/*static int objectDischarge (struct fujitsu *s);*/
static int fujitsu_set_sleep_mode(struct fujitsu *s);
@ -512,6 +516,12 @@ static unsigned int reader3091ColorSimplex (struct fujitsu *scanner,
FILE * fd);
static unsigned int reader3091GrayDuplex (struct fujitsu *scanner, FILE * fd,
FILE * fd2);
static unsigned int reader3092ColorDuplex (struct fujitsu *scanner, FILE * fd,
FILE * fd2);
static unsigned int reader3092ColorSimplex (struct fujitsu *scanner,
FILE * fd);
static unsigned int reader3092GrayDuplex (struct fujitsu *scanner, FILE * fd,
FILE * fd2);
static unsigned int reader_gray_duplex_sequential (struct fujitsu *scanner,
FILE * fd, FILE * fd2);
static unsigned int reader_gray_duplex_alternate (struct fujitsu *scanner,
@ -530,10 +540,12 @@ static SANE_Status attachOne (const char *name);
static int modelMatch (const char *product);
static void setDefaults3091 (struct fujitsu *scanner);
static void setDefaults3092 (struct fujitsu *scanner);
static void setDefaults3096 (struct fujitsu *scanner);
static void setDefaultsSP15 (struct fujitsu *scanner);
static SANE_Status setMode3091 (struct fujitsu *scanner, int mode);
static SANE_Status setMode3092 (struct fujitsu *scanner, int mode);
static SANE_Status setMode3096 (struct fujitsu *scanner, int mode);
static SANE_Status setModeSP15 (struct fujitsu *scanner, int mode);

Wyświetl plik

@ -29,9 +29,11 @@ FUJITSU fi-4340C
.br
FUJITSU M3091DCd BF21
.RE
FUJITSU M3092DCd
.RE
.P
The driver supports lineart, halftone, grayscale, and color
scanning depending on hardware capabiliites.
(3091 and 3092) scanning depending on hardware capabiliites.
The "Fujitsu" driver is a first attempt at integrating support
for all Fujitsu scanners - previously available as different
@ -167,6 +169,7 @@ with credit to the unnamed author of the coolscan driver
.br
3091 driver: Frederik Ramm <frederik@remote.org>
3093GD,fi-4340C, ipc and cmp options: Oliver Schirrmeister <oschirr@abm.de>
3092 patch: Mario Goppold <mgoppold@tbzpariv.tcc-chemnitz.de>
.SH LIMITATIONS
Only tested with Linux 2.4
@ -176,3 +179,4 @@ I'm sure there are plenty, and not too well hidden,
but I haven't seen them yet.
I don't know if the ScanPartner 15C still works, because I'm not able
to test it.
3091/3092 don't support halftone