summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog5
-rw-r--r--debian/control1
-rw-r--r--debian/patches/0011-test.patch34
-rw-r--r--debian/patches/0035-trim-libraries-in-sane-backends.pc.in.patch24
-rw-r--r--debian/patches/0045-disable_lock_test_at_build_time.patch27
-rw-r--r--debian/patches/0055-Fix_build_error.patch36
-rw-r--r--debian/patches/0165-respect_local_only_parameter.patch768
-rw-r--r--debian/patches/0170-return_empty_list_when_local_devices_requested.patch43
-rw-r--r--debian/patches/0180-gt68xx_fix_use-after-free_two_memleaks.patch55
-rw-r--r--debian/patches/0185-Change_output_from_sane-find-scanner.patch51
-rw-r--r--debian/patches/0190-remove-kernel-driver-for-plustek_pp.patch2949
-rw-r--r--debian/patches/0195-genesys_fix_total_file_size_exceeding.patch100
-rw-r--r--debian/patches/0600-scanimage_manpage.patch21
-rw-r--r--debian/patches/series11
14 files changed, 4 insertions, 4121 deletions
diff --git a/debian/changelog b/debian/changelog
index 032c26d..703a316 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-sane-backends (1.2.1-1) UNRELEASED; urgency=medium
+sane-backends (1.2.1-1) unstable; urgency=medium
* New upstream release:
- Remove not longer needed patches:
@@ -12,6 +12,7 @@ sane-backends (1.2.1-1) UNRELEASED; urgency=medium
+ 0100-source_spelling.patch
* debian/control:
- Remove obsolete package Depends lsb-base.
+ - Add libpng-dev to Build-Depends.
* Declare compliance with Debian Policy 4.6.2.0 (No changes needed).
* debian/copyright:
- Refresh to the new upstream release.
@@ -23,7 +24,7 @@ sane-backends (1.2.1-1) UNRELEASED; urgency=medium
- debian/NEWS
- debian/libsane1.NEWS
- -- Jörg Frings-Fürst <debian@jff.email> Sun, 12 Feb 2023 17:37:55 +0100
+ -- Jörg Frings-Fürst <debian@jff.email> Mon, 13 Feb 2023 19:25:08 +0100
sane-backends (1.1.1-6) unstable; urgency=medium
diff --git a/debian/control b/debian/control
index 89de737..7dcc113 100644
--- a/debian/control
+++ b/debian/control
@@ -17,6 +17,7 @@ Build-Depends:
libieee1284-3-dev [!hurd-i386],
libjpeg-dev,
libltdl-dev,
+ libpng-dev,
libpoppler-glib-dev,
libsnmp-dev [!kfreebsd-any],
libsystemd-dev [linux-any],
diff --git a/debian/patches/0011-test.patch b/debian/patches/0011-test.patch
deleted file mode 100644
index d4d4590..0000000
--- a/debian/patches/0011-test.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: trunk/frontend/jpegtopdf.c
-===================================================================
---- trunk.orig/frontend/jpegtopdf.c
-+++ trunk/frontend/jpegtopdf.c
-@@ -184,6 +184,7 @@ static SANE_Int _get_current_time( struc
- SANE_Int ret = SANE_ERR;
- time_t t;
- long tz;
-+ long timezone = 0;
-
- if ( pt == NULL || sign_c == NULL || ptz_h == NULL || ptz_m == NULL ) {
- goto EXIT;
-@@ -201,7 +202,7 @@ static SANE_Int _get_current_time( struc
- goto EXIT;
- }
- /* get time difference ( OHH'mm' ) */
-- tz = timezone;
-+ tz = timezone;
- if ( tz > 0 ) {
- *sign_c = '-';
- }
-Index: trunk/configure.ac
-===================================================================
---- trunk.orig/configure.ac
-+++ trunk/configure.ac
-@@ -671,7 +671,7 @@ ALL_BACKENDS="abaton agfafocus apple art
- mustek_usb mustek_usb2 nec net niash pie pieusb pint \
- pixma plustek plustek_pp qcam ricoh ricoh2 rts8891 s9036 \
- sceptre sharp sm3600 sm3840 snapscan sp15c st400 \
-- stv680 tamarack teco1 teco2 teco3 test u12 umax
-+ stv680 tamarack teco1 teco2 teco3 test u12 umax \
- umax_pp umax1220u v4l xerox_mfp p5"
-
- # If user specifies backends manually then cause configure
diff --git a/debian/patches/0035-trim-libraries-in-sane-backends.pc.in.patch b/debian/patches/0035-trim-libraries-in-sane-backends.pc.in.patch
deleted file mode 100644
index 7452b33..0000000
--- a/debian/patches/0035-trim-libraries-in-sane-backends.pc.in.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Markus Koschany <apo@gambaru.de>
-Date: Sun, 30 Jun 2013 19:13:54 +0200
-Subject: trim libraries in sane-backends.pc.in
-
-Update the original sane-config_and_pkg-config_fixes.patch from Julien BLACHE.
-Patching RPATH related flags is no longer necessary. Still trim the libraries
-in sane-backends.pc.in to the bare minimum for what is needed for libsane.
----
- tools/sane-backends.pc.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/tools/sane-backends.pc.in
-+++ b/tools/sane-backends.pc.in
-@@ -2,8 +2,8 @@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
- includedir=@includedir@
--ldflags=@LDFLAGS@ @GPHOTO2_LDFLAGS@
--libs=@LIBS@ @DL_LIBS@ @LIBV4L_LIBS@ @MATH_LIB@ @TIFF_LIBS@ @JPEG_LIBS@ @GPHOTO2_LIBS@ @SOCKET_LIBS@ @AVAHI_LIBS@ @USB_LIBS@ @SCSI_LIBS@ @RESMGR_LIBS@
-+ldflags=@LDFLAGS@
-+libs=@LIBS@
-
- Name: SANE Backends
- Description: Backends for SANE, the universal scanner interface
diff --git a/debian/patches/0045-disable_lock_test_at_build_time.patch b/debian/patches/0045-disable_lock_test_at_build_time.patch
deleted file mode 100644
index 8aeccf8..0000000
--- a/debian/patches/0045-disable_lock_test_at_build_time.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Description: Disable lock test at buildtime
-Author: Jörg Frings-Fürst <debian@jff.emaill>
-Forwarded: not-needed
-Last-Update: 2020-08-28
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/acinclude.m4
-===================================================================
---- trunk.orig/acinclude.m4
-+++ trunk/acinclude.m4
-@@ -356,11 +356,11 @@ AC_DEFUN([SANE_CHECK_LOCKING],
- touch sanetest.file
- chgrp $LOCKPATH_GROUP sanetest.file 2>/dev/null || lasterror=$?
- rm -f sanetest.file
-- if test ! -z "$lasterror"; then
-- AC_MSG_WARN([Group $LOCKPATH_GROUP does not exist on this system.])
-- AC_MSG_WARN([Locking feature will be disabled.])
-- use_locking=no
-- fi
-+# if test ! -z "$lasterror"; then
-+# AC_MSG_WARN([Group $LOCKPATH_GROUP does not exist on this system.])
-+# AC_MSG_WARN([Locking feature will be disabled.])
-+# use_locking=no
-+# fi
- fi
- if test $use_locking = yes ; then
- INSTALL_LOCKPATH=install-lockpath
diff --git a/debian/patches/0055-Fix_build_error.patch b/debian/patches/0055-Fix_build_error.patch
deleted file mode 100644
index b1b09b1..0000000
--- a/debian/patches/0055-Fix_build_error.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Description: Fix build error
-Author: Jörg Frings-Fürst <debian@jff.email>
-Forwarded: not-needed
-Last-Update: 2020-08-28
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/po/POTFILES.in
-===================================================================
---- trunk.orig/po/POTFILES.in
-+++ trunk/po/POTFILES.in
-@@ -65,7 +65,7 @@ backend/p5.c
- backend/p5.h
- backend/p5_device.c
- backend/pixma/pixma.c
--backend/pixma/pixma_sane_options.c
-+backend/pixma/pixma_sane_options.c
- backend/plustek.c
- backend/plustek_pp.c
- backend/pnm.c
-Index: trunk/backend/Makefile.am
-===================================================================
---- trunk.orig/backend/Makefile.am
-+++ trunk/backend/Makefile.am
-@@ -947,10 +947,10 @@ $(srcdir)/pixma/pixma.c: \
-
- $(srcdir)/pixma/pixma_sane_options.h:
- @echo Generating $@ from $(@D)/pixma.c
-- @(cd $(@D); python scripts/pixma_gen_options.py h < pixma.c > $(@F))
-+ @(cd $(@D); python3 scripts/pixma_gen_options.py h < pixma.c > $(@F))
- $(srcdir)/pixma/pixma_sane_options.c:
- @echo Generating $@ from $(@D)/pixma.c
-- @(cd $(@D); python scripts/pixma_gen_options.py < pixma.c > $(@F))
-+ @(cd $(@D); python3 scripts/pixma_gen_options.py < pixma.c > $(@F))
-
- EXTRA_DIST += pixma/pixma_sane_options.c
- EXTRA_DIST += pixma/pixma_sane_options.h
diff --git a/debian/patches/0165-respect_local_only_parameter.patch b/debian/patches/0165-respect_local_only_parameter.patch
deleted file mode 100644
index f73a731..0000000
--- a/debian/patches/0165-respect_local_only_parameter.patch
+++ /dev/null
@@ -1,768 +0,0 @@
-Description: respect 'local_only' parameter of sane_get_devices()
-Author: Barnabás Pőcze <pobrn@protonmail.com>
-Origin: backport, https://gitlab.com/sane-project/backends/-/commit/245564dffe96ddf0fd1c703c48973cd35fddd268
-Bug: https://gitlab.com/sane-project/backends/-/merge_requests/502/
-Forwarded: no-needed
-Last-Update: 2020-09-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/backend/dell1600n_net.c
-===================================================================
---- trunk.orig/backend/dell1600n_net.c
-+++ trunk/backend/dell1600n_net.c
-@@ -288,8 +288,7 @@ sane_exit (void)
- /***********************************************************/
-
- SANE_Status
--sane_get_devices (const SANE_Device *** device_list,
-- SANE_Bool __sane_unused__ local_only)
-+sane_get_devices (const SANE_Device *** device_list, SANE_Bool local_only)
- {
-
- int ret;
-@@ -312,6 +311,10 @@ sane_get_devices (const SANE_Device ***
- sock = 0;
- pDevice = NULL;
- optYes = 1;
-+
-+ if (local_only)
-+ return ret;
-+
- InitComBuf (&queryPacket);
-
- /* clear previous results */
-Index: trunk/backend/epson2.c
-===================================================================
---- trunk.orig/backend/epson2.c
-+++ trunk/backend/epson2.c
-@@ -813,10 +813,11 @@ attach_one_pio(const char *dev)
- }
-
- static SANE_Status
--attach_one_config(SANEI_Config __sane_unused__ *config, const char *line)
-+attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
-+ void *data)
- {
- int vendor, product;
--
-+ SANE_Bool local_only = *(SANE_Bool*) data;
- int len = strlen(line);
-
- DBG(7, "%s: len = %d, line = %s\n", __func__, len, line);
-@@ -847,13 +848,16 @@ attach_one_config(SANEI_Config __sane_un
-
- } else if (strncmp(line, "net", 3) == 0) {
-
-- /* remove the "net" sub string */
-- const char *name = sanei_config_skip_whitespace(line + 3);
--
-- if (strncmp(name, "autodiscovery", 13) == 0)
-- e2_network_discovery();
-- else
-- attach_one_net(name);
-+ if (!local_only) {
-+ /* remove the "net" sub string */
-+ const char *name =
-+ sanei_config_skip_whitespace(line + 3);
-+
-+ if (strncmp(name, "autodiscovery", 13) == 0)
-+ e2_network_discovery();
-+ else
-+ attach_one_net(name);
-+ }
-
- } else if (strncmp(line, "pio", 3) == 0) {
-
-@@ -889,14 +893,14 @@ free_devices(void)
- }
-
- static void
--probe_devices(void)
-+probe_devices(SANE_Bool local_only)
- {
- DBG(5, "%s\n", __func__);
-
- free_devices();
-
- sanei_configure_attach(EPSON2_CONFIG_FILE, NULL,
-- attach_one_config);
-+ attach_one_config, &local_only);
- }
-
- SANE_Status
-@@ -926,14 +930,14 @@ sane_exit(void)
- }
-
- SANE_Status
--sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only)
-+sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only)
- {
- Epson_Device *dev;
- int i;
-
- DBG(5, "%s\n", __func__);
-
-- probe_devices();
-+ probe_devices(local_only);
-
- devlist = malloc((num_devices + 1) * sizeof(devlist[0]));
- if (!devlist) {
-@@ -1470,7 +1474,7 @@ sane_open(SANE_String_Const name, SANE_H
- /* probe if empty device name provided */
- if (l == 0) {
-
-- probe_devices();
-+ probe_devices(SANE_FALSE);
-
- if (first_dev == NULL) {
- DBG(1, "no device detected\n");
-@@ -1507,7 +1511,7 @@ sane_open(SANE_String_Const name, SANE_H
- */
-
- if (first_dev == NULL)
-- probe_devices();
-+ probe_devices(SANE_FALSE);
-
- s = device_detect(name, SANE_EPSON_NODEV, 0, &status);
- if (s == NULL) {
-Index: trunk/backend/epsonds.c
-===================================================================
---- trunk.orig/backend/epsonds.c
-+++ trunk/backend/epsonds.c
-@@ -481,10 +481,11 @@ attach_one_net(const char *dev)
-
-
- static SANE_Status
--attach_one_config(SANEI_Config __sane_unused__ *config, const char *line)
-+attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
-+ void *data)
- {
- int vendor, product;
--
-+ SANE_Bool local_only = *(SANE_Bool*) data;
- int len = strlen(line);
-
- DBG(7, "%s: len = %d, line = %s\n", __func__, len, line);
-@@ -513,13 +514,16 @@ attach_one_config(SANEI_Config __sane_un
-
- } else if (strncmp(line, "net", 3) == 0) {
-
-- /* remove the "net" sub string */
-- const char *name = sanei_config_skip_whitespace(line + 3);
--
-- if (strncmp(name, "autodiscovery", 13) == 0)
-- e2_network_discovery();
-- else
-- attach_one_net(name);
-+ if (!local_only) {
-+ /* remove the "net" sub string */
-+ const char *name =
-+ sanei_config_skip_whitespace(line + 3);
-+
-+ if (strncmp(name, "autodiscovery", 13) == 0)
-+ e2_network_discovery();
-+ else
-+ attach_one_net(name);
-+ }
-
- } else {
- DBG(0, "unable to parse config line: %s\n", line);
-@@ -545,12 +549,13 @@ free_devices(void)
- }
-
- static void
--probe_devices(void)
-+probe_devices(SANE_Bool local_only)
- {
- DBG(5, "%s\n", __func__);
-
- free_devices();
-- sanei_configure_attach(EPSONDS_CONFIG_FILE, NULL, attach_one_config);
-+ sanei_configure_attach(EPSONDS_CONFIG_FILE, NULL,
-+ attach_one_config, &local_only);
- }
-
- /**** SANE API ****/
-@@ -581,14 +586,14 @@ sane_exit(void)
- }
-
- SANE_Status
--sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only)
-+sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only)
- {
- int i;
- epsonds_device *dev;
-
- DBG(5, "** %s\n", __func__);
-
-- probe_devices();
-+ probe_devices(local_only);
-
- devlist = malloc((num_devices + 1) * sizeof(devlist[0]));
- if (!devlist) {
-@@ -793,7 +798,7 @@ sane_open(SANE_String_Const name, SANE_H
- /* probe if empty device name provided */
- if (name[0] == '\0') {
-
-- probe_devices();
-+ probe_devices(SANE_FALSE);
-
- if (first_dev == NULL) {
- DBG(1, "no devices detected\n");
-Index: trunk/backend/escl/escl.c
-===================================================================
---- trunk.orig/backend/escl/escl.c
-+++ trunk/backend/escl/escl.c
-@@ -383,7 +383,8 @@ sane_exit(void)
- * \return escl_add_in_list(escl_device) if the parsing worked, SANE_STATUS_GOOD otherwise.
- */
- static SANE_Status
--attach_one_config(SANEI_Config __sane_unused__ *config, const char *line)
-+attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
-+ void __sane_unused__ *data)
- {
- int port = 0;
- SANE_Status status;
-@@ -487,7 +488,8 @@ sane_get_devices(const SANE_Device ***de
-
- if (device_list == NULL)
- return (SANE_STATUS_INVAL);
-- status = sanei_configure_attach(ESCL_CONFIG_FILE, NULL, attach_one_config);
-+ status = sanei_configure_attach(ESCL_CONFIG_FILE, NULL,
-+ attach_one_config, NULL);
- if (status != SANE_STATUS_GOOD)
- return (status);
- escl_devices(&status);
-Index: trunk/backend/genesys/genesys.cpp
-===================================================================
---- trunk.orig/backend/genesys/genesys.cpp
-+++ trunk/backend/genesys/genesys.cpp
-@@ -5186,7 +5186,8 @@ static SANE_Status attach_one_device(SAN
-
- // this function is passed to C API, it must not throw
- static SANE_Status
--config_attach_genesys(SANEI_Config __sane_unused__ *config, const char *devname) noexcept
-+config_attach_genesys(SANEI_Config __sane_unused__ *config, const char *devname,
-+ void __sane_unused__ *data) noexcept
- {
- /* the devname has been processed and is ready to be used
- * directly. Since the backend is an USB only one, we can
-@@ -5214,7 +5215,8 @@ static void probe_genesys_devices()
- config.values = nullptr;
- config.count = 0;
-
-- auto status = sanei_configure_attach(GENESYS_CONFIG_FILE, &config, config_attach_genesys);
-+ auto status = sanei_configure_attach(GENESYS_CONFIG_FILE, &config,
-+ config_attach_genesys, NULL);
- if (status == SANE_STATUS_ACCESS_DENIED) {
- dbg.vlog(DBG_error0, "Critical error: Couldn't access configuration file '%s'",
- GENESYS_CONFIG_FILE);
-Index: trunk/backend/kodakaio.c
-===================================================================
---- trunk.orig/backend/kodakaio.c
-+++ trunk/backend/kodakaio.c
-@@ -2513,10 +2513,11 @@ attach_one_net(const char *dev, unsigned
- }
-
- static SANE_Status
--attach_one_config(SANEI_Config __sane_unused__ *config, const char *line)
-+attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
-+ void *data)
- {
- int vendor, product, timeout;
--
-+ SANE_Bool local_only = *(SANE_Bool*) data;
- int len = strlen(line);
-
- DBG(7, "%s: len = %d, line = %s\n", __func__, len, line);
-@@ -2550,27 +2551,30 @@ attach_one_config(SANEI_Config __sane_un
-
- } else if (strncmp(line, "net", 3) == 0) {
-
-- /* remove the "net" sub string */
-- const char *name = sanei_config_skip_whitespace(line + 3);
-- char IP[1024];
-- unsigned int model = 0;
--
-- if (strncmp(name, "autodiscovery", 13) == 0) {
--
--#if WITH_AVAHI
-- DBG (30, "%s: Initiating network autodiscovery via avahi\n", __func__);
-- kodak_network_discovery(NULL);
--#else
-- DBG (20, "%s: Network autodiscovery not done because not configured with avahi.\n", __func__);
--#endif
--
-- } else if (sscanf(name, "%s %x", IP, &model) == 2) {
-- DBG(30, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model);
-- attach_one_net(IP, model);
-- } else {
-+ if (!local_only) {
-+ /* remove the "net" sub string */
-+ const char *name =
-+ sanei_config_skip_whitespace(line + 3);
-+ char IP[1024];
-+ unsigned int model = 0;
-+
-+ if (strncmp(name, "autodiscovery", 13) == 0) {
-+
-+ #if WITH_AVAHI
-+ DBG (30, "%s: Initiating network autodiscovery via avahi\n", __func__);
-+ kodak_network_discovery(NULL);
-+ #else
-+ DBG (20, "%s: Network autodiscovery not done because not configured with avahi.\n", __func__);
-+ #endif
-+
-+ } else if (sscanf(name, "%s %x", IP, &model) == 2) {
-+ DBG(30, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model);
-+ attach_one_net(IP, model);
-+ } else {
- DBG(1, "%s: net entry %s may be a host name?\n", __func__, name);
- attach_one_net(name, 0);
- }
-+ }
-
- } else if (sscanf(line, "snmp-timeout %i\n", &timeout)) {
- /* Timeout for auto network discovery */
-@@ -2646,7 +2650,7 @@ sane_exit(void)
- }
-
- SANE_Status
--sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only)
-+sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only)
- {
- Kodak_Device *dev, *s, *prev=0;
- int i;
-@@ -2662,7 +2666,7 @@ sane_get_devices(const SANE_Device ***de
-
- /* Read the config, mark each device as found, possibly add new devs */
- sanei_configure_attach(KODAKAIO_CONFIG_FILE, NULL,
-- attach_one_config);
-+ attach_one_config, &local_only);
-
- /*delete missing scanners from list*/
- for (s = first_dev; s;) {
-Index: trunk/backend/magicolor.c
-===================================================================
---- trunk.orig/backend/magicolor.c
-+++ trunk/backend/magicolor.c
-@@ -2157,10 +2157,11 @@ attach_one_net(const char *dev, unsigned
- }
-
- static SANE_Status
--attach_one_config(SANEI_Config __sane_unused__ *config, const char *line)
-+attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
-+ void *data)
- {
- int vendor, product, timeout;
--
-+ SANE_Bool local_only = *(SANE_Bool*) data;
- int len = strlen(line);
-
- DBG(7, "%s: len = %d, line = %s\n", __func__, len, line);
-@@ -2189,24 +2190,27 @@ attach_one_config(SANEI_Config __sane_un
-
- } else if (strncmp(line, "net", 3) == 0) {
-
-- /* remove the "net" sub string */
-- const char *name = sanei_config_skip_whitespace(line + 3);
-- char IP[1024];
-- unsigned int model = 0;
--
-- if (strncmp(name, "autodiscovery", 13) == 0) {
-- DBG (50, "%s: Initiating network autodiscovervy via SNMP\n", __func__);
-- mc_network_discovery(NULL);
-- } else if (sscanf(name, "%s %x", IP, &model) == 2) {
-- DBG(50, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model);
-- attach_one_net(IP, model);
-- } else {
-- /* use SNMP to detect the type. If not successful,
-- * add the host with model type 0 */
-- DBG(50, "%s: Using network device on IP %s, trying to autodetect model\n", __func__, IP);
-- if (mc_network_discovery(name)==0) {
-- DBG(1, "%s: Autodetecting device model failed, using default model\n", __func__);
-- attach_one_net(name, 0);
-+ if (!local_only) {
-+ /* remove the "net" sub string */
-+ const char *name =
-+ sanei_config_skip_whitespace(line + 3);
-+ char IP[1024];
-+ unsigned int model = 0;
-+
-+ if (strncmp(name, "autodiscovery", 13) == 0) {
-+ DBG (50, "%s: Initiating network autodiscovervy via SNMP\n", __func__);
-+ mc_network_discovery(NULL);
-+ } else if (sscanf(name, "%s %x", IP, &model) == 2) {
-+ DBG(50, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model);
-+ attach_one_net(IP, model);
-+ } else {
-+ /* use SNMP to detect the type. If not successful,
-+ * add the host with model type 0 */
-+ DBG(50, "%s: Using network device on IP %s, trying to autodetect model\n", __func__, IP);
-+ if (mc_network_discovery(name)==0) {
-+ DBG(1, "%s: Autodetecting device model failed, using default model\n", __func__);
-+ attach_one_net(name, 0);
-+ }
- }
- }
-
-@@ -2279,7 +2283,7 @@ sane_exit(void)
- }
-
- SANE_Status
--sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only)
-+sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only)
- {
- Magicolor_Device *dev, *s, *prev=0;
- int i;
-@@ -2295,7 +2299,7 @@ sane_get_devices(const SANE_Device ***de
-
- /* Read the config, mark each device as found, possibly add new devs */
- sanei_configure_attach(MAGICOLOR_CONFIG_FILE, NULL,
-- attach_one_config);
-+ attach_one_config, &local_only);
-
- /*delete missing scanners from list*/
- for (s = first_dev; s;) {
-Index: trunk/backend/p5.c
-===================================================================
---- trunk.orig/backend/p5.c
-+++ trunk/backend/p5.c
-@@ -1566,7 +1566,8 @@ probe_p5_devices (void)
- config.count = NUM_CFG_OPTIONS;
-
- /* generic configure and attach function */
-- status = sanei_configure_attach (P5_CONFIG_FILE, &config, config_attach);
-+ status = sanei_configure_attach (P5_CONFIG_FILE, &config,
-+ config_attach, NULL);
- /* free allocated options */
- for (i = 0; i < NUM_CFG_OPTIONS; i++)
- {
-@@ -1590,7 +1591,8 @@ probe_p5_devices (void)
- * SANE_STATUS_INVAL in case of error
- */
- static SANE_Status
--config_attach (SANEI_Config * config, const char *devname)
-+config_attach (SANEI_Config __sane_unused__ * config, const char *devname,
-+ void __sane_unused__ *data)
- {
- /* currently, the config is a global variable so config is useless here */
- /* the correct thing would be to have a generic sanei_attach_matching_devices
-Index: trunk/backend/p5.h
-===================================================================
---- trunk.orig/backend/p5.h
-+++ trunk/backend/p5.h
-@@ -195,7 +195,8 @@ typedef struct P5_Session
-
- static SANE_Status probe_p5_devices (void);
- static P5_Model *probe (const char *devicename);
--static SANE_Status config_attach (SANEI_Config * config, const char *devname);
-+static SANE_Status config_attach (SANEI_Config * config, const char *devname,
-+ void *data);
- static SANE_Status attach_p5 (const char *name, SANEI_Config * config);
- static SANE_Status init_options (struct P5_Session *session);
- static SANE_Status compute_parameters (struct P5_Session *session);
-Index: trunk/backend/pixma/pixma.c
-===================================================================
---- trunk.orig/backend/pixma/pixma.c
-+++ trunk/backend/pixma/pixma.c
-@@ -159,10 +159,11 @@ static void mark_all_button_options_cach
- ss -> button_option_is_cached[i] = 1;
- }
-
--static SANE_Status config_attach_pixma(SANEI_Config * config, const char *devname)
-+static SANE_Status config_attach_pixma(SANEI_Config __sane_unused__ * config,
-+ const char *devname,
-+ void __sane_unused__ *data)
- {
- int i;
-- UNUSED(config);
- for (i=0; i < (MAX_CONF_DEVICES -1); i++)
- {
- if(conf_devices[i] == NULL)
-@@ -1656,8 +1657,8 @@ sane_init (SANE_Int * version_code, SANE
- config.descriptors = NULL;
- config.values = NULL;
-
-- if (sanei_configure_attach(PIXMA_CONFIG_FILE, &config, config_attach_pixma) !=
-- SANE_STATUS_GOOD)
-+ if (sanei_configure_attach(PIXMA_CONFIG_FILE, &config,
-+ config_attach_pixma, NULL) != SANE_STATUS_GOOD)
- PDBG(pixma_dbg(2, "Could not read pixma configuration file: %s\n",
- PIXMA_CONFIG_FILE));
-
-Index: trunk/backend/rts8891.c
-===================================================================
---- trunk.orig/backend/rts8891.c
-+++ trunk/backend/rts8891.c
-@@ -217,7 +217,7 @@ static Rts8891_Config rtscfg;
- /* ------------------------------------------------------------------------- */
- static SANE_Status probe_rts8891_devices (void);
- static SANE_Status config_attach_rts8891 (SANEI_Config * config,
-- const char *devname);
-+ const char *devname, void *data);
- static SANE_Status attach_rts8891 (const char *name);
- static SANE_Status set_lamp_brightness (struct Rts8891_Device *dev,
- int level);
-@@ -2374,7 +2374,7 @@ probe_rts8891_devices (void)
-
- /* generic configure and attach function */
- status = sanei_configure_attach (RTS8891_CONFIG_FILE, &config,
-- config_attach_rts8891);
-+ config_attach_rts8891, NULL);
- /* free allocated options */
- for (i = 0; i < NUM_CFG_OPTIONS; i++)
- {
-@@ -2398,7 +2398,8 @@ probe_rts8891_devices (void)
- * SANE_STATUS_INVAL in case of error
- */
- static SANE_Status
--config_attach_rts8891 (SANEI_Config * config, const char *devname)
-+config_attach_rts8891 (SANEI_Config * config, const char *devname,
-+ void __sane_unused__ *data)
- {
- /* currently, the config is a global variable so config is useless here */
- /* the correct thing would be to have a generic sanei_attach_matching_devices
-Index: trunk/backend/umax_pp.c
-===================================================================
---- trunk.orig/backend/umax_pp.c
-+++ trunk/backend/umax_pp.c
-@@ -419,7 +419,8 @@ umax_pp_auto_attach (SANEI_Config * conf
- * device name to use for attach try.
- */
- static SANE_Status
--umax_pp_configure_attach (SANEI_Config * config, const char *devname)
-+umax_pp_configure_attach (SANEI_Config * config, const char *devname,
-+ void __sane_unused__ *data)
- {
- const char *lp;
- SANE_Char *token;
-@@ -961,7 +962,7 @@ sane_init (SANE_Int * version_code, SANE
-
- /* generic configure and attach function */
- status = sanei_configure_attach (UMAX_PP_CONFIG_FILE, &config,
-- umax_pp_configure_attach);
-+ umax_pp_configure_attach, NULL);
-
- /* free option descriptors */
- for (i = 0; i < NUM_CFG_OPTIONS; i++)
-Index: trunk/backend/xerox_mfp.c
-===================================================================
---- trunk.orig/backend/xerox_mfp.c
-+++ trunk/backend/xerox_mfp.c
-@@ -1028,7 +1028,8 @@ list_one_device(SANE_String_Const devnam
-
- /* SANE API ignores return code of this callback */
- static SANE_Status
--list_conf_devices(UNUSED(SANEI_Config *config), const char *devname)
-+list_conf_devices(SANEI_Config __sane_unused__ *config, const char *devname,
-+ void __sane_unused__ *data)
- {
- return tr_from_devname(devname)->configure_device(devname, list_one_device);
- }
-@@ -1080,7 +1081,7 @@ sane_get_devices(const SANE_Device *** d
- config.count = 0;
- config.descriptors = NULL;
- config.values = NULL;
-- sanei_configure_attach(XEROX_CONFIG_FILE, &config, list_conf_devices);
-+ sanei_configure_attach(XEROX_CONFIG_FILE, &config, list_conf_devices, NULL);
-
- for (dev_count = 0, dev = devices_head; dev; dev = dev->next)
- dev_count++;
-Index: trunk/include/sane/sanei_config.h
-===================================================================
---- trunk.orig/include/sane/sanei_config.h
-+++ trunk/include/sane/sanei_config.h
-@@ -166,7 +166,9 @@ typedef struct
- extern SANE_Status sanei_configure_attach (
- const char *config_file,
- SANEI_Config *config,
-- SANE_Status (*config_attach)(SANEI_Config *config, const char *devname)
-+ SANE_Status (*config_attach)(SANEI_Config *config, const char *devname,
-+ void *data),
-+ void *data
- );
-
- /** Return the list of config directories, extracted from the SANE_CONFIG_DIR
-Index: trunk/sanei/sanei_config.c
-===================================================================
---- trunk.orig/sanei/sanei_config.c
-+++ trunk/sanei/sanei_config.c
-@@ -239,7 +239,8 @@ sanei_config_read (char *str, int n, FIL
- SANE_Status
- sanei_configure_attach (const char *config_file, SANEI_Config * config,
- SANE_Status (*attach) (SANEI_Config * config,
-- const char *devname))
-+ const char *devname, void *data),
-+ void *data)
- {
- SANE_Char line[PATH_MAX];
- SANE_Char *token, *string;
-@@ -443,7 +444,7 @@ sanei_configure_attach (const char *conf
- DBG (3, "sanei_configure_attach: trying to attach with '%s'\n",
- lp2);
- if(attach!=NULL)
-- attach (config, lp2);
-+ attach (config, lp2, data);
- }
- }
-
-Index: trunk/testsuite/sanei/sanei_config_test.c
-===================================================================
---- trunk.orig/testsuite/sanei/sanei_config_test.c
-+++ trunk/testsuite/sanei/sanei_config_test.c
-@@ -63,7 +63,8 @@ static const SANE_String_Const string_li
- static char *lastdevname = NULL;
-
- static SANE_Status
--check_config_attach (SANEI_Config * config, const char *devname)
-+check_config_attach (SANEI_Config * config, const char *devname,
-+ void __sane_unused__ *data)
- {
- /* silence compiler warning for now */
- if (config == NULL)
-@@ -97,7 +98,8 @@ inexistent_config (void)
- config.descriptors = NULL;
- config.values = NULL;
- status = sanei_configure_attach (CONFIG_PATH
-- "/data/inexistent.conf", &config, NULL);
-+ "/data/inexistent.conf", &config,
-+ NULL, NULL);
-
- /* check results */
- assert (status != SANE_STATUS_GOOD);
-@@ -114,7 +116,7 @@ null_config (void)
-
- status =
- sanei_configure_attach (CONFIG_PATH "/data/umax_pp.conf", NULL,
-- check_config_attach);
-+ check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -130,7 +132,7 @@ null_attach (void)
- SANE_Status status;
-
- status = sanei_configure_attach (CONFIG_PATH
-- "/data/umax_pp.conf", NULL, NULL);
-+ "/data/umax_pp.conf", NULL, NULL, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -151,7 +153,7 @@ empty_config (void)
- config.values = NULL;
- status =
- sanei_configure_attach (CONFIG_PATH "/data/empty.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -206,7 +208,7 @@ string_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/string.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -250,7 +252,7 @@ int_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/int.conf", &config,
-- check_config_attach);
-+ check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -293,7 +295,7 @@ wrong_range_int_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/wrong-range.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_INVAL);
-@@ -336,7 +338,7 @@ word_array_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/word-array.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -382,7 +384,7 @@ string_list_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/string-list.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -428,7 +430,7 @@ wrong_string_list_option (void)
- status =
- sanei_configure_attach (CONFIG_PATH
- "/data/wrong-string-list.conf", &config,
-- check_config_attach);
-+ check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_INVAL);
-@@ -563,7 +565,7 @@ umax_pp (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/umax_pp.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -631,7 +633,7 @@ wrong_bool_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/wrong-boolean.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_INVAL);
-@@ -696,7 +698,7 @@ bool_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/boolean.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -767,7 +769,7 @@ fixed_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/fixed.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
-@@ -814,7 +816,7 @@ wrong_fixed_option (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/wrong-fixed.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_INVAL);
-@@ -852,7 +854,7 @@ snapscan (void)
- /* configure and attach */
- status =
- sanei_configure_attach (CONFIG_PATH "/data/snapscan.conf",
-- &config, check_config_attach);
-+ &config, check_config_attach, NULL);
-
- /* check results */
- assert (status == SANE_STATUS_GOOD);
diff --git a/debian/patches/0170-return_empty_list_when_local_devices_requested.patch b/debian/patches/0170-return_empty_list_when_local_devices_requested.patch
deleted file mode 100644
index 5d0ba04..0000000
--- a/debian/patches/0170-return_empty_list_when_local_devices_requested.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Description: eturn_empty_list_when_local_devices_requested
-Author: Barnabás Pőcze <pobrn@protonmail.com>
-Origin: backport, https://gitlab.com/sane-project/backends/-/commit/c946aa5a84297f33b30cddb0c89fcf375ed65d10
-Bug: https://gitlab.com/sane-project/backends/-/merge_requests/506
-Forwarded: not-needed
-Last-Update: 2020-09-19
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/backend/dell1600n_net.c
-===================================================================
---- trunk.orig/backend/dell1600n_net.c
-+++ trunk/backend/dell1600n_net.c
-@@ -233,6 +233,9 @@ static void JpegDecompTermSource (j_deco
- /* Results of last call to sane_get_devices */
- static struct DeviceRecord *gKnownDevices[MAX_SCANNERS];
-
-+/* Empty list for when network devices are not wanted */
-+static const SANE_Device *gEmptyDeviceList[1];
-+
- /* Array of open scanner device states.
- :NOTE: (int)SANE_Handle is an offset into this array */
- static struct ScannerState *gOpenScanners[MAX_SCANNERS];
-@@ -306,15 +309,17 @@ sane_get_devices (const SANE_Device ***
- const char *pVal;
- int valLen;
-
-+ if (local_only) {
-+ *device_list = gEmptyDeviceList;
-+ return SANE_STATUS_GOOD;
-+ }
-+
- /* init variables */
- ret = SANE_STATUS_GOOD;
- sock = 0;
- pDevice = NULL;
- optYes = 1;
-
-- if (local_only)
-- return ret;
--
- InitComBuf (&queryPacket);
-
- /* clear previous results */
diff --git a/debian/patches/0180-gt68xx_fix_use-after-free_two_memleaks.patch b/debian/patches/0180-gt68xx_fix_use-after-free_two_memleaks.patch
deleted file mode 100644
index 167a9e5..0000000
--- a/debian/patches/0180-gt68xx_fix_use-after-free_two_memleaks.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Description: gt68xx: fix use-after-free and two mem leaks
-Author: <name and email of author, optional>
-Origin: https://gitlab.com/sane-project/backends/-/commit/63942f7a7473496d1160f02f5c1da3620525690d
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980311
-Forwarded: not-needed
-Last-Update: 2021-06-24
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/backend/gt68xx.c
-===================================================================
---- trunk.orig/backend/gt68xx.c
-+++ trunk/backend/gt68xx.c
-@@ -1174,8 +1174,11 @@ static SANE_Status probe_gt68xx_devices(
- new_dev[i]->model->firmware_name);
- }
- if (i == 0)
-- DBG (5, "sane_init: firmware %s can't be loaded, set device "
-- "first\n", word);
-+ {
-+ DBG (5, "sane_init: firmware %s can't be loaded, set device "
-+ "first\n", word);
-+ free (word);
-+ }
- }
- else
- {
-@@ -1198,8 +1201,11 @@ static SANE_Status probe_gt68xx_devices(
- new_dev[i]->model->name, new_dev[i]->model->vendor);
- }
- if (i == 0)
-- DBG (5, "sane_init: can't set vendor name %s, set device "
-- "first\n", word);
-+ {
-+ DBG (5, "sane_init: can't set vendor name %s, set device "
-+ "first\n", word);
-+ free (word);
-+ }
- }
- else
- {
-@@ -1221,9 +1227,11 @@ static SANE_Status probe_gt68xx_devices(
- new_dev[i]->model->name, new_dev[i]->model->model);
- }
- if (i == 0)
-- DBG (5, "sane_init: can't set model name %s, set device "
-- "first\n", word);
-- free (word);
-+ {
-+ DBG (5, "sane_init: can't set model name %s, set device "
-+ "first\n", word);
-+ free (word);
-+ }
- }
- else
- {
diff --git a/debian/patches/0185-Change_output_from_sane-find-scanner.patch b/debian/patches/0185-Change_output_from_sane-find-scanner.patch
deleted file mode 100644
index ee4bc1a..0000000
--- a/debian/patches/0185-Change_output_from_sane-find-scanner.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Description: Improve output for possible USB scanners
-Author: Ralph Little
-Origin: upstream, https://gitlab.com/sane-project/backends/-/commit/b701c499c9ce56c6bbea14b2fac2feea37f2410f
-Bug: https://gitlab.com/sane-project/backends/-/issues/575
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983332
-Forwarded: not-needed
-Applied-Upstream: commit b701c499c9ce56c6bbea14b2fac2feea37f2410f
-Last-Update: 2022-02-21
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/tools/sane-find-scanner.c
-===================================================================
---- trunk.orig/tools/sane-find-scanner.c
-+++ trunk/tools/sane-find-scanner.c
-@@ -384,7 +384,7 @@ check_usb_file (char *file_name)
- {
- if (verbose > 1)
- printf (" open ok, vendor and product ids were identified\n");
-- printf ("found USB scanner (vendor=0x%04x, "
-+ printf ("found possible USB scanner (vendor=0x%04x, "
- "product=0x%04x) at %s\n", vendor, product, file_name);
- }
- else
-@@ -392,7 +392,7 @@ check_usb_file (char *file_name)
- if (verbose > 1)
- printf (" open ok, but vendor and product could NOT be "
- "identified\n");
-- printf ("found USB scanner (UNKNOWN vendor and product) "
-+ printf ("found possible USB scanner (UNKNOWN vendor and product) "
- "at device %s\n", file_name);
- unknown_found = SANE_TRUE;
- }
-@@ -676,7 +676,8 @@ check_libusb_device (struct usb_device *
- {
- char * chipset = check_usb_chip (dev, verbose, from_file);
-
-- printf ("found USB scanner (vendor=0x%04x", dev->descriptor.idVendor);
-+ printf ("found possible USB scanner (vendor=0x%04x",
-+ dev->descriptor.idVendor);
- if (vendor)
- printf (" [%s]", vendor);
- printf (", product=0x%04x", dev->descriptor.idProduct);
-@@ -1066,7 +1067,7 @@ check_libusb_device (libusb_device *dev,
- if(!from_file)
- chipset = check_usb_chip (verbose, desc, hdl, config0);
-
-- printf ("found USB scanner (vendor=0x%04x", vid);
-+ printf ("found possible USB scanner (vendor=0x%04x", vid);
- if (vendor)
- printf (" [%s]", vendor);
- printf (", product=0x%04x", pid);
diff --git a/debian/patches/0190-remove-kernel-driver-for-plustek_pp.patch b/debian/patches/0190-remove-kernel-driver-for-plustek_pp.patch
deleted file mode 100644
index 45377dc..0000000
--- a/debian/patches/0190-remove-kernel-driver-for-plustek_pp.patch
+++ /dev/null
@@ -1,2949 +0,0 @@
-Description: Remove kernel driver for plustek_pp
- Cherry-Picked from upstream.
-Origin: upstream
-Bug:https://gitlab.com/sane-project/backends/-/issues/578
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1008275
-Forwarded: not-needed
-Last-Update: 2022-03-26 <YYYY-MM-DD, last update of the meta-information, optional>
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/backend/plustek-pp.h
-===================================================================
---- trunk.orig/backend/plustek-pp.h
-+++ trunk/backend/plustek-pp.h
-@@ -235,11 +235,7 @@ typedef const struct mode_param
- #define _E_SEQUENCE (_FIRST_ERR-30) /* caller sequence does not match */
- #define _E_NO_ASIC (_FIRST_ERR-31) /* can't detect ASIC */
-
--#ifdef __KERNEL__
--# define _E_FAULT (-EFAULT)
--#else
- # define _E_FAULT (_E_INTERNAL) /* should never happen in userspace */
--#endif
-
- #define _E_LAMP_NOT_IN_POS (_FIRST_ERR-40)
- #define _E_LAMP_NOT_STABLE (_FIRST_ERR-41)
-@@ -471,10 +467,6 @@ typedef struct {
- #define _ScanMode_AverageOut 1 /* CCD averaged 2 pixels value for output*/
- #define _ScanMode_Mono 2 /* not color mode */
-
--
--#ifndef __KERNEL__
--
--
- #define PLUSTEK_CONFIG_FILE "plustek_pp.conf"
-
- #ifndef PATH_MAX
-@@ -631,7 +623,6 @@ typedef struct {
- AdjDef adj;
-
- } CnfDef, *pCnfDef;
--#endif /* guard __KERNEL__ */
-
- #endif /* guard __PLUSTEKPP_H__ */
-
-Index: trunk/backend/plustek-pp_dbg.h
-===================================================================
---- trunk.orig/backend/plustek-pp_dbg.h
-+++ trunk/backend/plustek-pp_dbg.h
-@@ -47,22 +47,11 @@
- /* #define _ASIC_98001_SIM */
-
- /*
-- * the print macros
-- */
--#ifdef __KERNEL__
--# define _PRINT printk
--#endif
--
--/*
- * some debug definitions
- */
- #ifdef DEBUG
--# ifndef __KERNEL__
- # include <assert.h>
- # define _ASSERT(x) assert(x)
--# else
--# define _ASSERT(x)
--# endif
-
- # ifndef DBG
- # define DBG(level, msg, args...) if ((dbg_level) & (level)) { \
-Index: trunk/backend/plustek-pp_detect.c
-===================================================================
---- trunk.orig/backend/plustek-pp_detect.c
-+++ trunk/backend/plustek-pp_detect.c
-@@ -97,11 +97,6 @@ static int detectScannerConnection( pSca
- UChar data, control, status;
- int retval = _E_NO_CONN;
-
--#ifdef __KERNEL__
-- DBG( DBG_LOW, "Dataport = 0x%04x\n", ps->IO.pbSppDataPort );
-- DBG( DBG_LOW, "Ctrlport = 0x%04x\n", ps->IO.pbControlPort );
--#endif
--
- detectResetPort( ps );
-
- /*
-@@ -177,11 +172,7 @@ static int detectScannerConnection( pSca
-
- /* work on the result */
- if ( _OK == retval ) {
--#ifdef __KERNEL__
-- ps->sCaps.wIOBase = ps->IO.pbSppDataPort;
--#else
- ps->sCaps.wIOBase = ps->pardev;
--#endif
- ps->PutToIdleMode( ps );
-
- } else {
-@@ -209,11 +200,7 @@ static int detectSetupBuffers( pScanData
- */
- if ( 0 == ps->TotalBufferRequire ) {
-
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv: asic 0x%x probably not supported\n", ps->sCaps.AsicID);
-
- return _E_ALLOC; /* Out of memory */
-@@ -228,11 +215,7 @@ static int detectSetupBuffers( pScanData
-
- if ( NULL == ps->driverbuf ) {
-
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv: Not enough kernel memory %d\n",
- ps->TotalBufferRequire);
- return _E_ALLOC; /* Out of memory */
-@@ -380,11 +363,7 @@ static int detectAsic98001( pScanData ps
-
- return detectScannerConnection( ps );
- #else
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "!!!! WARNING, have a look at function detectAsic98001() !!!!\n" );
- ps->sCaps.AsicID = _ASIC_IS_98001;
- ps->sCaps.wIOBase = ps->IO.pbSppDataPort;
-@@ -434,11 +413,7 @@ _LOC int DetectScanner( pScanData ps, in
-
- /* read Register 0x18 (AsicID Register) of Asic9800x based devices */
- #ifdef _ASIC_98001_SIM
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "!!!! WARNING, SW-Emulation active !!!!\n" );
- asic = _ASIC_IS_98001;
- #else
-Index: trunk/backend/plustek-pp_hwdefs.h
-===================================================================
---- trunk.orig/backend/plustek-pp_hwdefs.h
-+++ trunk/backend/plustek-pp_hwdefs.h
-@@ -586,19 +586,6 @@ typedef struct
- * structure to hold IO port specific stuff
- */
- typedef struct {
--
--#ifdef __KERNEL__
-- pFnOut fnOut;
-- pFnIn fnIn;
--
-- UShort pbSppDataPort;
-- UShort pbEppDataPort;
--
-- UShort pbStatusPort;
-- UShort pbControlPort;
-- UShort pbAddrOffsetPort;
--#endif
--
- UShort portBase;
- UShort portMode;
- UShort lastPortMode;
-Index: trunk/backend/plustek-pp_image.c
-===================================================================
---- trunk.orig/backend/plustek-pp_image.c
-+++ trunk/backend/plustek-pp_image.c
-@@ -1288,11 +1288,7 @@ static Bool imageP98003ReadOneImageLine(
-
- } while( !MiscCheckTimer( &timer ));
-
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "Timeout - Scanner malfunction !!\n" );
- MotorToHomePosition(ps);
-
-Index: trunk/backend/plustek-pp_io.c
-===================================================================
---- trunk.orig/backend/plustek-pp_io.c
-+++ trunk/backend/plustek-pp_io.c
-@@ -257,21 +257,11 @@ static Bool fnEPPRead( pScanData ps, pUC
-
- if( _IS_ASIC98(ps->sCaps.AsicID)) {
-
--#ifndef __KERNEL__
- sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAIN );
--#else
-- _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION));
-- _DO_UDELAY( 1 );
--#endif
- for( i = 0; i < ulSize; i++ )
- pBuffer[i] = _INB_EPPDATA( ps );
-
--#ifndef __KERNEL__
- sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAOUT );
--#else
-- _OUTB_CTRL( ps, _CTRL_GENSIGNAL );
-- _DO_UDELAY( 1 );
--#endif
- } else {
-
- for( i = 0; i < ulSize; i++ )
-@@ -290,18 +280,12 @@ static Bool fnBiDirRead( pScanData ps, p
- start = _CTRL_START_BIDIREAD;
- end = _CTRL_END_BIDIREAD;
-
--#ifndef __KERNEL__
- sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAIN );
-
- if( !sanei_pp_uses_directio()) {
- start &= ~_CTRL_DIRECTION;
- end &= ~_CTRL_DIRECTION;
- }
--#else
-- if( _IS_ASIC98(ps->sCaps.AsicID)) {
-- _OUTB_CTRL( ps, (_CTRL_GENSIGNAL + _CTRL_DIRECTION));
-- }
--#endif
-
- switch( ps->IO.delay ) {
-
-@@ -341,13 +325,7 @@ static Bool fnBiDirRead( pScanData ps, p
-
- }
-
--#ifndef __KERNEL__
- sanei_pp_set_datadir( ps->pardev, SANEI_PP_DATAOUT );
--#else
-- if( _IS_ASIC98(ps->sCaps.AsicID)) {
-- _OUTB_CTRL( ps, _CTRL_GENSIGNAL );
-- }
--#endif
- return _TRUE;
- }
-
-@@ -953,45 +931,4 @@ _LOC void IOReadScannerImageData( pScanD
- ps->OpenScanPath( ps );
- }
-
--#ifdef __KERNEL__
--
--/** the wrapper functions to support delayed and non-delayed I/O
-- */
--_LOC void IOOut( Byte data, UShort port )
--{
-- DBG( DBG_IOF, "outb(0x%04x, 0x%02x)\n", port, data );
-- outb( data, port );
--}
--
--_LOC void IOOutDelayed( Byte data, UShort port )
--{
-- DBG( DBG_IOF, "outb_p(0x%04x, 0x%02x)\n", port, data );
-- outb_p( data, port );
--}
--
--_LOC Byte IOIn( UShort port )
--{
--#ifdef DEBUG
-- Byte data = inb( port );
--
-- DBG( DBG_IOF, "inb(0x%04x) = 0x%02x\n", port, data );
-- return data;
--#else
-- return inb( port );
--#endif
--}
--
--_LOC Byte IOInDelayed( UShort port )
--{
--#ifdef DEBUG
-- Byte data = inb_p( port );
--
-- DBG( DBG_IOF, "inb_p(0x%04x) = 0x%02x\n", port, data );
-- return data;
--#else
-- return inb_p( port );
--#endif
--}
--#endif /* guard __KERNEL__ */
--
- /* END PLUSTEK-PP_IO.C ......................................................*/
-Index: trunk/backend/plustek-pp_misc.c
-===================================================================
---- trunk.orig/backend/plustek-pp_misc.c
-+++ trunk/backend/plustek-pp_misc.c
-@@ -77,27 +77,11 @@
-
- /*************************** some definitions ********************************/
-
--#ifndef __KERNEL__
- # define PPA_PROBE_SPP 0x0001
- # define PPA_PROBE_PS2 0x0002
- # define PPA_PROBE_ECR 0x0010
- # define PPA_PROBE_EPP17 0x0100
- # define PPA_PROBE_EPP19 0x0200
--#else
--
--/* the parport driver in Kernel 2.4 has changed. It does report the
-- * possible modes in a different, more general way. As long, as
-- * we do not use the parport-module change mode facility, I assume
-- * the following correlations
-- */
--#if defined LINUX_24 || defined LINUX_26
--# define PARPORT_MODE_PCPS2 PARPORT_MODE_TRISTATE
--# define PARPORT_MODE_PCEPP PARPORT_MODE_EPP
--# define PARPORT_MODE_PCECPPS2 PARPORT_MODE_TRISTATE
--# define PARPORT_MODE_PCECPEPP PARPORT_MODE_EPP
--# define PARPORT_MODE_PCECR PARPORT_MODE_ECP
--#endif
--#endif
-
- #define _PP_A 16807 /**< multiplier */
- #define _PP_M 2147483647L /**< 2**31 - 1 */
-@@ -107,298 +91,10 @@
- static int port_feature = 0;
- static long randomnum = 1;
-
--#ifdef __KERNEL__
--static int portIsClaimed[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 0 };
--
--MODELSTR; /**< a static char array (see plustek-pp.h) */
--
--#else
- static int portIsClaimed[_MAX_PTDEVS] = { 0, 0, 0, 0 };
--#endif
-
- /*************************** local functions *********************************/
-
--#ifdef __KERNEL__
--#ifdef LINUX_26
--
--static pScanData __ps = NULL;
--static int __pa = -1;
--
--/** callback from parport driver
-- */
--static void misc_attach(struct parport *port)
--{
-- DBG( DBG_LOW, "misc_attach\n" );
--
-- __ps->pp = NULL;
-- if( port->base == (unsigned long)__pa ) {
-- DBG( DBG_LOW, "Requested port (0x%02x) found\n", __pa );
-- DBG( DBG_LOW, "Port mode reported: (0x%04x)\n", port->modes );
-- __ps->pp = port;
-- }
--}
--
--static void misc_detach( struct parport *port )
--{
-- DBG( DBG_LOW, "misc_detach\n" );
--}
--
--static struct parport_driver pt_drv = {
-- .name = "pt_drv",
-- .attach = misc_attach,
-- .detach = misc_detach,
--};
--#endif
--
--/** display the available port-modes
-- */
--#ifdef DEBUG
--static void miscShowPortModes( int modes )
--{
-- DBG( DBG_LOW, "parport-modi:" );
--
-- if( modes & PARPORT_MODE_PCSPP )
-- DBG( DBG_LOW, " SPP" );
--
-- if( modes & PARPORT_MODE_PCPS2 )
-- DBG( DBG_LOW, " PS/2" );
--
-- if( modes & PARPORT_MODE_PCEPP )
-- DBG( DBG_LOW, " EPP" );
--
-- if( modes & PARPORT_MODE_PCECR )
-- DBG( DBG_LOW, " ECP" );
--
-- if( modes & PARPORT_MODE_PCECPEPP )
-- DBG( DBG_LOW, " EPP(ECP)" );
--
-- if( modes & PARPORT_MODE_PCECPPS2 )
-- DBG( DBG_LOW, " PS/2(ECP)" );
--
-- DBG( DBG_LOW, "\n" );
--}
--#endif
--
--/** probe the parallel port
-- */
--static int initPortProbe( pScanData ps )
--{
-- int retv = 0;
--
-- /* clear the controls */
-- ps->IO.lastPortMode = 0xFFFF;
--
-- if( NULL != ps->pardev )
-- retv = ps->pardev->port->modes;
-- return retv;
--}
--
--/** will be called by the parport module when we already have access, but
-- * another module wants access to the port...
-- */
--static int miscPreemptionCallback( pVoid data )
--{
-- pScanData ps = (pScanData)data;
--
-- if( NULL != ps ) {
--
-- /* never release during scanning */
-- if( ps->DataInf.dwScanFlag & _SCANNER_SCANNING ) {
-- DBG( DBG_LOW, "no way!!!\n" );
-- return 1;
-- }
-- }
--
-- /* let the port go...*/
-- return 0;
--}
--
--/** depending on the reported possible port modes, we try to set a faster mode
-- * than SPP
-- */
--static int miscSetFastMode( pScanData ps )
--{
-- UChar a, b;
--
-- /*
-- * when previously found the EPP mode, break right here
-- */
-- if (( _PORT_EPP == ps->IO.portMode ) && (!(port_feature & PARPORT_MODE_PCECR)))
-- return _OK;
--
-- /* CHECK REMOVE: from here we should have SPP (Paranoia Code !) */
-- if (( _PORT_SPP != ps->IO.portMode ) && (!(port_feature & PARPORT_MODE_PCECR)))
-- return _OK;
--
-- DBG(DBG_LOW, "Trying faster mode...\n" );
--
-- /*
-- * ECP mode usually has sub-modes of EPP and/or PS2.
-- * First we try to set EPP
-- */
-- if((port_feature & PARPORT_MODE_PCECR) &&
-- (port_feature & PARPORT_MODE_PCECPEPP)){
--
-- DBG(DBG_LOW, "Attempting to set EPP from ECP mode.\n" );
--
-- a = _INB_ECTL(ps); /* get current ECR */
-- ps->IO.lastPortMode = a; /* save it for restoring later */
-- a = (a & 0x1F) | 0x80; /* set to EPP */
-- _OUTB_ECTL(ps, a); /* write it back */
-- _DO_UDELAY(1);
--
-- /*
-- * It is probably unnecessary to
-- * do this check but it makes me feel better
-- */
-- b = _INB_ECTL(ps); /* check to see if port set */
-- if( a == b ) {
-- DBG( DBG_LOW, "Port is set to (ECP) EPP mode.\n" );
-- ps->IO.portMode = _PORT_EPP;
-- return _OK;
--
-- } else {
-- DBG( DBG_LOW, "Port could not be set to (ECP) EPP mode. "
-- "Using SPP mode.\n" );
-- _OUTB_ECTL(ps,(Byte)ps->IO.lastPortMode); /* restore */
-- _DO_UDELAY(1);
-- ps->IO.portMode = _PORT_SPP;
--
-- /* go ahead and try with other settings...*/
-- }
-- }
--
-- /* If port cannot be set to EPP, try PS2 */
-- if((port_feature & PARPORT_MODE_PCECR) &&
-- (port_feature & PARPORT_MODE_PCECPPS2)) {
--
-- DBG(DBG_LOW, "Attempting to set PS2 from ECPPS2 mode.\n" );
--
-- a = _INB_ECTL(ps); /* get current ECR */
-- ps->IO.lastPortMode = a; /* save it for restoring later */
--
-- /* set to Fast Centronics/bi-directional/PS2 */
-- a = (a & 0x1F) | 0x20;
-- _OUTB_ECTL(ps,a); /* write it back */
-- _DO_UDELAY(1);
--
-- /*
-- * It is probably unnecessary to do this check
-- * but it makes me feel better
-- */
-- b = _INB_ECTL(ps); /* check to see if port set */
-- if (a == b) {
-- DBG(DBG_LOW, "Port is set to (ECP) PS2 bidirectional mode.\n");
-- ps->IO.portMode = _PORT_BIDI;
-- return _OK;
-- } else {
-- DBG(DBG_LOW, "Port could not be set to (ECP) PS2 mode. "
-- "Using SPP mode.\n");
-- a = ps->IO.lastPortMode & 0x1F;
-- _OUTB_ECTL(ps, a); /* set ECP ctrl to SPP */
-- _DO_UDELAY(1);
-- ps->IO.portMode = _PORT_SPP;
--
-- /* next mode, last attempt... */
-- }
-- }
--
-- /*
-- * Some BIOS/cards have only a Bi-directional/PS2 mode (no EPP).
-- * Make one last attempt to set to PS2 mode.
-- */
-- if ( port_feature & PARPORT_MODE_PCPS2 ){
--
-- DBG(DBG_LOW, "Attempting to set PS2 mode.\n" );
--
-- a = _INB_CTRL(ps); /* get current setting of control register*/
-- ps->IO.lastPortMode = a; /* save it for restoring later */
-- a = a | 0x20; /* set bit 5 of control reg */
-- _OUTB_CTRL(ps,a); /* set to Fast Centronics/bi-directional/PS2 */
-- _DO_UDELAY(1);
-- a = 0;
--
-- _OUTB_DATA(ps,0x55);
-- _DO_UDELAY(1);
-- if ((inb(ps->IO.portBase)) != 0x55) /* read data */
-- a++;
--
-- _OUTB_DATA(ps,0xAA);
-- _DO_UDELAY(1);
--
-- if (_INB_DATA(ps) != 0xAA) /* read data */
-- a++;
--
-- if( 2 == a ) {
-- DBG(DBG_LOW, "Port is set to PS2 bidirectional mode.\n");
-- ps->IO.portMode = _PORT_BIDI;
-- return _OK;
--
-- } else {
-- DBG(DBG_LOW, "Port could not be set to PS2 mode. "
-- "Using SPP mode.\n");
-- _OUTB_CTRL(ps,(Byte)ps->IO.lastPortMode); /* restore */
-- _DO_UDELAY(1);
-- ps->IO.portMode = _PORT_SPP;
-- }
-- }
--
-- /* reaching this point, we're back in SPP mode and there's no need
-- * to restore at shutdown...
-- */
-- ps->IO.lastPortMode = 0xFFFF;
--
-- return _OK;
--}
--
--/** check the state of the par-port and switch to EPP-mode if possible
-- */
--static int miscSetPortMode( pScanData ps )
--{
-- /* try to detect the port settings, SPP seems to work in any case ! */
-- port_feature = initPortProbe( ps );
--
--#ifdef DEBUG
-- miscShowPortModes( port_feature );
--#endif
--
-- switch( ps->IO.forceMode ) {
--
-- case 1:
-- DBG( DBG_LOW, "Use of SPP-mode enforced\n" );
-- ps->IO.portMode = _PORT_SPP;
-- return _OK;
-- break;
--
-- case 2:
-- DBG( DBG_LOW, "Use of EPP-mode enforced\n" );
-- ps->IO.portMode = _PORT_EPP;
-- return _OK;
-- break;
--
-- default:
-- break;
-- }
--
-- if( !(port_feature & PARPORT_MODE_PCEPP)) {
--
-- if( !(port_feature & PARPORT_MODE_PCSPP )) {
-- _PRINT("\nThis Port supports not the SPP- or EPP-Mode\n" );
-- _PRINT("Please activate SPP-Mode, EPP-Mode or\nEPP + ECP-Mode!\n");
-- return _E_NOSUPP;
-- } else {
-- DBG(DBG_LOW, "Using SPP-mode\n" );
-- ps->IO.portMode = _PORT_SPP;
-- }
-- } else {
-- DBG(DBG_LOW, "Using EPP-mode\n" );
-- ps->IO.portMode = _PORT_EPP;
-- }
--
-- /* else try to set to a faster mode than SPP */
-- return miscSetFastMode( ps );
--}
--#endif
-
- /** miscNextLongRand() -- generate 2**31-2 random numbers
- **
-@@ -488,34 +184,6 @@ _LOC int MiscReinitStruct( pScanData ps
- */
- _LOC int MiscInitPorts( pScanData ps, int port )
- {
--#ifdef __KERNEL__
-- int status;
--
-- if( NULL == ps )
-- return _E_NULLPTR;
--
-- /*
-- * Get access to the ports
-- */
-- ps->IO.portBase = (UShort)port;
--
-- status = miscSetPortMode(ps);
--
-- if( _OK != status ) {
-- ps->sCaps.wIOBase = _NO_BASE;
-- ps->IO.portBase = _NO_BASE;
-- return status;
-- }
--
-- /*
-- * the port settings
-- */
-- ps->IO.pbSppDataPort = (UShort)port;
-- ps->IO.pbStatusPort = (UShort)port+1;
-- ps->IO.pbControlPort = (UShort)port+2;
-- ps->IO.pbEppDataPort = (UShort)port+4;
--
--#else
- int mode, mts;
-
- if( NULL == ps )
-@@ -560,7 +228,6 @@ _LOC int MiscInitPorts( pScanData ps, in
-
- sanei_pp_setmode( ps->pardev, mts );
- _VAR_NOT_USED( port );
--#endif
- return _OK;
- }
-
-@@ -568,11 +235,6 @@ _LOC int MiscInitPorts( pScanData ps, in
- */
- _LOC void MiscRestorePort( pScanData ps )
- {
--#ifdef __KERNEL__
-- if( 0 == ps->IO.pbSppDataPort )
-- return;
--#endif
--
- DBG(DBG_LOW,"MiscRestorePort()\n");
-
- /* don't restore if not necessary */
-@@ -582,19 +244,9 @@ _LOC void MiscRestorePort( pScanData ps
- }
-
- /*Restore Port-Mode*/
--#ifdef __KERNEL__
-- if( port_feature & PARPORT_MODE_PCECR ){
-- _OUTB_ECTL( ps, (Byte)ps->IO.lastPortMode );
-- _DO_UDELAY(1);
-- } else {
-- _OUTB_CTRL( ps, (Byte)ps->IO.lastPortMode );
-- _DO_UDELAY(1);
-- }
--#else
- if( port_feature & PPA_PROBE_ECR ){
- _OUTB_ECTL(ps,ps->IO.lastPortMode);
- }
--#endif
- }
-
- /** Initializes a timer.
-@@ -605,11 +257,7 @@ _LOC void MiscStartTimer( TimerDef *time
- {
- struct timeval start_time;
-
--#ifdef __KERNEL__
-- _GET_TIME( &start_time );
--#else
- gettimeofday(&start_time, NULL);
--#endif
-
- *timer = (TimerDef)start_time.tv_sec * 1000000 + (TimerDef)start_time.tv_usec + us;
- }
-@@ -624,21 +272,14 @@ _LOC int MiscCheckTimer( TimerDef *timer
- {
- struct timeval current_time;
-
--#ifdef __KERNEL__
-- _GET_TIME( &current_time );
--#else
- gettimeofday(&current_time, NULL);
--#endif
-
- if ((TimerDef)current_time.tv_sec * 1000000 + (TimerDef)current_time.tv_usec > *timer) {
- return _E_TIMEOUT;
- } else {
--#ifdef __KERNEL__
-- schedule();
- /*#else
- sched_yield();
- */
--#endif
- return _OK;
- }
- }
-@@ -673,65 +314,8 @@ _LOC Bool MiscAllPointersSet( pScanData
- */
- _LOC int MiscRegisterPort( pScanData ps, int portAddr )
- {
--#ifndef __KERNEL__
- DBG( DBG_LOW, "Assigning port handle %i\n", portAddr );
- ps->pardev = portAddr;
--#else
--
--#ifdef LINUX_26
-- __ps = ps;
-- __pa = portAddr;
--
-- DBG( DBG_LOW, "Requested port at 0x%02x\n", portAddr );
--
-- if( parport_register_driver(&pt_drv)) {
-- /* Failed; nothing we can do. */
-- return _E_REGISTER;
-- }
--
--#else
-- struct parport *pp = NULL;
--
-- DBG( DBG_LOW, "Requested port at 0x%02x\n", portAddr );
--
-- pp = parport_enumerate();
-- ps->pardev = NULL;
--
-- if( NULL == pp ) {
-- return _E_PORTSEARCH;
-- }
--
-- /* go through the list
-- */
-- for( ps->pp = NULL; NULL != pp; ) {
--
-- if( pp->base == (unsigned long)portAddr ) {
-- DBG( DBG_LOW, "Requested port (0x%02x) found\n", portAddr );
-- DBG( DBG_LOW, "Port mode reported: (0x%04x)\n", pp->modes );
-- ps->pp = pp;
-- break;
-- }
-- pp = pp->next;
-- }
--#endif
--
-- if( NULL == ps->pp ) {
-- printk("PORT not found!!!\n");
-- return _E_NO_PORT;
-- }
--
-- /*
-- * register this device
-- */
-- ps->pardev = parport_register_device( ps->pp, "Plustek Driver",
-- miscPreemptionCallback, NULL, NULL, 0, (pVoid)ps );
--
-- if( NULL == ps->pardev ) {
-- return _E_REGISTER;
-- }
--
-- DBG( DBG_LOW, "Port for device %u registered\n", ps->devno );
--#endif
-
- portIsClaimed[ps->devno] = 0;
- return _OK;
-@@ -741,17 +325,7 @@ _LOC int MiscRegisterPort( pScanData ps,
- */
- _LOC void MiscUnregisterPort( pScanData ps )
- {
--#ifdef __KERNEL__
-- if( NULL != ps->pardev ) {
-- DBG( DBG_LOW, "Port unregistered\n" );
-- parport_unregister_device( ps->pardev );
-- }
--#ifdef LINUX_26
-- parport_unregister_driver( &pt_drv );
--#endif
--#else
- sanei_pp_close( ps->pardev );
--#endif
- }
-
- /** Try to claim the port
-@@ -763,11 +337,7 @@ _LOC int MiscClaimPort( pScanData ps )
- if( 0 == portIsClaimed[ps->devno] ) {
-
- DBG( DBG_HIGH, "Try to claim the parport\n" );
--#ifdef __KERNEL__
-- if( 0 != parport_claim( ps->pardev )) {
--#else
- if( SANE_STATUS_GOOD != sanei_pp_claim( ps->pardev )) {
--#endif
- return _E_BUSY;
- }
- }
-@@ -785,11 +355,7 @@ _LOC void MiscReleasePort( pScanData ps
-
- if( 0 == portIsClaimed[ps->devno] ) {
- DBG( DBG_HIGH, "Releasing parport\n" );
--#ifdef __KERNEL__
-- parport_release( ps->pardev );
--#else
- sanei_pp_release( ps->pardev );
--#endif
- }
- }
- }
-Index: trunk/backend/plustek-pp_procs.h
-===================================================================
---- trunk.orig/backend/plustek-pp_procs.h
-+++ trunk/backend/plustek-pp_procs.h
-@@ -219,13 +219,6 @@ _LOC void IORegisterDirectToScanner( pSc
- _LOC void IOSoftwareReset ( pScanData ps );
- _LOC void IOReadScannerImageData ( pScanData ps, pUChar pBuf, ULong size );
-
--#ifdef __KERNEL__
--_LOC void IOOut ( Byte data, UShort port );
--_LOC void IOOutDelayed( Byte data, UShort port );
--_LOC Byte IOIn ( UShort port );
--_LOC Byte IOInDelayed ( UShort port );
--#endif
--
- /*
- * implementation in plustek-pp_tpa.c
- */
-@@ -238,16 +231,6 @@ _LOC void TPAP98003Reshading ( p
- */
- _LOC void ScaleX( pScanData ps, pUChar inBuf, pUChar outBuf );
-
--/*
-- * implementation in plustek-pp_procfs.c (Kernel-mode only)
-- */
--#ifdef __KERNEL__
--int ProcFsInitialize ( void );
--void ProcFsShutdown ( void );
--void ProcFsRegisterDevice ( pScanData ps );
--void ProcFsUnregisterDevice( pScanData ps );
--#endif
--
- #endif /* guard __PROCS_H__ */
-
- /* END PLUSTEK-PP_PROCS.H ...................................................*/
-Index: trunk/backend/plustek-pp_ptdrv.c
-===================================================================
---- trunk.orig/backend/plustek-pp_ptdrv.c
-+++ trunk/backend/plustek-pp_ptdrv.c
-@@ -94,52 +94,13 @@
- * If you do not wish that, delete this exception notice.
- * <hr>
- */
--#ifdef __KERNEL__
--# include <linux/module.h>
--# include <linux/version.h>
--
--# ifdef CONFIG_DEVFS_FS
--# include <linux/devfs_fs_kernel.h>
--# if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,69))
--# define DEVFS_26_STYLE
--# endif
--# endif
--#endif
--
- #include "plustek-pp_scan.h"
-
--#ifdef __KERNEL__
--# include <linux/param.h>
--#endif
--
- /****************************** static vars **********************************/
-
- /* default port is at 0x378 */
- static int port[_MAX_PTDEVS] = { 0x378, 0, 0, 0 };
-
--#ifdef __KERNEL__
--static pScanData PtDrvDevices[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = NULL};
--
--/* default is 180 secs for lamp switch off */
--static int lampoff[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 180 };
--
--/* warmup period for lamp (30 secs) */
--static int warmup[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 30 };
--
--/* switch lamp off on unload (default = no)*/
--static int lOffonEnd[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 0 };
--
--/* model override (0-->none) */
--static UShort mov[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 0 };
--
--/* forceMode (0--> auto, 1: SPP, 2:EPP, others: auto) */
--static UShort forceMode[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = 0 };
--
--/* to use delayed I/O for each device */
--static Bool slowIO[_MAX_PTDEVS] = { [0 ... (_MAX_PTDEVS-1)] = _FALSE };
--
--#else
--
- static pScanData PtDrvDevices[_MAX_PTDEVS]= { NULL, NULL, NULL, NULL };
- static int lampoff[_MAX_PTDEVS] = { 180, 180, 180, 180 };
- static int warmup[_MAX_PTDEVS] = { 30, 30, 30, 30 };
-@@ -147,140 +108,14 @@ static int lOffonEnd[_MAX_PTDEVS]
- static UShort mov[_MAX_PTDEVS] = { 0, 0, 0, 0 };
- static UShort forceMode[_MAX_PTDEVS] = { 0, 0, 0, 0 };
-
--#endif
--
- /* timers for warmup checks */
- static TimerDef toTimer[_MAX_PTDEVS];
-
--#ifndef __KERNEL__
- static Bool PtDrvInitialized = _FALSE;
- #ifdef HAVE_SETITIMER
- static struct itimerval saveSettings;
- #endif
--#else
--static Bool deviceScanning = _FALSE;
--
--static struct timer_list tl[_MAX_PTDEVS];
--
--/* for calculation of the timer expiration */
--extern volatile unsigned long jiffies;
--
--/* the parameter interface
-- */
--#if ((LINUX_VERSION_CODE > 0x020111) && defined(MODULE))
--MODULE_AUTHOR("Gerhard Jaeger <gerhard@gjaeger.de>");
--MODULE_DESCRIPTION("Plustek parallelport-scanner driver");
--
--/* addresses this 'new' license feature... */
--#ifdef MODULE_LICENSE
--MODULE_LICENSE("GPL");
--#endif
--
--#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13))
--MODULE_PARM(port, "1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(lampoff, "1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(warmup,"1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(lOffonEnd, "1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(mov, "1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(slowIO,"1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--MODULE_PARM(forceMode,"1-" __MODULE_STRING(_MAX_PTDEVS) "i");
--
--#else
--
--static int array_len = _MAX_PTDEVS;
--
--module_param_array(port, int, &array_len, 0);
--module_param_array(lampoff, int, &array_len, 0);
--module_param_array(warmup, int, &array_len, 0);
--module_param_array(lOffonEnd, int, &array_len, 0);
--module_param_array(mov, ushort, &array_len, 0);
--module_param_array(slowIO, int, &array_len, 0);
--module_param_array(forceMode, ushort, &array_len, 0);
--
--#endif
--
--
--MODULE_PARM_DESC(port, "I/O base address of parport");
--MODULE_PARM_DESC(lampoff, "Lamp-Off timer preset in seconds");
--MODULE_PARM_DESC(warmup, "Minimum warmup time in seconds");
--MODULE_PARM_DESC(lOffonEnd, "1 - switchoff lamp on unload");
--MODULE_PARM_DESC(mov, "Modell-override switch");
--MODULE_PARM_DESC(slowIO, "0 = Fast I/O, 1 = Delayed I/O");
--MODULE_PARM_DESC(forceMode, "0 = use auto detection, "
-- "1 = use SPP mode, 2 = use EPP mode");
--#endif
--
--#if defined (CONFIG_DEVFS_FS)
--# ifndef (DEVFS_26_STYLE)
-- static devfs_handle_t devfs_handle = NULL;
--# endif
--#else
--# ifdef LINUX_26
-- static class_t *ptdrv_class;
--# endif
--#endif
--
--/*
-- * the module interface
-- */
--static int pt_drv_open ( struct inode *, struct file *);
--static CLOSETYPE pt_drv_close( struct inode *, struct file *);
--
--#ifdef LINUX_20
-- static int pt_drv_read( struct inode*, struct file*, char*, int );
-- static int pt_drv_write( struct inode*, struct file*, const char*, int );
--#else
-- static ssize_t pt_drv_read ( struct file *file,
-- char *buffer, size_t count, loff_t *);
-- static ssize_t pt_drv_write( struct file *file,
-- const char *buffer, size_t tmp,loff_t *count);
--#endif
--
--#ifdef NOLOCK_IOCTL
-- static long pt_drv_ioctl( struct file *, UInt, unsigned long );
--#else
-- static int pt_drv_ioctl( struct inode *, struct file *, UInt, unsigned long );
--#endif
--
--
--/*
-- * the driver interface
-- */
--#ifdef LINUX_20
--
--static struct file_operations pt_drv_fops =
--{
-- NULL, /* seek */
-- pt_drv_read, /* read */
-- pt_drv_write, /* write */
-- NULL, /* readdir */
-- NULL, /* select */
-- pt_drv_ioctl, /* ioctl */
-- NULL, /* mmap */
-- pt_drv_open, /* open */
-- pt_drv_close, /* release */
-- NULL, /* fsync */
-- NULL, /* fasync */
-- NULL, /* check_media_change */
-- NULL /* revalidate */
--};
--
--#else /* 2.2.x and higher stuff */
--
--static struct file_operations pt_drv_fops = {
--#ifdef LINUX_24
-- owner: THIS_MODULE,
--#endif
-- read: pt_drv_read,
-- write: pt_drv_write,
-- IOCTL: pt_drv_ioctl,
-- open: pt_drv_open,
-- release: pt_drv_close,
--};
-
--#endif
--
--#endif /* guard __KERNEL */
-
- /****************************** some prototypes ******************************/
-
-@@ -288,23 +123,6 @@ static void ptdrvStartLampTimer( pScanDa
-
- /****************************** local functions ******************************/
-
--#ifdef __KERNEL__
--/** depending on the device, return the data structure
-- */
--static pScanData get_pt_from_inode(struct inode *ip)
--{
-- int minor = _MINOR(ip);
--
-- /*
-- * unit out of range
-- */
-- if (minor >= _MAX_PTDEVS )
-- return NULL;
--
-- return( PtDrvDevices[minor] );
--}
--#endif
--
- /** copy user-space data into kernel memory
- */
- static int getUserPtr(const pVoid useraddr, pVoid where, UInt size )
-@@ -315,32 +133,9 @@ static int getUserPtr(const pVoid userad
- if((NULL == useraddr) || ( 0 == size))
- return _E_INVALID;
-
--#ifdef __KERNEL__
-- if ((err = verify_area_20(VERIFY_READ, useraddr, size)))
-- return err;
--#endif
--
- switch (size) {
--#ifdef __KERNEL__
-- case sizeof(u_char):
-- GET_USER_RET(*(u_char *)where, (u_char *) useraddr, -EFAULT);
-- break;
--
-- case sizeof(u_short):
-- GET_USER_RET(*(u_short *)where, (u_short *) useraddr, -EFAULT);
-- break;
--
-- case sizeof(u_long):
-- GET_USER_RET(*(u_long *)where, (u_long *) useraddr, -EFAULT);
-- break;
--
-- default:
-- if (copy_from_user(where, useraddr, size))
-- return -EFAULT;
--#else
- default:
- memcpy( where, useraddr, size );
--#endif
- }
- return err;
- }
-@@ -354,20 +149,11 @@ static int putUserPtr( const pVoid ptr,
- if (NULL == useraddr)
- return _E_INVALID;
-
--#ifdef __KERNEL__
-- if ((err = verify_area_20(VERIFY_WRITE, useraddr, size)))
-- return err;
--
-- if (copy_to_user(useraddr, ptr, size ))
-- return -EFAULT;
--#else
- memcpy( useraddr, ptr, size );
--#endif
-
- return err;
- }
-
--#ifndef __KERNEL__
- static unsigned long copy_from_user( pVoid dest, pVoid src, unsigned long len )
- {
- memcpy( dest, src, len );
-@@ -379,37 +165,16 @@ static unsigned long copy_to_user( pVoid
- memcpy( dest, src, len );
- return 0;
- }
--#endif
-
- /**
- */
- static int putUserVal(const ULong value, pVoid useraddr, UInt size)
- {
--#ifdef __KERNEL__
-- int err;
--#endif
--
- if (NULL == useraddr)
- return _E_INVALID;
-
--#ifdef __KERNEL__
-- if ((err = verify_area_20(VERIFY_WRITE, useraddr, size)))
-- return err;
--#endif
--
- switch (size) {
-
--#ifdef __KERNEL__
-- case sizeof(u_char):
-- PUT_USER_RET((u_char)value, (u_char *) useraddr, -EFAULT);
-- break;
-- case sizeof(u_short):
-- PUT_USER_RET((u_short)value, (u_short *) useraddr, -EFAULT);
-- break;
-- case sizeof(u_long):
-- PUT_USER_RET((u_long)value, (u_long *) useraddr, -EFAULT);
-- break;
--#else
- case sizeof(UChar):
- *(pUChar)useraddr = (UChar)value;
- break;
-@@ -420,7 +185,6 @@ static int putUserVal(const ULong value,
- *(pULong)useraddr = (ULong)value;
- break;
-
--#endif
- default:
- return _E_INVALID;
- }
-@@ -506,22 +270,14 @@ static void ptdrvLampWarmup( pScanData p
-
- /**
- */
--#ifdef __KERNEL__
--static void ptdrvLampTimerIrq( unsigned long ptr )
--#else
- static void ptdrvLampTimerIrq( int sig_num )
--#endif
- {
- pScanData ps;
-
- DBG( DBG_HIGH, "!! IRQ !! Lamp-Timer stopped.\n" );
-
--#ifdef __KERNEL__
-- ps = (pScanData)ptr;
--#else
- _VAR_NOT_USED( sig_num );
- ps = PtDrvDevices[0];
--#endif
-
- /*
- * paranoia check!
-@@ -559,7 +315,6 @@ static void ptdrvLampTimerIrq( int sig_n
- */
- static void ptdrvStartLampTimer( pScanData ps )
- {
--#ifndef __KERNEL__
- sigset_t block, pause_mask;
- struct sigaction s;
- #ifdef HAVE_SETITIMER
-@@ -597,17 +352,6 @@ static void ptdrvStartLampTimer( pScanDa
- #else
- alarm( ps->lampoff );
- #endif
--#else
-- init_timer( &tl[ps->devno] );
--
-- /* timeout val in seconds */
-- tl[ps->devno].expires = jiffies + ps->lampoff * HZ;
-- tl[ps->devno].data = (unsigned long)ps;
-- tl[ps->devno].function = ptdrvLampTimerIrq;
--
-- if( 0 != ps->lampoff )
-- add_timer( &tl[ps->devno] );
--#endif
-
- DBG( DBG_HIGH, "Lamp-Timer started!\n" );
- }
-@@ -616,7 +360,6 @@ static void ptdrvStartLampTimer( pScanDa
- */
- static void ptdrvStopLampTimer( pScanData ps )
- {
--#ifndef __KERNEL__
- sigset_t block, pause_mask;
-
- /* block SIGALRM */
-@@ -630,10 +373,6 @@ static void ptdrvStopLampTimer( pScanDat
- _VAR_NOT_USED( ps );
- alarm(0);
- #endif
--#else
-- if( 0 != ps->lampoff )
-- del_timer( &tl[ps->devno] );
--#endif
-
- DBG( DBG_HIGH, "Lamp-Timer stopped!\n" );
- }
-@@ -701,23 +440,11 @@ static int ptdrvOpenDevice( pScanData ps
- UShort lastMode;
- ULong devno;
-
--#ifdef __KERNEL__
-- UShort flags;
-- struct pardevice *pd;
-- struct parport *pp;
-- ProcDirDef procDir;
--#else
- int pd;
--#endif
-
- /*
- * push some values from the struct
- */
--#ifdef __KERNEL__
-- flags = ps->flags;
-- pp = ps->pp;
-- procDir = ps->procDir;
--#endif
- pd = ps->pardev;
- iobase = ps->sCaps.wIOBase;
- asic = ps->sCaps.AsicID;
-@@ -734,29 +461,10 @@ static int ptdrvOpenDevice( pScanData ps
- /*
- * pop the val(s)
- */
--#ifdef __KERNEL__
-- ps->flags = flags;
-- ps->pp = pp;
-- ps->procDir = procDir;
--#endif
- ps->pardev = pd;
- ps->bLastLampStatus = lastStat;
- ps->IO.lastPortMode = lastMode;
- ps->devno = devno;
--
--#ifdef __KERNEL__
-- if( _TRUE == slowIO[devno] ) {
-- DBG( DBG_LOW, "Using slow I/O\n" );
-- ps->IO.slowIO = _TRUE;
-- ps->IO.fnOut = IOOutDelayed;
-- ps->IO.fnIn = IOInDelayed;
-- } else {
-- DBG( DBG_LOW, "Using fast I/O\n" );
-- ps->IO.slowIO = _FALSE;
-- ps->IO.fnOut = IOOut;
-- ps->IO.fnIn = IOIn;
-- }
--#endif
- ps->ModelOverride = mov[devno];
- ps->warmup = warmup[devno];
- ps->lampoff = lampoff[devno];
-@@ -798,19 +506,6 @@ static int ptdrvInit( int devno )
- return _E_ALLOC;
- }
-
--#ifdef __KERNEL__
-- if( _TRUE == slowIO[devno] ) {
-- DBG( DBG_LOW, "Using slow I/O\n" );
-- ps->IO.slowIO = _TRUE;
-- ps->IO.fnOut = IOOutDelayed;
-- ps->IO.fnIn = IOInDelayed;
-- } else {
-- DBG( DBG_LOW, "Using fast I/O\n" );
-- ps->IO.slowIO = _FALSE;
-- ps->IO.fnOut = IOOut;
-- ps->IO.fnIn = IOIn;
-- }
--#endif
- ps->ModelOverride = mov[devno];
- ps->warmup = warmup[devno];
- ps->lampoff = lampoff[devno];
-@@ -845,13 +540,8 @@ static int ptdrvInit( int devno )
-
- if( _OK == retval ) {
-
--#ifdef __KERNEL__
-- _PRINT( "pt_drv%u: %s found on port 0x%04x\n",
-- devno, MiscGetModelName(ps->sCaps.Model), ps->IO.pbSppDataPort );
--#else
- DBG( DBG_LOW, "pt_drv%u: %s found\n",
- devno, MiscGetModelName(ps->sCaps.Model));
--#endif
-
- /*
- * initialize the timespan timer
-@@ -859,43 +549,23 @@ static int ptdrvInit( int devno )
- MiscStartTimer( &toTimer[ps->devno], (_SECOND * ps->warmup));
-
- if( 0 == ps->lampoff )
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv%u: Lamp-Timer switched off.\n", devno );
- else {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv%u: Lamp-Timer set to %u seconds.\n",
- devno, ps->lampoff );
- }
-
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv%u: WarmUp period set to %u seconds.\n",
- devno, ps->warmup );
-
- if( 0 == ps->lOffonEnd ) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv%u: Lamp untouched on driver unload.\n", devno );
- } else {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv%u: Lamp switch-off on driver unload.\n", devno );
- }
-
-@@ -1287,31 +957,19 @@ static int ptdrvRead( pScanData ps, pUCh
- int retval = _OK;
-
- #ifdef _ASIC_98001_SIM
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_LOW,
--#endif
- "pt_drv : Software-Emulation active, can't read!\n" );
- return _E_INVALID;
- #endif
-
- if((NULL == buffer) || (NULL == ps)) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv : Internal NULL-pointer!\n" );
- return _E_NULLPTR;
- }
-
- if( 0 == count ) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv%u: reading 0 bytes makes no sense!\n", ps->devno );
- return _E_INVALID;
- }
-@@ -1325,11 +983,7 @@ static int ptdrvRead( pScanData ps, pUCh
- * when using the cat /dev/pt_drv command!
- */
- if (!(ps->DataInf.dwVxdFlag & _VF_ENVIRONMENT_READY)) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv%u: Cannot read, driver not initialized!\n",ps->devno);
- return _E_SEQUENCE;
- }
-@@ -1340,11 +994,7 @@ static int ptdrvRead( pScanData ps, pUCh
- ps->Scan.bp.pMonoBuf = _KALLOC( ps->DataInf.dwAppPhyBytesPerLine, GFP_KERNEL);
-
- if ( NULL == ps->Scan.bp.pMonoBuf ) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv%u: Not enough memory available!\n", ps->devno );
- return _E_ALLOC;
- }
-@@ -1355,11 +1005,7 @@ static int ptdrvRead( pScanData ps, pUCh
- scaleBuf = _KALLOC( ps->DataInf.dwAppPhyBytesPerLine, GFP_KERNEL);
- if ( NULL == scaleBuf ) {
- _KFREE( ps->Scan.bp.pMonoBuf );
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv%u: Not enough memory available!\n", ps->devno );
- return _E_ALLOC;
- }
-@@ -1406,11 +1052,7 @@ static int ptdrvRead( pScanData ps, pUCh
-
- retval = ps->Calibration( ps );
- if( _OK != retval ) {
--#ifdef __KERNEL__
-- _PRINT(
--#else
- DBG( DBG_HIGH,
--#endif
- "pt_drv%u: calibration failed, result = %i\n",
- ps->devno, retval );
- goto ReadFinished;
-@@ -1507,12 +1149,9 @@ static int ptdrvRead( pScanData ps, pUCh
- ps->Scan.dwLinesToRead--;
-
- /* needed, esp. to avoid freezing the system in SPP mode */
--#ifdef __KERNEL__
-- schedule();
- /*#else
- sched_yield();
- */
--#endif
- }
-
- if (ps->fScanningStatus) {
-@@ -1565,346 +1204,6 @@ ReadFinished:
- return retval;
- }
-
--/*************************** the module interface ****************************/
--
--#ifdef __KERNEL__ /* the kernel module interface */
--
--/* Designed to be used as a module */
--#ifdef MODULE
--
--/*.............................................................................
-- * gets called upon module initialization
-- */
--#ifdef LINUX_26
--static int __init ptdrv_init( void )
--#else
--int init_module( void )
--#endif
--{
-- UInt devCount;
-- UInt i;
-- int retval = _OK;
-- int result = _OK;
--#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
-- char controlname[24];
--#endif
--# ifdef LINUX_26
-- char devname[20];
--#endif
--
-- DBG( DBG_HIGH, "*********************************************\n" );
-- DBG( DBG_HIGH, "pt_drv: init_module()\n" );
--
--#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
-- devfs_handle = devfs_mk_dir(NULL, "scanner", NULL);
-- if( devfs_register_chrdev(_PTDRV_MAJOR, _DRV_NAME, &pt_drv_fops)) {
--#else
-- if( register_chrdev(_PTDRV_MAJOR, _DRV_NAME, &pt_drv_fops)) {
--#endif
--
-- _PRINT(KERN_INFO "pt_drv: unable to get major %d for pt_drv devices\n",
-- _PTDRV_MAJOR);
-- return -EIO;
-- }
-- printk( KERN_INFO "pt_drv : driver version "_PTDRV_VERSTR"\n" );
--
--#if !defined (CONFIG_DEVFS_FS) && defined (LINUX_26)
-- ptdrv_class = class_create(THIS_MODULE, "scanner");
-- if (IS_ERR(ptdrv_class))
-- goto out_devfs;
--#endif
--
-- /* register the proc_fs */
-- ProcFsInitialize();
--
-- /* go through the list of defined ports and try to find a device
-- */
-- devCount = 0;
-- for( i = 0; i < _MAX_PTDEVS; i++ ) {
--
-- if( 0 != port[i] ) {
-- result = ptdrvInit( i );
--
-- if ( _OK == result ) {
-- PtDrvDevices[i]->flags |= _PTDRV_INITALIZED;
--
--#ifdef CONFIG_DEVFS_FS
--# ifndef DEVFS_26_STYLE
-- sprintf( controlname, "scanner/pt_drv%d", devCount );
-- devfs_register( NULL, controlname,
-- DEVFS_FL_DEFAULT, _PTDRV_MAJOR, 0,
-- (S_IFCHR | S_IRUGO | S_IWUGO | S_IFCHR),
-- &pt_drv_fops, NULL );
--# else /* DEVFS_26_STYLE */
-- devfs_mk_cdev(MKDEV(_PTDRV_MAJOR, devCount),
-- (S_IFCHR | S_IRUGO | S_IWUGO | S_IFCHR),
-- "scanner/pt_drv%d", devCount);
--# endif
--#else
--# ifdef LINUX_26
-- sprintf(devname, "pt_drv%d", devCount);
-- CLASS_DEV_CREATE(ptdrv_class,
-- MKDEV(_PTDRV_MAJOR, devCount), NULL,
-- devname);
--
--# endif /* LINUX_26 */
--#endif /* CONFIG_DEVFS_FS */
-- ProcFsRegisterDevice( PtDrvDevices[i] );
-- devCount++;
-- } else {
-- retval = result;
-- ptdrvShutdown( PtDrvDevices[i] );
-- PtDrvDevices[i] = NULL;
-- }
-- }
-- }
--
-- /* * if something went wrong, shutdown all... */
-- if( devCount == 0 ) {
--
--#if !defined (CONFIG_DEVFS_FS) && defined (LINUX_26)
--out_devfs:
-- class_destroy(ptdrv_class);
--#endif
--
--#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
-- devfs_unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
--#else
-- unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
--#endif
-- ProcFsShutdown();
--
--#ifdef __KERNEL__
-- _PRINT( KERN_INFO "pt_drv : no device(s) detected, (%i)\n", retval );
--#endif
--
-- } else {
--
-- DBG( DBG_HIGH, "pt_drv : init done, %u device(s) found\n", devCount );
-- retval = _OK;
-- }
-- DBG( DBG_HIGH, "---------------------------------------------\n" );
--
-- deviceScanning = _FALSE;
-- return retval;
--}
--
--/*.............................................................................
-- * cleanup the show
-- */
--#ifdef LINUX_26
--static void __exit ptdrv_exit( void )
--#else
--void cleanup_module( void )
--#endif
--{
-- UInt i;
-- pScanData ps;
--#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
-- char controlname[24];
-- devfs_handle_t master;
--#endif
--
-- DBG( DBG_HIGH, "pt_drv: cleanup_module()\n" );
--
-- for ( i = 0; i < _MAX_PTDEVS; i++ ) {
--
-- ps = PtDrvDevices[i];
-- PtDrvDevices[i] = NULL;
--
-- if ( NULL != ps ) {
--#ifdef CONFIG_DEVFS_FS
--# ifndef DEVFS_26_STYLE
-- sprintf( controlname, "scanner/pt_drv%d", i );
-- master = devfs_find_handle( NULL,controlname, 0, 0,
-- DEVFS_SPECIAL_CHR, 0 );
-- devfs_unregister( master );
--# else
-- devfs_remove("scanner/pt_drv%d", i);
--# endif
--#else
--# ifdef LINUX_26
-- CLASS_DEV_DESTROY(ptdrv_class, MKDEV(_PTDRV_MAJOR, i));
--# endif /* LINUX_26 */
--#endif /* CONFIG_DEVFS_FS */
-- ptdrvShutdown( ps );
-- ProcFsUnregisterDevice( ps );
-- }
-- }
--
--#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
-- devfs_unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
--#else
-- unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
--#endif
-- ProcFsShutdown();
--
--#if !defined (CONFIG_DEVFS_FS) && defined (LINUX_26)
-- class_destroy(ptdrv_class);
--#endif
--
-- DBG( DBG_HIGH, "pt_drv: cleanup done.\n" );
-- DBG( DBG_HIGH, "*********************************************\n" );
--}
--
--#ifdef LINUX_26
--module_init(ptdrv_init);
--module_exit(ptdrv_exit);
--#endif
--
--#endif /*MODULE*/
--
--
--/*.............................................................................
-- * device open...
-- */
--static int pt_drv_open(struct inode *inode, struct file *file)
--{
-- pScanData ps;
--
-- DBG( DBG_HIGH, "pt_drv_open()\n" );
--
-- ps = get_pt_from_inode(inode);
--
-- if ( NULL == ps ) {
-- return(-ENXIO);
-- }
--
-- /* device not found ? */
-- if (!(ps->flags & _PTDRV_INITALIZED)) {
-- return(-ENXIO);
-- }
--
-- /* device is busy ? */
-- if (ps->flags & _PTDRV_OPEN) {
-- return(-EBUSY);
-- }
--
--#ifdef LINUX_26
-- if (!try_module_get(THIS_MODULE))
-- return -EAGAIN;
--#else
-- MOD_INC_USE_COUNT;
--#endif
-- ps->flags |= _PTDRV_OPEN;
--
-- return _OK;
--}
--
--/*.............................................................................
-- * device close...
-- */
--static CLOSETYPE pt_drv_close(struct inode * inode, struct file * file)
--{
-- pScanData ps;
--
-- DBG( DBG_HIGH, "pt_drv_close()\n" );
--
-- if ((ps = get_pt_from_inode(inode)) ) {
--
-- ptdrvClose( ps );
--
-- ps->flags &= ~_PTDRV_OPEN;
--#ifdef LINUX_26
-- module_put(THIS_MODULE);
--#else
-- MOD_DEC_USE_COUNT;
--#endif
-- CLOSERETURN(0);
-- } else {
--
-- DBG( DBG_HIGH, "pt_drv: - close failed!\n" );
-- CLOSERETURN(-ENXIO);
-- }
--}
--
--/*.............................................................................
-- * read data from device
-- */
--#ifdef LINUX_20
--static int pt_drv_read(struct inode *inode, struct file *file,
-- char *buffer, int count)
--{
-- int result;
-- pScanData ps;
--
-- if ( !(ps = get_pt_from_inode(inode)))
-- return(-ENXIO);
--#else
--static ssize_t pt_drv_read( struct file *file,
-- char *buffer, size_t count, loff_t *tmp )
--{
-- int result;
-- pScanData ps;
--
-- if ( !(ps = get_pt_from_inode(file->f_dentry->d_inode)) )
-- return(-ENXIO);
--#endif
-- if ((result = verify_area_20(VERIFY_WRITE, buffer, count)))
-- return result;
--
-- /*
-- * as the driver contains some global vars, it is not
-- * possible to scan simultaenously with two or more devices
-- */
-- if( _TRUE == deviceScanning ) {
-- printk( KERN_INFO "pt_drv: device %u busy!!!\n", ps->devno );
-- return(-EBUSY);
-- }
--
-- deviceScanning = _TRUE;
--
-- result = ptdrvRead( ps, buffer, count );
--
-- deviceScanning = _FALSE;
-- return result;
--}
--
--/*.............................................................................
-- * writing makes no sense
-- */
--#ifdef LINUX_20
--static int pt_drv_write(struct inode * inode, struct file * file,
-- const char * buffer, int count)
--{
-- return -EPERM;
--}
--#else
-- static ssize_t pt_drv_write( struct file * file,const char * buffer,
-- size_t tmp,loff_t* count)
--{
-- return -EPERM;
--}
--#endif
--
--/*.............................................................................
-- * the ioctl interface
-- */
--#ifdef NOLOCK_IOCTL
--static long pt_drv_ioctl( struct file *file, UInt cmd, unsigned long arg )
--{
-- pScanData ps;
--
-- if ( !(ps = get_pt_from_inode(file->f_dentry->d_inode)) )
-- return(-ENXIO);
--
-- return ptdrvIoctl( ps, cmd, (pVoid)arg);
--}
--#else
--static int pt_drv_ioctl( struct inode *inode, struct file *file,
-- UInt cmd, unsigned long arg )
--{
-- pScanData ps;
--
-- if ( !(ps = get_pt_from_inode(inode)) )
-- return(-ENXIO);
--
-- return ptdrvIoctl( ps, cmd, (pVoid)arg);
--}
--#endif
--
--#else /* the user-mode interface */
--
- /*.............................................................................
- * here we only have wrapper functions
- */
-@@ -1980,6 +1279,4 @@ static int PtDrvRead ( pUChar buffer, in
- return ptdrvRead( PtDrvDevices[0], buffer, count );
- }
-
--#endif /* guard __KERNEL__ */
--
- /* END PLUSTEK-PP_PTDRV.C ...................................................*/
-Index: trunk/backend/plustek-pp_scan.h
-===================================================================
---- trunk.orig/backend/plustek-pp_scan.h
-+++ trunk/backend/plustek-pp_scan.h
-@@ -63,8 +63,6 @@
- #ifndef __PLUSTEK_SCAN_H__
- #define __PLUSTEK_SCAN_H__
-
--#ifndef __KERNEL__
--
- # include <stdlib.h>
- # include <stdarg.h>
- # include <string.h>
-@@ -76,19 +74,6 @@
- # ifdef HAVE_SYS_IO_H
- # include <sys/io.h>
- # endif
--#else
--# include <linux/kernel.h>
--# include <linux/init.h>
--# include <linux/version.h>
--# include "plustek-pp_sysdep.h"
--# include <linux/delay.h>
--# include <linux/parport.h>
--
--#ifdef LINUX_24
--# include <linux/parport_pc.h>
--#endif /* LINUX_24 */
--
--#endif /* __KERNEL__ */
-
- /*.............................................................................
- * driver properties
-@@ -104,20 +89,6 @@
- # define _OPF ps->IO.fnOut
- # define _IPF ps->IO.fnIn
-
--#ifdef __KERNEL__
--
--#define _OUTB_CTRL(pSD,port_value) _OPF(port_value,pSD->IO.pbControlPort)
--#define _OUTB_DATA(pSD,port_value) _OPF(port_value,pSD->IO.pbSppDataPort)
--#define _OUTB_ECTL(pSD,port_value) _OPF(port_value,(pSD->IO.portBase+0x402))
--
--#define _INB_CTRL(pSD) _IPF(pSD->IO.pbControlPort)
--#define _INB_DATA(pSD) _IPF(pSD->IO.pbSppDataPort)
--#define _INB_EPPDATA(pSD) _IPF(pSD->IO.pbEppDataPort)
--#define _INB_STATUS(pSD) _IPF(pSD->IO.pbStatusPort)
--#define _INB_ECTL(pSD) _IPF((pSD->IO.portBase+0x402))
--
--#else
--
- #define _OUTB_CTRL(pSD,port_value) sanei_pp_outb_ctrl(pSD->pardev, port_value)
- #define _OUTB_DATA(pSD,port_value) sanei_pp_outb_data(pSD->pardev, port_value)
- #define _OUTB_ECTL(pSD,port_value)
-@@ -127,32 +98,19 @@
- #define _INB_EPPDATA(pSD) sanei_pp_inb_epp(pSD->pardev)
- #define _INB_STATUS(pSD) sanei_pp_inb_stat(pSD->pardev)
-
--#endif
--
- /*.............................................................................
- * for memory allocation
- */
--#ifndef __KERNEL__
- # define _KALLOC(x,y) malloc(x)
- # define _KFREE(x) free(x)
- # define _VMALLOC(x) malloc(x)
- # define _VFREE(x) free(x)
--#else
--# define _KALLOC(x,y) kmalloc(x,y)
--# define _KFREE(x) kfree(x)
--# define _VMALLOC(x) vmalloc(x)
--# define _VFREE(x) vfree(x)
--#endif
-
- /*
- * WARNING - never use the _SECOND define with the _DODELAY macro !!
- * they are for use the MiscStartTimer function and the _DO_UDELAY macro
- */
--#ifndef __KERNEL__
- typedef double TimerDef, *pTimerDef;
--#else
--typedef long long TimerDef, *pTimerDef;
--#endif
-
- #define _MSECOND 1000 /* based on 1 us */
- #define _SECOND (1000*_MSECOND)
-@@ -160,13 +118,8 @@ typedef long long TimerDef, *pTimerDef;
- /*.............................................................................
- * timer topics
- */
--#ifndef __KERNEL__
- # define _DO_UDELAY(usecs) sanei_pp_udelay(usecs)
- # define _DODELAY(msecs) { int i; for( i = msecs; i--; ) _DO_UDELAY(1000); }
--#else
--# define _DO_UDELAY(usecs) udelay(usecs)
--# define _DODELAY(msecs) mdelay(msecs)
--#endif
-
- /*.............................................................................
- * include the shared stuff right here, this concerns the ioctl interface
-Index: trunk/backend/plustek-pp_scandata.h
-===================================================================
---- trunk.orig/backend/plustek-pp_scandata.h
-+++ trunk/backend/plustek-pp_scandata.h
-@@ -143,17 +143,7 @@ typedef struct {
- */
- typedef struct scandata
- {
--#ifdef __KERNEL__
-- UInt flags; /* as follows: */
--#define _PTDRV_INITALIZED 0x00000001
--#define _PTDRV_OPEN 0x00000002
--
-- struct pardevice *pardev; /* for accessing parport... */
-- struct parport *pp;
-- ProcDirDef procDir;
--#else
- int pardev; /* parport handle in user-space */
--#endif
-
- /*
- * device control
-Index: trunk/doc/Makefile.am
-===================================================================
---- trunk.orig/doc/Makefile.am
-+++ trunk/doc/Makefile.am
-@@ -124,8 +124,8 @@ BEDOCS += mustek/mustek.CHANGES
- BEDOCS += mustek_usb/mustek_usb.CHANGES mustek_usb/mustek_usb.TODO
- BEDOCS += mustek_usb2/mustek_usb2.CHANGES mustek_usb2/mustek_usb2.TODO
- BEDOCS += niash/niash.TODO
--BEDOCS += plustek/FAQ plustek/MakeModule.sh plustek/Makefile.kernel24 \
-- plustek/Makefile.kernel26 plustek/Plustek-PARPORT-TODO.txt \
-+BEDOCS += plustek/FAQ \
-+ plustek/Plustek-PARPORT-TODO.txt \
- plustek/Plustek-PARPORT.changes plustek/Plustek-PARPORT.txt \
- plustek/Plustek-USB-TODO.txt plustek/Plustek-USB.changes \
- plustek/Plustek-USB.txt
-Index: trunk/doc/plustek/FAQ
-===================================================================
---- trunk.orig/doc/plustek/FAQ
-+++ trunk/doc/plustek/FAQ
-@@ -12,111 +12,10 @@ If you have some more FAQ entries, let m
- THANKS to Jochen <jochen@puchalla-online.de>, who roamed through the
- mailing-list and gathered the different questions.
-
--
- *******************************************************************************
--* TROUBLE-SHOOTING *
--* *
--* DRIVER TOPICS *
-+* General *
- *******************************************************************************
-
--
--SYMPTOM: "kernel-module version mismatch"
----------
--"When I try to "make load" I get an error"
--
--/sbin/modprobe pt_drv || exit 1
--/lib/modules/2.2.14-6.0.6/misc/pt_drv.o: kernel-module version mismatch
--/lib/modules/2.2.14-6.0.1/misc/pt_drv.o was compiled
--for kernel version 2.2.14-5.0
--while this kernel is version 2.2.14-6.0.1.
--
--PROBLEM:
----------
--You're using the wrong Kernel-header files.
--
--The path
--/usr/include/linux is a link to
--/usr/src/linux/include/linux and
--/usr/src/linux is normally a link to your current
--kernel, i.e:
--/usr/src/linux-2.2.14
--
--If you now upgrade your kernel and you have
--forgotten to correct the link /usr/src/linux, then
--every kernel-module you build outside the
--kernelsource structure will include the wrong
--version information.
--
--SOLUTION:
-----------
--Set the link /usr/src/linux
--to your current kernel-source tree before recompiling
--kernel-modules like pt_drv, then your version mismatch
--problem should be solved.
--
--
--
--SYMPTOM: "Device or resource busy"
----------
--Any attempt to "modprobe" or "make load" the driver leads
--to this message.
--
--PROBLEM:
----------
--The driver refuses to load. During startup, the driver performs
--some tests according to the parallel port and the connected
--scanners.
--If the parallel port is not supported or the scanner cannot be
--found, the driver returns an error and the system will report
--"device or resource busy"
--
--SOLUTION:
-----------
--There's no way to provide a general solution. First of all
--you should check your connections and the parallel port.
--Also check power for your scanner.
--If the problem still exists, enable the debug-messages of the
--pt_drv module (see INSTALL).
--Then check the messages after loading or send the output to
--the mailing list.
--Most of these problems are related to HW-problems. Before
--giving up, check the scanner under Windows (not really a
--good advice I know, but it helps to find HW-damage).
--There was also one case were the internal plugs of the parport
--connection were wrong...
--
--
--
--SYMPTOM: "Unresolved symbols"
----------
--"make load" or "modprobe pt_drv" produces this message:
--
--/sbin/modprobe pt_drv || exit 1
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_unregister_device
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_enumerate
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_register_device
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_claim
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_release
--/lib/modules/2.2.14-5.0/misc/pt_drv.o: insmod
--/lib/modules/2.2.14-5.0/misc/pt_drv.o failed
--
--
--PROBLEM:
----------
--The driver needs at least the parport_pc and the parport modules
--to work. They MUST be loaded prior to pt_drv. If these modules
--are not loaded you get this message.
--
--SOLUTION:
-----------
--Simply load the parport module. You can add this dependency to
--your /etc/modules.conf (or /etc/conf.modules) file (see INSTALL).
--Then every time you load pt_drv with modprobe, parport will be loaded
--automatically. After modifying this file, call
--depmod -va
--
--
--
- SYMPTOM: Scanner makes awful noise
- --------
-
-@@ -138,7 +37,6 @@ The second case is often reported when t
- already loaded. So remove lp.o before loading pt_drv.
-
-
--
- SYMPTOM: Printer starts to print while scanning
- --------
-
-@@ -294,23 +192,6 @@ A: You should be able to use xscanimage
- now the Acquire Image menu entry. That's all.
- If not, start gimp from an xterm and have a look at the output.
-
--
--Q: Is there any way to load the plustek_driver at bootup-time?
--
--A: Normally, there is no need to do so, because once you
-- altered your /etc/conf.modules file (or /etc/modules.conf)
-- and added the suggested stuff (see INSTALL file), you won't
-- have to worry about loading the driver. It happens automagically. ;-)
-- The driver will be loaded when needed (and eventually
-- removed after a specific time of not using it).
--
-- Nevertheless, another possibility is to do a modprobe pt_drv in the
-- /etc/rc.d/boot.local (using SuSE) or
-- /etc/rc.d/rc.local (using RedHat or Mandrake) file
-- So the driver will be loaded at bootup-time...
-- !!! YOUR SCANNER MUST BE ONLINE during power-up then !!!
--
--
- Q: I wonder if Mandrake 7.1's sane rpm file has this support already built in.
- My scanner light is coming on yet Xscanimage seems to report that there
- is no scanner present.
-Index: trunk/doc/plustek/MakeModule.sh
-===================================================================
---- trunk.orig/doc/plustek/MakeModule.sh
-+++ /dev/null
-@@ -1,116 +0,0 @@
--#!/bin/bash
--#******************************************************************************
--#
--# Bash-Script to create Plustek-Scannerdriver modules for Kernel 2.4, 2.6 and 3.x
--# out of the backend sources...
--#
--
--BUILD_DIR=$PWD/build
--SRC_DIR=$PWD/../../backend
--MAKEFILE=$PWD/Makefile.kernel26
--KERNEL_V=`uname -r`
--OSMINOR=`uname -r | cut -b 3`
--OSMAJOR=`uname -r | cut -b 1`
--
--#
--# some intro ;-)
--#
--echo "This script will try and build a suitable kernel-module for your system."
--echo "If you'd like to make the module WITH debug output, restart this script"
--echo "with as follows:"
--echo "./MakeModule.sh DEBUG=y"
--echo "Press <ENTER> to continue or <CTRL><C> to cancel."
--read
--
--#
--# we need to be root user...
--#
--echo -n "Check for root..."
--if [ $EUID -ne 0 ]; then
-- echo -e "\b\b\b - failed"
-- echo "Please retry as root user."
-- exit -1
--fi
--echo -e "\b\b\b - done."
--
--#
--# Version checks...
--#
--echo -e "\nCheck for kernelversion:"
--if [ "$OSMAJOR" == "3" ];then
-- echo "Using makefile for kernel 2.6.x - okay for kernel 3 as well..."
-- MAKEFILE=$PWD/Makefile.kernel26
--elif [ "$OSMINOR" == "6" ]; then
-- echo "Using makefile for kernel 2.6.x"
-- MAKEFILE=$PWD/Makefile.kernel26
--elif [ "$OSMINOR" == "4" ]; then
-- echo "Using makefile for kernel 2.4.x"
-- MAKEFILE=$PWD/Makefile.kernel24
--else
-- echo "Your kernelversion >"$OSMAJOR"."$OSMINOR"< is probably not supported"
-- exit -2
--fi
--
--#
--# Setup...
--#
--echo -e "Build-directory: \n"$BUILD_DIR
--echo -n "Removing build-directory..."
--rm -rf $BUILD_DIR
--echo -e "\b\b\b - done."
--
--echo -n "Creating build-directory..."
--mkdir $BUILD_DIR
--cd $BUILD_DIR
--echo -e "\b\b\b - done.\n"
--
--echo -n "Linking source files..."
--C_FILES=`ls $SRC_DIR/plustek-pp_*.c`
--H_FILES=`ls $SRC_DIR/plustek-pp_*.h`
--
--for F in $C_FILES $H_FILES $SRC_DIR/plustek-pp.h $SRC_DIR/plustek_pp.c; do
-- ln -s $F .
--done
--echo -e "\b\b\b - done."
--
--echo -n "Copying Makefile to build-directory..."
--cp $MAKEFILE Makefile
--echo -e "\b\b\b - done."
--
--#
--# Building the module...
--#
--echo "Making the module..."
--if [ "$OSMAJOR" == "2" -a "$OSMINOR" == "4" ]; then
-- make all $1
--else
-- make -C /lib/modules/$KERNEL_V/build/ SUBDIRS=$BUILD_DIR modules $1
--fi
--RES=$?
--cd ..
--if [ $RES != 0 ]; then
-- echo "There were some build errors..."
-- exit -1
--fi
--echo "done."
--
--echo "Should I install the module?"
--echo "Press <ENTER> to continue or <CTRL><C> to cancel."
--read
--
--make -C $BUILD_DIR install
--
--echo "Should I try and load the module?"
--echo "If this step fails, check the kernel-log."
--echo "Press <ENTER> to continue or <CTRL><C> to cancel."
--read
--
--make -C $BUILD_DIR load
--echo "done."
--
--echo "Should I remove the build directory?"
--echo "Press <ENTER> to continue or <CTRL><C> to cancel."
--read
--
--rm -rf $BUILD_DIR
--echo "done."
-Index: trunk/doc/plustek/Makefile.kernel24
-===================================================================
---- trunk.orig/doc/plustek/Makefile.kernel24
-+++ /dev/null
-@@ -1,250 +0,0 @@
--# Makefile for the plustek scanner driver (kernel-module)
--#
--###############################################################################
--#
--# define the directories
--#
--HOME_DIR := .
--SRC_DIR := $(HOME_DIR)
--INC_DIR := $(SRC_DIR)
--OBJ_DIR := $(HOME_DIR)/obj
--DOC_DIR := $(HOME_DIR)/doc
--BACKEND := $(SRC_DIR)
--
--#
--# define the used tools
--#
--MD = mkdir -p
--CC = gcc
--TAR = tar
--REF = cxref
--
--#
--# Comment/uncomment the following line to disable/enable debugging
--# can also be set by commandline parameter: make all DEBUG=y
--#
--#DEBUG = y
--
--#
--# common compiler options
--#
--OPT = -fomit-frame-pointer -D_PTDRV_VERSTR=\"$(VERSIONSTR)\"
--
--#
--# cxref options
--#
--REFOPT = -xref-all -index-all -html32
--
--#
--# Comment out if you are not running SMP. Someone take this out of here
--# when the SMP stuff gets moved out of the kernel Makefile.
--# SMP = 1
--# SMP_PROF = 1
--
--#
--# add the following to get assembly listing
--# -Wa,-alh,-L -g
--
--#
--# get some version numbers
--#
--ifeq ($(LINUXVERSION),)
-- LINUXVERSION = $(shell uname -r)
--endif
--
--VERSIONSTR = $(shell grep "define BACKEND_VERSION" $(SRC_DIR)/plustek_pp.c | cut -b25-50 )
--
--# Change it here or specify it on the "make" commandline
--ifeq ($(HEADER_PATH),)
--MACHTYPE = $(shell env | grep debian-linux | wc -l | sed 's/ //g')
--ifeq ($(MACHTYPE),1)
--# debian
-- HEADER_PATH = /usr/src/kernel-headers-$(LINUXVERSION)/include
--else
--# redhat, slackware
-- HEADER_PATH = /usr/src/linux/include
--endif
--# HEADER_PATH = /usr/include
--endif
--
--ifeq ($(DEBUG),y)
-- DEBFLAGS = -O -g -DDEBUG # "-O" is needed to expand inlines
--else
-- DEBFLAGS = -O2
--endif
--
--#
--# the new style reference
--#
--K24_HEADER_PATH = /lib/modules/$(LINUXVERSION)/build/include
--
--#
--# try to autodetect if we can use the new style header include references
--#
--KERNEL_HEADERS = $(shell if test -d $(K24_HEADER_PATH); then \
-- echo $(K24_HEADER_PATH); \
-- else \
-- echo $(HEADER_PATH); \
-- fi; )
--
--#
--# seems to be necessary for kernels 2.4.x
--#
--MODVERFILE = $(shell if [ -e $(KERNEL_HEADERS)/linux/modversions.h ]; then \
-- echo $(KERNEL_HEADERS)/linux/modversions.h ; \
-- else \
-- echo $(KERNEL_HEADERS)/linux/modsetver.h ; \
-- fi )
--
--MODFLAGS = -DMODULE
--
--#
--# set MODVERSIONS if the kernel uses it
--#
--VERSUSED = $(shell grep 'define CONFIG_MODVERSIONS' \
-- $(KERNEL_HEADERS)/linux/autoconf.h | wc -l | sed 's/ //g')
--ifeq ($(VERSUSED),1)
-- MODFLAGS += -DMODVERSIONS -include $(MODVERFILE)
--endif
--
--
--WARNFLAGS = -Wall -Wstrict-prototypes
--CFLAGS = $(WARNFLAGS) $(OPT) -D__KERNEL__ -I$(KERNEL_HEADERS) -I$(INC_DIR) -I$(BACKEND) $(DEBFLAGS) $(MODFLAGS)
--MODLIB = /lib/modules/$(LINUXVERSION)
--
--ifdef SMP
--CFLAGS += -D__SMP__
--
--ifdef SMP_PROF
--CFLAGS += -D__SMP_PROF__
--endif
--endif
--
--TARGET = pt_drv
--
--OBJ = $(TARGET).o
--NAMES := dac detect genericio image map misc models io procfs
--NAMES := $(NAMES) motor p9636 ptdrv scale tpa p48xx p12 p12ccd
--NAMES := $(addprefix plustek-pp_, $(NAMES))
--SRCS := $(addprefix $(SRC_DIR)/, $(NAMES))
--SRCS := $(addsuffix .c, $(SRCS))
--OBJS := $(addprefix $(OBJ_DIR)/, $(NAMES))
--OBJS := $(addsuffix .o, $(OBJS))
--INCS := scan dbg types scandata procs hwdefs sysdep
--INCS := $(addsuffix .h, $(INCS))
--HDRS = $(addprefix $(INC_DIR)/plustek-pp_, $(INCS))
--
--#
--# the header files we need from the backend
--#
--BACKINCS := plustek-pp.h
--BACKINCS := $(addprefix $(BACKEND)/, $(BACKINCS))
--
--group = "root"
--mode = "644"
--INST_DIR = /lib/modules/$(LINUXVERSION)/kernel/drivers/char
--
--info:
-- @clear
-- @echo "Makefile to create the Plustek-Scanner kernel-module:"
-- @echo "all ... builds the module"
-- @echo "all DEBUG=y ... builds the module with debug-messages enabled"
-- @echo "clean ... cleans up the show"
-- @echo "install ... installs the module to the library path"
-- @echo "uninstall ... removes the module from the library path"
-- @echo "load ... tries to load the module and creates device nodes"
-- @echo "unload ... unloads the module"
--
--
--all: .depend chkdir $(OBJ)
--
--#
--# create object directory
--#
--.PHONY : chkdir
--chkdir:
-- @-$(MD) $(OBJ_DIR)
-- @-$(MD) $(DOC_DIR)
--
--$(OBJ): $(OBJS)
-- $(LD) -r $^ -o $@
--
--$(OBJS): Makefile $(HDRS) $(BACKINCS)
--
--$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
-- $(CC) $(CFLAGS) -c $< -o $@
--
--$(OBJ_DIR)/$(OBJ): VERSION1 VERSION0
--
--#
--# copy the driver to the modules directory
--#
--install:
-- mkdir -p $(INST_DIR)
-- install -c -m $(mode) $(OBJ) $(INST_DIR)
-- /sbin/depmod -a
--
--#
--# remove it
--#
--uninstall:
-- rm -f $(INST_DIR)/$(OBJ)
--
--#
--# use modprobe to load the driver, remember to set the
--# parameter in /etc/modules.conf (see sane-plustek_pp.man for more details)
--#
--load: $(INST_DIR)/$(OBJ)
--# invoke modprobe with all arguments we got
-- /sbin/modprobe $(TARGET) || exit 1
--
--# Remove stale nodes and replace them, then give gid and perms
-- rm -f /dev/$(TARGET)*
--
--# when using the devfs support, we check the /dev/scanner entries
--# and only create links to the devfs nodes
--# at least we create one link
-- @if [ -e /dev/scanner/$(TARGET)* ]; then \
-- ln -s /dev/scanner/$(TARGET)0 /dev/$(TARGET); \
-- for name in `ls /dev/scanner | grep $(TARGET)`; do \
-- ln -s /dev/scanner/$$name /dev/$$name ; \
-- done \
-- else \
-- mknod /dev/$(TARGET) c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \
-- mknod /dev/$(TARGET)0 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \
-- mknod /dev/$(TARGET)1 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 1; \
-- mknod /dev/$(TARGET)2 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 2; \
-- mknod /dev/$(TARGET)3 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 3; \
-- \
-- chgrp $(group) /dev/$(TARGET)*; \
-- chmod $(mode) /dev/$(TARGET)*; \
-- fi
--
--#
--# unload the driver
--#
--unload:
-- /sbin/modprobe -r $(TARGET) || exit 1
--
--# Remove stale nodes
-- rm -f /dev/$(TARGET)*
--
--#
--# create reference docu
--#
--doc: chkdir
-- $(REF) $(REFOPT) $(INC_DIR)/*.h $(SRC_DIR)/*.c $(BACKEND)/plustek-share.h \
-- -D__KERNEL__ -I$(KERNEL_HEADERS) -I$(INC_DIR) -I$(BACKEND) $(MODFLAGS) \
-- -D_PTDRV_V1=$(VERSION1) -D_PTDRV_V0=$(VERSION0) -D_PTDRV_BUILD=$(BUILD) -O$(DOC_DIR)
--
--clean:
-- @-rm -f $(OBJ_DIR)/*.o .depend depend dep $(REF).* *.html $(TARGET).o
-- @-rm -rf $(OBJ_DIR)
-- @-rm -rf $(DOC_DIR)
--
--depend .depend dep:
-- $(CC) $(CFLAGS) -M $(SRCS) > $@
--
--ifeq (.depend,$(wildcard .depend))
--#include .depend
--endif
-Index: trunk/doc/plustek/Makefile.kernel26
-===================================================================
---- trunk.orig/doc/plustek/Makefile.kernel26
-+++ /dev/null
-@@ -1,124 +0,0 @@
--# Makefile for the plustek scanner driver (kernel-module)
--#
--###############################################################################
--
--#
--# retrieve the version numbers
--#
--ifeq ($(LINUXVERSION),)
-- LINUXVERSION = $(shell uname -r)
--endif
--LINUXRELEASE = $(shell uname -r | cut -d'.' -f3)
--
--ifeq ($(VERSIONSTR),)
-- ifeq ($(SUBDIRS),)
-- VERSIONSTR = $(shell grep "define BACKEND_VERSION" $(M)/plustek_pp.c | cut -b25-50 )
-- else
-- VERSIONSTR = $(shell grep "define BACKEND_VERSION" $(SUBDIRS)/plustek_pp.c | cut -b25-50 )
-- endif
--endif
--
--#
--# extra flags
--#
--EXTRA_CFLAGS += -D_PTDRV_VERSTR=\"$(VERSIONSTR)\"
--
--ifeq ($(DEBUG),y)
-- EXTRA_CFLAGS += -DDEBUG
--endif
--
--#
--# the module name
--#
--TARGET := pt_drv
--MODULE := $(TARGET).ko
--
--#
--# our files...
--#
--NAMES := dac detect genericio image map misc models io procfs
--NAMES := $(NAMES) motor p9636 ptdrv scale tpa p48xx p12 p12ccd
--NAMES := $(addprefix plustek-pp_, $(NAMES))
--OBJS := $(addsuffix .o, $(NAMES))
--
--#
--# now the kernel magic
--#
--ifneq ($(KERNELRELEASE),)
--obj-m := $(TARGET).o
--
--$(TARGET)-objs := $(OBJS)
--
--else
--KDIR := /lib/modules/$(shell uname -r)/build
--PWD := $(shell pwd)
--
--default:
-- $(MAKE) -C $(KDIR) M=$(PWD) modules
--endif
--
--#
--# the installation stuff
--#
--group = "root"
--mode = "644"
--INST_DIR = /lib/modules/$(LINUXVERSION)/kernel/drivers/parport
--
--#
--# copy the driver to the modules directory
--#
--install:
-- mkdir -p $(INST_DIR)
-- install -c -m $(mode) $(MODULE) $(INST_DIR)
-- /sbin/depmod -a
--
--#
--#
--#
--uninstall:
-- rm -f $(INST_DIR)/$(MODULE)
--
--#
--# use modprobe to load the driver, remember to set the
--# parameter in /etc/conf.modules (see INSTALL for more details)
--#
--load: $(INST_DIR)/$(MODULE)
--# invoke modprobe with all arguments we got
-- /sbin/modprobe $(TARGET) || exit 1
--
--# Remove stale nodes and replace them, then give gid and perms
-- rm -f /dev/$(TARGET)*
--
--# when using the devfs support, we check the /dev/scanner entries
--# and only create links to the devfs nodes
--# at least we create one link
-- @if [ -e /dev/scanner/$(TARGET)* ]; then \
-- ln -s /dev/scanner/$(TARGET)0 /dev/$(TARGET); \
-- for name in `ls /dev/scanner | grep $(TARGET)`; do \
-- ln -s /dev/scanner/$$name /dev/$$name ; \
-- done \
-- else \
-- mknod /dev/$(TARGET) c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \
-- mknod /dev/$(TARGET)0 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \
-- mknod /dev/$(TARGET)1 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 1; \
-- mknod /dev/$(TARGET)2 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 2; \
-- mknod /dev/$(TARGET)3 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 3; \
-- \
-- chgrp $(group) /dev/$(TARGET)*; \
-- chmod $(mode) /dev/$(TARGET)*; \
-- fi
--
--#
--# unload the driver
--#
--unload:
-- /sbin/modprobe -r $(TARGET) || exit 1
--
--# Remove stale nodes
-- rm -f /dev/$(TARGET)*
--
--#
--# cleanup the show
--#
--clean:
-- @-rm -f *.o .depend depend dep $(MODULE) $(TARGET).o $(TARGET).mod.c .*.cmd
-Index: trunk/doc/plustek/Plustek-PARPORT.txt
-===================================================================
---- trunk.orig/doc/plustek/Plustek-PARPORT.txt
-+++ trunk/doc/plustek/Plustek-PARPORT.txt
-@@ -1,46 +1,10 @@
- Plustek-PARPRORT.txt (2004-03-28) Gerhard Jäger <gerhard@gjaeger.de>
- ====================================================================
-
--
- Beginning with SANE-1.0.13, there's a backend called plustek_pp.
- This is for controlling Plustek parallel-port scanner and compatible
- devices. For a full listing, see plustek_pp.desc.
-
--This code formerly was available for creating the Linux kernelmodule
--pt_drv. This should no longer be necessary. You should be able to use
-+This code formerly was available for creating the Linux kernel module
-+pt_drv. This is no longer be necessary. You should be able to use
- the backend out of the box.
--
--
--The kernel module
-------------------
--
--As it might be helpful to create and use the kernel-module, this way still
--exists. It's possible to create this module out of the backend sources
--in sane-backends/backend. Simply do (as root user)
--
--./MakeModule.sh
--
--Then the module should be compiled, installed and loaded.
--
--Add the following three lines to file /etc/modules.conf
--
--alias char-major-40 pt_drv
--pre-install pt_drv modprobe -k parport
--options pt_drv lampoff=180 warmup=15 port=0x378 lOffonEnd=0 mov=0 slowIO=1
--
--See man page for sane-plustek_pp ("man sane-plustek_pp") for explanation of
--these options.
--
--Now "scanimage -L" should show something like this:
--device `plustek:/dev/pt_drv' is a Plustek 9630P flatbed scanner
--
--
--Known Problems:
-----------------
--
--Sometimes it is necessary to change the ioctl-interface between the
--driver and the backend, in this case the version number of the communication
--protocol will be changed and newer drivers won't work with older backends
--and vice versa.
--In this case (error -9019 in the SANE debug output!!) you have to recompile SANE
--AND the driver (have a look at the installation procedure above).
-Index: trunk/doc/plustek/Plustek-USB.txt
-===================================================================
---- trunk.orig/doc/plustek/Plustek-USB.txt
-+++ trunk/doc/plustek/Plustek-USB.txt
-@@ -4,10 +4,7 @@ Plustek-USB.txt (2005-08-08) Gerhard Jä
- NOTE:
- -----
-
--ALL YOU NEED TO RUN YOUR USB SCANNER IS ALREADY INCLUDED. THERE'S
--NO NEED TO INSTALL THE KERNEL MODULE pt_drv. THIS ONE IS ONLY NEEDED
--FOR THE PLUSTEK PARALLELPORT SCANNER.
--
-+ALL YOU NEED TO RUN YOUR USB SCANNER IS ALREADY INCLUDED.
-
- List of all currently implemented devices
- -----------------------------------------
-Index: trunk/doc/sane-plustek_pp.man
-===================================================================
---- trunk.orig/doc/sane-plustek_pp.man
-+++ trunk/doc/sane-plustek_pp.man
-@@ -9,18 +9,10 @@ The
- library implements a SANE (Scanner Access Now Easy) backend that
- provides access to Plustek ASIC 9600[1/3] and P9800[1/3] based
- parallel port flatbed scanners.
--The access of the scanner is either done directly by the backend
--or via kernel module, called pt_drv which can be created out of
--the
--.B sane\-plustek_pp
--backend code \- see also section
--.B "BUILDING THE KERNEL MODULE"
--for further information.
-
- .SH "SUPPORTED DEVICES"
-
--At present, the following scanners should work with this backend
--and/or the kernel module:
-+At present, the following scanners should work with this backend:
- .PP
- .B "PLUSTEK SCANNERS"
- .PP
-@@ -112,18 +104,14 @@ BrightScan OpticPro OpticPro P12
- .ft R
-
- .SH "DEVICE NAMES"
--This backend works in two modes, the so called "direct-mode"
--and the "kernel-mode". In direct-mode, the user-space backend is
--used, in kernel-mode, you should have a kernel-module named pt_drv
--loaded.
--This backends default device is:
-+This backend's default device is:
- .PP
- .RS
- .I 0x378
- .RE
- .PP
--This "default device" will be used, if no configuration
--file can be found. It is rather the base address of the parallel port
-+This "default device" will be used if no configuration
-+file can be found. It is the base address of the parallel port
- on i386 machines.
- .PP
- As the backend supports up to four devices, it is possible to
-@@ -150,24 +138,13 @@ For a proper setup, you will need at lea
- .I device 0x378
- .RE
- .PP
--or
--.RS
--.I [kernel]
--.br
--.I device /dev/pt_drv
--.RE
--.PP
- .I direct
- tells the backend, that the following devicename (here
- .IR 0x378 )
- has to be interpreted as parallel port scanner device. In
--fact it is the address to use, alternatively you can use
-+fact it is the address to use. Alternatively you can use
- .I /dev/parport0
- if the backend has been compiled with libieee1284 support.
--.I kernel
--should only be used, when a kernel-module has been built
--out of the backend sources. See below for more instructions
--about this.
- .PP
- Further options:
- .PP
-@@ -235,157 +212,6 @@ See the
- file for examples.
- .PP
-
--.SH "BUILDING THE KERNEL MODULE"
--As mentioned before, the
--.B sane\-plustek_pp
--backend code can also be compiled and installed as linux kernel module. To do so,
--you will need the source-files of this sane\-backend installation.
--Unpack this tar-ball and go to the directory:
--.IR sane\-backends/doc/plustek .
--Within this directory, you should find a script called:
--.IR MakeModule.sh .
--Now if your Linux kernelsources are installed correctly,
--it should be possible to build, install and load the
--module
--.BR pt_drv .
--.B Please note,
--that the kernelsources need to be configured correctly.
--Refer to your distributions
--manual on how this is done. As root user, try
--.PP
--.I ./MakeModule.sh
--.PP
--the script will try and get all necessary information about your
--running kernel and will lead you through the whole installation
--process.
--.br
--.B Note: Installing and loading the can only be done as
--superuser.
--.PP
--
--.SH "KERNEL MODULE SETUP"
--The configuration of the kernel module is done by providing
--some or more options found below to the kernel module at
--load time. This can be done by invoking
--.BR insmod (8)
--with the appropriate parameters or appending the options to the file
--.I /etc/modules.conf (kernel < 2.6.x)
--or
--.I /etc/modprobe.conf (kernel >= 2.6.x)
--.PP
--.B
--The Options:
--.br
--lampoff=lll
--.RS
--The value
--.I lll
--tells the driver, after how many seconds to
--switch-off the lamp(s). The default value is 180.
--0 will disable this feature.
--.br
--.B HINT:
--Do not use a value that is too small, because often
--switching on/off the lamps will reduce their lifetime.
--.RE
--.PP
--port=ppp
--.RS
--.I ppp
--specifies the port base address, where the scanner
--is connected to. The default value is 0x378, which
--is normally a standard.
--.RE
--.PP
--warmup=www
--.RS
--.I www
--specifies the time in seconds, how long a lamp has to be on,
--until the driver will start to scan. The default value is 30.
--.RE
--.PP
--lOffonEnd=e
--.RS
--.I e
--specifies the behaviour when unloading the driver, 1 --> switch
--lamps off, 0 --> do not change lamp status
--.RE
--.PP
--slowIO=s
--.RS
--.I s
--specifies which I/O functions the driver should use, 1 --> use
--delayed functions, 0 --> use the non-delayed ones
--.RE
--.PP
--forceMode=fm
--.RS
--.I fm
--specifies port mode which should be used, 0 --> autodetection,
--1 --> use SPP mode and 2 --> use EPP mode
--.RE
--.PP
--mov=m
--.RS
--.TP
--.IR m " = 0"
--default: no override
--.TP
--.IR m " = 1"
--OpticPro 9630PL override (works if OP9630
--has been detected) forces legal size (14")
--.TP
--.IR m " = 2"
--Primax 4800Direct override (works if OP600
--has been detected) swaps red/green color
--.TP
--.IR m " = 3"
--OpticPro 9636 override (works if OP9636 has
--been detected) disables backends
--transparency/negative capabilities
--.TP
--.IR m " = 4"
--OpticPro 9636P override (works if OP9636 has
--been detected) disables backends
--transparency/negative capabilities
--.TP
--.IR m " = 5"
--OpticPro A3I override (works if OP12000 has
--been detected) enables A3 scanning
--.TP
--.IR m " = 6"
--OpticPro 4800P override (works if OP600
--has been detected) swaps red/green color
--.TP
--.IR m " = 7"
--Primax 4800Direct 30bit override (works if
--OP4830 has been detected)
--.RE
--.PP
--Sample entry for file
--.IR /etc/modules.conf :
--.PP
--.RS
--alias char\-major\-40 pt_drv
--.br
--pre-install pt_drv modprobe -k parport
--.br
--options pt_drv lampoff=180 warmup=15 port=0x378 lOffonEnd=0 mov=0 slowIO=0 forceMode=0
--.RE
--.PP
--For multidevice support, simply add values separated by commas to
--the different options
--.PP
--.RS
--options pt_drv port=0x378,0x278 mov=0,4 slowIO=0,1 forceMode=0,1
--.RE
--.PP
--Remember to call
--.BR depmod (8)
--after changing
--.IR /etc/conf.modules .
--.PP
--
- .SH "PARALLEL PORT MODES"
- .PP
- The current driver works best, when the parallel port
-@@ -423,13 +249,6 @@ The static library implementing this bac
- .I @LIBDIR@/libsane\-plustek_pp.so
- The shared library implementing this backend (present on systems that
- support dynamic loading).
--.TP
--.I /lib/modules/<Kernel-Version>/kernel/drivers/parport/pt_drv.o
--The Linux kernelmodule for kernels < 2.6.x.
--.TP
--.I /lib/modules/<Kernel-Version>/kernel/drivers/parport/pt_drv.ko
--The Linux kernelmodule for kernels >= 2.6.x.
--.PP
-
- .SH ENVIRONMENT
- .TP
diff --git a/debian/patches/0195-genesys_fix_total_file_size_exceeding.patch b/debian/patches/0195-genesys_fix_total_file_size_exceeding.patch
deleted file mode 100644
index 4b95241..0000000
--- a/debian/patches/0195-genesys_fix_total_file_size_exceeding.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-Description: Fix out off memory on high resultions
-Origin: upstream, https://gitlab.com/sane-project/backends/-/merge_requests/697
-Bug: https://gitlab.com/sane-project/backends/-/issues/580
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942176
-Forwarded: no
-Last-Update: 2022-03-27
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/backend/genesys/gl124.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl124.cpp
-+++ trunk/backend/genesys/gl124.cpp
-@@ -745,7 +745,7 @@ void CommandSetGl124::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
-
- DBG(DBG_info, "%s: total bytes to send to frontend = %zu\n", __func__,
- dev->total_bytes_to_read);
-Index: trunk/backend/genesys/gl646.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl646.cpp
-+++ trunk/backend/genesys/gl646.cpp
-@@ -817,7 +817,8 @@ void CommandSetGl646::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t) session.output_line_bytes_requested
-+ * (size_t) session.params.lines;
-
- /* select color filter based on settings */
- regs->find_reg(0x04).value &= ~REG_0x04_FILTER;
-Index: trunk/backend/genesys/gl841.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl841.cpp
-+++ trunk/backend/genesys/gl841.cpp
-@@ -920,7 +920,7 @@ dummy \ scanned lines
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
- if (session.use_host_side_gray) {
- dev->total_bytes_to_read /= 3;
- }
-Index: trunk/backend/genesys/gl842.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl842.cpp
-+++ trunk/backend/genesys/gl842.cpp
-@@ -568,7 +568,7 @@ void CommandSetGl842::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
- }
-
- ScanSession CommandSetGl842::calculate_scan_session(const Genesys_Device* dev,
-Index: trunk/backend/genesys/gl843.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl843.cpp
-+++ trunk/backend/genesys/gl843.cpp
-@@ -1041,7 +1041,7 @@ void CommandSetGl843::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
-
- DBG(DBG_info, "%s: total bytes to send = %zu\n", __func__, dev->total_bytes_to_read);
- }
-Index: trunk/backend/genesys/gl846.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl846.cpp
-+++ trunk/backend/genesys/gl846.cpp
-@@ -658,7 +658,7 @@ void CommandSetGl846::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
-
- DBG(DBG_info, "%s: total bytes to send = %zu\n", __func__, dev->total_bytes_to_read);
- }
-Index: trunk/backend/genesys/gl847.cpp
-===================================================================
---- trunk.orig/backend/genesys/gl847.cpp
-+++ trunk/backend/genesys/gl847.cpp
-@@ -624,7 +624,7 @@ void CommandSetGl847::init_regs_for_scan
- dev->session = session;
-
- dev->total_bytes_read = 0;
-- dev->total_bytes_to_read = session.output_line_bytes_requested * session.params.lines;
-+ dev->total_bytes_to_read = (size_t)session.output_line_bytes_requested * (size_t)session.params.lines;
-
- DBG(DBG_info, "%s: total bytes to send = %zu\n", __func__, dev->total_bytes_to_read);
- }
diff --git a/debian/patches/0600-scanimage_manpage.patch b/debian/patches/0600-scanimage_manpage.patch
deleted file mode 100644
index 6e8cc23..0000000
--- a/debian/patches/0600-scanimage_manpage.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: Add remark to options.
-Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418630
-Forwarded: not-needed
-Last-Update: 2015-01-18
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/doc/scanimage.man
-===================================================================
---- trunk.orig/doc/scanimage.man
-+++ trunk/doc/scanimage.man
-@@ -75,6 +75,9 @@ To print all available options:
- scanimage \-h
-
- .SH OPTIONS
-+\fBRemark:\fR Parameter are defined by the backends. So are \-\-mode Gray and \-\-mode Grayscale in use.
-+Please read the backend documentation first.
-+
- Parameters are separated by a blank from single-character options (e.g.
- .BR "\-d epson" )
- and by a "=" from multi-character options (e.g.
diff --git a/debian/patches/series b/debian/patches/series
index f829f7c..81eddad 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,25 +1,14 @@
-#0011-test.patch
-#0195-genesys_fix_total_file_size_exceeding.patch
-#0035-trim-libraries-in-sane-backends.pc.in.patch
0040-remove_git.patch
0100-source_spelling.patch
0125-multiarch_dll_search_path.patch
0175-fix_tests.patch
0140-avahi.patch
0145-avahi.patch
-#0600-scanimage_manpage.patch
0705-kfreebsd.patch
0725-fix_link_60-libsane_rule.patch
0150-i386-test.patch
0155-hurd_PATH_MAX.patch
-#0045-disable_lock_test_at_build_time.patch
0050-Use-python3-shebang.patch
-#0055-Fix_build_error.patch
0060-cross.patch
-#0165-respect_local_only_parameter.patch
-#0170-return_empty_list_when_local_devices_requested.patch
0605-fix_groff-warnings.patch
-#0180-gt68xx_fix_use-after-free_two_memleaks.patch
-#0185-Change_output_from_sane-find-scanner.patch
-#0190-remove-kernel-driver-for-plustek_pp.patch
0200-disable-check-equal-stderr.patch