Wykres commitów

94 Commity (8b51e449f67aa220b515364bceae960e8b1090e8)

Autor SHA1 Wiadomość Data
Povilas Kanapickas 0921d36618 sanei_usb: Deduplicate endpoint setup code 2019-03-22 18:31:46 +02:00
Martin Husemann 8995b1fc81 sanei_usb: fix number of bytes read for 64bit big-endian systems
Fixes 315337.
2017-05-06 12:10:52 +09:00
Olaf Meeuwissen 7d7030a409 sanei_usb: : fix [-Wunused-parameter] compiler warnings
These were issued in the absence of libusb.
2016-09-25 15:53:46 +09:00
Olaf Meeuwissen a9c813944e Make libusb-1.0 the default for USB support
When libusb-1.0 is not found, libusb-0.1 will be tried.  On BeOS and
OS2, nothing should have changed in terms of detection of USB support.

On all systems the --enable-libusb* flags are now ignored.  Instead, the
--with-usb and --without-usb flags now control support.  When neither is
given USB support will be enable if possible and disabled otherwise.  If
--with-usb is requested but not possible, ./configure will fail.  There
is no support to prefer libusb-0.1 over libusb-1.0.
2016-07-01 23:44:37 +09:00
m. allan noah 1207ce5a40 Support SANE_USB_WORKAROUND env var
Here, we add a new env var (SANE_USB_WORKAROUND) to sanei_usb.c.
This allows end users to conditionally enable the workaround added
in commit 014b45d920. The default is
to not enable the workaround, because more recent Linux kernels no
longer seem to need it. Some users have even reported failure with
the workaround enabled.
2016-02-23 20:36:32 -05:00
Olaf Meeuwissen cd3453948d sanei_usb: const_cast data buffer
The libusb_bulk_transfer() API caters to both reads and writes and
as a result of that will not take a const pointer.
2015-12-27 18:38:03 +09:00
Olaf Meeuwissen be084e0d7b sanei_usb: Move variable declarations to scope of usage
Fixes an [-Wunused-variable] when compiling without libusb.
2015-12-27 15:36:18 +09:00
Volker Diels-Grabsch 93298674d0 Merge all compatibility macros around __func__ and __FUNCTION__
Various parts of SANE introduced their own compatibility macros for
old compilers that don't support __func__.  Most of these definitions
are identical or have minor differences.  This patch replaces them
with a single instance in the central header file for backends.
2015-12-20 15:27:45 +09:00
m. allan noah 014b45d920 sanei_usb: Linux USB3/xhci workarounds
add calls to sanei_usb_set_altinterface in sanei_usb_close and
sanei_usb_clear_halt- hopefully work around USB3/xhci problems
in Linux. Also, remove some unused code, and fix debug messages.
2014-12-16 10:23:55 -05:00
Olaf Meeuwissen 365b619dfe Set USB configuration only if different from the current one
This follows up on earlier USB3 fixes.  It only addresses libusb-1.0
because there is no convenience API for libusb-0.1 to get the current
configuration.
2014-12-10 21:25:08 -05:00
Olaf Meeuwissen 5283a8792e Fix memory leak w/ libusb-1.0 (introduced in 71c1a00) 2014-12-10 21:24:53 -05:00
Olaf Meeuwissen 71c1a0068f Set USB configuration only if there are alternative ones
This fixes USB3 issues for the epson and epson2 backends.  Both these
backends already made sure to send an even number of reads and writes
but were affected nevertheless.

It also solves USB3 issues with the third party epkowa backend.  This
one doesn't bother to ensure even counts of packets read and written.
It works fine when this fix is applied (and it no longer clears halts
w/o a stall condition).  Note, there is no need to ensure even packet
counts.
2014-12-10 21:18:20 -05:00
Nils Philippsen 66cb9b55c2 remove code which is never reached 2013-11-05 14:47:27 +01:00
Chris Bagwell af10791227 Improve libusb's error code for permission issues.
libusb on my Linux box is returning EACCES error when invalid
permissions exist.  Modify open to translate that into
SANE_STATUS_ECCESS_DENIED since that error description is
used for this case.

