[linux-usb-devel] [PATCH] USB: don't touch sysfs stuff when altsetting is unchanged

2007-08-08 Thread Alan Stern
This patch (as955) prevents the interface-related sysfs files and
endpoint pseudo-devices from being deleted and recreated when a call
to usb_set_interface() specifies the current altsetting.  Since the
altsetting doesn't get changed, there's no need to do anything.

Furthermore, avoiding changes to the endpoint devices will be
necessary in the future.  This code is called from usb_reset_device(),
which gets invoked for reset-resume processing, but upcoming changes
to the PM and driver cores will make it impossible to register devices
while a suspend/resume transition is in progress.  Since we don't need
to re-register those endpoint devices anyhow, it's best to skip the
whole thing.

Signed-off-by: Alan Stern [EMAIL PROTECTED]

---

Index: usb-2.6/drivers/usb/core/message.c
===
--- usb-2.6.orig/drivers/usb/core/message.c
+++ usb-2.6/drivers/usb/core/message.c
@@ -1173,6 +1173,7 @@ int usb_set_interface(struct usb_device 
struct usb_host_interface *alt;
int ret;
int manual = 0;
+   int changed;
 
if (dev-state == USB_STATE_SUSPENDED)
return -EHOSTUNREACH;
@@ -1212,7 +1213,8 @@ int usb_set_interface(struct usb_device 
 */
 
/* prevent submissions using previous endpoint settings */
-   if (device_is_registered(iface-dev))
+   changed = (iface-cur_altsetting != alt);
+   if (changed  device_is_registered(iface-dev))
usb_remove_sysfs_intf_files(iface);
usb_disable_interface(dev, iface);
 
@@ -1249,7 +1251,7 @@ int usb_set_interface(struct usb_device 
 * (Likewise, EP0 never halts on well designed devices.)
 */
usb_enable_interface(dev, iface);
-   if (device_is_registered(iface-dev))
+   if (changed  device_is_registered(iface-dev))
usb_create_sysfs_intf_files(iface);
 
return 0;


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now   http://get.splunk.com/
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] [PATCH] USB: don't touch sysfs stuff when altsetting is unchanged

2007-08-08 Thread Greg KH
On Wed, Aug 08, 2007 at 11:59:18AM -0400, Alan Stern wrote:
 This patch (as955) prevents the interface-related sysfs files and
 endpoint pseudo-devices from being deleted and recreated when a call
 to usb_set_interface() specifies the current altsetting.  Since the
 altsetting doesn't get changed, there's no need to do anything.

Is this something that should go into 2.6.23?

thanks,

greg k-h

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now   http://get.splunk.com/
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] [PATCH] USB: don't touch sysfs stuff when altsetting is unchanged

2007-08-08 Thread Alan Stern
On Wed, 8 Aug 2007, Greg KH wrote:

 On Wed, Aug 08, 2007 at 11:59:18AM -0400, Alan Stern wrote:
  This patch (as955) prevents the interface-related sysfs files and
  endpoint pseudo-devices from being deleted and recreated when a call
  to usb_set_interface() specifies the current altsetting.  Since the
  altsetting doesn't get changed, there's no need to do anything.
 
 Is this something that should go into 2.6.23?

It's not necessary for 2.6.23.  The PM core isn't going to change 
overnight.  :-)

Alan Stern


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now   http://get.splunk.com/
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel