Re: [linux-usb-devel] [PATCH] usb/hid: The HID Simple Driver Interface 0.4.0 documentation
Signed-off-by: Liyu [EMAIL PROTECTED] --- linux-2.6.18/Documentation/input/no-such.txt 1970-01-01 08:00:00.0 +0800 +++ linux-2.6.18/Documentation/input/simple-hid.txt 2006-10-12 09:34:42.0 +0800 @@ -0,0 +1,251 @@ +== +HID device simple driver interface +== + + +Note + + + If you just begin to study from writing input device driver, please see the +input-programming.txt, I am afraid this is not you want, do not confuse with the +simple in this name. + + +Version + + + This is the version 0.4.0 + +-- +Overview +-- + + Under standard HID device driver development means, we need to write +one interrupt handler for each new HID device to report event to +input subsystem. However, although the most of they can not merge into +mainstream kernel tree, they have only some extended keys, e.g. many +remote controllers. I think it seem break a fly on the wheel, which +write one new interrupt handler for this reason. + + The basic idea is reuse the interrupt handler in hid-core.c. so writing +driver for new simple HID device will be more easier, quickly, and do not +need touch hid core. + + In essence, this interface just is some hooks in HID core. + + The hid-simple.h include this API. But, defore use this interface, you must +include hid.h first. + + +What's you will get from this interface. + + + Use me, you can: + + 1. Write the driver of USB input device without write code take care of + details of setup and clear usage. + 2. A driver use this interface can be as a HID device input filter. + 3. Write USB force-feed driver without touch hid-input core. however, this + feature is confilct with HID_FF. + + This interface can not support the more drivers handle one device at same time +yet. I can not sure if we really need this feature. + + +The driver use this interface + + + So far, there are two drivers: + 1. MS Natural Ergonomic Keyboard 4000 driver. (usbnek4k.c) + 2. Betop BTP-2118 joystick force-feed driver. (btp2118.c) + +- +Requires +- + + Before use this interface, you must turn on these kernel configuration +items: + + CONFIG_HID_SIMPLE : HID simple driver interface + CONFIG_HID_SIMPLE_FF : HID simple driver interface force feedback support + + Note: You can see the latter only if you turn off CONFIG_HID_FF and turn +on CONFIG_HID_SIMPLE. + +-- +Register and unregister +-- + +1. Register a simple driver. + + int hidinput_register_simple_driver(struct hidinput_simple_driver *simple) + + Like any driver register function, it register your driver to kernel, +when the chance that match device come, your driver can probe it. At least, you +must fill the member of parameter simple : name. + Return 0 mean register successfully. elsewise mean there have some +failures in register process. + So far, this function only can return 0 and -EINVAL. + When you driver matched one device, it will reregister it into input +subsystem (see the function hidinput_reconnect_core(), if you want). + +2. Unregister a simple driver. + + void hidinput_unregister_simple_driver(struct hidinput_simple_driver *simple) + + Like any driver register function, it clean your driver from kernel, and +in this process, your driver will disconnect any device which it matched. However, +it do not free your memory of driver structure, that's your task. + This may reregister the device into input subsystem (see the function +hidinput_reconnect_core(), if you want). + +-- +Usage +-- + + Each simple driver have one data structure hidinput_simple_driver: + +struct hidinput_simple_driver { + /* + * The members for implement only are ignored here, + * please do not depend on them + */ + /* public */ + struct module *owner; + char *name; + int (*connect)(struct hid_device *, struct hid_input *); + void (*disconnect)(struct hid_device *, struct hid_input *); + void (*setup_usage)(struct hid_field *, struct hid_usage *); + void (*clear_usage)(struct hid_field *, struct hid_usage *); + int (*pre_event)(const struct hid_device *, const struct hid_field *, + const struct hid_usage *, const __s32, + const struct pt_regs *regs); + int (*post_event)(const struct hid_device *, const struct hid_field *, + const struct hid_usage *, const __s32, + const struct pt_regs *regs); + + int (*open)(struct input_dev *dev); + void (*close)(struct input_dev *dev); + int (*upload_effect)(struct input_dev *dev, struct ff_effect *effect); + int (*erase_effect)(struct input_dev *dev, int effect_id); + int (*flush)(struct input_dev *dev, struct file *file); + int (*ff_event)(struct input_dev *dev, int type, int
[linux-usb-devel] [rfc]autosuspend in hid
Hi, I can't boot 2.6.19-rc1, so here's an incomplete version of autosuspend for hid to invite comments on the basic approach. Regards Oliver --- linux-2.6.19-rc1/drivers/usb/input/hid.h2006-10-05 04:57:05.0 +0200 +++ gregtree/drivers/usb/input/hid.h2006-10-09 15:20:21.0 +0200 @@ -384,6 +384,9 @@ #define HID_IN_RUNNING 3 #define HID_RESET_PENDING 4 #define HID_SUSPENDED 5 +#define HID_IN_IDLE6 + +#define HID_IDLE_TIME 200*HZ struct hid_input { struct list_head list; @@ -408,9 +411,11 @@ unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */ struct timer_list io_retry; /* Retry timer */ + struct timer_list idle_timer; /* timer to determine idleness */ unsigned long stop_retry; /* Time to give up, in jiffies */ unsigned int retry_delay; /* Delay length in ms */ struct work_struct reset_work; /* Task context for resets */ + struct work_struct idle_work; /* Task context for reporting idleness */ unsigned int bufsize; /* URB buffer size */ --- linux-2.6.19-rc1/drivers/usb/input/hid-core.c 2006-10-05 04:57:05.0 +0200 +++ gregtree/drivers/usb/input/hid-core.c 2006-10-09 15:23:09.0 +0200 @@ -1009,6 +1009,8 @@ struct hid_device *hid = urb-context; int status; + /*data recieved, errors ignored as they are handled, device not idle */ + clear_bit(HID_IN_IDLE, hid-iofl); switch (urb-status) { case 0: /* success */ hid-retry_delay = 0; @@ -1365,9 +1367,15 @@ return result; } +static void hid_check_idle(unsigned long arg); +void hid_add_idle_timer(struct hid_device *hid); +static void __hid_report_idle(void *d); + int hid_open(struct hid_device *hid) { - ++hid-open; + clear_bit(HID_IN_IDLE, hid-iofl); + if (!hid-open++) + usb_autopm_get_interface(hid-intf); if (hid_start_in(hid)) hid_io_error(hid); return 0; @@ -1375,8 +1383,10 @@ void hid_close(struct hid_device *hid) { - if (!--hid-open) + if (!--hid-open) { usb_kill_urb(hid-urbin); + set_bit(HID_IN_IDLE, hid-iofl); + } } #define USB_VENDOR_ID_PANJIT 0x134c @@ -1971,12 +1981,16 @@ init_waitqueue_head(hid-wait); INIT_WORK(hid-reset_work, hid_reset, hid); + INIT_WORK(hid-idle_work, __hid_report_idle, intf); setup_timer(hid-io_retry, hid_retry_timeout, (unsigned long) hid); + setup_timer(hid-idle_timer, hid_check_idle, (unsigned long) hid); spin_lock_init(hid-inlock); spin_lock_init(hid-outlock); spin_lock_init(hid-ctrllock); + set_bit(HID_IN_IDLE, hid-iofl); + hid-version = le16_to_cpu(hdesc-bcdHID); hid-country = hdesc-bCountryCode; hid-dev = dev; @@ -2050,6 +2064,7 @@ usb_kill_urb(hid-urbctrl); del_timer_sync(hid-io_retry); + del_timer_sync(hid-idle_timer); flush_scheduled_work(); if (hid-claimed HID_CLAIMED_INPUT) @@ -2116,12 +2131,64 @@ usb_make_path(interface_to_usbdev(intf), path, 63); + if ((hid-claimed HID_CLAIMED_INPUT) !(hid-claimed HID_CLAIMED_HIDDEV)) + hid_add_idle_timer(hid); + printk(: USB HID v%x.%02x %s [%s] on %s\n, hid-version 8, hid-version 0xff, c, hid-name, path); return 0; } +void hid_add_idle_timer(struct hid_device *hid) +{ + hid-idle_timer.expires = jiffies + HID_IDLE_TIME; + add_timer(hid-idle_timer); +} + +static void hid_mod_idle_timer(struct hid_device *hid) +{ + unsigned long flags; + + spin_lock_irqsave(hid-inlock, flags); + if (usb_get_intfdata(hid-intf)) + mod_timer(hid-idle_timer, jiffies + HID_IDLE_TIME); + spin_unlock_irqrestore(hid-inlock, flags); +} + +static void __hid_report_idle(void *d) +{ + struct usb_interface *intf = d; + + usb_autopm_put_interface(intf); +} + +static void hid_report_idle(struct hid_device *hid) +{ + struct usb_interface *intf = hid-intf; + unsigned long flags; + + spin_lock_irqsave(hid-inlock, flags); + if (!test_bit(HID_SUSPENDED, hid-iofl)) + if (usb_get_intfdata(intf)) + schedule_work(hid-idle_work); + spin_unlock_irqrestore(hid-inlock, flags); +} + +static void hid_check_idle(unsigned long arg) +{ + struct hid_device *hid = (struct hid_device *)arg; + int state; + + state =
Re: [linux-usb-devel] [PATCH] usbmon: add binary interface
On Wednesday 11 October 2006 22:43, Pete Zaitcev wrote: On Wed, 11 Oct 2006 19:44:43 +, Pavel Machek [EMAIL PROTECTED] wrote: Does it mean text interface is now deprecated? Or perhaps ioctl should be added to text interface too? Or maybe we do not need binary interface if we allow resizing on text interface? I haven't reviewed Paolo's patch yet, but with that in mind: - No, text is not deprecated yet. That is only possible when a simplified command-line tool is written and distributed (e.g. usbmon(8)). - No, I do not think an ioctl in debugfs or a text API is a good idea. - Resizing on text interface magnifies sprintf contribution to CPU burn, so once we have the binary one, there's only disadvantage and no advantage in implementing that. By the way, any reason why CONFIG_USB_MON doesn't select CONFIG_DEBUG_FS? Is usbmon useful without debugfs? Ciao, Duncan. - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] returning the deviceID using gadgetfs
Hi, I am using OSK and gadgetfs as usb gadget driver. I have successfully tested enumeration, reading, writing in Linux using usb.c as base code. However, I am having trouble with returning the DeviceId of the device. The host that the device is connecting to needs the device ID. I have looked at the usb.c code and in the handle_control function, I cant seem to find a case which handles the device id request from the host, only a case for the device string. For the device string, the setup-bRequest should be USB_REQ_GET_DESCRIPTOR and the setup-wValue should be USB_DT_STRING. So what should be the setup-bRequest value and setup-wValue, when the host requests for the device id? Or, How does the device/gadget driver send the device id string to the host? I really need help on this. Thanks! Zil _ FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/ - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] usbmon: add binary interface
On Thu, 12 Oct 2006 10:17:52 +0200, Duncan Sands [EMAIL PROTECTED] wrote: By the way, any reason why CONFIG_USB_MON doesn't select CONFIG_DEBUG_FS? Is usbmon useful without debugfs? It's not now, but it will be once I and Paolo are done here. -- Pete - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] EHCI: fix memory pool name allocation
On 10/11/06, Alan Stern [EMAIL PROTECTED] wrote: Monty, you might try going through all the code you changed. There are _lots_ of places where you have spaces instead of tabs. you missed the discussion with GregKH about the fact that GMail recently broke and started molesting plaintext emails; they now force line wrap at 80 chars and randomly munge whitespace. Greg gave me an OK to use text/plain attachments in the future. There are a number of coding convention viloations I can be rightly accused of, but I've been trying to be very careful about whitespace. On a more serious note, when I do rmmod ehci-hcd I always get a warning message something like this: dma_pool_destroy ehci_fstn, c8c2c000 busy I don't know what that's about; you'll have to fix it yourself. I do; the master restore FSTN is not being unlinked before shutdown. Should be harmless, but that doesn't mean it isn't a bug. Monty - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] returning the deviceID using gadgetfs
On Thu, 12 Oct 2006, zil iram wrote: Hi, I am using OSK and gadgetfs as usb gadget driver. I have successfully tested enumeration, reading, writing in Linux using usb.c as base code. However, I am having trouble with returning the DeviceId of the device. The host that the device is connecting to needs the device ID. You have to be more specific. What do you mean by the device ID? Are you talking about idProduct in the device descriptor? Or do you mean the iProduct string? I have looked at the usb.c code and in the handle_control function, I cant seem to find a case which handles the device id request from the host, only a case for the device string. For the device string, the setup-bRequest should be USB_REQ_GET_DESCRIPTOR and the setup-wValue should be USB_DT_STRING. So what should be the setup-bRequest value and setup-wValue, when the host requests for the device id? Or, How does the device/gadget driver send the device id string to the host? I really need help on this. Thanks! For any string at all, setup-bRequest should be USB_REQ_GET_DESCRIPTOR, setup-wValue should have USB_DT_STRING in its high byte and the string index in its low byte, and setup-wIndex should contain the language ID. This information is all in the USB 2.0 spec, chapter 9. Alan Stern - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] About USB resources...
On Thu, Oct 12, 2006 at 07:58:27AM +0200, Livio Tenze wrote: Hi Rao, I already read the linux device driver book, but that book treats the problem from a HOST point of view. I would need to write a driver from a usb DEVICE point of view by exploiting the usb-otg properties of my evaluation board. Take a look at: http://www.linux-usb.org/gadget/ for a start with this kind of stuff. If you have specific questions about the existing code, please feel free to ask. thanks, greg k-h - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Error mouting external usb harddrive
Hi! When I boot my Ubuntu Edgy Eft installation with an external drive attached it comes halfway through the boot process and then the light starts to flash. I get buffer I/O-errors in dmesg. When I detach the drive and reattach it, it seems to work and I can access it. The problem is that I'd like to be able to boot from the drive. Is there a solution to this that I've overlooked? Many thanks in advance, Magnus [EMAIL PROTECTED]:~$ lsusb Bus 005 Device 003: ID 04cf:8818 Myson Century, Inc. Fast 3.5 External Storage Bus 005 Device 001: ID : Bus 004 Device 001: ID : Bus 003 Device 001: ID : Bus 002 Device 001: ID : Bus 001 Device 005: ID 045e:001d Microsoft Corp. Natural Keyboard Pro Bus 001 Device 004: ID 045e:001c Microsoft Corp. Bus 001 Device 006: ID 046d:c01d Logitech, Inc. Bus 001 Device 001: ID : [17179595.764000] SCSI device sda: 58605120 512-byte hdwr sectors (30006 MB) [17179595.764000] sda: Write Protect is off [17179595.764000] sda: Mode Sense: 00 14 00 00 [17179595.764000] sda: assuming drive cache: write through [17179595.764000] sda:7eth0: no IPv6 routers present [17179777.228000] end_request: I/O error, dev sda, sector 0 [17179777.228000] Buffer I/O error on device sda, logical block 0 [17179958.692000] end_request: I/O error, dev sda, sector 0 [17179958.692000] Buffer I/O error on device sda, logical block 0 [17179958.692000] sd 0:0:0:0: Attached scsi disk sda [17180140.456000] end_request: I/O error, dev sda, sector 58604928 [17180140.456000] Buffer I/O error on device sda, logical block 7325616 [17180321.92] end_request: I/O error, dev sda, sector 58604928 [17180321.92] Buffer I/O error on device sda, logical block 7325616 [17180503.384000] end_request: I/O error, dev sda, sector 58605112 [17180503.384000] Buffer I/O error on device sda, logical block 7325639 [17180684.848000] end_request: I/O error, dev sda, sector 58605112 [17180684.848000] Buffer I/O error on device sda, logical block 7325639 [17180866.312000] end_request: I/O error, dev sda, sector 58605112 [17180866.312000] Buffer I/O error on device sda, logical block 7325639 [17181047.776000] end_request: I/O error, dev sda, sector 58605112 [17181047.776000] Buffer I/O error on device sda, logical block 7325639 [17181229.24] end_request: I/O error, dev sda, sector 58605112 [17181229.24] Buffer I/O error on device sda, logical block 7325639 [17181410.704000] end_request: I/O error, dev sda, sector 58605112 [17181410.704000] Buffer I/O error on device sda, logical block 7325639 [17181592.168000] end_request: I/O error, dev sda, sector 58605056 [17181592.168000] Buffer I/O error on device sda, logical block 7325632 [17181773.632000] end_request: I/O error, dev sda, sector 58605056 [17181773.632000] Buffer I/O error on device sda, logical block 7325632 [17181955.096000] end_request: I/O error, dev sda, sector 58605104 [17181955.096000] Buffer I/O error on device sda, logical block 7325638 [17182136.56] end_request: I/O error, dev sda, sector 58605104 [17182136.56] Buffer I/O error on device sda, logical block 7325638 [17182318.024000] end_request: I/O error, dev sda, sector 58605112 [17182318.024000] Buffer I/O error on device sda, logical block 7325639 [17182499.488000] end_request: I/O error, dev sda, sector 58605112 [17182499.488000] Buffer I/O error on device sda, logical block 7325639 [17182680.952000] end_request: I/O error, dev sda, sector 58605112 [17182680.952000] Buffer I/O error on device sda, logical block 7325639 [17182862.416000] end_request: I/O error, dev sda, sector 0 [17182862.416000] Buffer I/O error on device sda, logical block 0 [17183043.88] end_request: I/O error, dev sda, sector 0 [17183043.88] Buffer I/O error on device sda, logical block 0 [17183225.344000] end_request: I/O error, dev sda, sector 0 [17183225.344000] Buffer I/O error on device sda, logical block 0 [17183406.808000] end_request: I/O error, dev sda, sector 0 [17183406.808000] Buffer I/O error on device sda, logical block 0 [17183588.272000] end_request: I/O error, dev sda, sector 8 [17183588.272000] Buffer I/O error on device sda, logical block 1 [17183769.736000] end_request: I/O error, dev sda, sector 16 [17183769.736000] Buffer I/O error on device sda, logical block 2 [17183951.20] end_request: I/O error, dev sda, sector 24 [17183951.20] Buffer I/O error on device sda, logical block 3 [17184132.664000] end_request: I/O error, dev sda, sector 32 [17184132.664000] Buffer I/O error on device sda, logical block 4 [17184314.128000] end_request: I/O error, dev sda, sector 0 [17184314.128000] Buffer I/O error on device sda, logical block 0 [17184495.592000] end_request: I/O error, dev sda, sector 0 [17184495.592000] Buffer I/O error on device sda, logical block 0 [17184677.056000] end_request: I/O error, dev sda, sector 0 [17184677.056000] Buffer I/O error on device sda, logical block 0 [17184858.52] end_request: I/O error, dev sda, sector 8
Re: [linux-usb-devel] [rfc]autosuspend in hid
On Thu, 12 Oct 2006, Oliver Neukum wrote: Hi, I can't boot 2.6.19-rc1, so here's an incomplete version of autosuspend for hid to invite comments on the basic approach. Regards Oliver --- linux-2.6.19-rc1/drivers/usb/input/hid.h 2006-10-05 04:57:05.0 +0200 +++ gregtree/drivers/usb/input/hid.h 2006-10-09 15:20:21.0 +0200 @@ -384,6 +384,9 @@ #define HID_IN_RUNNING 3 #define HID_RESET_PENDING4 #define HID_SUSPENDED5 +#define HID_IN_IDLE 6 + +#define HID_IDLE_TIME200*HZ This will need to be configurable separately for each device. int hid_open(struct hid_device *hid) { - ++hid-open; + clear_bit(HID_IN_IDLE, hid-iofl); + if (!hid-open++) + usb_autopm_get_interface(hid-intf); if (hid_start_in(hid)) hid_io_error(hid); return 0; @@ -1375,8 +1383,10 @@ void hid_close(struct hid_device *hid) { - if (!--hid-open) + if (!--hid-open) { usb_kill_urb(hid-urbin); + set_bit(HID_IN_IDLE, hid-iofl); + } } There needs to be a call to usb_autopm_put_interface() here, to balance the call in hid_open(). +void hid_add_idle_timer(struct hid_device *hid) +{ + hid-idle_timer.expires = jiffies + HID_IDLE_TIME; + add_timer(hid-idle_timer); +} + +static void hid_mod_idle_timer(struct hid_device *hid) +{ + unsigned long flags; + + spin_lock_irqsave(hid-inlock, flags); + if (usb_get_intfdata(hid-intf)) + mod_timer(hid-idle_timer, jiffies + HID_IDLE_TIME); + spin_unlock_irqrestore(hid-inlock, flags); +} It's not obvious why you need two separate functions (you can always call mod_timer in place of add_timer), or why you need the spinlock. usb_get_intfdata() here isn't safe; if the value can be 0 then it can also be anything else, since a different driver may be bound to the interface. It would be better to have an unbound flag in the hid_device structure. On the other hand, why do you need to check this at all? This routine won't get called after the driver is unbound. +static void __hid_report_idle(void *d) +{ + struct usb_interface *intf = d; + + usb_autopm_put_interface(intf); +} This call needs to be balanced somewhere. Otherwise intf-pm_usage_cnt will be decremented at every timeout and never incremented. See below. +static void hid_report_idle(struct hid_device *hid) +{ + struct usb_interface *intf = hid-intf; + unsigned long flags; + + spin_lock_irqsave(hid-inlock, flags); + if (!test_bit(HID_SUSPENDED, hid-iofl)) + if (usb_get_intfdata(intf)) + schedule_work(hid-idle_work); + spin_unlock_irqrestore(hid-inlock, flags); +} Again, usb_get_intfdata() isn't safe or appropriate. +static void hid_check_idle(unsigned long arg) +{ + struct hid_device *hid = (struct hid_device *)arg; + int state; + + state = test_and_set_bit(HID_IN_IDLE, hid-iofl); + + if (!state) { + hid_mod_idle_timer(hid); + } else { + hid_report_idle(hid); + } +} Somewhere you will need to restart the idle timer after an autoresume. Probably in the resume method. That may also be where you want to set intf-pm_usage_cnt to 1 if the device is open. Alan Stern - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Majordomo results: Word file
-- This is a multi-part message in MIME format. Command 'this' not recognized. --=_NextPart_2.41934061050415E-03 Command '--=_nextpart_2.41934061050415e-03' not recognized. Content-Type: text/plain; format=flowed Command 'content-type:' not recognized. Please see the file. Command 'please' not recognized. --=_NextPart_2.41934061050415E-03 Command '--=_nextpart_2.41934061050415e-03' not recognized. Content-Type: application/x-msdownload; name=New_Document_file.pif Command 'content-type:' not recognized. Content-Transfer-Encoding: base64 Command 'content-transfer-encoding:' not recognized. Content-Disposition: attachment; filename=New_Document_file.pif Command 'content-disposition:' not recognized. TVqQAAME//8AALgAQAAA Command 'tvqqaame//8aalgaqaaa' not recognized. oA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v Command 'oa4fug4atannibgbtm0hvghpcybwcm9ncmftignhbm5vdcbizsbydw4gaw4gre9tig1v' not recognized. ZGUuDQ0KJAC3Egfb83NpiPNzaYjzc2mIGmxkiPJzaYhSaWNo83NpiFBFAABMAQMAX3bL Command 'zguudq0kjac3egfb83npipnzayjzc2migmxkipjzayhsawno83npifbfaabmaqmax3bl' not recognized. TOO MANY UNKNOWN INPUT LINES, ABORTING PROCESSING No valid commands found. Commands must be in message BODY, not in HEADER. Help for [EMAIL PROTECTED]: This help message is being sent to you from the Majordomo mailing list management system at [EMAIL PROTECTED] This is version 1.94.5 of Majordomo. If you're familiar with mail servers, an advanced user's summary of Majordomo's commands appears at the end of this message. Majordomo is an automated system which allows users to subscribe and unsubscribe to mailing lists, and to retrieve files from list archives. You can interact with the Majordomo software by sending it commands in the body of mail messages addressed to [EMAIL PROTECTED]. Please do not put your commands on the subject line; Majordomo does not process commands in the subject line. You may put multiple Majordomo commands in the same mail message. Put each command on a line by itself. If you use a signature block at the end of your mail, Majordomo may mistakenly believe each line of your message is a command; you will then receive spurious error messages. To keep this from happening, either put a line starting with a hyphen (-) before your signature, or put a line with just the word end on it in the same place. This will stop the Majordomo software from processing your signature as bad commands. Here are some of the things you can do using Majordomo: I. FINDING OUT WHICH LISTS ARE ON THIS SYSTEM To get a list of publicly-available mailing lists on this system, put the following line in the body of your mail message to [EMAIL PROTECTED]: lists Each line will contain the name of a mailing list and a brief description of the list. To get more information about a particular list, use the info command, supplying the name of the list. For example, if the name of the list about which you wish information is demo-list, you would put the line info demo-list in the body of the mail message. II. SUBSCRIBING TO A LIST Once you've determined that you wish to subscribe to one or more lists on this system, you can send commands to Majordomo to have it add you to the list, so you can begin receiving mailings. To receive list mail at the address from which you're sending your mail, simply say subscribe followed by the list's name: subscribe demo-list If for some reason you wish to have the mailings go to a different address (a friend's address, a specific other system on which you have an account, or an address which is more correct than the one that automatically appears in the From: header on the mail you send), you would add that address to the command. For instance, if you're sending a request from your work account, but wish to receive demo-list mail at your personal account (for which we will use [EMAIL PROTECTED] as an example), you'd put the line subscribe demo-list [EMAIL PROTECTED] in the mail message body. Based on configuration decisions made by the list owners, you may be added to the mailing list automatically. You may also receive notification that an authorization key is required for subscription. Another message will be sent to the address to be subscribed (which may or may not be the same as yours) containing the key, and directing the user to send a command found in that message back to [EMAIL PROTECTED] (This can be a bit of extra hassle, but it helps keep you from being swamped in extra email by someone who forged requests from your address.) You may also get a message that your subscription is being forwarded to the list owner for approval; some lists have waiting
[linux-usb-devel] Your Personal Mail.Read And Get Back To Me.
Hello, I want to solicit your attention to recieve money on my behalf. The purpose of my contacting you is because you live in western world. When you reply this message,i will send you the full details and more information about myself and the funds. My personal email is :[EMAIL PROTECTED] Thank you. ou Xinsheng. - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] USB performance bug since kernel 2.6.13 (CRITICAL???)
(Resending because [EMAIL PROTECTED] bounced right back to me. Sorry for the multiple messages!) - Forwarded Message From: Open Source [EMAIL PROTECTED] To: linux-kernel@vger.kernel.org; [EMAIL PROTECTED] Sent: Thursday, October 12, 2006 12:21:56 PM Subject: USB performance bug since kernel 2.6.13 (CRITICAL???) Hi all, I am writing regarding a performance issue that I recently observed after upgrading from kernel 2.6.12 to 2.6.17. I did some hunting around and have found that the issue first arises in 2.6.13. I am using a device that submits URBs asynchronously using the libusb devio infrastructure. In version 2.6.12 I am able to submit and reap URBs for my particular application at a transaction rate of one per millisecond. A transaction consists of a single WRITE URB ( 512 bytes) followed by a single READ URB (1024 bytes). Once I upgrade to version 2.6.13, the transactional rate drops to one per 4 milliseconds! The overall performance of a particular algorithm is increased from a total execution time of 75 seconds to over 160 seconds. The only difference between the two tests is the kernel. Microsoft Windows executes the algorithm in 70-75 seconds! I am using a Fedora Core distribution with FC4 kernels for testing. Is there some new incantation that is required in my user-mode driver to get around a feature in recent kernels? Does anyone else know about this? I was not able to easily find discussion about this on the newsgroups. It appears that this problem has been around for a while, if it is indeed a problem. I am not a subscriber to the linux-kernel mailing list but have cross-posted to it since this seems like a serious enough issue. Please continue to keep any responses on linux-usb-devel as well so I can see them in my email box. Thank you, Beleaguered Open Source Fan - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] USB performance bug since kernel 2.6.13 (CRITICAL???)
On Thu, 2006-10-12 at 12:33 -0700, Open Source wrote: I am using a device that submits URBs asynchronously using the libusb devio infrastructure. In version 2.6.12 I am able to submit and reap URBs for my particular application at a transaction rate of one per millisecond. A transaction consists of a single WRITE URB ( 512 bytes) followed by a single READ URB (1024 bytes). Once I upgrade to version 2.6.13, the transactional rate drops to one per 4 milliseconds! The kernel's internal tick rate was lowered from 1000Hz to 250Hz starting with 2.6.13. Rebuild with CONFIG_HZ=1000 and the performance should return to normal. Lee - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] [rfc]autosuspend in hid
Am Donnerstag, 12. Oktober 2006 19:10 schrieb Alan Stern: On Thu, 12 Oct 2006, Oliver Neukum wrote: Hi, I can't boot 2.6.19-rc1, so here's an incomplete version of autosuspend for hid to invite comments on the basic approach. Regards Oliver --- linux-2.6.19-rc1/drivers/usb/input/hid.h2006-10-05 04:57:05.0 +0200 +++ gregtree/drivers/usb/input/hid.h2006-10-09 15:20:21.0 +0200 @@ -384,6 +384,9 @@ #define HID_IN_RUNNING 3 #define HID_RESET_PENDING 4 #define HID_SUSPENDED 5 +#define HID_IN_IDLE6 + +#define HID_IDLE_TIME 200*HZ This will need to be configurable separately for each device. I'd prefer to read it from sysfs managed by usbcore. int hid_open(struct hid_device *hid) { - ++hid-open; + clear_bit(HID_IN_IDLE, hid-iofl); + if (!hid-open++) + usb_autopm_get_interface(hid-intf); if (hid_start_in(hid)) hid_io_error(hid); return 0; @@ -1375,8 +1383,10 @@ void hid_close(struct hid_device *hid) { - if (!--hid-open) + if (!--hid-open) { usb_kill_urb(hid-urbin); + set_bit(HID_IN_IDLE, hid-iofl); + } } There needs to be a call to usb_autopm_put_interface() here, to balance the call in hid_open(). Why? The device is idle now. +void hid_add_idle_timer(struct hid_device *hid) +{ + hid-idle_timer.expires = jiffies + HID_IDLE_TIME; + add_timer(hid-idle_timer); +} + +static void hid_mod_idle_timer(struct hid_device *hid) +{ + unsigned long flags; + + spin_lock_irqsave(hid-inlock, flags); + if (usb_get_intfdata(hid-intf)) + mod_timer(hid-idle_timer, jiffies + HID_IDLE_TIME); + spin_unlock_irqrestore(hid-inlock, flags); +} It's not obvious why you need two separate functions (you can always call mod_timer in place of add_timer), or why you need the spinlock. OK, I'll unify this. It just seemed cleaner. usb_get_intfdata() here isn't safe; if the value can be 0 then it can also be anything else, since a different driver may be bound to the interface. It would be better to have an unbound flag in the hid_device structure. Yes. On the other hand, why do you need to check this at all? This routine won't get called after the driver is unbound. But during. +static void __hid_report_idle(void *d) +{ + struct usb_interface *intf = d; + + usb_autopm_put_interface(intf); +} This call needs to be balanced somewhere. Otherwise intf-pm_usage_cnt will be decremented at every timeout and never incremented. See below. Right. Regards Oliver - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] USB performance bug since kernel 2.6.13 (CRITICAL???)
Hi, Thanks for the rapid response! But...I'm a bit confused. Why is there any software OS timer involved at all? Bulk messages should be scheduled by the host controller and for USB 2.0 the microframe period is 125 us. When I submit an URB, it should be sent to the host controller and scheduled for the next microframe. When the URB completes I should get an interrupt from the hardware. Hence, my transactions (WRITE followed by READ) should at worst be approximately 250 us plus some overhead to process the transaction itself, provided there aren't any other time consuming processes running on my OS. My overhead is less than 250 us. I was willing to tolerate 1 ms per transaction, but 4 ms just doesn't make any sense. Therefore I'm not sure if CONFIG_HZ is an appropriate excuse for this issue. Besides, Windows is now more than twice as fast out of the box than Linux when it comes to this particular type of USB usage. We can't have that can we? :-) Linux used to be fast and the only difference with my recent experiences is the kernel version. Best regards, Still Beleagered Open Source Fan - Original Message From: Lee Revell [EMAIL PROTECTED] To: Open Source [EMAIL PROTECTED] Cc: linux-usb-devel@lists.sourceforge.net; linux-kernel@vger.kernel.org Sent: Thursday, October 12, 2006 12:55:55 PM Subject: Re: USB performance bug since kernel 2.6.13 (CRITICAL???) On Thu, 2006-10-12 at 12:33 -0700, Open Source wrote: I am using a device that submits URBs asynchronously using the libusb devio infrastructure. In version 2.6.12 I am able to submit and reap URBs for my particular application at a transaction rate of one per millisecond. A transaction consists of a single WRITE URB ( 512 bytes) followed by a single READ URB (1024 bytes). Once I upgrade to version 2.6.13, the transactional rate drops to one per 4 milliseconds! The kernel's internal tick rate was lowered from 1000Hz to 250Hz starting with 2.6.13. Rebuild with CONFIG_HZ=1000 and the performance should return to normal. Lee - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] USB performance bug since kernel 2.6.13 (CRITICAL???)
On Thu, 2006-10-12 at 13:05 -0700, Open Source wrote: Hi, Thanks for the rapid response! But...I'm a bit confused. Why is there any software OS timer involved at all? Bulk messages should be scheduled by the host controller and for USB 2.0 the microframe period is 125 us. When I submit an URB, it should be sent to the host controller and scheduled for the next microframe. When the URB completes I should get an interrupt from the hardware. Hence, my transactions (WRITE followed by READ) should at worst be approximately 250 us plus some overhead to process the transaction itself, provided there aren't any other time consuming processes running on my OS. My overhead is less than 250 us. I was willing to tolerate 1 ms per transaction, but 4 ms just doesn't make any sense. Therefore I'm not sure if CONFIG_HZ is an appropriate excuse for this issue. I don't know, it just seemed likely because 1ms vs 4ms is close to the change in the timer tick rate. Try it. Lee - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] [rfc]autosuspend in hid
Am Donnerstag, 12. Oktober 2006 19:10 schrieb Alan Stern: void hid_close(struct hid_device *hid) { - if (!--hid-open) + if (!--hid-open) { usb_kill_urb(hid-urbin); + set_bit(HID_IN_IDLE, hid-iofl); + } } There needs to be a call to usb_autopm_put_interface() here, to balance the call in hid_open(). OK, of course. Please disregard my last remark. Regards Oliver - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] USB performance bug since kernel 2.6.13 (CRITICAL???)
Yes, I am pretty sure you are right about the timing. But it shouldn't be that way. If it is, then there's a bug. I'm fully willing to accept there is something else I should be doing driver-wise, but it shoudn't require recompiling the stock distribution kernels. Otherwise, Linux is not competitive with Microsoft Windows in this regard! I'll try a recompile and report back. In the meantime, if anyone else has any ideas, please let me know! Gopal - Original Message From: Lee Revell [EMAIL PROTECTED] To: Open Source [EMAIL PROTECTED] Cc: linux-usb-devel@lists.sourceforge.net; linux-kernel@vger.kernel.org Sent: Thursday, October 12, 2006 1:19:12 PM Subject: Re: USB performance bug since kernel 2.6.13 (CRITICAL???) On Thu, 2006-10-12 at 13:05 -0700, Open Source wrote: Hi, Thanks for the rapid response! But...I'm a bit confused. Why is there any software OS timer involved at all? Bulk messages should be scheduled by the host controller and for USB 2.0 the microframe period is 125 us. When I submit an URB, it should be sent to the host controller and scheduled for the next microframe. When the URB completes I should get an interrupt from the hardware. Hence, my transactions (WRITE followed by READ) should at worst be approximately 250 us plus some overhead to process the transaction itself, provided there aren't any other time consuming processes running on my OS. My overhead is less than 250 us. I was willing to tolerate 1 ms per transaction, but 4 ms just doesn't make any sense. Therefore I'm not sure if CONFIG_HZ is an appropriate excuse for this issue. I don't know, it just seemed likely because 1ms vs 4ms is close to the change in the timer tick rate. Try it. Lee - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] [rfc]autosuspend in hid
On Thu, 12 Oct 2006, Oliver Neukum wrote: Am Donnerstag, 12. Oktober 2006 19:10 schrieb Alan Stern: void hid_close(struct hid_device *hid) { - if (!--hid-open) + if (!--hid-open) { usb_kill_urb(hid-urbin); + set_bit(HID_IN_IDLE, hid-iofl); + } } There needs to be a call to usb_autopm_put_interface() here, to balance the call in hid_open(). OK, of course. Please disregard my last remark. In fact the usb_autpm_{get|put}_interface API is a little clumsy. It works okay if you do nothing but suspend on close and resume on open. But for anything more substantial it tends to get in the way. If you have any ideas for a better approach, let me know. In the end you may be better off manipulating intf-pm_usage_cnt directly. That's what I had to do in the hub driver. Oh yes, there's one detail I forgot to mention before. You need to set the supports_autosuspend flag in the usb_driver structure (can be done statically) and the needs_remote_wakeup flag in the usb_interface structure (must be done during probe). Alan Stern - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] [PATCH] USB-SERIAL:cp2101 Add new device ID
This patch adds device ID 0xEA61. This is another factory default ID used by SILabs. -- Signed-off-by: Craig Shelley [EMAIL PROTECTED] diff -Nru a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c --- a/drivers/usb/serial/cp2101.c 2006-10-12 21:59:28.0 +0100 +++ b/drivers/usb/serial/cp2101.c 2006-10-12 22:01:25.0 +0100 @@ -65,6 +65,7 @@ { USB_DEVICE(0x10C4, 0x813D) }, /* Burnside Telecom Deskmobile */ { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ + { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ { } /* Terminating Entry */ }; signature.asc Description: This is a digitally signed message part - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ 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] USB performance bug since kernel 2.6.13 (CRITICAL???)
On Thu, 2006-10-12 at 13:56 -0700, Open Source wrote: Yes, I am pretty sure you are right about the timing. But it shouldn't be that way. If it is, then there's a bug. I'm fully willing to accept there is something else I should be doing driver-wise, but it shoudn't require recompiling the stock distribution kernels. Otherwise, Linux is not competitive with Microsoft Windows in this regard! I'll try a recompile and report back. In the meantime, if anyone else has any ideas, please let me know! Yes, I agree that it would be a bug. If it turns out to be related to CONFIG_HZ, ask your distro why they rolled it back from 1000 to 250Hz. Lee - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ 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] About USB resources...
On Wednesday 11 October 2006 10:41 pm, Livio Tenze wrote: I use the montavista linux kernel 2.4.20 and I read some sources included in this distribution, but it is not clear how I have to write the device driver. I'm fairly sure I've seen mentino of an imx UDC driver for recent 2.6 kernels ... combine that with the serial gadget driver and you may be able to avoid writing any new code. Of course that implies you should use a recent 2.6 kernel, but that's expected for anyone wanting to use ARM Linux and get community support. - Dave - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Majordomo results: Re:
-- This is a multi-part message in MIME format. Command 'this' not recognized. --=_NextPart_0.048709762096405 Command '--=_nextpart_0.048709762096405' not recognized. Content-Type: text/html; format=flowed Command 'content-type:' not recognized. Content-Transfer-Encoding: quoted-printable Command 'content-transfer-encoding:' not recognized. !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN Command '!doctype' not recognized. HTMLHEAD Command 'htmlhead' not recognized. META http-equiv=3DContent-Type content=3Dtext/html; = Command 'meta' not recognized. charset=3Dwindows-1252 Command 'charset=3dwindows-1252' not recognized. META content=3DMSHTML 6.00.2600.0 name=3DGENERATOR Command 'meta' not recognized. STYLE/STYLE Command 'style/style' not recognized. /HEAD Command '/head' not recognized. TOO MANY UNKNOWN INPUT LINES, ABORTING PROCESSING No valid commands found. Commands must be in message BODY, not in HEADER. Help for [EMAIL PROTECTED]: This help message is being sent to you from the Majordomo mailing list management system at [EMAIL PROTECTED] This is version 1.94.5 of Majordomo. If you're familiar with mail servers, an advanced user's summary of Majordomo's commands appears at the end of this message. Majordomo is an automated system which allows users to subscribe and unsubscribe to mailing lists, and to retrieve files from list archives. You can interact with the Majordomo software by sending it commands in the body of mail messages addressed to [EMAIL PROTECTED]. Please do not put your commands on the subject line; Majordomo does not process commands in the subject line. You may put multiple Majordomo commands in the same mail message. Put each command on a line by itself. If you use a signature block at the end of your mail, Majordomo may mistakenly believe each line of your message is a command; you will then receive spurious error messages. To keep this from happening, either put a line starting with a hyphen (-) before your signature, or put a line with just the word end on it in the same place. This will stop the Majordomo software from processing your signature as bad commands. Here are some of the things you can do using Majordomo: I. FINDING OUT WHICH LISTS ARE ON THIS SYSTEM To get a list of publicly-available mailing lists on this system, put the following line in the body of your mail message to [EMAIL PROTECTED]: lists Each line will contain the name of a mailing list and a brief description of the list. To get more information about a particular list, use the info command, supplying the name of the list. For example, if the name of the list about which you wish information is demo-list, you would put the line info demo-list in the body of the mail message. II. SUBSCRIBING TO A LIST Once you've determined that you wish to subscribe to one or more lists on this system, you can send commands to Majordomo to have it add you to the list, so you can begin receiving mailings. To receive list mail at the address from which you're sending your mail, simply say subscribe followed by the list's name: subscribe demo-list If for some reason you wish to have the mailings go to a different address (a friend's address, a specific other system on which you have an account, or an address which is more correct than the one that automatically appears in the From: header on the mail you send), you would add that address to the command. For instance, if you're sending a request from your work account, but wish to receive demo-list mail at your personal account (for which we will use [EMAIL PROTECTED] as an example), you'd put the line subscribe demo-list [EMAIL PROTECTED] in the mail message body. Based on configuration decisions made by the list owners, you may be added to the mailing list automatically. You may also receive notification that an authorization key is required for subscription. Another message will be sent to the address to be subscribed (which may or may not be the same as yours) containing the key, and directing the user to send a command found in that message back to [EMAIL PROTECTED] (This can be a bit of extra hassle, but it helps keep you from being swamped in extra email by someone who forged requests from your address.) You may also get a message that your subscription is being forwarded to the list owner for approval; some lists have waiting lists, or policies about who may subscribe. If your request is forwarded for approval, the list owner should contact you soon after your request. Upon subscribing, you should receive an introductory message, containing list policies and features. Save this message for future reference; it will also contain exact directions for unsubscribing. If you lose the intro mail and would like another copy of the policies, send this message to [EMAIL
[linux-usb-devel] USB suspend/resume in linux
Does anyone know whether the linux USB drivers support the suspend feature on idle USB ports (i.e. the port has been idle for sometime and so the driver transitions it in to a low-power 'suspend' state) while the system is active and in S0 state? As far as I know, Windows don't support that, I was wondering if linux does. Please note, I have no background on linux or in OS programming (I am a hardware guy), so please be gentle with the level of technical detail in your response :-) NK - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel