From 44916ca6d75e0b5f258a098a50d659f31c6625fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 3 Mar 2024 09:54:51 +0100 Subject: New upstream version 1.3.0 --- backend/xerox_mfp-usb.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'backend/xerox_mfp-usb.c') diff --git a/backend/xerox_mfp-usb.c b/backend/xerox_mfp-usb.c index 6ef1eea..519aba6 100644 --- a/backend/xerox_mfp-usb.c +++ b/backend/xerox_mfp-usb.c @@ -21,6 +21,21 @@ extern int sanei_debug_xerox_mfp; +static int +xerox_need_clear_halt() +{ + char *env; + int workaround = 0; + + env = getenv("SANE_XEROX_USB_HALT_WORKAROUND"); + if (env) { + workaround = atoi(env); + DBG(5, "xerox_need_clear_halt: workaround: %d\n", workaround); + return workaround; + } + return 0; +} + int usb_dev_request(struct device *dev, SANE_Byte *cmd, size_t cmdlen, @@ -70,7 +85,9 @@ usb_dev_open(struct device *dev) dev->dn = -1; return status; } - sanei_usb_clear_halt(dev->dn); + if (xerox_need_clear_halt()) { + sanei_usb_clear_halt(dev->dn); + } return SANE_STATUS_GOOD; } @@ -92,7 +109,9 @@ usb_dev_close(struct device *dev) ret_cancel(dev, 0); } - sanei_usb_clear_halt(dev->dn); /* unstall for next users */ + if (xerox_need_clear_halt()) { + sanei_usb_clear_halt(dev->dn); /* unstall for next users */ + } sanei_usb_close(dev->dn); dev->dn = -1; } -- cgit v1.2.3