From 08f6df7b48515dbb21b21ee571b6466daddeec57 Mon Sep 17 00:00:00 2001 From: Julien BLACHE Date: Sun, 29 Jul 2007 18:39:54 +0000 Subject: [PATCH] Add a RUN rule to the udev rules to automatically disable USB suspend for all known scanners. This effectively works around the hardware bugs exposed by CONFIG_USB_SUSPEND. Works only with kernels >= 2.6.22 where /sys/bus/usb/devices/*/power/level exists. --- ChangeLog | 6 ++++++ tools/sane-desc.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9b6eda7c7..5e685f95f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-07-29 Julien Blache + * tools/sane-desc.c: Add a RUN rule to the udev rules to + automatically disable USB suspend for all known scanners. + Works only with kernels >= 2.6.22 where + /sys/bus/usb/devices/*/power/level exists. + 2007-07-26 m. allan noah * backend/fujitsu.c: update to version 1.0.51, fix bug in jpeg code diff --git a/tools/sane-desc.c b/tools/sane-desc.c index a5f2b5b93..5d03dae0b 100644 --- a/tools/sane-desc.c +++ b/tools/sane-desc.c @@ -3226,10 +3226,14 @@ print_udev (void) } } printf ("\n"); - printf ("SYSFS{idVendor}==\"%s\", SYSFS{idProduct}==\"%s\", MODE=\"0664\", GROUP=\"scanner\"\n", + printf ("SYSFS{idVendor}==\"%s\", SYSFS{idProduct}==\"%s\", MODE=\"0664\", GROUP=\"scanner\", ENV{libsane_matched}=\"yes\"\n", usbid->usb_vendor_id + 2, usbid->usb_product_id + 2); usbid = usbid->next; } + + printf("\n# The following rule will disable USB autosuspend for the device\n"); + printf("ENV{libsane_matched}==\"yes\", RUN+=\"/bin/sh -c 'test -e /sys/$env{DEVPATH}/power/level && echo on > /sys/$env{DEVPATH}/power/level'\"\n"); + printf ("\nLABEL=\"libsane_rules_end\"\n"); }