Modify sanei_usb_test.c to not treat access denied or busy
error codes as real failures since its expected to occur on
boxes that USB device is already claimed by another driver
and if that device uses default root only permissions.
2013-08-26 21:21:20 -05:00
Stéphane Voltz 5a1d5a62ee guard against device that went missing in claim/release interface
- add test for missing devices in claim or release
- changlog entry for all the sanei_usb work
2013-03-24 14:25:45 +01:00
Stéphane Voltz 2a66940c6b don't use kernel device when libusb is available 2013-03-24 14:20:06 +01:00
Stéphane Voltz d45f1bec5a fix memleak when reusing an already stored device 2013-03-24 14:20:06 +01:00
Stéphane Voltz a0b45146e1 rewrite sanei_usb_get_vendor_product
- rewrite sanei_usb_get_vendor_product using the same logic
  than sanei_usb_get_vendor_product_byname
2013-03-24 14:20:06 +01:00
Stéphane Voltz 018408bf20 white space cleanup 2013-03-24 14:20:06 +01:00
Stéphane Voltz 9e47eb4a37 unused and reassigned values fixes 2013-03-24 14:20:06 +01:00
Stéphane Voltz b3f01a9010 improve missing test logic 2013-03-24 14:20:06 +01:00
Stéphane Voltz 52ba4844ca add sanei_usb_exit() function
- create a sanei_usb_exit() function to free allocated resources during use
  of sanei_usb functions by a backend
2013-03-24 14:20:06 +01:00
Stéphane Voltz caf4614f61 correct debug messages
- change debug messages to match their new function using __func__
2013-03-24 14:20:06 +01:00
Stéphane Voltz 7fc3406d76 split device scanning logic from sanei_usb_init
- move bus scanning for device to a new sanei_usb_scan_devices
- call this new function from sanei_usb_init to preserve current behaviour
- split bus device scanning into several smaller functions on a per scanning    method
  method basis
2013-03-24 14:20:06 +01:00
Stéphane Voltz ef52b75473 free devname only in the case of a reused device slot 2013-02-28 22:23:03 +01:00
Gerhard Jaeger ef5820ce62 Free heap memory, acquired via strdup for
devname, in sanei_usb_close().
2013-02-20 08:30:34 +01:00
Chris Bagwell 8ac464a47d add support for libusb-win32
It is API compatible with libusb-0.1 that is already supported
but uses different header file name to prevent conflict with
Window's own usb.h.
2011-12-27 17:35:35 -06:00
Chris Bagwell 2c4b1da0bf add FreeBSD Port's patches
epson2-commands.c: Include <sys/types.h> to resolve u_long.
epson2.c, magicolor.c, xerox_mfp-tcp.c: Include <sys/types.h>
and to <sys/socket.h> for anyone using setsockopt().
sanei_tcp.h: Include <sys/types.h> since ssize_t is referenced.
sanei_usb.c: Newer FreeBSD version checks.

All changes in this patch set come from FreeBSD ports patches.
Bug #312503.
2011-11-20 20:08:15 -06:00
Chris Bagwell 9bdff1dbdf mingw32 compile fixes
The following updates were made to all directories but backends.
That still needs work. There are also still some pthread issues
and syslog is missing.

 Windows doesn't support SIGHUP or SIGPIPE so make that optional.
 Only include socket header files when sys/socket.h is detected.
 Use winsock.h on windows.
 Only include syslog.h when vsyslog() was detect by configure.
 Skip FD_CLOEXEC when not supported by OS (not defined).
 Only include sys/ioctl.h on platforms that define it.
2011-11-05 11:19:34 -05:00
Reinhold Kainhofer c0b26b4568 sanei_usb: Add function sanei_usb_get_endpoint, add range check in sanei_usb_set_endpoint
Since we now have the possibility to change the endpoint used for a particular USB communication type,
we also need a way to retrieve the current endpoint, so that one can e.g. reset the endpoint to the
old value after a single usb operation on a different endpoint.
2011-01-31 22:42:29 +01:00
Reinhold Kainhofer 6dc2a7d03a Add some sanity checks 2011-01-15 21:41:06 +01:00
Reinhold Kainhofer 039f21aaf8 Add function to set USB endpoints to use
Added
 void sanei_usb_set_endpoint (SANE_Int dn, SANE_Int ep_type, SANE_Int ep);

This function allows the user to set the endpoint to use on
the given device for the given endpoint type (e.g. bulk in).
Some scanners have multiple bulk in/out endpoints but use
only one for communication (not the one detected during auto-detection),
so one call to the new function will change the used endpoint.
Some scanners use two different endpoint for different purposes,
so in that case each read/write call needs to be preceeded
by a call to that function to set the proper endpoint.

ep_type is a bitmask and is usually of the form
    (USB_DIR_IN|USB_ENDPOINT_TYPE_BULK)
2011-01-15 21:40:55 +01:00
Stéphane Voltz a717c4658a add sanei_usb_reset function 2010-05-16 07:37:34 +02:00
m. allan noah dc6a1ef2b0 reset the libusb device handle after bus scan. patch from Hans Petter Selasky (FreeBSD) 2009-09-14 13:31:15 -04:00
Nicolas Martin 1e381db161 Adds debug verbosity to last sanei_usb.c patch.
This commit adds some debug verbosity to the last committed sanei_usb.c patch
id 5b69fa8c6d
for fixing the choice of usb endpoints, in the sanei_usb_open() seek for endpoints loop.
2009-05-25 22:01:43 +02:00
Nicolas Martin 5b69fa8c6d Fix for Pixma MP730 in pixma backend and sanei_usb
Updated following files for Pixma MP730 support:
- backend/pixma_mp730.c:
  Add width scan area fitting
  Fix end scan sequence protocol
- sanei/sanei_usb.c:
  In sanei_usb_open(), changed the "seek for endpoints" loop
  so that it first looks for those interfaces (in config 0)
  that have been detected as potential scanners in
  sanei_usb_init()
2009-05-22 10:29:37 +02:00
Julien BLACHE ad1a44d92a Add support for libusb-1.0. 2009-02-19 13:57:45 +00:00
m. allan noah 92261307ec * sanei/sanei_usb.c: rescan usb every time sanei_usb_init() is called
- remove missing devices, add new devices to global lists
- based on code from stef.dev@free.fr
2009-01-11 00:10:02 +00:00
Julien BLACHE e629a77f7e Fix assignment in if. 2008-12-01 10:11:54 +00:00
m. allan noah b57a64d79e * sanei/sanei_usb.c, include/sane/sanei_usb.h:
- shorten debug lines to fit in 80 chars
- add sanei_usb_clear_halt() required by upcoming canon_dr backend
2008-11-05 02:30:44 +00:00
m. allan noah deafc44600 sanei/sanei_usb.c: allow sanei_usb_init() to run once per second
backend/fujitsu.c: backend v1.0.60, relocate call to sanei_usb_init(),          free sane_devArray before calloc'ing a new one
2008-04-28 00:48:48 +00:00
Julien BLACHE 8ed0d66582 Do not blindly use ftok() in snapscani_mutex_open(). Compute an IPC key based
on the product ID, bus number and device number for libusb devices; fallback
to ftok() otherwise and check the return value.
2008-03-28 20:39:02 +00:00
m. allan noah 127c77c1e5 add class 6 to usb detection code, fix scsi detection bug 2008-03-28 14:13:23 +00:00
Gerhard Jaeger 66269b670e Added sanei_usb_get_descriptor() to retrieve more info about a
device descriptor
2007-11-16 08:46:32 +00:00
Wittawat Yamwong 2baa01effa Modified sanei_read_int(): call usb_clear_halt() if and only if the endpoint
is halted.
2006-05-26 07:58:15 +00:00
Henning Geinitz 92d177c049 Added USB support for DragonFlyBSD (bug #303183). 2006-03-11 12:56:34 +00:00
Henning Geinitz 1695dd4278 Workaround for compilation problem on Windows/cygwin. 2006-02-04 20:51:07 +00:00
Henning Geinitz 2b425ad61c Added checks for altsetting =! 0. 2006-01-22 16:52:13 +00:00
Henning Geinitz a157bd3f09 Added warning if libusb support is not built in and some more debug messages. 2006-01-07 18:04:17 +00:00
Oliver Schwartz 034f05523d Fixes for Benq 5000 2005-11-02 19:22:06 +00:00