* PROBLEM: USB keyboards works only 4 per PC host port @ 2008-08-08 6:02 Aivils Stoss 2008-08-09 10:42 ` Samuel Thibault 0 siblings, 1 reply; 20+ messages in thread From: Aivils Stoss @ 2008-08-08 6:02 UTC (permalink / raw) To: linux-input, jkosina, linux-kernel, linuxconsole-dev Hello All! PROBLEM: USB keyboards works only 4 per PC host port. I work for project which will use 15 - 25 keyboards for children teaching. I discover current Linux 2.6.22 , 2.6.24, 2.6.26 dot not support more than 4 keyboards per single PC host port. All plugged in keyboards are listed as USB devices, listed as input devices, but capable to send input events are only 4 keyboards, no matter where keyboards are plugged in to HUB cascade. All plugged in keyboards switch LED's, when i press NumLock. I tested various usb-hub units and various host PC hardware, i even replace hub power supplay units from 5V1A to 5V3A. All tested cases give best results - 4 keyboards per PC host port and worstest - some PC cannot do more than 8 keyboards at all. I suppose this is Linux kernel bug because i test keyboards under Windows, which support any schema of cascading of usb hubs. I will send any log file if that is necessary, but trouble will pop up in a row of kernels. 2.6.22 didn't have error messages. 2.6.24, 2.6.26 tend to total slow down with eternal reset messages: Jul 25 07:16:00 awork kernel: input,hiddev97: USB HID v1.10 Mouse [USB-compliant keyboard] on usb-0000:00:1d.0-1.1.2 Jul 25 07:16:01 awork kernel: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 Jul 25 07:16:01 awork kernel: usb 2-1.1.2: reset low speed USB device using uhci_hcd and address 18 Jul 25 07:16:02 awork kernel: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 Best regards, Aivils Stoss ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-08 6:02 PROBLEM: USB keyboards works only 4 per PC host port Aivils Stoss @ 2008-08-09 10:42 ` Samuel Thibault 2008-08-10 3:08 ` Aivils Stoss 0 siblings, 1 reply; 20+ messages in thread From: Samuel Thibault @ 2008-08-09 10:42 UTC (permalink / raw) To: Aivils Stoss; +Cc: linux-input, jkosina, linux-kernel, linuxconsole-dev Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > I suppose this is Linux kernel bug because i test keyboards under > Windows, which support any schema of cascading of usb hubs. On the very same machine and hubs? Samuel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-09 10:42 ` Samuel Thibault @ 2008-08-10 3:08 ` Aivils Stoss 2008-08-15 1:49 ` Randy Dunlap 0 siblings, 1 reply; 20+ messages in thread From: Aivils Stoss @ 2008-08-10 3:08 UTC (permalink / raw) To: Samuel Thibault; +Cc: linux-input, jkosina, linux-kernel, linuxconsole-dev On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > I suppose this is Linux kernel bug because i test keyboards under > > Windows, which support any schema of cascading of usb hubs. > > On the very same machine and hubs? Yes, on same machine. Under Windows i don't have evdev interface, checked only how keypress go to console. Of course to repeat a try You must have at least 5 keyboards and 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways got result - 5th, 6th, 7th keyboard does not send events to console or evdev. > > Samuel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-10 3:08 ` Aivils Stoss @ 2008-08-15 1:49 ` Randy Dunlap 2008-08-18 11:12 ` Aivils Stoss 0 siblings, 1 reply; 20+ messages in thread From: Randy Dunlap @ 2008-08-15 1:49 UTC (permalink / raw) To: Aivils Stoss, lud Cc: Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev [-- Attachment #1: Type: text/plain, Size: 1285 bytes --] On Sun, 10 Aug 2008 04:08:37 +0100 Aivils Stoss wrote: > On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > > I suppose this is Linux kernel bug because i test keyboards under > > > Windows, which support any schema of cascading of usb hubs. > > > > On the very same machine and hubs? > > Yes, on same machine. Under Windows i don't have evdev interface, > checked only how keypress go to console. > Of course to repeat a try You must have at least 5 keyboards and > 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways > got result - 5th, 6th, 7th keyboard does not send events to console > or evdev. [adding linux-usb mailing list] Hi, I finally got 5 USB keyboards together along with 2 hubs. I daisy-chained the hubs and connected 1 keyboard to the hub that is on the notebook computer USB port, then I connected 4 keyboards to the second hub. They all worked for me, meaning that I can type on all of them and have their characters show up on my console. I'm testing with 2.6.7-rc2. 'usbtree' output of the USB subsystem is attached. --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ [-- Attachment #2: usb-kbds.txt --] [-- Type: text/plain, Size: 1890 bytes --] /: Bus 05.Port 1: Dev 1, Class=root_hub, Drv=uhci_hcd/2p, 12M /: Bus 04.Port 1: Dev 1, Class=root_hub, Drv=uhci_hcd/2p, 12M |_ Port 1: Dev 2, If 0, Prod=Microsoft IntelliMouse® Explorer, Class=HID, Drv=usbhid, 1.5M |_ Port 2: Dev 3, If 0, Prod=Generic USB Hub, Class=hub, Drv=hub/4p, 12M |_ Port 1: Dev 8, If 0, Prod=Mobility USB EasiDock 200, Class=hub, Drv=hub/9p, 12M |_ Port 1: Dev 17, If 0, Prod=API USB KB HUB, Class=hub, Drv=hub/3p, 12M |_ Port 1: Dev 18, If 0, Prod=API USB KB HUB, Class=HID, Drv=usbhid, 12M |_ Port 2: Dev 19, If 0, Prod=, Class=HID, Drv=usbhid, 1.5M |_ Port 2: Dev 14, If 0, Prod=USB Keyboard, Class=HID, Drv=usbhid, 1.5M |_ Port 2: Dev 14, If 1, Prod=, Class=HID, Drv=usbhid, 1.5M |_ Port 3: Dev 13, If 0, Prod=USB Multimedia Keyboard, Class=HID, Drv=usbhid, 1.5M |_ Port 3: Dev 13, If 1, Prod=, Class=HID, Drv=usbhid, 1.5M |_ Port 4: Dev 11, If 0, Prod=Dell USB Keyboard Hub, Class=hub, Drv=hub/3p, 12M |_ Port 1: Dev 12, If 0, Prod=Dell USB Keyboard, Class=HID, Drv=usbhid, 12M |_ Port 1: Dev 12, If 1, Prod=, Class=HID, Drv=usbhid, 12M |_ Port 8: Dev 9, If 0, Prod=Mobility PS/2 Keyboard And Mouse I/F, Class=HID, Drv=usbhid, 12M |_ Port 9: Dev 10, If 0, Prod=Mobility USB Serial Converter, Class=vend., Drv=none, 12M |_ Port 2: Dev 15, If 0, Prod=Multimedia Keyboard Hub, Class=hub, Drv=hub/3p, 12M |_ Port 1: Dev 16, If 0, Prod=Multimedia Keyboard Hub, Class=HID, Drv=usbhid, 12M |_ Port 1: Dev 16, If 1, Prod=, Class=HID, Drv=usbhid, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Drv=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Drv=uhci_hcd/2p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Drv=ehci_hcd/8p, 480M ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-15 1:49 ` Randy Dunlap @ 2008-08-18 11:12 ` Aivils Stoss 2008-08-18 15:14 ` Jiri Kosina 2008-08-18 15:14 ` Randy Dunlap 0 siblings, 2 replies; 20+ messages in thread From: Aivils Stoss @ 2008-08-18 11:12 UTC (permalink / raw) To: Randy Dunlap Cc: lud, Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev On Friday 15 August 2008 7:19:48 am Randy Dunlap wrote: > On Sun, 10 Aug 2008 04:08:37 +0100 Aivils Stoss wrote: > > On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > > > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > > > I suppose this is Linux kernel bug because i test keyboards under > > > > Windows, which support any schema of cascading of usb hubs. > > > > > > On the very same machine and hubs? > > > > Yes, on same machine. Under Windows i don't have evdev interface, > > checked only how keypress go to console. > > Of course to repeat a try You must have at least 5 keyboards and > > 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways > > got result - 5th, 6th, 7th keyboard does not send events to console > > or evdev. > > [adding linux-usb mailing list] > > Hi, > > I finally got 5 USB keyboards together along with 2 hubs. > I daisy-chained the hubs and connected 1 keyboard to the hub that is > on the notebook computer USB port, then I connected 4 keyboards to the > second hub. They all worked for me, meaning that I can type on all of > them and have their characters show up on my console. > > I'm testing with 2.6.7-rc2. > 'usbtree' output of the USB subsystem is attached. Yeah! 2.6.7 is a bit obsolete. At my end 2.6.15 support more than 4 keyboards per PC port , but mess up input when is plugged more than 9 keyboards. 10th is capable to send keypress events, but last pressed key will be repeated until ctrl-c . 10th keyboard disturb an auto repeat of all keyboards. Aivils > > > --- > ~Randy > Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA > http://linuxplumbersconf.org/ ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-18 11:12 ` Aivils Stoss @ 2008-08-18 15:14 ` Jiri Kosina 2008-08-18 15:14 ` Randy Dunlap 1 sibling, 0 replies; 20+ messages in thread From: Jiri Kosina @ 2008-08-18 15:14 UTC (permalink / raw) To: Aivils Stoss Cc: Randy Dunlap, lud, Samuel Thibault, linux-input, linux-kernel, linuxconsole-dev On Mon, 18 Aug 2008, Aivils Stoss wrote: >> I finally got 5 USB keyboards together along with 2 hubs. I >> daisy-chained the hubs and connected 1 keyboard to the hub that is on >> the notebook computer USB port, then I connected 4 keyboards to the >> second hub. They all worked for me, meaning that I can type on all of >> them and have their characters show up on my console. >> I'm testing with 2.6.7-rc2. 'usbtree' output of the USB subsystem is >> attached. > Yeah! 2.6.7 is a bit obsolete. I think that Randy really meant 2.6.27-rc2. > At my end 2.6.15 support more than 4 keyboards per PC port , but mess up > input when is plugged more than 9 keyboards. 10th is capable to send > keypress events, but last pressed key will be repeated until ctrl-c . > 10th keyboard disturb an auto repeat of all keyboards. Could you please verify with any more recent kernel than 2.6.15 and report back whether the issue is still present, please? Also, is this bug specific to USB keyboards? i.e. if you for example plug in USB flash sticks instead of keyboards, do they all work correctly? Thanks, -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-18 11:12 ` Aivils Stoss 2008-08-18 15:14 ` Jiri Kosina @ 2008-08-18 15:14 ` Randy Dunlap 2008-08-19 9:57 ` Aivils Stoss 1 sibling, 1 reply; 20+ messages in thread From: Randy Dunlap @ 2008-08-18 15:14 UTC (permalink / raw) To: Aivils Stoss Cc: lud, Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev On Mon, 18 Aug 2008 16:42:49 +0530 Aivils Stoss wrote: > On Friday 15 August 2008 7:19:48 am Randy Dunlap wrote: > > On Sun, 10 Aug 2008 04:08:37 +0100 Aivils Stoss wrote: > > > On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > > > > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > > > > I suppose this is Linux kernel bug because i test keyboards under > > > > > Windows, which support any schema of cascading of usb hubs. > > > > > > > > On the very same machine and hubs? > > > > > > Yes, on same machine. Under Windows i don't have evdev interface, > > > checked only how keypress go to console. > > > Of course to repeat a try You must have at least 5 keyboards and > > > 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways > > > got result - 5th, 6th, 7th keyboard does not send events to console > > > or evdev. > > > > [adding linux-usb mailing list] > > > > Hi, > > > > I finally got 5 USB keyboards together along with 2 hubs. > > I daisy-chained the hubs and connected 1 keyboard to the hub that is > > on the notebook computer USB port, then I connected 4 keyboards to the > > second hub. They all worked for me, meaning that I can type on all of > > them and have their characters show up on my console. > > > > I'm testing with 2.6.7-rc2. > > 'usbtree' output of the USB subsystem is attached. > > Yeah! 2.6.7 is a bit obsolete. At my end 2.6.15 support more than 4 > keyboards per PC port , but mess up input when is plugged more than > 9 keyboards. 10th is capable to send keypress events, but last pressed > key will be repeated until ctrl-c . 10th keyboard disturb an auto repeat of > all keyboards. Sorry, my keyboard made a typo. I'm testing with 2.6.27-rc2. So the problem is now different from your original report, right? What speed is the host port that the keyboards are connected to? Could it be a USB bus bandwidth limitation? (not that any code checks for that) I barely found 5 USB keyboards, so I surely can't test 10 or more. ;) I suppose that it will take some USB debug messages to attempt to see what is going on... --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-18 15:14 ` Randy Dunlap @ 2008-08-19 9:57 ` Aivils Stoss 2008-08-19 15:03 ` Alan Stern 2008-08-19 15:19 ` Randy Dunlap 0 siblings, 2 replies; 20+ messages in thread From: Aivils Stoss @ 2008-08-19 9:57 UTC (permalink / raw) To: Randy Dunlap Cc: lud, Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev [-- Attachment #1: Type: text/plain, Size: 3643 bytes --] On Monday 18 August 2008 8:44:32 pm Randy Dunlap wrote: > On Mon, 18 Aug 2008 16:42:49 +0530 Aivils Stoss wrote: > > On Friday 15 August 2008 7:19:48 am Randy Dunlap wrote: > > > On Sun, 10 Aug 2008 04:08:37 +0100 Aivils Stoss wrote: > > > > On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > > > > > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > > > > > I suppose this is Linux kernel bug because i test keyboards under > > > > > > Windows, which support any schema of cascading of usb hubs. > > > > > > > > > > On the very same machine and hubs? > > > > > > > > Yes, on same machine. Under Windows i don't have evdev interface, > > > > checked only how keypress go to console. > > > > Of course to repeat a try You must have at least 5 keyboards and > > > > 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways > > > > got result - 5th, 6th, 7th keyboard does not send events to console > > > > or evdev. > > > > > > [adding linux-usb mailing list] > > > > > > Hi, > > > > > > I finally got 5 USB keyboards together along with 2 hubs. > > > I daisy-chained the hubs and connected 1 keyboard to the hub that is > > > on the notebook computer USB port, then I connected 4 keyboards to the > > > second hub. They all worked for me, meaning that I can type on all of > > > them and have their characters show up on my console. > > > > > > I'm testing with 2.6.7-rc2. > > > 'usbtree' output of the USB subsystem is attached. > > > > Yeah! 2.6.7 is a bit obsolete. At my end 2.6.15 support more than 4 > > keyboards per PC port , but mess up input when is plugged more than > > 9 keyboards. 10th is capable to send keypress events, but last pressed > > key will be repeated until ctrl-c . 10th keyboard disturb an auto repeat > > of all keyboards. > > Sorry, my keyboard made a typo. I'm testing with 2.6.27-rc2. > > So the problem is now different from your original report, right? No problem is same. Older kernels have another troubles. 2.6.22-1-mepis-smp Quite stable. Have oops sometime inside evdev. Support up to 16 USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on each hub. Any hub cascade support only 4 keyboards, where 5th or more is registered but don't send input events. Oops inside evdev , when USB keyboard unplugged. No slow down even all USB keyboards does not work properly. My be this one support more than 16 keyboards, but i don't have PC USB ports enough. 2.6.24-7 4 keyboards per port. If plug in 5th tend to total slow down with this one: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 5th - means 5th keyboard in USB hub's cascade, which is plugged into single PC USB port. 2.6.26 4 keyboards per port. If plug in 5th tend to total slow down. 2.6.27-rc3 Sorry Randy i cannot repeat Your achievement. This worse of all tested kernels. I got working 3 USB keyboards, when i plug in 4th, all keyboards, include PS/2 stop working. Kernel does not hung up. I can reach box via net. dmesg , /proc/bus/input/devices attached. lsusb hung up. Please notify me , if i should use 2.6.27-rc2 ! Aivils > > > What speed is the host port that the keyboards are connected to? > Could it be a USB bus bandwidth limitation? (not that any code > checks for that) > > I barely found 5 USB keyboards, so I surely can't test 10 or more. ;) > I suppose that it will take some USB debug messages to attempt to see > what is going on... > > > --- > ~Randy > Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA > http://linuxplumbersconf.org/ [-- Attachment #2: dmesg-2.6.27-rc3 --] [-- Type: text/plain, Size: 30800 bytes --] stem 00:12: iomem range 0xe0000-0xfffff could not be reserved system 00:12: iomem range 0x100000-0x3f7fffff could not be reserved pci 0000:00:1c.0: PCI bridge, secondary bus 0000:03 pci 0000:00:1c.0: IO window: 0xe000-0xefff pci 0000:00:1c.0: MEM window: disabled pci 0000:00:1c.0: PREFETCH window: disabled pci 0000:00:1c.1: PCI bridge, secondary bus 0000:02 pci 0000:00:1c.1: IO window: 0xd000-0xdfff pci 0000:00:1c.1: MEM window: 0xdff00000-0xdfffffff pci 0000:00:1c.1: PREFETCH window: disabled pci 0000:00:1e.0: PCI bridge, secondary bus 0000:01 pci 0000:00:1e.0: IO window: 0xc000-0xcfff pci 0000:00:1e.0: MEM window: 0xdfe00000-0xdfefffff pci 0000:00:1e.0: PREFETCH window: disabled pci 0000:00:1c.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:1c.0: setting latency timer to 64 pci 0000:00:1c.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17 pci 0000:00:1c.1: setting latency timer to 64 pci 0000:00:1e.0: setting latency timer to 64 NET: Registered protocol family 2 IP route cache hash table entries: 32768 (order: 5, 131072 bytes) TCP established hash table entries: 131072 (order: 8, 1048576 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 131072 bind 65536) TCP reno registered NET: Registered protocol family 1 audit: initializing netlink socket (disabled) type=2000 audit(1219146320.240:1): initialized highmem bounce pool size: 64 pages VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) NTFS driver 2.1.29 [Flags: R/W]. msgmni has been set to 1765 io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) pci 0000:00:02.0: Boot video device pci 0000:00:1d.0: uhci_check_and_reset_hc: cmd = 0x0000 pci 0000:00:1d.0: Performing full reset pci 0000:00:1d.1: uhci_check_and_reset_hc: cmd = 0x0000 pci 0000:00:1d.1: Performing full reset pci 0000:00:1d.2: uhci_check_and_reset_hc: cmd = 0x0000 pci 0000:00:1d.2: Performing full reset pci 0000:00:1d.3: uhci_check_and_reset_hc: cmd = 0x0000 pci 0000:00:1d.3: Performing full reset pcieport-driver 0000:00:1c.0: setting latency timer to 64 pcieport-driver 0000:00:1c.0: found MSI capability pci_express 0000:00:1c.0:pcie00: allocate port service pci_express 0000:00:1c.0:pcie02: allocate port service pcieport-driver 0000:00:1c.1: setting latency timer to 64 pcieport-driver 0000:00:1c.1: found MSI capability pci_express 0000:00:1c.1:pcie00: allocate port service isapnp: Scanning for PnP cards... Switched to high resolution mode on CPU 1 Switched to high resolution mode on CPU 0 isapnp: No Plug & Play device found hpet_resources: 0xfed00000 is busy Serial: 8250/16550 driver4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:0e: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A brd: module loaded loop: module loaded input: Macintosh mouse button emulation as /class/input/input0 Driver 'sd' needs updating - please use bus_type methods Driver 'sr' needs updating - please use bus_type methods ata_piix 0000:00:1f.1: version 2.12 ata_piix 0000:00:1f.1: PCI INT A -> GSI 22 (level, low) -> IRQ 22 ata_piix 0000:00:1f.1: setting latency timer to 64 scsi0 : ata_piix scsi1 : ata_piix ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14 ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15 ata1.00: ATA-7: ST3160215A, 3.AAD, max UDMA/100 ata1.00: 312581808 sectors, multi 16: LBA48 ata1.00: configured for UDMA/100 scsi 0:0:0:0: Direct-Access ATA ST3160215A 3.AA PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 < > sda3 sda4 sd 0:0:0:0: [sda] Attached SCSI disk sd 0:0:0:0: Attached scsi generic sg0 type 0 ata_piix 0000:00:1f.2: PCI INT B -> GSI 23 (level, low) -> IRQ 23 ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ] ata_piix 0000:00:1f.2: setting latency timer to 64 scsi2 : ata_piix scsi3 : ata_piix ata3: SATA max UDMA/133 cmd 0xb800 ctl 0xb400 bmdma 0xa400 irq 23 ata4: SATA max UDMA/133 cmd 0xb000 ctl 0xa800 bmdma 0xa408 irq 23 ata3.01: NODEV after polling detection ata3.00: ATAPI: TSSTcorp CDDVDW SH-S203D, SB00, max UDMA/100 ata3.00: configured for UDMA/100 scsi 2:0:0:0: CD-ROM TSSTcorp CDDVDW SH-S203D SB00 PQ: 0 ANSI: 5 sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 2:0:0:0: Attached scsi CD-ROM sr0 sr 2:0:0:0: Attached scsi generic sg1 type 5 ieee1394: raw1394: /dev/raw1394 device initialized usbmon: debugfs is not available ehci_hcd: block sizes: qh 128 qtd 96 itd 160 sitd 96 ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 20 (level, low) -> IRQ 20 ehci_hcd 0000:00:1d.7: setting latency timer to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller drivers/usb/core/inode.c: creating file 'devices' drivers/usb/core/inode.c: creating file '001' ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:1d.7: reset hcs_params 0x104208 dbg=1 cc=4 pcc=2 ordered !ppc ports=8 ehci_hcd 0000:00:1d.7: reset hcc_params 6871 thresh 7 uframes 1024 64 bit addr ehci_hcd 0000:00:1d.7: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:1d.7: debug port 1 ehci_hcd 0000:00:1d.7: cache line size of 32 is not supported ehci_hcd 0000:00:1d.7: supports USB remote wakeup ehci_hcd 0000:00:1d.7: irq 20, io mem 0xdfdffc00 ehci_hcd 0000:00:1d.7: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:1d.7: init command 010001 (park)=0 ithresh=1 period=1024 RUN ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb1: default language 0x0409 usb usb1: uevent usb usb1: usb_probe_device usb usb1: configuration #1 chosen from 1 choice usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: uevent hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 8 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: no power switching (usb 1.0) hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: power on to power good time: 20ms hub 1-0:1.0: local power source is good hub 1-0:1.0: trying to enable port power on non-switchable hub hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0000 drivers/usb/core/inode.c: creating file '001' usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.27-rc3 ehci_hcd usb usb1: SerialNumber: 0000:00:1d.7 Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12 serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice usbcore: registered new interface driver appletouch cpuidle: using governor ladder cpuidle: using governor menu TCP cubic registered NET: Registered protocol family 17 Starting balanced_irq Using IPI No-Shortcut mode input: AT Translated Set 2 keyboard as /class/input/input1 EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 252k freed kjournald starting. Commit interval 5 seconds usb usb1: uevent usb 1-0:1.0: uevent hub 1-0:1.0: hub_suspend usb usb1: bus auto-suspend ehci_hcd 0000:00:1d.7: suspend root hub ACPI: SSDT 3F7AE0C0, 0214 (r1 AMI CPU1PM 1 INTL 20060113) processor ACPI0007:00: registered as cooling_device0 ACPI: Processor [CPU1] (supports 8 throttling states) ACPI: SSDT 3F7AE2E0, 0143 (r1 AMI CPU2PM 1 INTL 20060113) processor ACPI0007:01: registered as cooling_device1 ACPI: Processor [CPU2] (supports 8 throttling states) input: Power Button (FF) as /class/input/input2 ACPI: Power Button (FF) [PWRF] input: Power Button (CM) as /class/input/input3 ACPI: Power Button (CM) [PWRB] Linux agpgart interface v0.103 Atheros(R) L2 Ethernet Driver - version 2.0.4 Copyright (c) 2007 Atheros Corporation. atl2 0000:02:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 atl2 0000:02:00.0: setting latency timer to 64 USB Universal Host Controller Interface driver v3.0 uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20 uhci_hcd 0000:00:1d.0: setting latency timer to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller drivers/usb/core/inode.c: creating file '002' uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1d.0: detected 2 ports uhci_hcd 0000:00:1d.0: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:1d.0: Performing full reset uhci_hcd 0000:00:1d.0: supports USB remote wakeup uhci_hcd 0000:00:1d.0: irq 20, io base 0x00009000 usb usb2: default language 0x0409 usb usb2: uevent usb usb2: usb_probe_device usb usb2: configuration #1 chosen from 1 choice usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: uevent hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 2ms hub 2-0:1.0: local power source is good hub 2-0:1.0: trying to enable port power on non-switchable hub Floppy drive(s): fd0 is 1.44M logips2pp: Detected unknown logitech mouse model 106 FDC 0 is a post-1991 82077 input: PC Speaker as /class/input/input4 drivers/usb/core/inode.c: creating file '001' usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: UHCI Host Controller usb usb2: Manufacturer: Linux 2.6.27-rc3 uhci_hcd usb usb2: SerialNumber: 0000:00:1d.0 uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17 uhci_hcd 0000:00:1d.1: setting latency timer to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller drivers/usb/core/inode.c: creating file '003' uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.1: detected 2 ports uhci_hcd 0000:00:1d.1: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:1d.1: Performing full reset uhci_hcd 0000:00:1d.1: supports USB remote wakeup uhci_hcd 0000:00:1d.1: irq 17, io base 0x00009400 usb usb3: default language 0x0409 usb usb3: uevent usb usb3: usb_probe_device usb usb3: configuration #1 chosen from 1 choice usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: uevent hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: individual port over-current protection hub 3-0:1.0: power on to power good time: 2ms hub 3-0:1.0: local power source is good hub 3-0:1.0: trying to enable port power on non-switchable hub hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0000 hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0000 drivers/usb/core/inode.c: creating file '001' usb usb3: New USB device found, idVendor=1d6b, idProduct=0001 usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: UHCI Host Controller usb usb3: Manufacturer: Linux 2.6.27-rc3 uhci_hcd usb usb3: SerialNumber: 0000:00:1d.1 agpgart-intel 0000:00:00.0: Intel 945G Chipset agpgart-intel 0000:00:00.0: detected 7932K stolen memory agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xe0000000 uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18 uhci_hcd 0000:00:1d.2: setting latency timer to 64 uhci_hcd 0000:00:1d.2: UHCI Host Controller drivers/usb/core/inode.c: creating file '004' uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:1d.2: detected 2 ports uhci_hcd 0000:00:1d.2: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:1d.2: Performing full reset uhci_hcd 0000:00:1d.2: supports USB remote wakeup uhci_hcd 0000:00:1d.2: irq 18, io base 0x00009800 usb usb4: default language 0x0409 usb usb4: uevent usb usb4: usb_probe_device usb usb4: configuration #1 chosen from 1 choice usb usb4: adding 4-0:1.0 (config #1, interface 0) usb 4-0:1.0: uevent hub 4-0:1.0: usb_probe_interface hub 4-0:1.0: usb_probe_interface - got id hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected hub 4-0:1.0: standalone hub hub 4-0:1.0: no power switching (usb 1.0) hub 4-0:1.0: individual port over-current protection hub 4-0:1.0: power on to power good time: 2ms hub 4-0:1.0: local power source is good hub 4-0:1.0: trying to enable port power on non-switchable hub hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0000 drivers/usb/core/inode.c: creating file '001' usb usb4: New USB device found, idVendor=1d6b, idProduct=0001 usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: Product: UHCI Host Controller usb usb4: Manufacturer: Linux 2.6.27-rc3 uhci_hcd usb usb4: SerialNumber: 0000:00:1d.2 i801_smbus 0000:00:1f.3: PCI INT B -> GSI 23 (level, low) -> IRQ 23 uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 19 (level, low) -> IRQ 19 uhci_hcd 0000:00:1d.3: setting latency timer to 64 uhci_hcd 0000:00:1d.3: UHCI Host Controller drivers/usb/core/inode.c: creating file '005' uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5 uhci_hcd 0000:00:1d.3: detected 2 ports uhci_hcd 0000:00:1d.3: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:1d.3: Performing full reset uhci_hcd 0000:00:1d.3: supports USB remote wakeup uhci_hcd 0000:00:1d.3: irq 19, io base 0x0000a000 usb usb5: default language 0x0409 usb usb5: uevent usb usb5: usb_probe_device usb usb5: configuration #1 chosen from 1 choice usb usb5: adding 5-0:1.0 (config #1, interface 0) usb 5-0:1.0: uevent hub 5-0:1.0: usb_probe_interface hub 5-0:1.0: usb_probe_interface - got id hub 5-0:1.0: USB hub found hub 5-0:1.0: 2 ports detected hub 5-0:1.0: standalone hub hub 5-0:1.0: no power switching (usb 1.0) hub 5-0:1.0: individual port over-current protection hub 5-0:1.0: power on to power good time: 2ms hub 5-0:1.0: local power source is good hub 5-0:1.0: trying to enable port power on non-switchable hub hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0000 drivers/usb/core/inode.c: creating file '001' usb usb5: New USB device found, idVendor=1d6b, idProduct=0001 usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb5: Product: UHCI Host Controller usb usb5: Manufacturer: Linux 2.6.27-rc3 uhci_hcd usb usb5: SerialNumber: 0000:00:1d.3 ath5k_pci 0000:01:01.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21 ath5k_pci 0000:01:01.0: registered as 'phy0' phy0: Selected rate control algorithm 'pid' ath5k phy0: Atheros AR2413 chip found (MAC: 0x78, PHY: 0x45) udev: renamed network interface wlan0 to ath0 input: ImExPS/2 Logitech Explorer Mouse as /class/input/input5 EMU10K1X 0000:01:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 Model 1001 Rev 00000000 Serial 10011102 usb usb2: suspend_rh (auto-stop) usb usb3: suspend_rh (auto-stop) usb usb4: suspend_rh (auto-stop) usb usb5: suspend_rh (auto-stop) splashy[1466]: segfault at c ip b7fb73ce sp bfee7bd0 error 4 in libsplashy.so.1.0.0[b7fb5000+5000] hub 2-0:1.0: hub_suspend usb usb2: bus auto-suspend usb usb2: suspend_rh Adding 1959920k swap on /dev/sda3. Priority:1 extents:1 across:1959920k EXT3 FS on sda4, internal journal hub 3-0:1.0: hub_suspend usb usb3: bus auto-suspend usb usb3: suspend_rh hub 4-0:1.0: hub_suspend usb usb4: bus auto-suspend usb usb4: suspend_rh hub 5-0:1.0: hub_suspend usb usb5: bus auto-suspend usb usb5: suspend_rh device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-devel@redhat.com Uniform Multi-Platform E-IDE driver atl2: eth0 NIC Link is Up<100 Mbps Full Duplex> NET: Registered protocol family 10 lo: Disabled Privacy Extensions parport_pc 00:07: reported by Plug and Play ACPI parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] lp0: using parport0 (interrupt-driven). ppdev: user-space parallel port driver eth0: no IPv6 routers present warning: `avahi-daemon' uses 32-bit capabilities (legacy support in use) Bluetooth: Core ver 2.12 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: L2CAP ver 2.10 Bluetooth: L2CAP socket layer initialized Bluetooth: HIDP (Human Interface Emulation) ver 1.2 usb usb5: usb auto-resume usb usb5: wakeup_rh hub 5-0:1.0: hub_resume hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0000 usb usb4: usb auto-resume usb usb4: wakeup_rh hub 4-0:1.0: hub_resume hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0000 usb usb2: usb auto-resume usb usb2: wakeup_rh hub 2-0:1.0: hub_resume hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0000 usb usb3: usb auto-resume usb usb3: wakeup_rh hub 3-0:1.0: hub_resume hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0000 usb usb1: usb auto-resume ehci_hcd 0000:00:1d.7: resume root hub hub 1-0:1.0: hub_resume hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0000 Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.10 powernow: This module only works with AMD K7 CPUs usb usb5: suspend_rh (auto-stop) ADDRCONF(NETDEV_UP): ath0: link is not ready usb usb4: suspend_rh (auto-stop) usb usb2: suspend_rh (auto-stop) usb usb3: suspend_rh (auto-stop) hub 5-0:1.0: hub_suspend usb usb5: bus auto-suspend usb usb5: suspend_rh hub 4-0:1.0: hub_suspend usb usb4: bus auto-suspend usb usb4: suspend_rh hub 2-0:1.0: hub_suspend usb usb2: bus auto-suspend usb usb2: suspend_rh hub 3-0:1.0: hub_suspend usb usb3: bus auto-suspend usb usb3: suspend_rh hub 1-0:1.0: hub_suspend usb usb1: bus auto-suspend ehci_hcd 0000:00:1d.7: suspend root hub [drm] Initialized drm 1.1.0 20060810 pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:02.0: setting latency timer to 64 [drm] Initialized i915 1.6.0 20060119 on minor 0 usb usb1: usb resume ehci_hcd 0000:00:1d.7: resume root hub hub 1-0:1.0: hub_resume ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER sig=j CSC CONNECT hub 1-0:1.0: port 4: status 0501 change 0001 hub 1-0:1.0: state 7 ports 8 chg 0010 evt 0000 hub 1-0:1.0: port 4, status 0501, change 0000, 480 Mb/s ehci_hcd 0000:00:1d.7: port 4 full speed --> companion ehci_hcd 0000:00:1d.7: GetStatus port 4 status 003801 POWER OWNER sig=j CONNECT hub 1-0:1.0: port 4 not reset yet, waiting 50ms usb usb3: usb resume usb usb3: wakeup_rh hub 3-0:1.0: hub_resume uhci_hcd 0000:00:1d.1: port 2 portsc 0093,00 hub 3-0:1.0: port 2: status 0101 change 0001 ehci_hcd 0000:00:1d.7: GetStatus port 4 status 003002 POWER OWNER sig=se0 CSC hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0010 hub 3-0:1.0: state 7 ports 2 chg 0004 evt 0000 hub 3-0:1.0: port 2, status 0101, change 0000, 12 Mb/s usb 3-2: new full speed USB device using uhci_hcd and address 2 usb 3-2: ep0 maxpacket = 8 usb 3-2: default language 0x0409 usb 3-2: uevent usb 3-2: usb_probe_device usb 3-2: configuration #1 chosen from 1 choice usb 3-2: adding 3-2:1.0 (config #1, interface 0) usb 3-2:1.0: uevent hub 3-2:1.0: usb_probe_interface hub 3-2:1.0: usb_probe_interface - got id hub 3-2:1.0: USB hub found hub 3-2:1.0: 4 ports detected hub 3-2:1.0: standalone hub hub 3-2:1.0: ganged power switching hub 3-2:1.0: global over-current protection hub 3-2:1.0: power on to power good time: 44ms hub 3-2:1.0: local power source is good hub 3-2:1.0: no over-current condition exists hub 3-2:1.0: enabling power on all ports hub 3-2:1.0: port 2: status 0101 change 0001 uhci_hcd 0000:00:1d.1: reserve dev 2 ep81-INT, period 128, phase 0, 12 us drivers/usb/core/inode.c: creating file '002' usb 3-2: New USB device found, idVendor=058f, idProduct=9254 usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2: Product: Generic USB Hub usb 3-2: Manufacturer: ALCOR hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0004 hub 3-2:1.0: state 7 ports 4 chg 0004 evt 0000 hub 3-2:1.0: port 2, status 0101, change 0000, 12 Mb/s usb 3-2.2: new full speed USB device using uhci_hcd and address 3 usb 3-2.2: ep0 maxpacket = 8 usb 3-2.2: default language 0x0409 usb 3-2.2: uevent usb 3-2.2: usb_probe_device usb 3-2.2: configuration #1 chosen from 1 choice usb 3-2.2: adding 3-2.2:1.0 (config #1, interface 0) usb 3-2.2:1.0: uevent hub 3-2.2:1.0: usb_probe_interface hub 3-2.2:1.0: usb_probe_interface - got id hub 3-2.2:1.0: USB hub found hub 3-2.2:1.0: 4 ports detected hub 3-2.2:1.0: standalone hub hub 3-2.2:1.0: individual port power switching hub 3-2.2:1.0: individual port over-current protection hub 3-2.2:1.0: power on to power good time: 44ms hub 3-2.2:1.0: local power source is good hub 3-2.2:1.0: enabling power on all ports hub 3-2.2:1.0: port 1: status 0301 change 0001 hub 3-2.2:1.0: port 2: status 0301 change 0001 hub 3-2.2:1.0: port 3: status 0301 change 0001 hub 3-2.2:1.0: port 4: status 0301 change 0001 uhci_hcd 0000:00:1d.1: reserve dev 3 ep81-INT, period 128, phase 0, 12 us drivers/usb/core/inode.c: creating file '003' usb 3-2.2: New USB device found, idVendor=058f, idProduct=9254 usb 3-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2.2: Product: Generic USB Hub usb 3-2.2: Manufacturer: ALCOR hub 3-2:1.0: state 7 ports 4 chg 0000 evt 0004 hub 3-2.2:1.0: state 7 ports 4 chg 001e evt 0000 hub 3-2.2:1.0: port 1, status 0301, change 0000, 1.5 Mb/s usb 3-2.2.1: new low speed USB device using uhci_hcd and address 4 usb 3-2.2.1: skipped 1 descriptor after interface usb 3-2.2.1: skipped 1 descriptor after interface usb 3-2.2.1: default language 0x0409 usb 3-2.2.1: uevent usb 3-2.2.1: usb_probe_device usb 3-2.2.1: configuration #1 chosen from 1 choice usb 3-2.2.1: adding 3-2.2.1:1.0 (config #1, interface 0) usb 3-2.2.1:1.0: uevent usb 3-2.2.1: adding 3-2.2.1:1.1 (config #1, interface 1) usb 3-2.2.1:1.1: uevent drivers/usb/core/inode.c: creating file '004' usb 3-2.2.1: New USB device found, idVendor=0a81, idProduct=0101 usb 3-2.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2.2.1: Product: USB Keyboard usb 3-2.2.1: Manufacturer: CHESEN hub 3-2.2:1.0: port 2, status 0301, change 0000, 1.5 Mb/s usb 3-2.2.2: new low speed USB device using uhci_hcd and address 5 usb 3-2.2.2: skipped 1 descriptor after interface usb 3-2.2.2: skipped 1 descriptor after interface usb 3-2.2.2: default language 0x0409 usb 3-2.2.2: uevent usb 3-2.2.2: usb_probe_device usb 3-2.2.2: configuration #1 chosen from 1 choice usb 3-2.2.2: adding 3-2.2.2:1.0 (config #1, interface 0) usb 3-2.2.2:1.0: uevent usb 3-2.2.2: adding 3-2.2.2:1.1 (config #1, interface 1) usb 3-2.2.2:1.1: uevent drivers/usb/core/inode.c: creating file '005' usb 3-2.2.2: New USB device found, idVendor=0a81, idProduct=0101 usb 3-2.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2.2.2: Product: USB Keyboard usb 3-2.2.2: Manufacturer: CHESEN hub 3-2.2:1.0: port 3, status 0301, change 0000, 1.5 Mb/s usb 3-2.2.3: new low speed USB device using uhci_hcd and address 6 usb 3-2.2.3: skipped 1 descriptor after interface usb 3-2.2.3: skipped 1 descriptor after interface usb 3-2.2.3: default language 0x0409 usb 3-2.2.3: uevent usb 3-2.2.3: usb_probe_device usb 3-2.2.3: configuration #1 chosen from 1 choice usb 3-2.2.3: adding 3-2.2.3:1.0 (config #1, interface 0) usb 3-2.2.3:1.0: uevent usb 3-2.2.3: adding 3-2.2.3:1.1 (config #1, interface 1) usb 3-2.2.3:1.1: uevent drivers/usb/core/inode.c: creating file '006' usb 3-2.2.3: New USB device found, idVendor=0a81, idProduct=0101 usb 3-2.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2.2.3: Product: USB Keyboard usb 3-2.2.3: Manufacturer: CHESEN hub 3-2.2:1.0: port 4, status 0301, change 0000, 1.5 Mb/s usb 3-2.2.4: new low speed USB device using uhci_hcd and address 7 usb 3-2.2.4: skipped 1 descriptor after interface usb 3-2.2.4: skipped 1 descriptor after interface usb 3-2.2.4: default language 0x0409 usb 3-2.2.4: uevent usb 3-2.2.4: usb_probe_device usb 3-2.2.4: configuration #1 chosen from 1 choice usb 3-2.2.4: adding 3-2.2.4:1.0 (config #1, interface 0) usb 3-2.2.4:1.0: uevent usb 3-2.2.4: adding 3-2.2.4:1.1 (config #1, interface 1) usb 3-2.2.4:1.1: uevent drivers/usb/core/inode.c: creating file '007' usb 3-2.2.4: New USB device found, idVendor=0a81, idProduct=0101 usb 3-2.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2.2.4: Product: USB Keyboard usb 3-2.2.4: Manufacturer: CHESEN usbcore: registered new interface driver hiddev usbhid 3-2.2.1:1.0: usb_probe_interface usbhid 3-2.2.1:1.0: usb_probe_interface - got id hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0008 input: CHESEN USB Keyboard as /class/input/input6 uhci_hcd 0000:00:1d.1: reserve dev 4 ep81-INT, period 8, phase 4, 118 us input: USB HID v1.10 Keyboard [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.1 usbhid 3-2.2.1:1.1: usb_probe_interface usbhid 3-2.2.1:1.1: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input7 uhci_hcd 0000:00:1d.1: reserve dev 4 ep82-INT, period 8, phase 4, 118 us input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.1 usbhid 3-2.2.2:1.0: usb_probe_interface usbhid 3-2.2.2:1.0: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input8 uhci_hcd 0000:00:1d.1: reserve dev 5 ep81-INT, period 8, phase 4, 118 us input: USB HID v1.10 Keyboard [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.2 usbhid 3-2.2.2:1.1: usb_probe_interface usbhid 3-2.2.2:1.1: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input9 uhci_hcd 0000:00:1d.1: reserve dev 5 ep82-INT, period 8, phase 4, 118 us input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.2 usbhid 3-2.2.3:1.0: usb_probe_interface usbhid 3-2.2.3:1.0: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input10 uhci_hcd 0000:00:1d.1: reserve dev 6 ep81-INT, period 8, phase 4, 118 us input: USB HID v1.10 Keyboard [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.3 usbhid 3-2.2.3:1.1: usb_probe_interface usbhid 3-2.2.3:1.1: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input11 uhci_hcd 0000:00:1d.1: reserve dev 6 ep82-INT, period 8, phase 4, 118 us input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.3 usbhid 3-2.2.4:1.0: usb_probe_interface usbhid 3-2.2.4:1.0: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input12 uhci_hcd 0000:00:1d.1: reserve dev 7 ep81-INT, period 8, phase 4, 118 us input: USB HID v1.10 Keyboard [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.4 usbhid 3-2.2.4:1.1: usb_probe_interface usbhid 3-2.2.4:1.1: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input13 uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.4 usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us hub 1-0:1.0: hub_suspend usb usb1: bus auto-suspend ehci_hcd 0000:00:1d.7: suspend root hub uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: release dev 7 ep81-INT, period 8, phase 4, 118 us hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 usb 3-2.2.4: reset low speed USB device using uhci_hcd and address 7 hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 uhci_hcd 0000:00:1d.1: reserve dev 7 ep82-INT, period 8, phase 4, 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us usbhid 3-2.2.4:1.0: forced unbind usbhid 3-2.2.4:1.0: usb_probe_interface usbhid 3-2.2.4:1.0: usb_probe_interface - got id input: CHESEN USB Keyboard as /class/input/input14 uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us input: USB HID v1.10 Keyboard [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.4 uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: release dev 7 ep82-INT, period 8, phase 4, 118 us hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 usb 3-2.2.4: reset low speed USB device using uhci_hcd and address 7 hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 hub 3-2.2:1.0: state 7 ports 4 chg 0000 evt 0010 uhci_hcd 0000:00:1d.1: reserve dev 7 ep82-INT, period 8, phase 4, 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us usbhid 3-2.2.4:1.0: forced unbind [-- Attachment #3: input-devices.txt --] [-- Type: text/plain, Size: 3425 bytes --] I: Bus=0017 Vendor=0001 Product=0001 Version=0100 N: Name="Macintosh mouse button emulation" P: Phys= S: Sysfs=/class/input/input0 U: Uniq= H: Handlers=mouse0 event0 B: EV=7 B: KEY=70000 0 0 0 0 0 0 0 0 B: REL=3 I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/class/input/input1 U: Uniq= H: Handlers=kbd event1 B: EV=120013 B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=7 I: Bus=0019 Vendor=0000 Product=0002 Version=0000 N: Name="Power Button (FF)" P: Phys=LNXPWRBN/button/input0 S: Sysfs=/class/input/input2 U: Uniq= H: Handlers=kbd event2 B: EV=3 B: KEY=100000 0 0 0 I: Bus=0019 Vendor=0000 Product=0001 Version=0000 N: Name="Power Button (CM)" P: Phys=PNP0C0C/button/input0 S: Sysfs=/class/input/input3 U: Uniq= H: Handlers=kbd event3 B: EV=3 B: KEY=100000 0 0 0 I: Bus=0010 Vendor=001f Product=0001 Version=0100 N: Name="PC Speaker" P: Phys=isa0061/input0 S: Sysfs=/class/input/input4 U: Uniq= H: Handlers=kbd event4 B: EV=40001 B: SND=6 I: Bus=0011 Vendor=0002 Product=0006 Version=006a N: Name="ImExPS/2 Logitech Explorer Mouse" P: Phys=isa0060/serio1/input0 S: Sysfs=/class/input/input5 U: Uniq= H: Handlers=mouse1 event5 B: EV=7 B: KEY=1f0000 0 0 0 0 0 0 0 0 B: REL=143 I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.1/input0 S: Sysfs=/class/input/input10 U: Uniq= H: Handlers=kbd event6 B: EV=120013 B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=1f I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.1/input1 S: Sysfs=/class/input/input11 U: Uniq= H: Handlers=kbd event7 B: EV=13 B: KEY=2020000 3878 d801d001 1e0000 0 0 0 B: MSC=10 I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.2/input0 S: Sysfs=/class/input/input12 U: Uniq= H: Handlers=kbd event8 B: EV=120013 B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=1f I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.2/input1 S: Sysfs=/class/input/input13 U: Uniq= H: Handlers=kbd event9 B: EV=13 B: KEY=2020000 3878 d801d001 1e0000 0 0 0 B: MSC=10 I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.3/input0 S: Sysfs=/class/input/input14 U: Uniq= H: Handlers=kbd event10 B: EV=120013 B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=1f I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.3/input1 S: Sysfs=/class/input/input15 U: Uniq= H: Handlers=kbd event11 B: EV=13 B: KEY=2020000 3878 d801d001 1e0000 0 0 0 B: MSC=10 I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.4/input1 S: Sysfs=/class/input/input17 U: Uniq= H: Handlers=kbd event13 B: EV=13 B: KEY=2020000 3878 d801d001 1e0000 0 0 0 B: MSC=10 I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.3-2.4.4/input0 S: Sysfs=/class/input/input18 U: Uniq= H: Handlers=kbd event12 B: EV=120013 B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=1f [-- Attachment #4: lsusb_-v_2.6.22-mepis-smp --] [-- Type: text/plain, Size: 27017 bytes --] Bus 003 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.22-1-mepis-smp uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.1 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Device Status: 0x0003 Self Powered Remote Wakeup Enabled Bus 005 Device 007: ID 0a81:0101 Chesen Electronics Corp. Keyboard Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0a81 Chesen Electronics Corp. idProduct 0x0101 Keyboard bcdDevice 1.10 iManufacturer 1 CHESEN iProduct 2 USB Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 65 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 102 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Bus 005 Device 006: ID 0a81:0101 Chesen Electronics Corp. Keyboard Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0a81 Chesen Electronics Corp. idProduct 0x0101 Keyboard bcdDevice 1.10 iManufacturer 1 CHESEN iProduct 2 USB Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 65 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 102 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Bus 005 Device 005: ID 0a81:0101 Chesen Electronics Corp. Keyboard Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0a81 Chesen Electronics Corp. idProduct 0x0101 Keyboard bcdDevice 1.10 iManufacturer 1 CHESEN iProduct 2 USB Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 65 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 102 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Bus 005 Device 004: ID 0a81:0101 Chesen Electronics Corp. Keyboard Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0a81 Chesen Electronics Corp. idProduct 0x0101 Keyboard bcdDevice 1.10 iManufacturer 1 CHESEN iProduct 2 USB Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 65 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 33 US bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 102 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Bus 005 Device 003: ID 058f:9254 Alcor Micro Corp. Hub Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 8 idVendor 0x058f Alcor Micro Corp. idProduct 0x9254 Hub bcdDevice 3.12 iManufacturer 1 ALCOR iProduct 2 Generic USB Hub iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 4 wHubCharacteristic 0x0009 Per-port power switching Per-port overcurrent protection bPwrOn2PwrGood 22 * 2 milli seconds bHubContrCurrent 100 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0303 lowspeed power enable connect Port 2: 0000.0303 lowspeed power enable connect Port 3: 0000.0303 lowspeed power enable connect Port 4: 0000.0303 lowspeed power enable connect Device Status: 0x0001 Self Powered Bus 005 Device 002: ID 058f:9254 Alcor Micro Corp. Hub Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 8 idVendor 0x058f Alcor Micro Corp. idProduct 0x9254 Hub bcdDevice 3.12 iManufacturer 1 ALCOR iProduct 2 Generic USB Hub iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 4 wHubCharacteristic 0x0009 Per-port power switching Per-port overcurrent protection bPwrOn2PwrGood 22 * 2 milli seconds bHubContrCurrent 100 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Port 3: 0000.0100 power Port 4: 0000.0103 power enable connect Device Status: 0x0001 Self Powered Bus 005 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.22-1-mepis-smp uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.3 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0103 power enable connect Device Status: 0x0003 Self Powered Remote Wakeup Enabled Bus 004 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.22-1-mepis-smp uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.2 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Device Status: 0x0003 Self Powered Remote Wakeup Enabled Bus 002 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.22-1-mepis-smp uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Device Status: 0x0003 Self Powered Remote Wakeup Enabled Bus 001 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 1 Single TT bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.22-1-mepis-smp ehci_hcd iProduct 2 EHCI Host Controller iSerial 1 0000:00:1d.7 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0004 1x 4 bytes bInterval 12 Hub Descriptor: bLength 11 bDescriptorType 41 nNbrPorts 8 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection TT think time 8 FS bits bPwrOn2PwrGood 10 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 0x00 PortPwrCtrlMask 0xff 0xff Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Port 3: 0000.0100 power Port 4: 0000.0100 power Port 5: 0000.0100 power Port 6: 0000.0100 power Port 7: 0000.0100 power Port 8: 0000.0100 power Device Status: 0x0003 Self Powered Remote Wakeup Enabled ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 9:57 ` Aivils Stoss @ 2008-08-19 15:03 ` Alan Stern 2008-08-19 15:19 ` Randy Dunlap 1 sibling, 0 replies; 20+ messages in thread From: Alan Stern @ 2008-08-19 15:03 UTC (permalink / raw) To: Aivils Stoss Cc: Randy Dunlap, lud, Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev On Tue, 19 Aug 2008, Aivils Stoss wrote: > No problem is same. Older kernels have another troubles. > 2.6.22-1-mepis-smp > Quite stable. Have oops sometime inside evdev. Support up to 16 > USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on > each hub. Any hub cascade support only 4 keyboards, where 5th or more > is registered but don't send input events. Oops inside evdev , when > USB keyboard unplugged. No slow down even all USB keyboards does > not work properly. My be this one support more than 16 keyboards, but > i don't have PC USB ports enough. > > 2.6.24-7 > 4 keyboards per port. If plug in 5th tend to total slow down with this one: > usb 2-1.1.1: reset low speed USB device using > uhci_hcd and address 17 > 5th - means 5th keyboard in USB hub's cascade, which is plugged into > single PC USB port. > > 2.6.26 > 4 keyboards per port. If plug in 5th tend to total slow down. > > 2.6.27-rc3 > Sorry Randy i cannot repeat Your achievement. This worse of all tested > kernels. I got working 3 USB keyboards, when i plug in 4th, all keyboards, > include PS/2 stop working. Kernel does not hung up. I can reach box > via net. dmesg , /proc/bus/input/devices attached. lsusb hung up. Have you tried looking in your system log for error messages indicating the source of the problem? uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.1-2.2.4 usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us Those messages seem pretty clear. Each keyboard requires two interrupt transfers occupying 118 us of bandwidth apiece. That's 236 us per keyboard. Since there is only 900 us total available for interrupt transfers in any frame, and since uhci-hcd isn't smart enough to allocate different interrupt endpoints to different frames, you run out of bandwidth after four keyboards. Now if you plugged some of these keyboards into different UHCI controllers on the computer, then the problem wouldn't arise. Each of your four UHCI controllers has two ports. So without using any hubs at all, you can plug 8 keyboards into the computer and they will all work. If you use some extra hubs as well then you can plug four keyboards into each controller, allowing you to use 16 keyboards total. Alan Stern ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 9:57 ` Aivils Stoss 2008-08-19 15:03 ` Alan Stern @ 2008-08-19 15:19 ` Randy Dunlap 2008-08-19 15:23 ` Jiri Kosina 1 sibling, 1 reply; 20+ messages in thread From: Randy Dunlap @ 2008-08-19 15:19 UTC (permalink / raw) To: Aivils Stoss, stern Cc: lud, Samuel Thibault, linux-input, jkosina, linux-kernel, linuxconsole-dev On Tue, 19 Aug 2008 15:27:06 +0530 Aivils Stoss wrote: > On Monday 18 August 2008 8:44:32 pm Randy Dunlap wrote: > > On Mon, 18 Aug 2008 16:42:49 +0530 Aivils Stoss wrote: > > > On Friday 15 August 2008 7:19:48 am Randy Dunlap wrote: > > > > On Sun, 10 Aug 2008 04:08:37 +0100 Aivils Stoss wrote: > > > > > On Saturday 09 August 2008 11:42:26 am Samuel Thibault wrote: > > > > > > Aivils Stoss, le Fri 08 Aug 2008 07:02:24 +0100, a écrit : > > > > > > > I suppose this is Linux kernel bug because i test keyboards under > > > > > > > Windows, which support any schema of cascading of usb hubs. > > > > > > > > > > > > On the very same machine and hubs? > > > > > > > > > > Yes, on same machine. Under Windows i don't have evdev interface, > > > > > checked only how keypress go to console. > > > > > Of course to repeat a try You must have at least 5 keyboards and > > > > > 1 7-port or 2 4-port hubs and kernel 2.6.22 and above. I allways > > > > > got result - 5th, 6th, 7th keyboard does not send events to console > > > > > or evdev. > > > > > > > > [adding linux-usb mailing list] > > > > > > > > Hi, > > > > > > > > I finally got 5 USB keyboards together along with 2 hubs. > > > > I daisy-chained the hubs and connected 1 keyboard to the hub that is > > > > on the notebook computer USB port, then I connected 4 keyboards to the > > > > second hub. They all worked for me, meaning that I can type on all of > > > > them and have their characters show up on my console. > > > > > > > > I'm testing with 2.6.7-rc2. > > > > 'usbtree' output of the USB subsystem is attached. > > > > > > Yeah! 2.6.7 is a bit obsolete. At my end 2.6.15 support more than 4 > > > keyboards per PC port , but mess up input when is plugged more than > > > 9 keyboards. 10th is capable to send keypress events, but last pressed > > > key will be repeated until ctrl-c . 10th keyboard disturb an auto repeat > > > of all keyboards. > > > > Sorry, my keyboard made a typo. I'm testing with 2.6.27-rc2. > > > > So the problem is now different from your original report, right? > > No problem is same. Older kernels have another troubles. > 2.6.22-1-mepis-smp > Quite stable. Have oops sometime inside evdev. Support up to 16 > USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on > each hub. Any hub cascade support only 4 keyboards, where 5th or more > is registered but don't send input events. Oops inside evdev , when > USB keyboard unplugged. No slow down even all USB keyboards does > not work properly. My be this one support more than 16 keyboards, but > i don't have PC USB ports enough. Has the evdev oops been reported and/or fixed? I think that we would prefer to fix that soonish. > 2.6.24-7 > 4 keyboards per port. If plug in 5th tend to total slow down with this one: > usb 2-1.1.1: reset low speed USB device using > uhci_hcd and address 17 > 5th - means 5th keyboard in USB hub's cascade, which is plugged into > single PC USB port. > > 2.6.26 > 4 keyboards per port. If plug in 5th tend to total slow down. > > 2.6.27-rc3 > Sorry Randy i cannot repeat Your achievement. This worse of all tested > kernels. I got working 3 USB keyboards, when i plug in 4th, all keyboards, > include PS/2 stop working. Kernel does not hung up. I can reach box > via net. dmesg , /proc/bus/input/devices attached. lsusb hung up. Please try to include full dmesg (kernel boot log) in the future. This was was truncated at the front (early messages). > Please notify me , if i should use 2.6.27-rc2 ! It doesn't seem preferable for you yet. Looks like it could be a problem just to put N low-speed devices on one root hub/port: uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us uhci_hcd 0000:00:1d.1: bandwidth allocation failed: period 8, phase 4, 826 + 118 us etc etc. Alan (Stern), could you look at this one, please? > Aivils > > > > > > > What speed is the host port that the keyboards are connected to? > > Could it be a USB bus bandwidth limitation? (not that any code > > checks for that) > > > > I barely found 5 USB keyboards, so I surely can't test 10 or more. ;) > > I suppose that it will take some USB debug messages to attempt to see > > what is going on... --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 15:19 ` Randy Dunlap @ 2008-08-19 15:23 ` Jiri Kosina 2008-08-19 17:55 ` Dmitry Torokhov 2008-08-20 5:40 ` Aivils Stoss 0 siblings, 2 replies; 20+ messages in thread From: Jiri Kosina @ 2008-08-19 15:23 UTC (permalink / raw) To: Randy Dunlap Cc: Aivils Stoss, stern, lud, Samuel Thibault, linux-input, linux-kernel, linuxconsole-dev On Tue, 19 Aug 2008, Randy Dunlap wrote: > > 2.6.22-1-mepis-smp > > Quite stable. Have oops sometime inside evdev. Support up to 16 > > USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on > > each hub. Any hub cascade support only 4 keyboards, where 5th or more > > is registered but don't send input events. Oops inside evdev , when > > USB keyboard unplugged. No slow down even all USB keyboards does > > not work properly. My be this one support more than 16 keyboards, but > > i don't have PC USB ports enough. > Has the evdev oops been reported and/or fixed? I think that we would > prefer to fix that soonish. We haven't seen the respective oops yet, or have I missed it? I'd bet it is fixed in newer kernels by patches that introduce proper locking into evdev code. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 15:23 ` Jiri Kosina @ 2008-08-19 17:55 ` Dmitry Torokhov 2008-08-20 5:40 ` Aivils Stoss 1 sibling, 0 replies; 20+ messages in thread From: Dmitry Torokhov @ 2008-08-19 17:55 UTC (permalink / raw) To: Jiri Kosina Cc: Randy Dunlap, Aivils Stoss, stern, lud, Samuel Thibault, linux-input, linux-kernel, linuxconsole-dev On Tue, Aug 19, 2008 at 05:23:07PM +0200, Jiri Kosina wrote: > On Tue, 19 Aug 2008, Randy Dunlap wrote: > > > > 2.6.22-1-mepis-smp > > > Quite stable. Have oops sometime inside evdev. Support up to 16 > > > USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on > > > each hub. Any hub cascade support only 4 keyboards, where 5th or more > > > is registered but don't send input events. Oops inside evdev , when > > > USB keyboard unplugged. No slow down even all USB keyboards does > > > not work properly. My be this one support more than 16 keyboards, but > > > i don't have PC USB ports enough. > > Has the evdev oops been reported and/or fixed? I think that we would > > prefer to fix that soonish. > > We haven't seen the respective oops yet, or have I missed it? > > I'd bet it is fixed in newer kernels by patches that introduce proper > locking into evdev code. > If evdev (or any other part of the input sybsystem) still oopses in 2.6.26 and 2.6.27 I would like to see that oops very much. -- Dmitry ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 15:23 ` Jiri Kosina 2008-08-19 17:55 ` Dmitry Torokhov @ 2008-08-20 5:40 ` Aivils Stoss 1 sibling, 0 replies; 20+ messages in thread From: Aivils Stoss @ 2008-08-20 5:40 UTC (permalink / raw) To: Jiri Kosina, Dmitry Torokhov Cc: Randy Dunlap, stern, lud, Samuel Thibault, linux-input, linux-kernel, linuxconsole-dev On Tuesday 19 August 2008 8:53:07 pm Jiri Kosina wrote: > On Tue, 19 Aug 2008, Randy Dunlap wrote: > > > 2.6.22-1-mepis-smp > > > Quite stable. Have oops sometime inside evdev. Support up to 16 > > > USB keyboards, where 4 hubs are plugged into PC and 4 keyboards on > > > each hub. Any hub cascade support only 4 keyboards, where 5th or more > > > is registered but don't send input events. Oops inside evdev , when > > > USB keyboard unplugged. No slow down even all USB keyboards does > > > not work properly. My be this one support more than 16 keyboards, but > > > i don't have PC USB ports enough. > > > > Has the evdev oops been reported and/or fixed? I think that we would > > prefer to fix that soonish. > > We haven't seen the respective oops yet, or have I missed it? > > I'd bet it is fixed in newer kernels by patches that introduce proper > locking into evdev code. I don't know exists this one in the 2.6.26 and above :o( Aivils Stoss # cat /proc/version Linux version 2.6.22-1-mepis-smp (root@mepis-pro) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP PREEMPT Sun Dec 2 19:15:40 EST 2007 # dmesg input: CHESEN USB Keyboard as /class/input/input41 input: USB HID v1.10 Device [CHESEN USB Keyboard] on usb-0000:00:1d.3-2.4.4 hub 5-0:1.0: port 2 disabled by hub (EMI?), re-enabling... usb 5-2: USB disconnect, address 8 usb 5-2.1: USB disconnect, address 14 usb 5-2.1.2: USB disconnect, address 23 BUG: unable to handle kernel paging request at virtual address 00100100 printing eip: f8832664 *pde = 00000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: i915 drm evdev binfmt_misc cpufreq_ondemand cpufreq_userspace cpufreq_powersave acpi_cpufreq speedstep_lib freq_table rfcomm hidp l2cap bluetooth ppdev lp thermal fan button processor ac battery ipv6 snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_emul snd_emu10k1 snd_util_mem snd_hwdep piix ide_core fuse ndiswrapper dm_crypt dm_snapshot dm_mirror dm_mod usbhid hid sworks_agp amd_k7_agp ali_agp sis_agp ati_agp nvidia_agp via_agp wlan_scan_sta ath_rate_sample snd_emu10k1x snd_seq_dummy snd_seq_oss snd_seq_midi snd_seq_midi_event snd_seq snd_rawmidi snd_seq_device snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore intel_agp agpgart ac97_bus i2c_i801 i2c_core snd_page_alloc parport_pc parport floppy ath_pci wlan ath_hal(P) serio_raw psmouse uhci_hcd atl2 pcspkr CPU: 0 EIP: 0060:[<f8832664>] Tainted: P VLI EFLAGS: 00010206 (2.6.22-1-mepis-smp #1) EIP is at evdev_disconnect+0x73/0xb1 [evdev] eax: 00000000 ebx: 000ffcf0 ecx: f73d5540 edx: 01329000 esi: f6c31340 edi: cf00c000 ebp: d2a56800 esp: c1a59e48 ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068 Process khubd (pid: 168, ti=c1a58000 task=c1aaf030 task.ti=c1a58000) Stack: c368c800 c368c800 c368cecc c0321be7 00000000 c048f02c c18de420 d2a56800 f6f98ba0 cf00cc58 f8a51354 caf8501c caf85000 cf00c000 f8a4129d d2a56800 d2a56818 f8a45dc0 e4ef2800 c030715f 00000000 d2a56818 f8a45df4 00000000 Call Trace: [<c0321be7>] input_unregister_device+0x67/0xfc [<f8a51354>] hidinput_disconnect+0x2e/0x47 [hid] [<f8a4129d>] hid_disconnect+0x70/0xc1 [usbhid] [<c030715f>] usb_unbind_interface+0x44/0x85 [<c02b16a4>] __device_release_driver+0x71/0x8e [<c02b1a2c>] device_release_driver+0x1e/0x34 [<c02b108e>] bus_remove_device+0x5e/0x6c [<c02afb7d>] device_del+0x1a4/0x218 [<c0304c75>] usb_disable_device+0x5c/0xbb [<c0301773>] usb_disconnect+0x83/0x11b [<c0301761>] usb_disconnect+0x71/0x11b [<c0301761>] usb_disconnect+0x71/0x11b [<c0301e5e>] hub_thread+0x365/0xa67 [<c0392677>] __sched_text_start+0x6f7/0x793 [<c0133e60>] autoremove_wake_function+0x0/0x35 [<c0301af9>] hub_thread+0x0/0xa67 [<c0133d93>] kthread+0x38/0x5d [<c0133d5b>] kthread+0x0/0x5d [<c01049d7>] kernel_thread_helper+0x7/0x10 ======================= Code: e8 07 e4 ae c7 8b 5e 54 eb 1b 8d 83 08 04 00 00 b9 06 00 02 00 ba 1d 00 00 00 e8 40 11 94 c7 8b 9b 10 04 00 00 81 eb 10 04 00 00 <8b> 83 10 04 00 00 0f 18 00 90 8d 93 10 04 00 00 8d 46 54 39 c2 EIP: [<f8832664>] evdev_disconnect+0x73/0xb1 [evdev] SS:ESP 0068:c1a59e48 hid-debug: input LED.CapsLock = 1 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 1 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 1 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 1 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 1 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 0 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 0 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 0 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 0 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed hid-debug: input LED.CapsLock = 0 /home/aivils/works/kernel/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed # cat /proc/modules i915 21120 2 - Live 0xf8d13000 drm 67092 3 i915, Live 0xf8d21000 evdev 7936 5 - Live 0xf8832000 binfmt_misc 9224 1 - Live 0xf8cc5000 cpufreq_ondemand 7436 2 - Live 0xf8cb0000 cpufreq_userspace 4256 0 - Live 0xf8cb3000 cpufreq_powersave 2560 0 - Live 0xf8c10000 acpi_cpufreq 7624 0 - Live 0xf8c92000 speedstep_lib 4740 0 - Live 0xf8cad000 freq_table 4512 2 cpufreq_ondemand,acpi_cpufreq, Live 0xf8c95000 rfcomm 31256 0 - Live 0xf8cb8000 hidp 15232 2 - Live 0xf8c86000 l2cap 19712 10 rfcomm,hidp, Live 0xf8c9a000 bluetooth 42724 5 rfcomm,hidp,l2cap, Live 0xf8ca1000 ppdev 7684 0 - Live 0xf8c8f000 lp 9476 0 - Live 0xf8c8b000 thermal 11784 0 - Live 0xf8c1a000 fan 4612 0 - Live 0xf8c21000 button 7056 0 - Live 0xf8c1e000 processor 25928 2 acpi_cpufreq,thermal, Live 0xf8c12000 ac 4740 0 - Live 0xf8bfc000 battery 9220 0 - Live 0xf8bf8000 ipv6 217380 12 - Live 0xf8cc9000 snd_emu10k1_synth 6784 0 - Live 0xf8bf5000 snd_emux_synth 29568 1 snd_emu10k1_synth, Live 0xf8bff000 snd_seq_virmidi 6144 1 snd_emux_synth, Live 0xf8bf2000 snd_seq_midi_emul 6016 1 snd_emux_synth, Live 0xf8a7d000 snd_emu10k1 119232 1 snd_emu10k1_synth, Live 0xf8c67000 snd_util_mem 4352 2 snd_emux_synth,snd_emu10k1, Live 0xf8a7a000 snd_hwdep 7556 2 snd_emux_synth,snd_emu10k1, Live 0xf8a77000 piix 8708 0 [permanent], Live 0xf8a66000 ide_core 100036 1 piix, Live 0xf8c4d000 fuse 36756 1 - Live 0xf89f6000 ndiswrapper 162396 0 - Live 0xf8c24000 dm_crypt 11272 0 - Live 0xf884f000 dm_snapshot 14888 0 - Live 0xf8a5c000 dm_mirror 18304 0 - Live 0xf8a48000 dm_mod 43840 3 dm_crypt,dm_snapshot,dm_mirror, Live 0xf8a6b000 usbhid 22240 0 - Live 0xf8a41000 hid 41344 2 hidp,usbhid, Live 0xf8a50000 sworks_agp 8096 0 - Live 0xf89f3000 amd_k7_agp 7436 0 - Live 0xf89f0000 ali_agp 6144 0 - Live 0xf89d3000 sis_agp 7556 0 - Live 0xf89d0000 ati_agp 7564 0 - Live 0xf89cd000 nvidia_agp 7068 0 - Live 0xf89ca000 via_agp 8960 0 - Live 0xf882e000 wlan_scan_sta 11776 1 - Live 0xf89c6000 ath_rate_sample 11776 1 - Live 0xf8959000 snd_emu10k1x 15268 0 - Live 0xf8991000 snd_seq_dummy 3844 0 - Live 0xf8960000 snd_seq_oss 28800 0 - Live 0xf8996000 snd_seq_midi 6944 0 - Live 0xf897c000 snd_seq_midi_event 6656 3 snd_seq_virmidi,snd_seq_oss,snd_seq_midi, Live 0xf895d000 snd_seq 42576 9 snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event, Live 0xf89ba000 snd_rawmidi 18208 4 snd_seq_virmidi,snd_emu10k1,snd_emu10k1x,snd_seq_midi, Live 0xf8856000 snd_seq_device 7308 8 snd_emu10k1_synth,snd_emux_synth,snd_emu10k1,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq,snd_rawmidi, Live 0xf88f1000 snd_ac97_codec 90788 2 snd_emu10k1,snd_emu10k1x, Live 0xf89d8000 snd_pcm_oss 34976 0 - Live 0xf89b0000 snd_mixer_oss 14592 1 snd_pcm_oss, Live 0xf8977000 snd_pcm 62084 4 snd_emu10k1,snd_emu10k1x,snd_ac97_codec,snd_pcm_oss, Live 0xf899f000 snd_timer 17668 3 snd_emu10k1,snd_seq,snd_pcm, Live 0xf8971000 snd 41316 15 snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_hwdep,snd_emu10k1x,snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer, Live 0xf897f000 soundcore 6880 1 snd, Live 0xf887d000 intel_agp 21012 1 - Live 0xf896a000 agpgart 25804 10 drm,sworks_agp,amd_k7_agp,ali_agp,sis_agp,ati_agp,nvidia_agp,via_agp,intel_agp, Live 0xf8962000 ac97_bus 3072 1 snd_ac97_codec, Live 0xf8866000 i2c_i801 8208 0 - Live 0xf8860000 i2c_core 19456 1 i2c_i801, Live 0xf8877000 snd_page_alloc 8328 3 snd_emu10k1,snd_emu10k1x,snd_pcm, Live 0xf885c000 parport_pc 30116 1 - Live 0xf8950000 parport 29512 3 ppdev,lp,parport_pc, Live 0xf88d6000 floppy 50052 0 - Live 0xf8869000 ath_pci 81440 0 - Live 0xf88c1000 wlan 170180 4 wlan_scan_sta,ath_rate_sample,ath_pci, Live 0xf8925000 ath_hal 190544 3 ath_rate_sample,ath_pci, Live 0xf88f5000 (P) serio_raw 6020 0 - Live 0xf8853000 psmouse 34320 0 - Live 0xf8837000 uhci_hcd 20364 0 - Live 0xf8849000 atl2 24216 0 - Live 0xf8842000 pcspkr 3456 0 - Live 0xf8835000 # objdump -D evdev.ko evdev.ko: file format elf32-i386 Disassembly of section .text: 00000000 <evdev_poll>: 0: 57 push %edi 1: 56 push %esi 2: 53 push %ebx 3: 89 d3 mov %edx,%ebx 5: 8b b0 80 00 00 00 mov 0x80(%eax),%esi b: 85 db test %ebx,%ebx d: 8b be 0c 04 00 00 mov 0x40c(%esi),%edi 13: 8d 57 40 lea 0x40(%edi),%edx 16: 74 08 je 20 <evdev_poll+0x20> 18: 85 d2 test %edx,%edx 1a: 74 04 je 20 <evdev_poll+0x20> 1c: 89 d9 mov %ebx,%ecx 1e: ff 13 call *(%ebx) 20: 8b 96 00 04 00 00 mov 0x400(%esi),%edx 26: 31 c0 xor %eax,%eax 28: 3b 96 04 04 00 00 cmp 0x404(%esi),%edx 2e: ba 41 00 00 00 mov $0x41,%edx 33: 5b pop %ebx 34: 0f 45 c2 cmovne %edx,%eax 37: 83 3f 01 cmpl $0x1,(%edi) 3a: 5e pop %esi 3b: 19 d2 sbb %edx,%edx 3d: 5f pop %edi 3e: 83 e2 18 and $0x18,%edx 41: 09 d0 or %edx,%eax 43: c3 ret 00000044 <evdev_fasync>: 44: 53 push %ebx 45: 83 ec 04 sub $0x4,%esp 48: 8b 9a 80 00 00 00 mov 0x80(%edx),%ebx 4e: 81 c3 08 04 00 00 add $0x408,%ebx 54: 89 1c 24 mov %ebx,(%esp) 57: e8 fc ff ff ff call 58 <evdev_fasync+0x14> 5c: 89 c2 mov %eax,%edx 5e: 31 c0 xor %eax,%eax 60: 85 d2 test %edx,%edx 62: 0f 4e c2 cmovle %edx,%eax 65: 5a pop %edx 66: 5b pop %ebx 67: c3 ret 00000068 <evdev_free>: 68: 8b 50 08 mov 0x8(%eax),%edx 6b: c7 04 95 00 00 00 00 movl $0x0,0x0(,%edx,4) 72: 00 00 00 00 76: e9 fc ff ff ff jmp 77 <evdev_free+0xf> 0000007b <evdev_flush>: 7b: 89 c2 mov %eax,%edx 7d: 8b 80 80 00 00 00 mov 0x80(%eax),%eax 83: 8b 80 0c 04 00 00 mov 0x40c(%eax),%eax 89: 83 38 00 cmpl $0x0,(%eax) 8c: 74 08 je 96 <evdev_flush+0x1b> 8e: 83 c0 1c add $0x1c,%eax 91: e9 fc ff ff ff jmp 92 <evdev_flush+0x17> 96: b8 ed ff ff ff mov $0xffffffed,%eax 9b: c3 ret 0000009c <str_to_user>: 9c: 57 push %edi 9d: 85 c0 test %eax,%eax 9f: 56 push %esi a0: bf fe ff ff ff mov $0xfffffffe,%edi a5: 53 push %ebx a6: 89 ce mov %ecx,%esi a8: 89 c3 mov %eax,%ebx aa: 74 29 je d5 <str_to_user+0x39> ac: 31 c0 xor %eax,%eax ae: 83 c9 ff or $0xffffffff,%ecx b1: 89 df mov %ebx,%edi b3: f2 ae repnz scas %es:(%edi),%al b5: f7 d1 not %ecx b7: 49 dec %ecx b8: 8d 79 01 lea 0x1(%ecx),%edi bb: 89 f0 mov %esi,%eax bd: 39 d7 cmp %edx,%edi bf: 0f 47 fa cmova %edx,%edi c2: 89 da mov %ebx,%edx c4: 89 f9 mov %edi,%ecx c6: e8 fc ff ff ff call c7 <str_to_user+0x2b> cb: 85 c0 test %eax,%eax cd: b8 f2 ff ff ff mov $0xfffffff2,%eax d2: 0f 45 f8 cmovne %eax,%edi d5: 5b pop %ebx d6: 89 f8 mov %edi,%eax d8: 5e pop %esi d9: 5f pop %edi da: c3 ret 000000db <bits_to_user>: db: 53 push %ebx dc: c1 ea 05 shr $0x5,%edx df: 8d 1c 95 04 00 00 00 lea 0x4(,%edx,4),%ebx e6: 89 c2 mov %eax,%edx e8: 8b 44 24 08 mov 0x8(%esp),%eax ec: 39 cb cmp %ecx,%ebx ee: 0f 47 d9 cmova %ecx,%ebx f1: 89 d9 mov %ebx,%ecx f3: e8 fc ff ff ff call f4 <bits_to_user+0x19> f8: 85 c0 test %eax,%eax fa: b8 f2 ff ff ff mov $0xfffffff2,%eax ff: 0f 45 d8 cmovne %eax,%ebx 102: 89 d8 mov %ebx,%eax 104: 5b pop %ebx 105: c3 ret 00000106 <evdev_ioctl>: 106: 55 push %ebp 107: 57 push %edi 108: 89 cf mov %ecx,%edi 10a: 56 push %esi 10b: 53 push %ebx 10c: 89 d3 mov %edx,%ebx 10e: 83 ec 54 sub $0x54,%esp 111: 89 44 24 08 mov %eax,0x8(%esp) 115: 8b 80 80 00 00 00 mov 0x80(%eax),%eax 11b: 89 44 24 0c mov %eax,0xc(%esp) 11f: 8b a8 0c 04 00 00 mov 0x40c(%eax),%ebp 125: b8 ed ff ff ff mov $0xffffffed,%eax 12a: 83 7d 00 00 cmpl $0x0,0x0(%ebp) 12e: 8b 75 28 mov 0x28(%ebp),%esi 131: 0f 84 b2 04 00 00 je 5e9 <evdev_ioctl+0x4e3> 137: 81 fa 80 45 2c 40 cmp $0x402c4580,%edx 13d: 0f 84 98 01 00 00 je 2db <evdev_ioctl+0x1d5> 143: 77 3c ja 181 <evdev_ioctl+0x7b> 145: 81 fa 90 45 04 40 cmp $0x40044590,%edx 14b: 0f 84 08 02 00 00 je 359 <evdev_ioctl+0x253> 151: 77 11 ja 164 <evdev_ioctl+0x5e> 153: 81 fa 81 45 04 40 cmp $0x40044581,%edx 159: 0f 85 42 02 00 00 jne 3a1 <evdev_ioctl+0x29b> 15f: e9 c0 01 00 00 jmp 324 <evdev_ioctl+0x21e> 164: 81 fa 03 45 08 40 cmp $0x40084503,%edx 16a: 0f 84 9d 00 00 00 je 20d <evdev_ioctl+0x107> 170: 81 fa 04 45 08 40 cmp $0x40084504,%edx 176: 0f 85 25 02 00 00 jne 3a1 <evdev_ioctl+0x29b> 17c: e9 24 01 00 00 jmp 2a5 <evdev_ioctl+0x19f> 181: 81 fa 02 45 08 80 cmp $0x80084502,%edx 187: 74 43 je 1cc <evdev_ioctl+0xc6> 189: 77 19 ja 1a4 <evdev_ioctl+0x9e> 18b: 81 fa 01 45 04 80 cmp $0x80044501,%edx 191: 74 2a je 1bd <evdev_ioctl+0xb7> 193: 81 fa 84 45 04 80 cmp $0x80044584,%edx 199: 0f 85 02 02 00 00 jne 3a1 <evdev_ioctl+0x29b> 19f: e9 92 01 00 00 jmp 336 <evdev_ioctl+0x230> 1a4: 81 fa 03 45 08 80 cmp $0x80084503,%edx 1aa: 74 2d je 1d9 <evdev_ioctl+0xd3> 1ac: 81 fa 04 45 08 80 cmp $0x80084504,%edx 1b2: 0f 85 e9 01 00 00 jne 3a1 <evdev_ioctl+0x29b> 1b8: e9 b4 00 00 00 jmp 271 <evdev_ioctl+0x16b> 1bd: b8 00 00 01 00 mov $0x10000,%eax 1c2: e8 fc ff ff ff call 1c3 <evdev_ioctl+0xbd> 1c7: e9 1d 04 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 1cc: 8d 56 10 lea 0x10(%esi),%edx 1cf: b9 08 00 00 00 mov $0x8,%ecx 1d4: e9 7f 03 00 00 jmp 558 <evdev_ioctl+0x452> 1d9: 8b 46 18 mov 0x18(%esi),%eax 1dc: a9 00 00 10 00 test $0x100000,%eax 1e1: 0f 84 ef 03 00 00 je 5d6 <evdev_ioctl+0x4d0> 1e7: 8b 86 c4 01 00 00 mov 0x1c4(%esi),%eax 1ed: e8 fc ff ff ff call 1ee <evdev_ioctl+0xe8> 1f2: 85 c0 test %eax,%eax 1f4: 0f 85 d5 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 1fa: 8b 86 c8 01 00 00 mov 0x1c8(%esi),%eax 200: 8d 4f 04 lea 0x4(%edi),%ecx 203: e8 fc ff ff ff call 204 <evdev_ioctl+0xfe> 208: e9 52 03 00 00 jmp 55f <evdev_ioctl+0x459> 20d: 8b 46 18 mov 0x18(%esi),%eax 210: a9 00 00 10 00 test $0x100000,%eax 215: 0f 84 bb 03 00 00 je 5d6 <evdev_ioctl+0x4d0> 21b: 89 c8 mov %ecx,%eax 21d: e8 fc ff ff ff call 21e <evdev_ioctl+0x118> 222: 85 c0 test %eax,%eax 224: 89 d1 mov %edx,%ecx 226: 0f 85 a3 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 22c: 8d 47 04 lea 0x4(%edi),%eax 22f: e8 fc ff ff ff call 230 <evdev_ioctl+0x12a> 234: 85 c0 test %eax,%eax 236: 0f 85 93 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 23c: 8d 5d 1c lea 0x1c(%ebp),%ebx 23f: 89 d8 mov %ebx,%eax 241: 89 54 24 50 mov %edx,0x50(%esp) 245: ba 14 00 00 00 mov $0x14,%edx 24a: 89 0c 24 mov %ecx,(%esp) 24d: 31 c9 xor %ecx,%ecx 24f: e8 fc ff ff ff call 250 <evdev_ioctl+0x14a> 254: b9 01 00 00 00 mov $0x1,%ecx 259: ba 14 00 00 00 mov $0x14,%edx 25e: 8b 44 24 50 mov 0x50(%esp),%eax 262: 89 04 24 mov %eax,(%esp) 265: 89 d8 mov %ebx,%eax 267: e8 fc ff ff ff call 268 <evdev_ioctl+0x162> 26c: e9 0e 01 00 00 jmp 37f <evdev_ioctl+0x279> 271: 89 c8 mov %ecx,%eax 273: e8 fc ff ff ff call 274 <evdev_ioctl+0x16e> 278: 85 c0 test %eax,%eax 27a: 0f 85 4f 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 280: 8d 4c 24 50 lea 0x50(%esp),%ecx 284: 89 f0 mov %esi,%eax 286: ff 96 98 00 00 00 call *0x98(%esi) 28c: 85 c0 test %eax,%eax 28e: 0f 85 55 03 00 00 jne 5e9 <evdev_ioctl+0x4e3> 294: 8b 44 24 50 mov 0x50(%esp),%eax 298: 8d 4f 04 lea 0x4(%edi),%ecx 29b: e8 fc ff ff ff call 29c <evdev_ioctl+0x196> 2a0: e9 ba 02 00 00 jmp 55f <evdev_ioctl+0x459> 2a5: 89 c8 mov %ecx,%eax 2a7: e8 fc ff ff ff call 2a8 <evdev_ioctl+0x1a2> 2ac: 85 c0 test %eax,%eax 2ae: 89 d3 mov %edx,%ebx 2b0: 0f 85 19 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 2b6: 8d 41 04 lea 0x4(%ecx),%eax 2b9: e8 fc ff ff ff call 2ba <evdev_ioctl+0x1b4> 2be: 85 c0 test %eax,%eax 2c0: 0f 85 09 03 00 00 jne 5cf <evdev_ioctl+0x4c9> 2c6: 89 d1 mov %edx,%ecx 2c8: 89 f0 mov %esi,%eax 2ca: 89 54 24 50 mov %edx,0x50(%esp) 2ce: 89 da mov %ebx,%edx 2d0: ff 96 94 00 00 00 call *0x94(%esi) 2d6: e9 0e 03 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 2db: 8d 5c 24 10 lea 0x10(%esp),%ebx 2df: b9 2c 00 00 00 mov $0x2c,%ecx 2e4: 89 fa mov %edi,%edx 2e6: 89 d8 mov %ebx,%eax 2e8: e8 fc ff ff ff call 2e9 <evdev_ioctl+0x1e3> 2ed: 85 c0 test %eax,%eax 2ef: 0f 85 da 02 00 00 jne 5cf <evdev_ioctl+0x4c9> 2f5: 8b 4c 24 08 mov 0x8(%esp),%ecx 2f9: 89 da mov %ebx,%edx 2fb: 89 f0 mov %esi,%eax 2fd: e8 fc ff ff ff call 2fe <evdev_ioctl+0x1f8> 302: 8d 4f 02 lea 0x2(%edi),%ecx 305: 66 8b 54 24 12 mov 0x12(%esp),%dx 30a: 89 c3 mov %eax,%ebx 30c: 89 d0 mov %edx,%eax 30e: e8 fc ff ff ff call 30f <evdev_ioctl+0x209> 313: 89 c2 mov %eax,%edx 315: 89 d8 mov %ebx,%eax 317: 85 d2 test %edx,%edx 319: 0f 84 ca 02 00 00 je 5e9 <evdev_ioctl+0x4e3> 31f: e9 ab 02 00 00 jmp 5cf <evdev_ioctl+0x4c9> 324: 8b 4c 24 08 mov 0x8(%esp),%ecx 328: 89 fa mov %edi,%edx 32a: 89 f0 mov %esi,%eax 32c: e8 fc ff ff ff call 32d <evdev_ioctl+0x227> 331: e9 b3 02 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 336: 8b 46 18 mov 0x18(%esi),%eax 339: 31 d2 xor %edx,%edx 33b: a9 00 00 20 00 test $0x200000,%eax 340: 74 09 je 34b <evdev_ioctl+0x245> 342: 8b 86 9c 00 00 00 mov 0x9c(%esi),%eax 348: 8b 50 40 mov 0x40(%eax),%edx 34b: 89 d0 mov %edx,%eax 34d: 89 f9 mov %edi,%ecx 34f: e8 fc ff ff ff call 350 <evdev_ioctl+0x24a> 354: e9 06 02 00 00 jmp 55f <evdev_ioctl+0x459> 359: 85 c9 test %ecx,%ecx 35b: 8b 45 50 mov 0x50(%ebp),%eax 35e: 74 26 je 386 <evdev_ioctl+0x280> 360: 85 c0 test %eax,%eax 362: 0f 85 75 02 00 00 jne 5dd <evdev_ioctl+0x4d7> 368: 8d 45 1c lea 0x1c(%ebp),%eax 36b: e8 fc ff ff ff call 36c <evdev_ioctl+0x266> 370: 85 c0 test %eax,%eax 372: 0f 85 65 02 00 00 jne 5dd <evdev_ioctl+0x4d7> 378: 8b 44 24 0c mov 0xc(%esp),%eax 37c: 89 45 50 mov %eax,0x50(%ebp) 37f: 31 c0 xor %eax,%eax 381: e9 63 02 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 386: 3b 44 24 0c cmp 0xc(%esp),%eax 38a: 0f 85 54 02 00 00 jne 5e4 <evdev_ioctl+0x4de> 390: 8d 45 1c lea 0x1c(%ebp),%eax 393: e8 fc ff ff ff call 394 <evdev_ioctl+0x28e> 398: c7 45 50 00 00 00 00 movl $0x0,0x50(%ebp) 39f: eb de jmp 37f <evdev_ioctl+0x279> 3a1: 0f b6 c7 movzbl %bh,%eax 3a4: 83 f8 45 cmp $0x45,%eax 3a7: 0f 85 37 02 00 00 jne 5e4 <evdev_ioctl+0x4de> 3ad: 89 d8 mov %ebx,%eax 3af: c1 e8 1e shr $0x1e,%eax 3b2: 83 f8 02 cmp $0x2,%eax 3b5: 0f 85 ae 01 00 00 jne 569 <evdev_ioctl+0x463> 3bb: 89 d8 mov %ebx,%eax 3bd: 25 e0 00 00 00 and $0xe0,%eax 3c2: 83 f8 20 cmp $0x20,%eax 3c5: 75 79 jne 440 <evdev_ioctl+0x33a> 3c7: 89 d8 mov %ebx,%eax 3c9: 83 e0 1f and $0x1f,%eax 3cc: 83 f8 15 cmp $0x15,%eax 3cf: 0f 87 0f 02 00 00 ja 5e4 <evdev_ioctl+0x4de> 3d5: ff 24 85 00 00 00 00 jmp *0x0(,%eax,4) 3dc: 8d 46 18 lea 0x18(%esi),%eax 3df: ba 1f 00 00 00 mov $0x1f,%edx 3e4: eb 42 jmp 428 <evdev_ioctl+0x322> 3e6: 8d 46 1c lea 0x1c(%esi),%eax 3e9: ba ff 01 00 00 mov $0x1ff,%edx 3ee: eb 38 jmp 428 <evdev_ioctl+0x322> 3f0: 8d 46 5c lea 0x5c(%esi),%eax 3f3: eb 2e jmp 423 <evdev_ioctl+0x31d> 3f5: 8d 46 60 lea 0x60(%esi),%eax 3f8: ba 3f 00 00 00 mov $0x3f,%edx 3fd: eb 29 jmp 428 <evdev_ioctl+0x322> 3ff: 8d 46 68 lea 0x68(%esi),%eax 402: eb 08 jmp 40c <evdev_ioctl+0x306> 404: 8d 46 6c lea 0x6c(%esi),%eax 407: eb 1a jmp 423 <evdev_ioctl+0x31d> 409: 8d 46 70 lea 0x70(%esi),%eax 40c: ba 07 00 00 00 mov $0x7,%edx 411: eb 15 jmp 428 <evdev_ioctl+0x322> 413: 8d 46 74 lea 0x74(%esi),%eax 416: ba 7f 00 00 00 mov $0x7f,%edx 41b: eb 0b jmp 428 <evdev_ioctl+0x322> 41d: 8d 86 84 00 00 00 lea 0x84(%esi),%eax 423: ba 0f 00 00 00 mov $0xf,%edx 428: c1 eb 10 shr $0x10,%ebx 42b: 81 e3 ff 3f 00 00 and $0x3fff,%ebx 431: 89 d9 mov %ebx,%ecx 433: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 43a: 00 43b: 89 3c 24 mov %edi,(%esp) 43e: eb 29 jmp 469 <evdev_ioctl+0x363> 440: 0f b6 c3 movzbl %bl,%eax 443: 83 f8 18 cmp $0x18,%eax 446: 75 2b jne 473 <evdev_ioctl+0x36d> 448: c1 eb 10 shr $0x10,%ebx 44b: ba ff 01 00 00 mov $0x1ff,%edx 450: 81 e3 ff 3f 00 00 and $0x3fff,%ebx 456: 8d 86 cc 01 00 00 lea 0x1cc(%esi),%eax 45c: 89 d9 mov %ebx,%ecx 45e: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 465: 00 466: 89 3c 24 mov %edi,(%esp) 469: e8 6d fc ff ff call db <bits_to_user> 46e: e9 76 01 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 473: 83 f8 19 cmp $0x19,%eax 476: 75 08 jne 480 <evdev_ioctl+0x37a> 478: 8d 86 0c 02 00 00 lea 0x20c(%esi),%eax 47e: eb 33 jmp 4b3 <evdev_ioctl+0x3ad> 480: 83 f8 1a cmp $0x1a,%eax 483: 75 23 jne 4a8 <evdev_ioctl+0x3a2> 485: c1 eb 10 shr $0x10,%ebx 488: ba 07 00 00 00 mov $0x7,%edx 48d: 81 e3 ff 3f 00 00 and $0x3fff,%ebx 493: 8d 86 10 02 00 00 lea 0x210(%esi),%eax 499: 89 d9 mov %ebx,%ecx 49b: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 4a2: 00 4a3: 89 3c 24 mov %edi,(%esp) 4a6: eb c1 jmp 469 <evdev_ioctl+0x363> 4a8: 83 f8 1b cmp $0x1b,%eax 4ab: 75 23 jne 4d0 <evdev_ioctl+0x3ca> 4ad: 8d 86 14 02 00 00 lea 0x214(%esi),%eax 4b3: c1 eb 10 shr $0x10,%ebx 4b6: ba 0f 00 00 00 mov $0xf,%edx 4bb: 81 e3 ff 3f 00 00 and $0x3fff,%ebx 4c1: 89 d9 mov %ebx,%ecx 4c3: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 4ca: 00 4cb: 89 3c 24 mov %edi,(%esp) 4ce: eb 99 jmp 469 <evdev_ioctl+0x363> 4d0: 83 f8 06 cmp $0x6,%eax 4d3: 75 05 jne 4da <evdev_ioctl+0x3d4> 4d5: 8b 46 04 mov 0x4(%esi),%eax 4d8: eb 12 jmp 4ec <evdev_ioctl+0x3e6> 4da: 83 f8 07 cmp $0x7,%eax 4dd: 75 05 jne 4e4 <evdev_ioctl+0x3de> 4df: 8b 46 08 mov 0x8(%esi),%eax 4e2: eb 08 jmp 4ec <evdev_ioctl+0x3e6> 4e4: 83 f8 08 cmp $0x8,%eax 4e7: 75 1a jne 503 <evdev_ioctl+0x3fd> 4e9: 8b 46 0c mov 0xc(%esi),%eax 4ec: c1 eb 10 shr $0x10,%ebx 4ef: 89 f9 mov %edi,%ecx 4f1: 81 e3 ff 3f 00 00 and $0x3fff,%ebx 4f7: 89 da mov %ebx,%edx 4f9: e8 9e fb ff ff call 9c <str_to_user> 4fe: e9 e6 00 00 00 jmp 5e9 <evdev_ioctl+0x4e3> 503: 89 d8 mov %ebx,%eax 505: 25 c0 00 00 00 and $0xc0,%eax 50a: 83 f8 40 cmp $0x40,%eax 50d: 0f 85 d1 00 00 00 jne 5e4 <evdev_ioctl+0x4de> 513: 89 da mov %ebx,%edx 515: b9 14 00 00 00 mov $0x14,%ecx 51a: 83 e2 3f and $0x3f,%edx 51d: 8b 84 96 c4 00 00 00 mov 0xc4(%esi,%edx,4),%eax 524: 89 44 24 3c mov %eax,0x3c(%esp) 528: 8b 84 96 18 03 00 00 mov 0x318(%esi,%edx,4),%eax 52f: 89 44 24 40 mov %eax,0x40(%esp) 533: 8b 84 96 18 02 00 00 mov 0x218(%esi,%edx,4),%eax 53a: 89 44 24 44 mov %eax,0x44(%esp) 53e: 8b 84 96 18 04 00 00 mov 0x418(%esi,%edx,4),%eax 545: 89 44 24 48 mov %eax,0x48(%esp) 549: 8b 84 96 18 05 00 00 mov 0x518(%esi,%edx,4),%eax 550: 8d 54 24 3c lea 0x3c(%esp),%edx 554: 89 44 24 4c mov %eax,0x4c(%esp) 558: 89 f8 mov %edi,%eax 55a: e8 fc ff ff ff call 55b <evdev_ioctl+0x455> 55f: 85 c0 test %eax,%eax 561: 0f 84 18 fe ff ff je 37f <evdev_ioctl+0x279> 567: eb 66 jmp 5cf <evdev_ioctl+0x4c9> 569: 48 dec %eax 56a: 75 78 jne 5e4 <evdev_ioctl+0x4de> 56c: 89 d8 mov %ebx,%eax 56e: 25 c0 00 00 00 and $0xc0,%eax 573: 3d c0 00 00 00 cmp $0xc0,%eax 578: 75 6a jne 5e4 <evdev_ioctl+0x4de> 57a: 8d 44 24 3c lea 0x3c(%esp),%eax 57e: b9 14 00 00 00 mov $0x14,%ecx 583: 89 fa mov %edi,%edx 585: e8 fc ff ff ff call 586 <evdev_ioctl+0x480> 58a: 85 c0 test %eax,%eax 58c: 75 41 jne 5cf <evdev_ioctl+0x4c9> 58e: 8b 44 24 3c mov 0x3c(%esp),%eax 592: 89 da mov %ebx,%edx 594: 83 e2 3f and $0x3f,%edx 597: 89 84 96 c4 00 00 00 mov %eax,0xc4(%esi,%edx,4) 59e: 8b 44 24 40 mov 0x40(%esp),%eax 5a2: 89 84 96 18 03 00 00 mov %eax,0x318(%esi,%edx,4) 5a9: 8b 44 24 44 mov 0x44(%esp),%eax 5ad: 89 84 96 18 02 00 00 mov %eax,0x218(%esi,%edx,4) 5b4: 8b 44 24 48 mov 0x48(%esp),%eax 5b8: 89 84 96 18 04 00 00 mov %eax,0x418(%esi,%edx,4) 5bf: 8b 44 24 4c mov 0x4c(%esp),%eax 5c3: 89 84 96 18 05 00 00 mov %eax,0x518(%esi,%edx,4) 5ca: e9 b0 fd ff ff jmp 37f <evdev_ioctl+0x279> 5cf: b8 f2 ff ff ff mov $0xfffffff2,%eax 5d4: eb 13 jmp 5e9 <evdev_ioctl+0x4e3> 5d6: b8 da ff ff ff mov $0xffffffda,%eax 5db: eb 0c jmp 5e9 <evdev_ioctl+0x4e3> 5dd: b8 f0 ff ff ff mov $0xfffffff0,%eax 5e2: eb 05 jmp 5e9 <evdev_ioctl+0x4e3> 5e4: b8 ea ff ff ff mov $0xffffffea,%eax 5e9: 83 c4 54 add $0x54,%esp 5ec: 5b pop %ebx 5ed: 5e pop %esi 5ee: 5f pop %edi 5ef: 5d pop %ebp 5f0: c3 ret 000005f1 <evdev_disconnect>: 5f1: 56 push %esi 5f2: 53 push %ebx 5f3: 89 c3 mov %eax,%ebx 5f5: 83 ec 04 sub $0x4,%esp 5f8: 8b 30 mov (%eax),%esi 5fa: e8 fc ff ff ff call 5fb <evdev_disconnect+0xa> 5ff: b8 1c 00 00 00 mov $0x1c,%eax 604: 8d 56 0c lea 0xc(%esi),%edx 607: e8 fc ff ff ff call 608 <evdev_disconnect+0x17> 60c: 8b 56 08 mov 0x8(%esi),%edx 60f: b8 00 00 00 00 mov $0x0,%eax 614: 83 c2 40 add $0x40,%edx 617: 81 ca 00 00 d0 00 or $0xd00000,%edx 61d: e8 fc ff ff ff call 61e <evdev_disconnect+0x2d> 622: 83 7e 04 00 cmpl $0x0,0x4(%esi) 626: c7 06 00 00 00 00 movl $0x0,(%esi) 62c: 74 6a je 698 <evdev_disconnect+0xa7> 62e: 31 d2 xor %edx,%edx 630: 89 d8 mov %ebx,%eax 632: e8 fc ff ff ff call 633 <evdev_disconnect+0x42> 637: 89 d8 mov %ebx,%eax 639: e8 fc ff ff ff call 63a <evdev_disconnect+0x49> 63e: 8b 5e 54 mov 0x54(%esi),%ebx 641: eb 1b jmp 65e <evdev_disconnect+0x6d> 643: 8d 83 08 04 00 00 lea 0x408(%ebx),%eax 649: b9 06 00 02 00 mov $0x20006,%ecx 64e: ba 1d 00 00 00 mov $0x1d,%edx 653: e8 fc ff ff ff call 654 <evdev_disconnect+0x63> 658: 8b 9b 10 04 00 00 mov 0x410(%ebx),%ebx 65e: 81 eb 10 04 00 00 sub $0x410,%ebx 664: 8b 83 10 04 00 00 mov 0x410(%ebx),%eax 66a: 8d 74 26 00 lea 0x0(%esi),%esi 66e: 8d 93 10 04 00 00 lea 0x410(%ebx),%edx 674: 8d 46 54 lea 0x54(%esi),%eax 677: 39 c2 cmp %eax,%edx 679: 75 c8 jne 643 <evdev_disconnect+0x52> 67b: 8d 46 40 lea 0x40(%esi),%eax 67e: b9 01 00 00 00 mov $0x1,%ecx 683: ba 01 00 00 00 mov $0x1,%edx 688: c7 04 24 00 00 00 00 movl $0x0,(%esp) 68f: e8 fc ff ff ff call 690 <evdev_disconnect+0x9f> 694: 5b pop %ebx 695: 5b pop %ebx 696: 5e pop %esi 697: c3 ret 698: 59 pop %ecx 699: 89 f0 mov %esi,%eax 69b: 5b pop %ebx 69c: 5e pop %esi 69d: e9 c6 f9 ff ff jmp 68 <evdev_free> 000006a2 <evdev_connect>: 6a2: 55 push %ebp 6a3: 89 c5 mov %eax,%ebp 6a5: 57 push %edi 6a6: 56 push %esi 6a7: 53 push %ebx 6a8: 83 ec 1c sub $0x1c,%esp 6ab: 89 54 24 14 mov %edx,0x14(%esp) 6af: c7 44 24 18 00 00 00 movl $0x0,0x18(%esp) 6b6: 00 6b7: eb 0b jmp 6c4 <evdev_connect+0x22> 6b9: ff 44 24 18 incl 0x18(%esp) 6bd: 83 7c 24 18 20 cmpl $0x20,0x18(%esp) 6c2: 74 10 je 6d4 <evdev_connect+0x32> 6c4: 8b 44 24 18 mov 0x18(%esp),%eax 6c8: 83 3c 85 00 00 00 00 cmpl $0x0,0x0(,%eax,4) 6cf: 00 6d0: 75 e7 jne 6b9 <evdev_connect+0x17> 6d2: eb 16 jmp 6ea <evdev_connect+0x48> 6d4: c7 04 24 00 00 00 00 movl $0x0,(%esp) 6db: be e9 ff ff ff mov $0xffffffe9,%esi 6e0: e8 fc ff ff ff call 6e1 <evdev_connect+0x3f> 6e5: e9 00 01 00 00 jmp 7ea <evdev_connect+0x148> 6ea: a1 1c 00 00 00 mov 0x1c,%eax 6ef: ba d0 00 00 00 mov $0xd0,%edx 6f4: be f4 ff ff ff mov $0xfffffff4,%esi 6f9: e8 fc ff ff ff call 6fa <evdev_connect+0x58> 6fe: 85 c0 test %eax,%eax 700: 89 c3 mov %eax,%ebx 702: 0f 84 e2 00 00 00 je 7ea <evdev_connect+0x148> 708: 8d 40 54 lea 0x54(%eax),%eax 70b: 89 43 54 mov %eax,0x54(%ebx) 70e: 8d 7b 0c lea 0xc(%ebx),%edi 711: 89 40 04 mov %eax,0x4(%eax) 714: 8d 43 40 lea 0x40(%ebx),%eax 717: e8 fc ff ff ff call 718 <evdev_connect+0x76> 71c: c7 03 01 00 00 00 movl $0x1,(%ebx) 722: 8b 54 24 18 mov 0x18(%esp),%edx 726: 89 53 08 mov %edx,0x8(%ebx) 729: 8b 44 24 14 mov 0x14(%esp),%eax 72d: 89 6b 2c mov %ebp,0x2c(%ebx) 730: 89 7b 24 mov %edi,0x24(%ebx) 733: 89 5b 1c mov %ebx,0x1c(%ebx) 736: 89 43 28 mov %eax,0x28(%ebx) 739: 89 54 24 08 mov %edx,0x8(%esp) 73d: c7 44 24 04 26 00 00 movl $0x26,0x4(%esp) 744: 00 745: 89 3c 24 mov %edi,(%esp) 748: e8 fc ff ff ff call 749 <evdev_connect+0xa7> 74d: 8b 54 24 18 mov 0x18(%esp),%edx 751: 89 7c 24 10 mov %edi,0x10(%esp) 755: 89 1c 95 00 00 00 00 mov %ebx,0x0(,%edx,4) 75c: 89 d5 mov %edx,%ebp 75e: 8b 54 24 14 mov 0x14(%esp),%edx 762: 83 c5 40 add $0x40,%ebp 765: 81 cd 00 00 d0 00 or $0xd00000,%ebp 76b: 8b 82 b0 06 00 00 mov 0x6b0(%edx),%eax 771: 89 6c 24 08 mov %ebp,0x8(%esp) 775: c7 04 24 00 00 00 00 movl $0x0,(%esp) 77c: 89 44 24 0c mov %eax,0xc(%esp) 780: 89 d0 mov %edx,%eax 782: 05 44 06 00 00 add $0x644,%eax 787: 89 44 24 04 mov %eax,0x4(%esp) 78b: e8 fc ff ff ff call 78c <evdev_connect+0xea> 790: 3d 00 f0 ff ff cmp $0xfffff000,%eax 795: 89 c6 mov %eax,%esi 797: 77 3b ja 7d4 <evdev_connect+0x132> 799: 8d 50 08 lea 0x8(%eax),%edx 79c: 89 f9 mov %edi,%ecx 79e: b8 1c 00 00 00 mov $0x1c,%eax 7a3: e8 fc ff ff ff call 7a4 <evdev_connect+0x102> 7a8: 85 c0 test %eax,%eax 7aa: 89 c6 mov %eax,%esi 7ac: 75 1a jne 7c8 <evdev_connect+0x126> 7ae: 8d 43 1c lea 0x1c(%ebx),%eax 7b1: e8 fc ff ff ff call 7b2 <evdev_connect+0x110> 7b6: 85 c0 test %eax,%eax 7b8: 89 c6 mov %eax,%esi 7ba: 74 2e je 7ea <evdev_connect+0x148> 7bc: 89 fa mov %edi,%edx 7be: b8 1c 00 00 00 mov $0x1c,%eax 7c3: e8 fc ff ff ff call 7c4 <evdev_connect+0x122> 7c8: 89 ea mov %ebp,%edx 7ca: b8 00 00 00 00 mov $0x0,%eax 7cf: e8 fc ff ff ff call 7d0 <evdev_connect+0x12e> 7d4: 89 d8 mov %ebx,%eax 7d6: e8 fc ff ff ff call 7d7 <evdev_connect+0x135> 7db: 8b 44 24 18 mov 0x18(%esp),%eax 7df: c7 04 85 00 00 00 00 movl $0x0,0x0(,%eax,4) 7e6: 00 00 00 00 7ea: 83 c4 1c add $0x1c,%esp 7ed: 89 f0 mov %esi,%eax 7ef: 5b pop %ebx 7f0: 5e pop %esi 7f1: 5f pop %edi 7f2: 5d pop %ebp 7f3: c3 ret 000007f4 <evdev_event>: 7f4: 55 push %ebp 7f5: 89 cd mov %ecx,%ebp 7f7: 57 push %edi 7f8: 89 d7 mov %edx,%edi 7fa: 56 push %esi 7fb: 53 push %ebx 7fc: 83 ec 04 sub $0x4,%esp 7ff: 8b 54 24 18 mov 0x18(%esp),%edx 803: 89 14 24 mov %edx,(%esp) 806: 8b 30 mov (%eax),%esi 808: 8b 5e 50 mov 0x50(%esi),%ebx 80b: 85 db test %ebx,%ebx 80d: 74 67 je 876 <evdev_event+0x82> 80f: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 815: c1 e0 04 shl $0x4,%eax 818: 8d 04 03 lea (%ebx,%eax,1),%eax 81b: e8 fc ff ff ff call 81c <evdev_event+0x28> 820: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 826: b9 01 00 02 00 mov $0x20001,%ecx 82b: c1 e0 04 shl $0x4,%eax 82e: 66 89 7c 18 08 mov %di,0x8(%eax,%ebx,1) 833: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 839: c1 e0 04 shl $0x4,%eax 83c: 66 89 6c 18 0a mov %bp,0xa(%eax,%ebx,1) 841: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 847: 8b 14 24 mov (%esp),%edx 84a: c1 e0 04 shl $0x4,%eax 84d: 89 54 18 0c mov %edx,0xc(%eax,%ebx,1) 851: ba 1d 00 00 00 mov $0x1d,%edx 856: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 85c: 40 inc %eax 85d: 83 e0 3f and $0x3f,%eax 860: 89 83 00 04 00 00 mov %eax,0x400(%ebx) 866: 8d 83 08 04 00 00 lea 0x408(%ebx),%eax 86c: e8 fc ff ff ff call 86d <evdev_event+0x79> 871: e9 8e 00 00 00 jmp 904 <evdev_event+0x110> 876: 8b 5e 54 mov 0x54(%esi),%ebx 879: eb 68 jmp 8e3 <evdev_event+0xef> 87b: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 881: c1 e0 04 shl $0x4,%eax 884: 8d 04 03 lea (%ebx,%eax,1),%eax 887: e8 fc ff ff ff call 888 <evdev_event+0x94> 88c: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 892: b9 01 00 02 00 mov $0x20001,%ecx 897: c1 e0 04 shl $0x4,%eax 89a: 66 89 7c 18 08 mov %di,0x8(%eax,%ebx,1) 89f: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 8a5: c1 e0 04 shl $0x4,%eax 8a8: 66 89 6c 18 0a mov %bp,0xa(%eax,%ebx,1) 8ad: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 8b3: 8b 14 24 mov (%esp),%edx 8b6: c1 e0 04 shl $0x4,%eax 8b9: 89 54 18 0c mov %edx,0xc(%eax,%ebx,1) 8bd: ba 1d 00 00 00 mov $0x1d,%edx 8c2: 8b 83 00 04 00 00 mov 0x400(%ebx),%eax 8c8: 40 inc %eax 8c9: 83 e0 3f and $0x3f,%eax 8cc: 89 83 00 04 00 00 mov %eax,0x400(%ebx) 8d2: 8d 83 08 04 00 00 lea 0x408(%ebx),%eax 8d8: e8 fc ff ff ff call 8d9 <evdev_event+0xe5> 8dd: 8b 9b 10 04 00 00 mov 0x410(%ebx),%ebx 8e3: 81 eb 10 04 00 00 sub $0x410,%ebx 8e9: 8b 83 10 04 00 00 mov 0x410(%ebx),%eax 8ef: 8d 74 26 00 lea 0x0(%esi),%esi 8f3: 8d 93 10 04 00 00 lea 0x410(%ebx),%edx 8f9: 8d 46 54 lea 0x54(%esi),%eax 8fc: 39 c2 cmp %eax,%edx 8fe: 0f 85 77 ff ff ff jne 87b <evdev_event+0x87> 904: 8d 46 40 lea 0x40(%esi),%eax 907: b9 01 00 00 00 mov $0x1,%ecx 90c: c7 44 24 18 00 00 00 movl $0x0,0x18(%esp) 913: 00 914: ba 01 00 00 00 mov $0x1,%edx 919: 5e pop %esi 91a: 5b pop %ebx 91b: 5e pop %esi 91c: 5f pop %edi 91d: 5d pop %ebp 91e: e9 fc ff ff ff jmp 91f <evdev_event+0x12b> 00000923 <evdev_release>: 923: 57 push %edi 924: 89 d7 mov %edx,%edi 926: 56 push %esi 927: 53 push %ebx 928: 8b b2 80 00 00 00 mov 0x80(%edx),%esi 92e: 8b 9e 0c 04 00 00 mov 0x40c(%esi),%ebx 934: 39 73 50 cmp %esi,0x50(%ebx) 937: 75 0f jne 948 <evdev_release+0x25> 939: 8d 43 1c lea 0x1c(%ebx),%eax 93c: e8 fc ff ff ff call 93d <evdev_release+0x1a> 941: c7 43 50 00 00 00 00 movl $0x0,0x50(%ebx) 948: 31 c9 xor %ecx,%ecx 94a: 89 fa mov %edi,%edx 94c: 83 c8 ff or $0xffffffff,%eax 94f: e8 f0 f6 ff ff call 44 <evdev_fasync> 954: 8d 8e 10 04 00 00 lea 0x410(%esi),%ecx 95a: 8b 96 10 04 00 00 mov 0x410(%esi),%edx 960: 8b 41 04 mov 0x4(%ecx),%eax 963: 89 42 04 mov %eax,0x4(%edx) 966: 89 10 mov %edx,(%eax) 968: 89 f0 mov %esi,%eax 96a: c7 86 10 04 00 00 00 movl $0x100100,0x410(%esi) 971: 01 10 00 974: c7 41 04 00 02 20 00 movl $0x200200,0x4(%ecx) 97b: e8 fc ff ff ff call 97c <evdev_release+0x59> 980: 8b 43 04 mov 0x4(%ebx),%eax 983: 48 dec %eax 984: 85 c0 test %eax,%eax 986: 89 43 04 mov %eax,0x4(%ebx) 989: 75 16 jne 9a1 <evdev_release+0x7e> 98b: 83 3b 00 cmpl $0x0,(%ebx) 98e: 74 0a je 99a <evdev_release+0x77> 990: 8d 43 1c lea 0x1c(%ebx),%eax 993: e8 fc ff ff ff call 994 <evdev_release+0x71> 998: eb 07 jmp 9a1 <evdev_release+0x7e> 99a: 89 d8 mov %ebx,%eax 99c: e8 c7 f6 ff ff call 68 <evdev_free> 9a1: 5b pop %ebx 9a2: 31 c0 xor %eax,%eax 9a4: 5e pop %esi 9a5: 5f pop %edi 9a6: c3 ret 000009a7 <evdev_write>: 9a7: 55 push %ebp 9a8: 89 cd mov %ecx,%ebp 9aa: 57 push %edi 9ab: 56 push %esi 9ac: be ed ff ff ff mov $0xffffffed,%esi 9b1: 53 push %ebx 9b2: 83 ec 18 sub $0x18,%esp 9b5: 89 54 24 04 mov %edx,0x4(%esp) 9b9: 8b 80 80 00 00 00 mov 0x80(%eax),%eax 9bf: 8b b8 0c 04 00 00 mov 0x40c(%eax),%edi 9c5: 83 3f 00 cmpl $0x0,(%edi) 9c8: 74 47 je a11 <evdev_write+0x6a> 9ca: eb 1f jmp 9eb <evdev_write+0x44> 9cc: 8b 54 24 04 mov 0x4(%esp),%edx 9d0: 8d 44 24 08 lea 0x8(%esp),%eax 9d4: b9 10 00 00 00 mov $0x10,%ecx 9d9: 01 f2 add %esi,%edx 9db: e8 fc ff ff ff call 9dc <evdev_write+0x35> 9e0: 85 c0 test %eax,%eax 9e2: 74 0f je 9f3 <evdev_write+0x4c> 9e4: be f2 ff ff ff mov $0xfffffff2,%esi 9e9: eb 26 jmp a11 <evdev_write+0x6a> 9eb: 31 f6 xor %esi,%esi 9ed: 39 ee cmp %ebp,%esi 9ef: 72 db jb 9cc <evdev_write+0x25> 9f1: eb 1e jmp a11 <evdev_write+0x6a> 9f3: 8b 5c 24 14 mov 0x14(%esp),%ebx 9f7: 8d 47 1c lea 0x1c(%edi),%eax 9fa: 83 c6 10 add $0x10,%esi 9fd: 0f b7 4c 24 12 movzwl 0x12(%esp),%ecx a02: 0f b7 54 24 10 movzwl 0x10(%esp),%edx a07: 89 1c 24 mov %ebx,(%esp) a0a: e8 fc ff ff ff call a0b <evdev_write+0x64> a0f: eb dc jmp 9ed <evdev_write+0x46> a11: 83 c4 18 add $0x18,%esp a14: 89 f0 mov %esi,%eax a16: 5b pop %ebx a17: 5e pop %esi a18: 5f pop %edi a19: 5d pop %ebp a1a: c3 ret 00000a1b <evdev_read>: a1b: 55 push %ebp a1c: 89 cd mov %ecx,%ebp a1e: 57 push %edi a1f: 89 c7 mov %eax,%edi a21: 56 push %esi a22: 53 push %ebx a23: 83 ec 18 sub $0x18,%esp a26: 83 f9 0f cmp $0xf,%ecx a29: 89 14 24 mov %edx,(%esp) a2c: 8b 98 80 00 00 00 mov 0x80(%eax),%ebx a32: b8 ea ff ff ff mov $0xffffffea,%eax a37: 8b b3 0c 04 00 00 mov 0x40c(%ebx),%esi a3d: 0f 86 0e 01 00 00 jbe b51 <evdev_read+0x136> a43: 8b 83 04 04 00 00 mov 0x404(%ebx),%eax a49: 39 83 00 04 00 00 cmp %eax,0x400(%ebx) a4f: 75 14 jne a65 <evdev_read+0x4a> a51: 83 3e 00 cmpl $0x0,(%esi) a54: 74 0f je a65 <evdev_read+0x4a> a56: f6 47 19 08 testb $0x8,0x19(%edi) a5a: b8 f5 ff ff ff mov $0xfffffff5,%eax a5f: 0f 85 ec 00 00 00 jne b51 <evdev_read+0x136> a65: 8b 83 04 04 00 00 mov 0x404(%ebx),%eax a6b: 39 83 00 04 00 00 cmp %eax,0x400(%ebx) a71: 75 76 jne ae9 <evdev_read+0xce> a73: 83 3e 00 cmpl $0x0,(%esi) a76: 74 71 je ae9 <evdev_read+0xce> a78: fc cld a79: 31 c0 xor %eax,%eax a7b: 8d 7c 24 04 lea 0x4(%esp),%edi a7f: ab stos %eax,%es:(%edi) a80: ab stos %eax,%es:(%edi) a81: ab stos %eax,%es:(%edi) a82: c7 44 24 0c 00 00 00 movl $0x0,0xc(%esp) a89: 00 a8a: ab stos %eax,%es:(%edi) a8b: ab stos %eax,%es:(%edi) a8c: 64 a1 00 00 00 00 mov %fs:0x0,%eax a92: 89 44 24 08 mov %eax,0x8(%esp) a96: 8d 44 24 10 lea 0x10(%esp),%eax a9a: 89 44 24 10 mov %eax,0x10(%esp) a9e: 89 44 24 14 mov %eax,0x14(%esp) aa2: 8d 46 40 lea 0x40(%esi),%eax aa5: b9 01 00 00 00 mov $0x1,%ecx aaa: 8d 54 24 04 lea 0x4(%esp),%edx aae: e8 fc ff ff ff call aaf <evdev_read+0x94> ab3: 8b 83 04 04 00 00 mov 0x404(%ebx),%eax ab9: 39 83 00 04 00 00 cmp %eax,0x400(%ebx) abf: 75 1c jne add <evdev_read+0xc2> ac1: 83 3e 00 cmpl $0x0,(%esi) ac4: 74 17 je add <evdev_read+0xc2> ac6: 64 a1 00 00 00 00 mov %fs:0x0,%eax acc: 8b 40 04 mov 0x4(%eax),%eax acf: 8b 40 08 mov 0x8(%eax),%eax ad2: a8 04 test $0x4,%al ad4: 75 6a jne b40 <evdev_read+0x125> ad6: e8 fc ff ff ff call ad7 <evdev_read+0xbc> adb: eb c5 jmp aa2 <evdev_read+0x87> add: 8d 46 40 lea 0x40(%esi),%eax ae0: 8d 54 24 04 lea 0x4(%esp),%edx ae4: e8 fc ff ff ff call ae5 <evdev_read+0xca> ae9: 83 3e 00 cmpl $0x0,(%esi) aec: b8 ed ff ff ff mov $0xffffffed,%eax af1: 74 5e je b51 <evdev_read+0x136> af3: eb 1e jmp b13 <evdev_read+0xf8> af5: 03 04 24 add (%esp),%eax af8: b9 10 00 00 00 mov $0x10,%ecx afd: c1 e2 04 shl $0x4,%edx b00: 8d 14 13 lea (%ebx,%edx,1),%edx b03: e8 fc ff ff ff call b04 <evdev_read+0xe9> b08: 85 c0 test %eax,%eax b0a: 74 20 je b2c <evdev_read+0x111> b0c: b8 f2 ff ff ff mov $0xfffffff2,%eax b11: eb 3e jmp b51 <evdev_read+0x136> b13: 31 c0 xor %eax,%eax b15: 8b 93 04 04 00 00 mov 0x404(%ebx),%edx b1b: 39 93 00 04 00 00 cmp %edx,0x400(%ebx) b21: 74 2e je b51 <evdev_read+0x136> b23: 8d 70 10 lea 0x10(%eax),%esi b26: 39 ee cmp %ebp,%esi b28: 76 cb jbe af5 <evdev_read+0xda> b2a: eb 25 jmp b51 <evdev_read+0x136> b2c: 8b 83 04 04 00 00 mov 0x404(%ebx),%eax b32: 40 inc %eax b33: 83 e0 3f and $0x3f,%eax b36: 89 83 04 04 00 00 mov %eax,0x404(%ebx) b3c: 89 f0 mov %esi,%eax b3e: eb d5 jmp b15 <evdev_read+0xfa> b40: 8d 46 40 lea 0x40(%esi),%eax b43: 8d 54 24 04 lea 0x4(%esp),%edx b47: e8 fc ff ff ff call b48 <evdev_read+0x12d> b4c: b8 00 fe ff ff mov $0xfffffe00,%eax b51: 83 c4 18 add $0x18,%esp b54: 5b pop %ebx b55: 5e pop %esi b56: 5f pop %edi b57: 5d pop %ebp b58: c3 ret 00000b59 <evdev_open>: b59: 55 push %ebp b5a: 57 push %edi b5b: 56 push %esi b5c: 53 push %ebx b5d: 83 ec 04 sub $0x4,%esp b60: 89 14 24 mov %edx,(%esp) b63: 8b 40 34 mov 0x34(%eax),%eax b66: 25 ff ff 0f 00 and $0xfffff,%eax b6b: 83 e8 40 sub $0x40,%eax b6e: 83 f8 1f cmp $0x1f,%eax b71: 0f 8f a4 00 00 00 jg c1b <evdev_open+0xc2> b77: 8b 1c 85 00 00 00 00 mov 0x0(,%eax,4),%ebx b7e: 85 db test %ebx,%ebx b80: 0f 84 95 00 00 00 je c1b <evdev_open+0xc2> b86: 83 3b 00 cmpl $0x0,(%ebx) b89: 0f 84 8c 00 00 00 je c1b <evdev_open+0xc2> b8f: a1 4c 00 00 00 mov 0x4c,%eax b94: ba d0 00 00 00 mov $0xd0,%edx b99: bd f4 ff ff ff mov $0xfffffff4,%ebp b9e: e8 fc ff ff ff call b9f <evdev_open+0x46> ba3: 85 c0 test %eax,%eax ba5: 89 c6 mov %eax,%esi ba7: 74 77 je c20 <evdev_open+0xc7> ba9: 89 98 0c 04 00 00 mov %ebx,0x40c(%eax) baf: 8d b8 10 04 00 00 lea 0x410(%eax),%edi bb5: 8d 43 54 lea 0x54(%ebx),%eax bb8: 8b 50 04 mov 0x4(%eax),%edx bbb: 89 86 10 04 00 00 mov %eax,0x410(%esi) bc1: 89 78 04 mov %edi,0x4(%eax) bc4: 89 3a mov %edi,(%edx) bc6: 89 57 04 mov %edx,0x4(%edi) bc9: 8b 43 04 mov 0x4(%ebx),%eax bcc: 40 inc %eax bcd: 89 43 04 mov %eax,0x4(%ebx) bd0: 48 dec %eax bd1: 75 3b jne c0e <evdev_open+0xb5> bd3: 83 3b 00 cmpl $0x0,(%ebx) bd6: 74 36 je c0e <evdev_open+0xb5> bd8: 8d 43 1c lea 0x1c(%ebx),%eax bdb: e8 fc ff ff ff call bdc <evdev_open+0x83> be0: 85 c0 test %eax,%eax be2: 89 c5 mov %eax,%ebp be4: 74 28 je c0e <evdev_open+0xb5> be6: 8b 47 04 mov 0x4(%edi),%eax be9: 8b 96 10 04 00 00 mov 0x410(%esi),%edx bef: 89 42 04 mov %eax,0x4(%edx) bf2: 89 10 mov %edx,(%eax) bf4: 89 f0 mov %esi,%eax bf6: c7 86 10 04 00 00 00 movl $0x100100,0x410(%esi) bfd: 01 10 00 c00: c7 47 04 00 02 20 00 movl $0x200200,0x4(%edi) c07: e8 fc ff ff ff call c08 <evdev_open+0xaf> c0c: eb 12 jmp c20 <evdev_open+0xc7> c0e: 8b 04 24 mov (%esp),%eax c11: 31 ed xor %ebp,%ebp c13: 89 b0 80 00 00 00 mov %esi,0x80(%eax) c19: eb 05 jmp c20 <evdev_open+0xc7> c1b: bd ed ff ff ff mov $0xffffffed,%ebp c20: 5f pop %edi c21: 89 e8 mov %ebp,%eax c23: 5b pop %ebx c24: 5e pop %esi c25: 5f pop %edi c26: 5d pop %ebp c27: c3 ret Disassembly of section .exit.text: 00000000 <cleanup_module>: 0: b8 00 00 00 00 mov $0x0,%eax 5: e9 fc ff ff ff jmp 6 <cleanup_module+0x6> Disassembly of section .altinstr_replacement: 00000000 <.altinstr_replacement>: 0: 0f 18 00 prefetchnta (%eax) 3: 0f 18 00 prefetchnta (%eax) Disassembly of section .init.text: 00000000 <init_module>: 0: b8 00 00 00 00 mov $0x0,%eax 5: e9 fc ff ff ff jmp 6 <init_module+0x6> Disassembly of section .rodata: 00000000 <__mod_input_device_table-0x60>: 0: dc 03 faddl (%ebx) 2: 00 00 add %al,(%eax) 4: e6 03 out %al,$0x3 6: 00 00 add %al,(%eax) 8: f0 03 00 lock add (%eax),%eax b: 00 f5 add %dh,%ch d: 03 00 add (%eax),%eax f: 00 ff add %bh,%bh 11: 03 00 add (%eax),%eax 13: 00 1d 04 00 00 e4 add %bl,0xe4000004 19: 05 00 00 e4 05 add $0x5e40000,%eax 1e: 00 00 add %al,(%eax) 20: e4 05 in $0x5,%al 22: 00 00 add %al,(%eax) 24: e4 05 in $0x5,%al 26: 00 00 add %al,(%eax) 28: e4 05 in $0x5,%al 2a: 00 00 add %al,(%eax) 2c: e4 05 in $0x5,%al 2e: 00 00 add %al,(%eax) 30: e4 05 in $0x5,%al 32: 00 00 add %al,(%eax) 34: e4 05 in $0x5,%al 36: 00 00 add %al,(%eax) 38: e4 05 in $0x5,%al 3a: 00 00 add %al,(%eax) 3c: e4 05 in $0x5,%al 3e: 00 00 add %al,(%eax) 40: e4 05 in $0x5,%al 42: 00 00 add %al,(%eax) 44: 04 04 add $0x4,%al 46: 00 00 add %al,(%eax) 48: 09 04 00 or %eax,(%eax,%eax,1) 4b: 00 e4 add %ah,%ah 4d: 05 00 00 e4 05 add $0x5e40000,%eax 52: 00 00 add %al,(%eax) 54: 13 04 00 adc (%eax,%eax,1),%eax ... 00000060 <__mod_input_device_table>: ... dc: 01 00 add %eax,(%eax) ... 00000160 <evdev_fops>: ... 168: 1b 0a sbb (%edx),%ecx 16a: 00 00 add %al,(%eax) 16c: a7 cmpsl %es:(%edi),%ds:(%esi) 16d: 09 00 or %eax,(%eax) ... 183: 00 06 add %al,(%esi) 185: 01 00 add %eax,(%eax) ... 18f: 00 59 0b add %bl,0xb(%ecx) 192: 00 00 add %al,(%eax) 194: 7b 00 jnp 196 <evdev_fops+0x36> 196: 00 00 add %al,(%eax) 198: 23 09 and (%ecx),%ecx ... 1a2: 00 00 add %al,(%eax) 1a4: 44 inc %esp ... Disassembly of section .altinstructions: 00000000 <.altinstructions>: 0: 6a 06 push $0x6 2: 00 00 add %al,(%eax) 4: 00 00 add %al,(%eax) 6: 00 00 add %al,(%eax) 8: 19 04 03 sbb %eax,(%ebx,%eax,1) b: 00 ef add %ch,%bh d: 08 00 or %al,(%eax) f: 00 03 add %al,(%ebx) 11: 00 00 add %al,(%eax) 13: 00 19 add %bl,(%ecx) 15: 04 03 add $0x3,%al Disassembly of section .rodata.str1.1: 00000000 <.rodata.str1.1>: 0: 3c 33 cmp $0x33,%al 2: 3e ds 3: 65 gs 4: 76 64 jbe 6a <evdev_free+0x2> 6: 65 gs 7: 76 3a jbe 43 <__mod_description740+0x3> 9: 20 6e 6f and %ch,0x6f(%esi) c: 20 6d 6f and %ch,0x6f(%ebp) f: 72 65 jb 76 <__mod_license741+0xa> 11: 20 66 72 and %ah,0x72(%esi) 14: 65 65 20 65 76 and %ah,%gs:0x76(%ebp) 19: 64 fs 1a: 65 gs 1b: 76 20 jbe 3d <evdev_poll+0x3d> 1d: 64 fs 1e: 65 gs 1f: 76 69 jbe 8a <__mod_vermagic5+0xa> 21: 63 65 73 arpl %sp,0x73(%ebp) 24: 0a 00 or (%eax),%al 26: 65 gs 27: 76 65 jbe 8e <__mod_vermagic5+0xe> 29: 6e outsb %ds:(%esi),(%dx) 2a: 74 25 je 51 <evdev_fasync+0xd> 2c: 64 00 65 76 add %ah,%fs:0x76(%ebp) 30: 64 fs 31: 65 gs 32: 76 00 jbe 34 <evdev_poll+0x34> Disassembly of section .modinfo: 00000000 <__mod_author739>: 0: 61 popa 1: 75 74 jne 77 <__mod_license741+0xb> 3: 68 6f 72 3d 56 push $0x563d726f 8: 6f outsl %ds:(%esi),(%dx) 9: 6a 74 push $0x74 b: 65 63 68 20 arpl %bp,%gs:0x20(%eax) f: 50 push %eax 10: 61 popa 11: 76 6c jbe 7f <__mod_license741+0x13> 13: 69 6b 20 3c 76 6f 6a imul $0x6a6f763c,0x20(%ebx),%ebp 1a: 74 65 je 81 <__mod_vermagic5+0x1> 1c: 63 68 40 arpl %bp,0x40(%eax) 1f: 75 63 jne 84 <__mod_vermagic5+0x4> 21: 77 2e ja 51 <__mod_description740+0x11> 23: 63 7a 3e arpl %di,0x3e(%edx) ... 00000040 <__mod_description740>: 40: 64 fs 41: 65 gs 42: 73 63 jae a7 <__mod_vermagic5+0x27> 44: 72 69 jb af <__mod_vermagic5+0x2f> 46: 70 74 jo bc <__module_depends+0x4> 48: 69 6f 6e 3d 49 6e 70 imul $0x706e493d,0x6e(%edi),%ebp 4f: 75 74 jne c5 <__module_depends+0xd> 51: 20 64 72 69 and %ah,0x69(%edx,%esi,2) 55: 76 65 jbe bc <__module_depends+0x4> 57: 72 20 jb 79 <__mod_license741+0xd> 59: 65 gs 5a: 76 65 jbe c1 <__module_depends+0x9> 5c: 6e outsb %ds:(%esi),(%dx) 5d: 74 20 je 7f <__mod_license741+0x13> 5f: 63 68 61 arpl %bp,0x61(%eax) 62: 72 20 jb 84 <__mod_vermagic5+0x4> 64: 64 fs 65: 65 gs 66: 76 69 jbe d1 <__module_depends+0x19> 68: 63 65 73 arpl %sp,0x73(%ebp) ... 0000006c <__mod_license741>: 6c: 6c insb (%dx),%es:(%edi) 6d: 69 63 65 6e 73 65 3d imul $0x3d65736e,0x65(%ebx),%esp 74: 47 inc %edi 75: 50 push %eax 76: 4c dec %esp ... 00000080 <__mod_vermagic5>: 80: 76 65 jbe e7 <__mod_alias22+0x7> 82: 72 6d jb f1 <__mod_alias22+0x11> 84: 61 popa 85: 67 69 63 3d 32 2e 36 addr16 imul $0x2e362e32,61(%bp,%di),%esp 8c: 2e 8d: 32 32 xor (%edx),%dh 8f: 2d 31 2d 6d 65 sub $0x656d2d31,%eax 94: 70 69 jo ff <__mod_alias22+0x1f> 96: 73 2d jae c5 <__module_depends+0xd> 98: 73 6d jae 107 <__mod_alias22+0x27> 9a: 70 20 jo bc <__module_depends+0x4> 9c: 53 push %ebx 9d: 4d dec %ebp 9e: 50 push %eax 9f: 20 70 72 and %dh,0x72(%eax) a2: 65 gs a3: 65 gs a4: 6d insl (%dx),%es:(%edi) a5: 70 74 jo 11b <evdev_ioctl+0x15> a7: 20 6d 6f and %ch,0x6f(%ebp) aa: 64 fs ab: 5f pop %edi ac: 75 6e jne 11c <evdev_ioctl+0x16> ae: 6c insb (%dx),%es:(%edi) af: 6f outsl %ds:(%esi),(%dx) b0: 61 popa b1: 64 20 36 and %dh,%fs:(%esi) b4: 38 36 cmp %dh,(%esi) b6: 20 00 and %al,(%eax) 000000b8 <__module_depends>: b8: 64 fs b9: 65 gs ba: 70 65 jo 121 <evdev_ioctl+0x1b> bc: 6e outsb %ds:(%esi),(%dx) bd: 64 fs be: 73 3d jae fd <__mod_alias22+0x1d> ... 000000e0 <__mod_alias22>: e0: 61 popa e1: 6c insb (%dx),%es:(%edi) e2: 69 61 73 3d 69 6e 70 imul $0x706e693d,0x73(%ecx),%esp e9: 75 74 jne 15f <evdev_ioctl+0x59> eb: 3a 62 2a cmp 0x2a(%edx),%ah ee: 76 2a jbe 11a <evdev_ioctl+0x14> f0: 70 2a jo 11c <evdev_ioctl+0x16> f2: 65 2a 2d 65 2a 6b 2a sub %gs:0x2a6b2a65,%ch f9: 72 2a jb 125 <evdev_ioctl+0x1f> fb: 61 popa fc: 2a 6d 2a sub 0x2a(%ebp),%ch ff: 6c insb (%dx),%es:(%edi) 100: 2a 73 2a sub 0x2a(%ebx),%dh 103: 66 data16 104: 2a 77 2a sub 0x2a(%edi),%dh ... Disassembly of section .data: 00000000 <evdev_handler>: 0: 00 00 add %al,(%eax) 2: 00 00 add %al,(%eax) 4: f4 hlt 5: 07 pop %es 6: 00 00 add %al,(%eax) 8: a2 06 00 00 f1 mov %al,0xf1000006 d: 05 00 00 00 00 add $0x0,%eax 12: 00 00 add %al,(%eax) 14: 60 pusha 15: 01 00 add %eax,(%eax) 17: 00 40 00 add %al,0x0(%eax) 1a: 00 00 add %al,(%eax) 1c: 2e 00 00 add %al,%cs:(%eax) 1f: 00 60 00 add %ah,0x0(%eax) ... Disassembly of section .gnu.linkonce.this_module: 00000000 <__this_module>: ... c: 65 gs d: 76 64 jbe 73 <__this_module+0x73> f: 65 gs 10: 76 00 jbe 12 <__this_module+0x12> ... Disassembly of section .bss: 00000000 <evdev_table>: ... Disassembly of section .comment: 00000000 <.comment>: 0: 00 47 43 add %al,0x43(%edi) 3: 43 inc %ebx 4: 3a 20 cmp (%eax),%ah 6: 28 47 4e sub %al,0x4e(%edi) 9: 55 push %ebp a: 29 20 sub %esp,(%eax) c: 34 2e xor $0x2e,%al e: 31 2e xor %ebp,(%esi) 10: 32 20 xor (%eax),%ah 12: 32 30 xor (%eax),%dh 14: 30 36 xor %dh,(%esi) 16: 31 31 xor %esi,(%ecx) 18: 31 35 20 28 70 72 xor %esi,0x72702820 1e: 65 gs 1f: 72 65 jb 86 <__mod_vermagic5+0x6> 21: 6c insb (%dx),%es:(%edi) 22: 65 gs 23: 61 popa 24: 73 65 jae 8b <__mod_vermagic5+0xb> 26: 29 20 sub %esp,(%eax) 28: 28 44 65 62 sub %al,0x62(%ebp) 2c: 69 61 6e 20 34 2e 31 imul $0x312e3420,0x6e(%ecx),%esp 33: 2e 31 2d 32 31 29 00 xor %ebp,%cs:0x293132 3a: 00 47 43 add %al,0x43(%edi) 3d: 43 inc %ebx 3e: 3a 20 cmp (%eax),%ah 40: 28 47 4e sub %al,0x4e(%edi) 43: 55 push %ebp 44: 29 20 sub %esp,(%eax) 46: 34 2e xor $0x2e,%al 48: 31 2e xor %ebp,(%esi) 4a: 32 20 xor (%eax),%ah 4c: 32 30 xor (%eax),%dh 4e: 30 36 xor %dh,(%esi) 50: 31 31 xor %esi,(%ecx) 52: 31 35 20 28 70 72 xor %esi,0x72702820 58: 65 gs 59: 72 65 jb c0 <__module_depends+0x8> 5b: 6c insb (%dx),%es:(%edi) 5c: 65 gs 5d: 61 popa 5e: 73 65 jae c5 <__module_depends+0xd> 60: 29 20 sub %esp,(%eax) 62: 28 44 65 62 sub %al,0x62(%ebp) 66: 69 61 6e 20 34 2e 31 imul $0x312e3420,0x6e(%ecx),%esp 6d: 2e 31 2d 32 31 29 00 xor %ebp,%cs:0x293132 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port @ 2008-08-19 21:06 juanslayton 0 siblings, 0 replies; 20+ messages in thread From: juanslayton @ 2008-08-19 21:06 UTC (permalink / raw) To: Alan Stern Cc: David Brownell, juanslayton, Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap, linuxconsole-dev, linux-input Thanks for the clarification. John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port
@ 2008-08-19 16:40 juanslayton
2008-08-19 18:21 ` Alan Stern
0 siblings, 1 reply; 20+ messages in thread
From: juanslayton @ 2008-08-19 16:40 UTC (permalink / raw)
To: Alan Stern
Cc: Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap,
linuxconsole-dev, linux-input
I have to apologize for my limited knowledge, but mere ignorance never yet
kept a teacher quiet. I am trying to follow this discussion because
Aivils and I are basically trying to do the same thing. In my case I am
presently running 20 keyboards on a 2.6.26 kernel, using an EHCI
controller, and they all work fine.
If I understand your analysis, Aivils' problem is because the UHCI
controllers are too slow. (I just happened to get lucky with another
controller.) I am left with two questions.
1. What if Aivils needs more than 16 keyboards? (Standard class sizes
here in California run from 20 to about 30.) Is there any way he can do
this without a faster controller?
2. What does the bandwidth limitation say about the maximum number of
boards with the EHCI controller? I modified the kernel evdev.c and
input.c files to raise the maximum events from 32 to 64, but I hadn't
figured in the effects of bandwidth.
> Now if you plugged some of these keyboards into different UHCI
> controllers on the computer, then the problem wouldn't arise. Each of
> your four UHCI controllers has two ports. So without using any hubs at
> all, you can plug 8 keyboards into the computer and they will all work.
>
> If you use some extra hubs as well then you can plug four keyboards
> into each controller, allowing you to use 16 keyboards total.
>
> Alan Stern
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Linuxconsole-dev mailing list
> Linuxconsole-dev@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxconsole-dev
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 16:40 juanslayton @ 2008-08-19 18:21 ` Alan Stern 2008-08-19 19:12 ` David Brownell 0 siblings, 1 reply; 20+ messages in thread From: Alan Stern @ 2008-08-19 18:21 UTC (permalink / raw) To: juanslayton Cc: Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap, linuxconsole-dev, linux-input On Tue, 19 Aug 2008 juanslayton@dslextreme.com wrote: > I have to apologize for my limited knowledge, but mere ignorance never yet > kept a teacher quiet. I am trying to follow this discussion because > Aivils and I are basically trying to do the same thing. In my case I am > presently running 20 keyboards on a 2.6.26 kernel, using an EHCI > controller, and they all work fine. You must be using some hubs. The results you get will depend on the type of hub you use. > If I understand your analysis, Aivils' problem is because the UHCI > controllers are too slow. Not just that; it also is a question of scheduling. The uhci-hcd driver isn't very clever about scheduling, and it tries to put all the packets into the same frame. If the packets were distributed among multiple frames then the limit would be considerably higher (eight times higher in this case). I'm not sure of the scheduling details in the ohci-hcd driver; they might well be more flexible than in uhci-hcd. In which case a single OHCI controller would be able to handle up to 32 of these keyboards, even though it is no faster than a UHCI controller. > (I just happened to get lucky with another > controller.) I am left with two questions. > > 1. What if Aivils needs more than 16 keyboards? (Standard class sizes > here in California run from 20 to about 30.) Is there any way he can do > this without a faster controller? You should realize that Aivils _does_ have an EHCI controller. He just isn't using it, because his hubs are old. So the easiest approach for him would be to buy USB-2.0 hubs. If he doesn't want to do that there are a few ways, but they mostly boil down to getting more controllers. If he is good at kernel programming, he could upgrade the scheduling algorithm in uhci-hcd -- but that will be a messy job and probably not worth the time spent (which is why I've never done it). > 2. What does the bandwidth limitation say about the maximum number of > boards with the EHCI controller? I modified the kernel evdev.c and > input.c files to raise the maximum events from 32 to 64, but I hadn't > figured in the effects of bandwidth. Like I said above, it depends on the type of hub you use. If you have hubs with multiple Transaction Translators then the bandwidth limit will be very high. I don't know how high exactly, but probably higher than other limits, like the maximum number of USB devices on a single bus (127). If you have hubs with only a single Transaction Translator then the limit will be lower, but still pretty high. Certainly you would be able to connect no more than four keyboards to each hub, but you could have many hubs. The details would depend on the scheduling algorithm in ehci-hcd, which I'm also not familiar with. If you have only full-speed hubs (i.e., USB-1.1 hubs rather than USB-2.0) then you won't be able to make use of the EHCI controller at all. That's the situation Aivils is in. Alan Stern ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 18:21 ` Alan Stern @ 2008-08-19 19:12 ` David Brownell 2008-08-19 20:04 ` Alan Stern 0 siblings, 1 reply; 20+ messages in thread From: David Brownell @ 2008-08-19 19:12 UTC (permalink / raw) To: Alan Stern, juanslayton Cc: Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap, linuxconsole-dev, linux-input --- Alan Stern <stern@rowland.harvard.edu> wrote: > On Tue, 19 Aug 2008 juanslayton@dslextreme.com wrote: > > If I understand your analysis, Aivils' problem is because the UHCI > > controllers are too slow. > > Not just that; it also is a question of scheduling. The uhci-hcd > driver isn't very clever about scheduling, and it tries to put all the > packets into the same frame. If the packets were distributed among > multiple frames then the limit would be considerably higher (eight > times higher in this case). > > I'm not sure of the scheduling details in the ohci-hcd driver; they > might well be more flexible than in uhci-hcd. In which case a single > OHCI controller would be able to handle up to 32 of these keyboards, > even though it is no faster than a UHCI controller. The OHCI scheduling is pretty simple and compact. I'd think it would be easy enough to make UHCI do the same sort of thing: track bandwidth assigned to 2^N frames (OHCI hardware imposes a smaller limit for N than UHCI hardware does), and pick the least loaded of those frames to use for new transfers. In ohci-q.c see balance(), periodic_{,un}link(). Thing is that would involve changing how UHCI manages periodic transfers; assuming it hasn't changed those structures since last I looked. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 19:12 ` David Brownell @ 2008-08-19 20:04 ` Alan Stern 2008-08-19 21:05 ` juanslayton 0 siblings, 1 reply; 20+ messages in thread From: Alan Stern @ 2008-08-19 20:04 UTC (permalink / raw) To: David Brownell Cc: juanslayton, Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap, linuxconsole-dev, linux-input On Tue, 19 Aug 2008, David Brownell wrote: > The OHCI scheduling is pretty simple and compact. I'd think it would > be easy enough to make UHCI do the same sort of thing: track bandwidth > assigned to 2^N frames (OHCI hardware imposes a smaller limit for N > than UHCI hardware does), and pick the least loaded of those frames to > use for new transfers. In ohci-q.c see balance(), periodic_{,un}link(). > > Thing is that would involve changing how UHCI manages periodic transfers; > assuming it hasn't changed those structures since last I looked. Yes. That's the messy part; the scheduling itself is easy. Alan Stern ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: PROBLEM: USB keyboards works only 4 per PC host port 2008-08-19 20:04 ` Alan Stern @ 2008-08-19 21:05 ` juanslayton 0 siblings, 0 replies; 20+ messages in thread From: juanslayton @ 2008-08-19 21:05 UTC (permalink / raw) To: Alan Stern Cc: David Brownell, juanslayton, Aivils Stoss, jkosina, lud, linux-kernel, Randy Dunlap, linuxconsole-dev, linux-input Thanks for the clarification. John ^ permalink raw reply [flat|nested] 20+ messages in thread
* PROBLEM: USB keyboards works only 4 per PC host port @ 2008-08-02 6:05 Aivils Stoss 0 siblings, 0 replies; 20+ messages in thread From: Aivils Stoss @ 2008-08-02 6:05 UTC (permalink / raw) To: linux-input, jkosina, linux-kernel, linuxconsole-dev Hello All! PROBLEM: USB keyboards works only 4 per PC host port. I work for project which will use 15 - 25 keyboards for children teaching. I discover current Linux 2.6.22 , 2.6.24, 2.6.26 dot not support more than 4 keyboards per single PC host port. All plugged in keyboards are listed as USB devices, listed as input devices, but capable to send input events are only 4 keyboards, no matter where keyboards are plugged in to HUB cascade. All plugged in keyboards switch LED's, when i press NumLock. I tested various usb-hub units and various host PC hardware, i even replace hub power supplay units from 5V1A to 5V3A. All tested cases give best results - 4 keyboards per PC host port and worstest - some PC cannot do more than 8 keyboards at all. I suppose this is Linux kernel bug because i test keyboards under Windows, which support any schema of cascading of usb hubs. I will send any log file if that is necessary, but trouble will pop up in a row of kernels. 2.6.22 didn't have error messages. 2.6.24, 2.6.26 tend to total slow down with eternal reset messages: Jul 25 07:16:00 awork kernel: input,hiddev97: USB HID v1.10 Mouse [USB-compliant keyboard] on usb-0000:00:1d.0-1.1.2 Jul 25 07:16:01 awork kernel: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 Jul 25 07:16:01 awork kernel: usb 2-1.1.2: reset low speed USB device using uhci_hcd and address 18 Jul 25 07:16:02 awork kernel: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 Jul 25 07:16:03 awork kernel: usb 2-1.1.2: reset low speed USB device using uhci_hcd and address 18 Jul 25 07:16:04 awork kernel: usb 2-1.1.1: reset low speed USB device using uhci_hcd and address 17 Jul 25 07:16:05 awork kernel: usb 2-1.1.2: reset low speed USB device using uhci_hcd and address 18 Best regards, Aivils Stoss ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2008-08-20 5:40 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-08-08 6:02 PROBLEM: USB keyboards works only 4 per PC host port Aivils Stoss 2008-08-09 10:42 ` Samuel Thibault 2008-08-10 3:08 ` Aivils Stoss 2008-08-15 1:49 ` Randy Dunlap 2008-08-18 11:12 ` Aivils Stoss 2008-08-18 15:14 ` Jiri Kosina 2008-08-18 15:14 ` Randy Dunlap 2008-08-19 9:57 ` Aivils Stoss 2008-08-19 15:03 ` Alan Stern 2008-08-19 15:19 ` Randy Dunlap 2008-08-19 15:23 ` Jiri Kosina 2008-08-19 17:55 ` Dmitry Torokhov 2008-08-20 5:40 ` Aivils Stoss -- strict thread matches above, loose matches on Subject: below -- 2008-08-19 21:06 juanslayton 2008-08-19 16:40 juanslayton 2008-08-19 18:21 ` Alan Stern 2008-08-19 19:12 ` David Brownell 2008-08-19 20:04 ` Alan Stern 2008-08-19 21:05 ` juanslayton 2008-08-02 6:05 Aivils Stoss
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).