From murduth@rmstar.campus.luth.se Sun Aug 20 10:34:26 2000 Return-Path: Received: from rmstar.campus.luth.se (rmstar.campus.luth.se [130.240.197.32]) by hub.freebsd.org (Postfix) with ESMTP id 91FA637B43E for ; Sun, 20 Aug 2000 10:34:25 -0700 (PDT) Received: from rmstar.campus.luth.se (localhost [127.0.0.1]) by rmstar.campus.luth.se (8.9.3/8.9.3) with ESMTP id TAA00424 for ; Sun, 20 Aug 2000 19:34:24 +0200 (CEST) (envelope-from murduth@rmstar.campus.luth.se) Message-Id: <200008201734.TAA00424@rmstar.campus.luth.se> Date: Sun, 20 Aug 2000 19:34:24 +0200 From: Joakim Henriksson Sender: murduth@rmstar.campus.luth.se To: freebsd-gnats-submit@freebsd.org Subject: My USB mouse detaches leaving me without a mouse >Number: 20734 >Category: kern >Synopsis: USB mouse detaches and never reataches >Confidential: no >Severity: serious >Priority: medium >Responsible: n_hibma >State: closed >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Aug 20 10:40:00 PDT 2000 >Closed-Date: Thu Nov 29 08:49:23 PST 2001 >Last-Modified: Sat Dec 1 17:20:00 PST 2001 >Originator: Joakim Henriksson >Release: FreeBSD 4.1-STABLE i386 >Organization: University of luleå >Environment: murduth@rmstar ~ >uname -a FreeBSD rmstar.campus.luth.se 4.1-STABLE FreeBSD 4.1-STABLE #4: Fri Aug 18 20:01 :52 CEST 2000 murduth@rmstar.campus.luth.se:/usr/src/sys/compile/RMSTAR i38 6 Relevant parts of boot -v output Copyright (c) 1992-2000 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.1-STABLE #4: Fri Aug 18 20:01:52 CEST 2000 murduth@rmstar.campus.luth.se:/usr/src/sys/compile/RMSTAR Calibrating clock(s) ... TSC clock: 400926854 Hz, i8254 clock: 1193234 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency Timecounter "i8254" frequency 1193182 Hz CLK_USE_TSC_CALIBRATION not specified - using old calibration method CPU: AMD-K6(tm) 3D processor (400.91-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x58c Stepping = 12 Features=0x8021bf AMD Features=0x80000800 Data TLB: 128 entries, 2-way associative Instruction TLB: 64 entries, 1-way associative L1 data cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative L1 instruction cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative Write Allocate Enable Limit: 128M bytes Write Allocate 15-16M bytes: Enable real memory = 134152192 (131008K bytes) Physical memory chunk(s): 0x00001000 - 0x0009ffff, 651264 bytes (159 pages) 0x00386000 - 0x07fe7fff, 130424832 bytes (31842 pages) avail memory = 127098880 (124120K bytes) bios32: Found BIOS32 Service Directory header at 0xc00fb010 bios32: Entry = 0xfb490 (c00fb490) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xb4c0 pnpbios: Found PnP BIOS data at 0xc00fc0e0 pnpbios: Entry = f0000:c108 Rev = 1.0 Other BIOS signatures found: ACPI: 000f6bb0 Preloaded elf kernel "kernel" at 0xc036d000. K6-family MTRR support enabled (2 registers) md0: Malloc disk Creating DISK md0 pci_open(1): mode 1 addr port (0x0cf8) is 0x80003840 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=05981106) pcib-: pcib0 exists, using next available unit number npx0: on motherboard npx0: INT 16 interface i586_bzero() bandwidth = 523286237 bytes/sec bzero() bandwidth = 120641814 bytes/sec pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=05981106) pcib0: on motherboard found-> vendor=0x1106, dev=0x0598, revid=0x04 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[10]: type 1, range 32, base e0000000, size 26 found-> vendor=0x1106, dev=0x8598, revid=0x00 class=06-04-00, hdrtype=0x01, mfdev=0 subordinatebus=1 secondarybus=1 found-> vendor=0x1106, dev=0x0586, revid=0x41 class=06-01-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 found-> vendor=0x1106, dev=0x0571, revid=0x06 class=01-01-8a, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[20]: type 1, range 32, base 00006400, size 4 found-> vendor=0x1106, dev=0x3038, revid=0x02 class=0c-03-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=d, irq=9 map[20]: type 1, range 32, base 00006800, size 5 found-> vendor=0x1106, dev=0x3040, revid=0x10 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 found-> vendor=0x1102, dev=0x0002, revid=0x08 class=04-01-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 intpin=a, irq=11 map[10]: type 1, range 32, base 00006c00, size 5 found-> vendor=0x1102, dev=0x7002, revid=0x08 class=09-80-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 map[10]: type 1, range 32, base 00007000, size 3 found-> vendor=0x1000, dev=0x0001, revid=0x02 class=01-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=10 map[10]: type 1, range 32, base 00007400, size 8 map[14]: type 1, range 32, base ea100000, size 8 found-> vendor=0x8086, dev=0x1229, revid=0x02 class=02-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=12 map[10]: type 1, range 32, base ea101000, size 12 map[14]: type 1, range 32, base 00007800, size 5 map[18]: type 1, range 32, base ea000000, size 20 pci0: on pcib0 pcib2: at device 1.0 on pci0 found-> vendor=0x102b, dev=0x0521, revid=0x01 class=03-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=5 map[10]: type 1, range 32, base e8000000, size 24 map[14]: type 1, range 32, base e4000000, size 14 map[18]: type 1, range 32, base e5000000, size 23 pci1: on pcib2 pci1: (vendor=0x102b, dev=0x0521) at 0.0 irq 5 isab0: at device 7.0 on pci0 isa0: on isab0 uhci0: port 0x6800-0x681f irq 9 at device 7.2 on pci0 usb0: on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhub0: port 1 power on failed, IOERROR uhub0: port 2 power on failed, IOERROR uhub1: Texas Instruments UT-USB41 hub, class 9/0, rev 1.10/1.10, addr 2 uhub1: 4 ports with 4 removable, bus powered uhub2: Nokia Display Products Oy Nokia USB Hub Type P, class 9/0, rev 1.00/1.08, addr 3 uhub2: 5 ports with 4 removable, self powered uhid0: Nokia Display Products Oy Nokia USB Monitor Control, rev 1.00/1.08, addr 4, iclass 3/0 ums0: Microsoft Microsoft IntelliMouse ® with IntelliEye, rev 1.10/1.00, addr 5, iclass 3/1 ums0: 3 buttons and Z dir. pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=05981106) pci-: pci1 exists, using next available unit number pcib1: on motherboard pci2: on pcib1 isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices fdc0: at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: at port 0x60,0x64 on isa0 atkbd0: irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0067 atkbd: keyboard ID 0x41ab (2) kbdc: RESET_KBD return code:00fa kbdc: RESET_KBD status:00aa kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000 psm0: current command byte:0067 kbdc: TEST_AUX_PORT status:0000 kbdc: RESET_AUX return code:00fe kbdc: RESET_AUX return code:00fe kbdc: RESET_AUX return code:00fe kbdc: DIAGNOSE status:0055 kbdc: TEST_KBD_PORT status:0000 psm0: failed to reset the aux device. vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 fb0: vga0, vga, type:VGA (5), flags:0x7007f fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000 fb0: init mode:24, bios mode:3, current mode:24 fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k isa_probe_children: probing PnP devices murduth@rmstar /home/murduth #usbdevs addr 1: UHCI root hub, VIA addr 2: UT-USB41 hub, Texas Instruments addr 3: Nokia USB Hub Type P, Nokia Display Products Oy addr 4: Nokia USB Monitor Control, Nokia Display Products Oy addr 5: Microsoft IntelliMouse ® with IntelliEye, Microsoft Relevant logentries for the failure Aug 19 20:41:56 rmstar /kernel: ums0: at uhub1 port 3 (addr 5) disconnected Aug 19 20:41:56 rmstar /kernel: ums0: detached Aug 19 20:41:56 rmstar moused: unable to open /dev/ums0: Device not configured Aug 19 20:41:57 rmstar /kernel: ums0: Microsoft Microsoft IntelliMouse ® with In telliEye, rev 1.10/1.00, addr 5, iclass 3/1 Aug 19 20:41:57 rmstar /kernel: ums0: 3 buttons and Z dir. Aug 20 16:39:59 rmstar /kernel: ums0: at uhub1 port 3 (addr 5) disconnected Aug 20 16:39:59 rmstar /kernel: ums0: detached Aug 20 16:39:59 rmstar moused: unable to open /dev/ums0: Device not configured Aug 20 16:39:59 rmstar /kernel: ums0: Microsoft Microsoft IntelliMouse ® with In telliEye, rev 1.10/1.00, addr 5, iclass 3/1 Aug 20 16:39:59 rmstar /kernel: ums0: 3 buttons and Z dir. Aug 20 19:07:39 rmstar /kernel: ums0: at uhub1 port 3 (addr 5) disconnected Aug 20 19:07:39 rmstar /kernel: ums0: detached Aug 20 19:07:39 rmstar moused: unable to open /dev/ums0: Device not configured Aug 20 19:07:40 rmstar /kernel: ums0: Microsoft Microsoft IntelliMouse ® with In telliEye, rev 1.10/1.00, addr 5, iclass 3/1 Aug 20 19:07:40 rmstar /kernel: ums0: 3 buttons and Z dir. Aug 20 19:09:11 rmstar /kernel: ums0: at uhub1 port 3 (addr 5) disconnected Aug 20 19:09:11 rmstar /kernel: ums0: detached Aug 20 19:09:11 rmstar moused: unable to open /dev/ums0: Device not configured Aug 20 19:09:12 rmstar /kernel: uhub1: device problem, disabling port 3 Aug 20 19:09:12 rmstar /kernel: uhub1: port error, giving up port 3 >Description: Occasionaly the mouse is detached from the USB bus and as far as i know there is no way to reattach it after it is gone. It doesn't seem to matter where on the bus the mouse is connected. >How-To-Repeat: Use the mouse. >Fix: Unknown -- regards/ Joakim >Release-Note: >Audit-Trail: Responsible-Changed-From-To: freebsd-bugs->n_hibma Responsible-Changed-By: n_hibma Responsible-Changed-When: Mon Aug 21 09:00:07 PDT 2000 Responsible-Changed-Why: I'll see whether I can figure this one out. http://www.freebsd.org/cgi/query-pr.cgi?pr=20734 From: Nick Hibma To: Joakim Henriksson Cc: freebsd-gnats-submit@FreeBSD.org Subject: Re: kern/20734: My USB mouse detaches leaving me without a mouse Date: Mon, 21 Aug 2000 17:47:16 +0100 (BST) This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-895156531-966876436=:2385 Content-Type: TEXT/PLAIN; charset=US-ASCII > Aug 20 19:09:11 rmstar /kernel: ums0: detached > Aug 20 19:09:11 rmstar moused: unable to open /dev/ums0: Device not configured > Aug 20 19:09:12 rmstar /kernel: uhub1: device problem, disabling port 3 > Aug 20 19:09:12 rmstar /kernel: uhub1: port error, giving up port 3 The problem might be that the port reset returns too quickly and the mouse isn't ready yet. Could you try the following patch (full file, sys/dev/usb/uhub.c, attached): Index: uhub.c =================================================================== RCS file: /home/ncvs/src/sys/dev/usb/uhub.c,v retrieving revision 1.26 diff -w -u -r1.26 uhub.c --- uhub.c 2000/07/17 18:41:19 1.26 +++ uhub.c 2000/08/21 16:37:04 @@ -415,8 +415,6 @@ printf("%s: strange, connected port %d has no power\n", USBDEVNAME(sc->sc_dev), port); - up->restartcnt = 0; - /* Wait for maximum device power up time. */ usbd_delay_ms(dev, USB_PORT_POWERUP_DELAY); @@ -446,9 +444,10 @@ printf("%s: device problem, disabling port %d\n", USBDEVNAME(sc->sc_dev), port); usbd_clear_port_feature(dev, port, UHF_PORT_ENABLE); - /* Make sure we don't try to restart it infinitely. */ - up->restartcnt = USBD_RESTART_MAX; } else { + /* the port set up succeeded, reset error count */ + up->restartcnt = 0; + if (up->device->hub) up->device->hub->explore(up->device); } The patch modifies the restartcnt in that it retries several times before giving up on the newly arrived device (the mouse). If that does not help, or not in all cases, could you increase the value for USB_PORT_RESET_RECOVERY in sys/dev/usb/usb.h, line 416, to 200: #define USB_PORT_RESET_RECOVERY 200 /* ms */ This should give the mouse more time to recover from the reset before it is being spoken to. Let me know if you need more information on recompiling your kernel. > >Description: > > Occasionaly the mouse is detached from the USB bus and as far as i know there > is no way to reattach it after it is gone. It doesn't seem to matter where on > the bus the mouse is connected. Do you have any indication of why the mouse detaches every so often? I've had, with an external MacAlly hub had problem with the hub shorting whenever something was plugged in. All devices connected to the hub would disconnect and reconnect at that point. Could you check for bad connector on the mouse or the hub. At the very moment the mouse disconnects are you touching else, like the monitor, a metal table, the hub itself, etc? Is the hub powered by a separate power supply Hope this helps. Thanks for the very detailed, excellent bug report! Nick -- Qube Software, Ltd. Private: n_hibma@qubesoft.com n_hibma@webweaving.org n_hibma@freebsd.org http://www.qubesoft.com/ http://www.etla.net/~n_hibma/ --0-895156531-966876436=:2385 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uhub.c" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="uhub.c" LyoJJE5ldEJTRDogdWh1Yi5jLHYgMS40NCAyMDAwLzA0LzI3IDE1OjI2OjQ4 IGF1Z3VzdHNzIEV4cCAkCSovDQovKgkkRnJlZUJTRDogc3JjL3N5cy9kZXYv dXNiL3VodWIuYyx2IDEuMjYgMjAwMC8wNy8xNyAxODo0MToxOSBuX2hpYm1h IEV4cCAkCSovDQoNCi8qDQogKiBDb3B5cmlnaHQgKGMpIDE5OTggVGhlIE5l dEJTRCBGb3VuZGF0aW9uLCBJbmMuDQogKiBBbGwgcmlnaHRzIHJlc2VydmVk Lg0KICoNCiAqIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUg Y29udHJpYnV0ZWQgdG8gVGhlIE5ldEJTRCBGb3VuZGF0aW9uDQogKiBieSBM ZW5uYXJ0IEF1Z3VzdHNzb24gKGxlbm5hcnRAYXVndXN0c3Nvbi5uZXQpIGF0 DQogKiBDYXJsc3RlZHQgUmVzZWFyY2ggJiBUZWNobm9sb2d5Lg0KICoNCiAq IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAq ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm b2xsb3dpbmcgZGlzY2xhaW1lci4NCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp Z2h0DQogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQogKiAgICBkb2N1 bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0 aCB0aGUgZGlzdHJpYnV0aW9uLg0KICogMy4gQWxsIGFkdmVydGlzaW5nIG1h dGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNv ZnR3YXJlDQogKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tu b3dsZWRnZW1lbnQ6DQogKiAgICAgICAgVGhpcyBwcm9kdWN0IGluY2x1ZGVz IHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgTmV0QlNEDQogKiAgICAgICAg Rm91bmRhdGlvbiwgSW5jLiBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4NCiAqIDQu IE5laXRoZXIgdGhlIG5hbWUgb2YgVGhlIE5ldEJTRCBGb3VuZGF0aW9uIG5v ciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICBjb250cmlidXRvcnMgbWF5IGJl IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQN CiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqDQogKiBUSElTIFNPRlRXQVJF IElTIFBST1ZJREVEIEJZIFRIRSBORVRCU0QgRk9VTkRBVElPTiwgSU5DLiBB TkQgQ09OVFJJQlVUT1JTDQogKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNT IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQNCiAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQogKiBQ VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF IEZPVU5EQVRJT04gT1IgQ09OVFJJQlVUT1JTDQogKiBCRSBMSUFCTEUgRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF WEVNUExBUlksIE9SDQogKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KICog U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQogKiBJTlRFUlJVUFRJT04p IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTg0KICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkN CiAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQogKiBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRS4NCiAqLw0KDQovKg0KICogVVNCIHNwZWM6 IGh0dHA6Ly93d3cudXNiLm9yZy9kZXZlbG9wZXJzL2RvY3MuaHRtDQogKi8N Cg0KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUgPHN5cy9zeXN0 bS5oPg0KI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4NCiNpbmNsdWRlIDxzeXMv bWFsbG9jLmg+DQojaWYgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVk KF9fT3BlbkJTRF9fKQ0KI2luY2x1ZGUgPHN5cy9kZXZpY2UuaD4NCiNpbmNs dWRlIDxzeXMvcHJvYy5oPg0KI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykN CiNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+DQojaW5jbHVkZSA8c3lzL2J1cy5o Pg0KI2luY2x1ZGUgImJ1c19pZi5oIg0KI2VuZGlmDQoNCiNpbmNsdWRlIDxt YWNoaW5lL2J1cy5oPg0KDQojaW5jbHVkZSA8ZGV2L3VzYi91c2IuaD4NCiNp bmNsdWRlIDxkZXYvdXNiL3VzYmRpLmg+DQojaW5jbHVkZSA8ZGV2L3VzYi91 c2JkaV91dGlsLmg+DQojaW5jbHVkZSA8ZGV2L3VzYi91c2JkaXZhci5oPg0K DQojZGVmaW5lIFVIVUJfSU5UUl9JTlRFUlZBTCAyNTUJLyogbXMgKi8NCg0K I2lmZGVmIFVIVUJfREVCVUcNCiNkZWZpbmUgRFBSSU5URih4KQlpZiAodWh1 YmRlYnVnKSBsb2dwcmludGYgeA0KI2RlZmluZSBEUFJJTlRGTihuLHgpCWlm ICh1aHViZGVidWc+KG4pKSBsb2dwcmludGYgeA0KaW50CXVodWJkZWJ1ZzsN CiNlbHNlDQojZGVmaW5lIERQUklOVEYoeCkNCiNkZWZpbmUgRFBSSU5URk4o bix4KQ0KI2VuZGlmDQoNCnN0cnVjdCB1aHViX3NvZnRjIHsNCglVU0JCQVNF REVWSUNFCQlzY19kZXY7CQkvKiBiYXNlIGRldmljZSAqLw0KCXVzYmRfZGV2 aWNlX2hhbmRsZQlzY19odWI7CQkvKiBVU0IgZGV2aWNlICovDQoJdXNiZF9w aXBlX2hhbmRsZQlzY19pcGlwZTsJLyogaW50ZXJydXB0IHBpcGUgKi8NCgl1 X2ludDhfdAkJc2Nfc3RhdHVzWzFdOwkvKiBYWFggbW9yZSBwb3J0cyAqLw0K CXVfY2hhcgkJCXNjX3J1bm5pbmc7DQp9Ow0KDQpTdGF0aWMgdXNiZF9zdGF0 dXMgdWh1Yl9leHBsb3JlKHVzYmRfZGV2aWNlX2hhbmRsZSBodWIpOw0KU3Rh dGljIHZvaWQgdWh1Yl9pbnRyKHVzYmRfeGZlcl9oYW5kbGUsIHVzYmRfcHJp dmF0ZV9oYW5kbGUsdXNiZF9zdGF0dXMpOw0KDQojaWYgZGVmaW5lZChfX0Zy ZWVCU0RfXykNClN0YXRpYyBidXNfY2hpbGRfZGV0YWNoZWRfdCB1aHViX2No aWxkX2RldGFjaGVkOw0KI2VuZGlmDQoNCg0KLyogDQogKiBXZSBuZWVkIHR3 byBhdHRhY2htZW50IHBvaW50czoNCiAqIGh1YiB0byB1c2IgYW5kIGh1YiB0 byBodWINCiAqIEV2ZXJ5IG90aGVyIGRyaXZlciBvbmx5IGNvbm5lY3RzIHRv IGh1YnMNCiAqLw0KDQojaWYgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZp bmVkKF9fT3BlbkJTRF9fKQ0KVVNCX0RFQ0xBUkVfRFJJVkVSKHVodWIpOw0K DQovKiBDcmVhdGUgdGhlIGRyaXZlciBpbnN0YW5jZSBmb3IgdGhlIGh1YiBj b25uZWN0ZWQgdG8gaHViIGNhc2UgKi8NCnN0cnVjdCBjZmF0dGFjaCB1aHVi X3VodWJfY2EgPSB7DQoJc2l6ZW9mKHN0cnVjdCB1aHViX3NvZnRjKSwgdWh1 Yl9tYXRjaCwgdWh1Yl9hdHRhY2gsDQoJdWh1Yl9kZXRhY2gsIHVodWJfYWN0 aXZhdGUNCn07DQojZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQ0KVVNCX0RF Q0xBUkVfRFJJVkVSX0lOSVQodWh1YiwNCgkJCURFVk1FVEhPRChidXNfY2hp bGRfZGV0YWNoZWQsIHVodWJfY2hpbGRfZGV0YWNoZWQpLA0KCQkJREVWTUVU SE9EKGRldmljZV9zdXNwZW5kLCBidXNfZ2VuZXJpY19zdXNwZW5kKSwNCgkJ CURFVk1FVEhPRChkZXZpY2VfcmVzdW1lLCBidXNfZ2VuZXJpY19yZXN1bWUp LA0KCQkJREVWTUVUSE9EKGRldmljZV9zaHV0ZG93biwgYnVzX2dlbmVyaWNf c2h1dGRvd24pDQoJCQkpOw0KCQkJDQovKiBDcmVhdGUgdGhlIGRyaXZlciBp bnN0YW5jZSBmb3IgdGhlIGh1YiBjb25uZWN0ZWQgdG8gdXNiIGNhc2UuICov DQpkZXZjbGFzc190IHVodWJyb290X2RldmNsYXNzOw0KDQpTdGF0aWMgZGV2 aWNlX21ldGhvZF90IHVodWJyb290X21ldGhvZHNbXSA9IHsNCglERVZNRVRI T0QoZGV2aWNlX3Byb2JlLCB1aHViX21hdGNoKSwNCglERVZNRVRIT0QoZGV2 aWNlX2F0dGFjaCwgdWh1Yl9hdHRhY2gpLA0KCS8qIGRldGFjaCBpcyBub3Qg YWxsb3dlZCBmb3IgYSByb290IGh1YiAqLw0KCURFVk1FVEhPRChkZXZpY2Vf c3VzcGVuZCwgYnVzX2dlbmVyaWNfc3VzcGVuZCksDQoJREVWTUVUSE9EKGRl dmljZV9yZXN1bWUsIGJ1c19nZW5lcmljX3N1c3BlbmQpLA0KCURFVk1FVEhP RChkZXZpY2Vfc2h1dGRvd24sIGJ1c19nZW5lcmljX3NodXRkb3duKSwNCgl7 MCwwfQ0KfTsNCg0KU3RhdGljCWRyaXZlcl90IHVodWJyb290X2RyaXZlciA9 IHsNCgkidWh1YiIsDQoJdWh1YnJvb3RfbWV0aG9kcywNCglzaXplb2Yoc3Ry dWN0IHVodWJfc29mdGMpDQp9Ow0KI2VuZGlmDQoNClVTQl9NQVRDSCh1aHVi KQ0Kew0KCVVTQl9NQVRDSF9TVEFSVCh1aHViLCB1YWEpOw0KCXVzYl9kZXZp Y2VfZGVzY3JpcHRvcl90ICpkZCA9IHVzYmRfZ2V0X2RldmljZV9kZXNjcmlw dG9yKHVhYS0+ZGV2aWNlKTsNCgkNCglEUFJJTlRGTig1LCgidWh1Yl9tYXRj aCwgZGQ9JXBcbiIsIGRkKSk7DQoJLyogDQoJICogVGhlIHN1YmNsYXNzIGZv ciBodWJzIHNlZW1zIHRvIGJlIDAgZm9yIHNvbWUgYW5kIDEgZm9yIG90aGVy cywNCgkgKiBzbyB3ZSBqdXN0IGlnbm9yZSB0aGUgc3ViY2xhc3MuDQoJICov DQoJaWYgKHVhYS0+aWZhY2UgPT0gTlVMTCAmJiBkZC0+YkRldmljZUNsYXNz ID09IFVDTEFTU19IVUIpDQoJCXJldHVybiAoVU1BVENIX0RFVkNMQVNTX0RF VlNVQkNMQVNTKTsNCglyZXR1cm4gKFVNQVRDSF9OT05FKTsNCn0NCg0KVVNC X0FUVEFDSCh1aHViKQ0Kew0KCVVTQl9BVFRBQ0hfU1RBUlQodWh1Yiwgc2Ms IHVhYSk7DQoJdXNiZF9kZXZpY2VfaGFuZGxlIGRldiA9IHVhYS0+ZGV2aWNl Ow0KCWNoYXIgZGV2aW5mb1sxMDI0XTsNCgl1c2JkX3N0YXR1cyBlcnI7DQoJ c3RydWN0IHVzYmRfaHViICpodWI7DQoJdXNiX2RldmljZV9yZXF1ZXN0X3Qg cmVxOw0KCXVzYl9odWJfZGVzY3JpcHRvcl90IGh1YmRlc2M7DQoJaW50IHAs IHBvcnQsIG5wb3J0cywgbnJlbW92LCBwd3JkbHk7DQoJdXNiZF9pbnRlcmZh Y2VfaGFuZGxlIGlmYWNlOw0KCXVzYl9lbmRwb2ludF9kZXNjcmlwdG9yX3Qg KmVkOw0KCQ0KCURQUklOVEZOKDEsKCJ1aHViX2F0dGFjaFxuIikpOw0KCXNj LT5zY19odWIgPSBkZXY7DQoJdXNiZF9kZXZpbmZvKGRldiwgMSwgZGV2aW5m byk7DQoJVVNCX0FUVEFDSF9TRVRVUDsNCglwcmludGYoIiVzOiAlc1xuIiwg VVNCREVWTkFNRShzYy0+c2NfZGV2KSwgZGV2aW5mbyk7DQoNCgllcnIgPSB1 c2JkX3NldF9jb25maWdfaW5kZXgoZGV2LCAwLCAxKTsNCglpZiAoZXJyKSB7 DQoJCURQUklOVEYoKCIlczogY29uZmlndXJhdGlvbiBmYWlsZWQsIGVycm9y PSVzXG4iLA0KCQkJIFVTQkRFVk5BTUUoc2MtPnNjX2RldiksIHVzYmRfZXJy c3RyKGVycikpKTsNCgkJVVNCX0FUVEFDSF9FUlJPUl9SRVRVUk47DQoJfQ0K DQoJaWYgKGRldi0+ZGVwdGggPiBVU0JfSFVCX01BWF9ERVBUSCkgew0KCQlw cmludGYoIiVzOiBodWIgZGVwdGggKCVkKSBleGNlZWRlZCwgaHViIGlnbm9y ZWRcbiIsDQoJCSAgICAgICBVU0JERVZOQU1FKHNjLT5zY19kZXYpLCBVU0Jf SFVCX01BWF9ERVBUSCk7DQoJCVVTQl9BVFRBQ0hfRVJST1JfUkVUVVJOOw0K CX0NCg0KCS8qIEdldCBodWIgZGVzY3JpcHRvci4gKi8NCglyZXEuYm1SZXF1 ZXN0VHlwZSA9IFVUX1JFQURfQ0xBU1NfREVWSUNFOw0KCXJlcS5iUmVxdWVz dCA9IFVSX0dFVF9ERVNDUklQVE9SOw0KCVVTRVRXKHJlcS53VmFsdWUsIDAp Ow0KCVVTRVRXKHJlcS53SW5kZXgsIDApOw0KCVVTRVRXKHJlcS53TGVuZ3Ro LCBVU0JfSFVCX0RFU0NSSVBUT1JfU0laRSk7DQoJRFBSSU5URk4oMSwoInVz Yl9pbml0X2h1YjogZ2V0dGluZyBodWIgZGVzY3JpcHRvclxuIikpOw0KCWVy ciA9IHVzYmRfZG9fcmVxdWVzdChkZXYsICZyZXEsICZodWJkZXNjKTsNCglu cG9ydHMgPSBodWJkZXNjLmJOYnJQb3J0czsNCglpZiAoIWVyciAmJiBucG9y dHMgPiA3KSB7DQoJCVVTRVRXKHJlcS53TGVuZ3RoLCBVU0JfSFVCX0RFU0NS SVBUT1JfU0laRSArIChucG9ydHMrMSkgLyA4KTsNCgkJZXJyID0gdXNiZF9k b19yZXF1ZXN0KGRldiwgJnJlcSwgJmh1YmRlc2MpOw0KCX0NCglpZiAoZXJy KSB7DQoJCURQUklOVEYoKCIlczogZ2V0dGluZyBodWIgZGVzY3JpcHRvciBm YWlsZWQsIGVycm9yPSVzXG4iLA0KCQkJIFVTQkRFVk5BTUUoc2MtPnNjX2Rl diksIHVzYmRfZXJyc3RyKGVycikpKTsNCgkJVVNCX0FUVEFDSF9FUlJPUl9S RVRVUk47DQoJfQ0KDQoJZm9yIChucmVtb3YgPSAwLCBwb3J0ID0gMTsgcG9y dCA8PSBucG9ydHM7IHBvcnQrKykNCgkJaWYgKCFVSERfTk9UX1JFTU9WKCZo dWJkZXNjLCBwb3J0KSkNCgkJCW5yZW1vdisrOw0KCXByaW50ZigiJXM6ICVk IHBvcnQlcyB3aXRoICVkIHJlbW92YWJsZSwgJXMgcG93ZXJlZFxuIiwNCgkg ICAgICAgVVNCREVWTkFNRShzYy0+c2NfZGV2KSwgbnBvcnRzLCBucG9ydHMg IT0gMSA/ICJzIiA6ICIiLA0KCSAgICAgICBucmVtb3YsIGRldi0+c2VsZl9w b3dlcmVkID8gInNlbGYiIDogImJ1cyIpOw0KDQoJaHViID0gbWFsbG9jKHNp emVvZigqaHViKSArIChucG9ydHMtMSkgKiBzaXplb2Yoc3RydWN0IHVzYmRf cG9ydCksDQoJCSAgICAgTV9VU0JERVYsIE1fTk9XQUlUKTsNCglpZiAoaHVi ID09IE5VTEwpDQoJCVVTQl9BVFRBQ0hfRVJST1JfUkVUVVJOOw0KCWRldi0+ aHViID0gaHViOw0KCWRldi0+aHViLT5odWJzb2Z0YyA9IHNjOw0KCWh1Yi0+ ZXhwbG9yZSA9IHVodWJfZXhwbG9yZTsNCglodWItPmh1YmRlc2MgPSBodWJk ZXNjOw0KCQ0KCURQUklOVEZOKDEsKCJ1c2JodWJfaW5pdF9odWI6IHNlbGZw b3dlcmVkPSVkLCBwYXJlbnQ9JXAsICINCgkJICAgICJwYXJlbnQtPnNlbGZw b3dlcmVkPSVkXG4iLA0KCQkgZGV2LT5zZWxmX3Bvd2VyZWQsIGRldi0+cG93 ZXJzcmMtPnBhcmVudCwNCgkJIGRldi0+cG93ZXJzcmMtPnBhcmVudCA/IA0K CQkgZGV2LT5wb3dlcnNyYy0+cGFyZW50LT5zZWxmX3Bvd2VyZWQgOiAwKSk7 DQoNCglpZiAoIWRldi0+c2VsZl9wb3dlcmVkICYmIGRldi0+cG93ZXJzcmMt PnBhcmVudCAhPSBOVUxMICYmDQoJICAgICFkZXYtPnBvd2Vyc3JjLT5wYXJl bnQtPnNlbGZfcG93ZXJlZCkgew0KCQlwcmludGYoIiVzOiBidXMgcG93ZXJl ZCBodWIgY29ubmVjdGVkIHRvIGJ1cyBwb3dlcmVkIGh1YiwgIg0KCQkgICAg ICAgImlnbm9yZWRcbiIsIFVTQkRFVk5BTUUoc2MtPnNjX2RldikpOw0KCQln b3RvIGJhZDsNCgl9DQoNCgkvKiBTZXQgdXAgaW50ZXJydXB0IHBpcGUuICov DQoJZXJyID0gdXNiZF9kZXZpY2UyaW50ZXJmYWNlX2hhbmRsZShkZXYsIDAs ICZpZmFjZSk7DQoJaWYgKGVycikgew0KCQlwcmludGYoIiVzOiBubyBpbnRl cmZhY2UgaGFuZGxlXG4iLCBVU0JERVZOQU1FKHNjLT5zY19kZXYpKTsNCgkJ Z290byBiYWQ7DQoJfQ0KCWVkID0gdXNiZF9pbnRlcmZhY2UyZW5kcG9pbnRf ZGVzY3JpcHRvcihpZmFjZSwgMCk7DQoJaWYgKGVkID09IE5VTEwpIHsNCgkJ cHJpbnRmKCIlczogbm8gZW5kcG9pbnQgZGVzY3JpcHRvclxuIiwgVVNCREVW TkFNRShzYy0+c2NfZGV2KSk7DQoJCWdvdG8gYmFkOw0KCX0NCglpZiAoKGVk LT5ibUF0dHJpYnV0ZXMgJiBVRV9YRkVSVFlQRSkgIT0gVUVfSU5URVJSVVBU KSB7DQoJCXByaW50ZigiJXM6IGJhZCBpbnRlcnJ1cHQgZW5kcG9pbnRcbiIs IFVTQkRFVk5BTUUoc2MtPnNjX2RldikpOw0KCQlnb3RvIGJhZDsNCgl9DQoN CgllcnIgPSB1c2JkX29wZW5fcGlwZV9pbnRyKGlmYWNlLCBlZC0+YkVuZHBv aW50QWRkcmVzcywNCgkJICBVU0JEX1NIT1JUX1hGRVJfT0ssICZzYy0+c2Nf aXBpcGUsIHNjLCBzYy0+c2Nfc3RhdHVzLCANCgkJICBzaXplb2Yoc2MtPnNj X3N0YXR1cyksIHVodWJfaW50ciwgVUhVQl9JTlRSX0lOVEVSVkFMKTsNCglp ZiAoZXJyKSB7DQoJCXByaW50ZigiJXM6IGNhbm5vdCBvcGVuIGludGVycnVw dCBwaXBlXG4iLCANCgkJICAgICAgIFVTQkRFVk5BTUUoc2MtPnNjX2Rldikp Ow0KCQlnb3RvIGJhZDsNCgl9DQoNCgkvKiBXYWl0IHdpdGggcG93ZXIgb2Zm IGZvciBhIHdoaWxlLiAqLw0KCXVzYmRfZGVsYXlfbXMoZGV2LCBVU0JfUE9X RVJfRE9XTl9USU1FKTsNCg0KCS8qDQoJICogVG8gaGF2ZSB0aGUgYmVzdCBj aGFuY2Ugb2Ygc3VjY2VzcyB3ZSBkbyB0aGluZ3MgaW4gdGhlIGV4YWN0IHNh bWUNCgkgKiBvcmRlciBhcyBXaW5kb3plOTguICBUaGlzIHNob3VsZCBub3Qg YmUgbmVjZXNzYXJ5LCBidXQgc29tZQ0KCSAqIGRldmljZXMgZG8gbm90IGZv bGxvdyB0aGUgVVNCIHNwZWNzIHRvIHRoZSBsZXR0ZXIuDQoJICoNCgkgKiBU aGVzZSBhcmUgdGhlIGV2ZW50cyBvbiB0aGUgYnVzIHdoZW4gYSBodWIgaXMg YXR0YWNoZWQ6DQoJICogIEdldCBkZXZpY2UgYW5kIGNvbmZpZyBkZXNjcmlw dG9ycyAoc2VlIGF0dGFjaCBjb2RlKQ0KCSAqICBHZXQgaHViIGRlc2NyaXB0 b3IgKHNlZSBhYm92ZSkNCgkgKiAgRm9yIGFsbCBwb3J0cw0KCSAqICAgICB0 dXJuIG9uIHBvd2VyDQoJICogICAgIHdhaXQgZm9yIHBvd2VyIHRvIGJlY29t ZSBzdGFibGUNCgkgKiAoYWxsIGJlbG93IGhhcHBlbnMgaW4gZXhwbG9yZSBj b2RlKQ0KCSAqICBGb3IgYWxsIHBvcnRzDQoJICogICAgIGNsZWFyIENfUE9S VF9DT05ORUNUSU9ODQoJICogIEZvciBhbGwgcG9ydHMNCgkgKiAgICAgZ2V0 IHBvcnQgc3RhdHVzDQoJICogICAgIGlmIGRldmljZSBjb25uZWN0ZWQNCgkg KiAgICAgICAgdHVybiBvbiByZXNldA0KCSAqICAgICAgICB3YWl0DQoJICog ICAgICAgIGNsZWFyIENfUE9SVF9SRVNFVA0KCSAqICAgICAgICBnZXQgcG9y dCBzdGF0dXMNCgkgKiAgICAgICAgcHJvY2VlZCB3aXRoIGRldmljZSBhdHRh Y2htZW50DQoJICovDQoNCgkvKiBTZXQgdXAgZGF0YSBzdHJ1Y3R1cmVzICov DQoJZm9yIChwID0gMDsgcCA8IG5wb3J0czsgcCsrKSB7DQoJCXN0cnVjdCB1 c2JkX3BvcnQgKnVwID0gJmh1Yi0+cG9ydHNbcF07DQoJCXVwLT5kZXZpY2Ug PSAwOw0KCQl1cC0+cGFyZW50ID0gZGV2Ow0KCQl1cC0+cG9ydG5vID0gcCsx Ow0KCQlpZiAoZGV2LT5zZWxmX3Bvd2VyZWQpDQoJCQkvKiBTZWxmIHBvd2Vy ZWQgaHViLCBnaXZlIHBvcnRzIG1heGltdW0gY3VycmVudC4gKi8NCgkJCXVw LT5wb3dlciA9IFVTQl9NQVhfUE9XRVI7DQoJCWVsc2UNCgkJCXVwLT5wb3dl ciA9IFVTQl9NSU5fUE9XRVI7DQoJfQ0KDQoJLyogWFhYIHNob3VsZCBjaGVj ayBmb3Igbm9uZSwgaW5kaXZpZHVhbCwgb3IgZ2FuZ2VkIHBvd2VyPyAqLw0K DQoJcHdyZGx5ID0gZGV2LT5odWItPmh1YmRlc2MuYlB3ck9uMlB3ckdvb2Qg KiBVSERfUFdST05fRkFDVE9SDQoJICAgICsgVVNCX0VYVFJBX1BPV0VSX1VQ X1RJTUU7DQoJZm9yIChwb3J0ID0gMTsgcG9ydCA8PSBucG9ydHM7IHBvcnQr Kykgew0KCQkvKiBUdXJuIHRoZSBwb3dlciBvbi4gKi8NCgkJZXJyID0gdXNi ZF9zZXRfcG9ydF9mZWF0dXJlKGRldiwgcG9ydCwgVUhGX1BPUlRfUE9XRVIp Ow0KCQlpZiAoZXJyKQ0KCQkJcHJpbnRmKCIlczogcG9ydCAlZCBwb3dlciBv biBmYWlsZWQsICVzXG4iLCANCgkJCSAgICAgICBVU0JERVZOQU1FKHNjLT5z Y19kZXYpLCBwb3J0LA0KCQkJICAgICAgIHVzYmRfZXJyc3RyKGVycikpOw0K CQlEUFJJTlRGKCgidXNiX2luaXRfcG9ydDogdHVybiBvbiBwb3J0ICVkIHBv d2VyXG4iLCBwb3J0KSk7DQoJCS8qIFdhaXQgZm9yIHN0YWJsZSBwb3dlci4g Ki8NCgkJdXNiZF9kZWxheV9tcyhkZXYsIHB3cmRseSk7DQoJfQ0KDQoJLyog VGhlIHVzdWFsIGV4cGxvcmF0aW9uIHdpbGwgZmluaXNoIHRoZSBzZXR1cC4g Ki8NCg0KCXNjLT5zY19ydW5uaW5nID0gMTsNCg0KCVVTQl9BVFRBQ0hfU1VD Q0VTU19SRVRVUk47DQoNCiBiYWQ6DQoJZnJlZShodWIsIE1fVVNCREVWKTsN CglkZXYtPmh1YiA9IDA7DQoJVVNCX0FUVEFDSF9FUlJPUl9SRVRVUk47DQp9 DQoNCnVzYmRfc3RhdHVzDQp1aHViX2V4cGxvcmUoZGV2KQ0KCXVzYmRfZGV2 aWNlX2hhbmRsZSBkZXY7DQp7DQoJdXNiX2h1Yl9kZXNjcmlwdG9yX3QgKmhk ID0gJmRldi0+aHViLT5odWJkZXNjOw0KCXN0cnVjdCB1aHViX3NvZnRjICpz YyA9IGRldi0+aHViLT5odWJzb2Z0YzsNCglzdHJ1Y3QgdXNiZF9wb3J0ICp1 cDsNCgl1c2JkX3N0YXR1cyBlcnI7DQoJaW50IHBvcnQ7DQoJaW50IGNoYW5n ZSwgc3RhdHVzOw0KDQoJRFBSSU5URk4oMTAsICgidWh1Yl9leHBsb3JlIGRl dj0lcCBhZGRyPSVkXG4iLCBkZXYsIGRldi0+YWRkcmVzcykpOw0KDQoJaWYg KCFzYy0+c2NfcnVubmluZykNCgkJcmV0dXJuIChVU0JEX05PVF9TVEFSVEVE KTsNCg0KCS8qIElnbm9yZSBodWJzIHRoYXQgYXJlIHRvbyBkZWVwLiAqLw0K CWlmIChkZXYtPmRlcHRoID4gVVNCX0hVQl9NQVhfREVQVEgpDQoJCXJldHVy biAoVVNCRF9UT09fREVFUCk7DQoNCglmb3IocG9ydCA9IDE7IHBvcnQgPD0g aGQtPmJOYnJQb3J0czsgcG9ydCsrKSB7DQoJCXVwID0gJmRldi0+aHViLT5w b3J0c1twb3J0LTFdOw0KCQllcnIgPSB1c2JkX2dldF9wb3J0X3N0YXR1cyhk ZXYsIHBvcnQsICZ1cC0+c3RhdHVzKTsNCgkJaWYgKGVycikgew0KCQkJRFBS SU5URigoInVodWJfZXhwbG9yZTogZ2V0IHBvcnQgc3RhdHVzIGZhaWxlZCwg Ig0KCQkJCSAiZXJyb3I9JXNcbiIsIHVzYmRfZXJyc3RyKGVycikpKTsNCgkJ CWNvbnRpbnVlOw0KCQl9DQoJCXN0YXR1cyA9IFVHRVRXKHVwLT5zdGF0dXMu d1BvcnRTdGF0dXMpOw0KCQljaGFuZ2UgPSBVR0VUVyh1cC0+c3RhdHVzLndQ b3J0Q2hhbmdlKTsNCgkJRFBSSU5URk4oMywoInVodWJfZXhwbG9yZTogcG9y dCAlZCBzdGF0dXMgMHglMDR4IDB4JTA0eFxuIiwNCgkJCSAgICBwb3J0LCBz dGF0dXMsIGNoYW5nZSkpOw0KCQlpZiAoY2hhbmdlICYgVVBTX0NfUE9SVF9F TkFCTEVEKSB7DQoJCQlEUFJJTlRGKCgidWh1Yl9leHBsb3JlOiBDX1BPUlRf RU5BQkxFRFxuIikpOw0KCQkJdXNiZF9jbGVhcl9wb3J0X2ZlYXR1cmUoZGV2 LCBwb3J0LCBVSEZfQ19QT1JUX0VOQUJMRSk7DQoJCQlpZiAoc3RhdHVzICYg VVBTX1BPUlRfRU5BQkxFRCkgew0KCQkJCXByaW50ZigiJXM6IGlsbGVnYWwg ZW5hYmxlIGNoYW5nZSwgcG9ydCAlZFxuIiwNCgkJCQkgICAgICAgVVNCREVW TkFNRShzYy0+c2NfZGV2KSwgcG9ydCk7DQoJCQl9IGVsc2Ugew0KCQkJCS8q IFBvcnQgZXJyb3IgY29uZGl0aW9uLiAqLw0KCQkJCWlmICh1cC0+cmVzdGFy dGNudCsrIDwgVVNCRF9SRVNUQVJUX01BWCkgew0KCQkJCQlwcmludGYoIiVz OiBwb3J0IGVycm9yLCByZXN0YXJ0aW5nICINCgkJCQkJICAgICAgICJwb3J0 ICVkXG4iLA0KCQkJCQkgICAgICAgVVNCREVWTkFNRShzYy0+c2NfZGV2KSwg cG9ydCk7DQoJCQkJCWdvdG8gZGlzY287DQoJCQkJfSBlbHNlIHsNCgkJCQkJ cHJpbnRmKCIlczogcG9ydCBlcnJvciwgZ2l2aW5nIHVwICINCgkJCQkJICAg ICAgICJwb3J0ICVkXG4iLA0KCQkJCQkgICAgICAgVVNCREVWTkFNRShzYy0+ c2NfZGV2KSwgcG9ydCk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWlmICghKGNo YW5nZSAmIFVQU19DX0NPTk5FQ1RfU1RBVFVTKSkgew0KCQkJRFBSSU5URk4o MywoInVodWJfZXhwbG9yZTogcG9ydD0lZCAhQ19DT05ORUNUXyINCgkJCQkg ICAgIlNUQVRVU1xuIiwgcG9ydCkpOw0KCQkJLyogTm8gc3RhdHVzIGNoYW5n ZSwganVzdCBkbyByZWN1cnNpdmUgZXhwbG9yZS4gKi8NCgkJCWlmICh1cC0+ ZGV2aWNlICYmIHVwLT5kZXZpY2UtPmh1YikNCgkJCQl1cC0+ZGV2aWNlLT5o dWItPmV4cGxvcmUodXAtPmRldmljZSk7DQoJCQljb250aW51ZTsNCgkJfQ0K DQoJCS8qIFdlIGhhdmUgYSBjb25uZWN0IHN0YXR1cyBjaGFuZ2UsIGhhbmRs ZSBpdC4gKi8NCg0KCQlEUFJJTlRGKCgidWh1Yl9leHBsb3JlOiBzdGF0dXMg Y2hhbmdlIGh1Yj0lZCBwb3J0PSVkXG4iLA0KCQkJIGRldi0+YWRkcmVzcywg cG9ydCkpOw0KCQl1c2JkX2NsZWFyX3BvcnRfZmVhdHVyZShkZXYsIHBvcnQs IFVIRl9DX1BPUlRfQ09OTkVDVElPTik7DQoJCS8qdXNiZF9jbGVhcl9wb3J0 X2ZlYXR1cmUoZGV2LCBwb3J0LCBVSEZfQ19QT1JUX0VOQUJMRSk7Ki8NCgkJ LyoNCgkJICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGRldmljZSBvbiB0aGUg cG9ydCB0aGUgY2hhbmdlIHN0YXR1cw0KCQkgKiBtdXN0IG1lYW4gdGhhdCBp cyBoYXMgZGlzY29ubmVjdGVkLiAgTG9va2luZyBhdCB0aGUNCgkJICogY3Vy cmVudCBjb25uZWN0IHN0YXR1cyBpcyBub3QgZW5vdWdoIHRvIGZpZ3VyZSB0 aGlzIG91dA0KCQkgKiBzaW5jZSBhIG5ldyB1bml0IG1heSBoYXZlIGJlZW4g Y29ubmVjdGVkIGJlZm9yZSB3ZSBoYW5kbGUNCgkJICogdGhlIGRpc2Nvbm5l Y3QuDQoJCSAqLw0KCWRpc2NvOg0KCQlpZiAodXAtPmRldmljZSAhPSBOVUxM KSB7DQoJCQkvKiBEaXNjb25uZWN0ZWQgKi8NCgkJCURQUklOVEYoKCJ1aHVi X2V4cGxvcmU6IGRldmljZSBhZGRyPSVkIGRpc2FwcGVhcmVkICINCgkJCQkg Im9uIHBvcnQgJWRcbiIsIHVwLT5kZXZpY2UtPmFkZHJlc3MsIHBvcnQpKTsN CgkJCXVzYl9kaXNjb25uZWN0X3BvcnQodXAsIFVTQkRFVihzYy0+c2NfZGV2 KSk7DQoJCQl1c2JkX2NsZWFyX3BvcnRfZmVhdHVyZShkZXYsIHBvcnQsIA0K CQkJCQkJVUhGX0NfUE9SVF9DT05ORUNUSU9OKTsNCgkJfQ0KCQlpZiAoIShz dGF0dXMgJiBVUFNfQ1VSUkVOVF9DT05ORUNUX1NUQVRVUykpIHsNCgkJCS8q IE5vdGhpbmcgY29ubmVjdGVkLCBqdXN0IGlnbm9yZSBpdC4gKi8NCgkJCURQ UklOVEZOKDMsKCJ1aHViX2V4cGxvcmU6IHBvcnQ9JWQgIUNVUlJFTlRfQ09O TkVDVCINCgkJCQkgICAgIl9TVEFUVVNcbiIsIHBvcnQpKTsNCgkJCWNvbnRp bnVlOw0KCQl9DQoNCgkJLyogQ29ubmVjdGVkICovDQoNCgkJaWYgKCEoc3Rh dHVzICYgVVBTX1BPUlRfUE9XRVIpKQ0KCQkJcHJpbnRmKCIlczogc3RyYW5n ZSwgY29ubmVjdGVkIHBvcnQgJWQgaGFzIG5vIHBvd2VyXG4iLA0KCQkJICAg ICAgIFVTQkRFVk5BTUUoc2MtPnNjX2RldiksIHBvcnQpOw0KDQoJCS8qIFdh aXQgZm9yIG1heGltdW0gZGV2aWNlIHBvd2VyIHVwIHRpbWUuICovDQoJCXVz YmRfZGVsYXlfbXMoZGV2LCBVU0JfUE9SVF9QT1dFUlVQX0RFTEFZKTsNCg0K CQkvKiBSZXNldCBwb3J0LCB3aGljaCBpbXBsaWVzIGVuYWJsaW5nIGl0LiAq Lw0KCQlpZiAodXNiZF9yZXNldF9wb3J0KGRldiwgcG9ydCwgJnVwLT5zdGF0 dXMpKSB7DQoJCQlwcmludGYoInVodWJfZXhwbG9yZTogcG9ydD0lZCByZXNl dCBmYWlsZWRcbiIsDQoJCQkJIHBvcnQpOw0KCQkJY29udGludWU7DQoJCX0N Cg0KCQkvKiBHZXQgZGV2aWNlIGluZm8gYW5kIHNldCBpdHMgYWRkcmVzcy4g Ki8NCgkJZXJyID0gdXNiZF9uZXdfZGV2aWNlKFVTQkRFVihzYy0+c2NfZGV2 KSwgZGV2LT5idXMsIA0KCQkJICBkZXYtPmRlcHRoICsgMSwgc3RhdHVzICYg VVBTX0xPV19TUEVFRCwgDQoJCQkgIHBvcnQsIHVwKTsNCgkJLyogWFhYIHJl dHJ5IGEgZmV3IHRpbWVzPyAqLw0KCQlpZiAoZXJyKSB7DQoJCQlEUFJJTlRG TigtMSwoInVodWJfZXhwbG9yZTogdXNiX25ld19kZXZpY2UgZmFpbGVkLCAi DQoJCQkJICAgICAiZXJyb3I9JXNcbiIsIHVzYmRfZXJyc3RyKGVycikpKTsN CgkJCS8qIEF2b2lkIGFkZHJlc3NpbmcgcHJvYmxlbXMgYnkgZGlzYWJsaW5n LiAqLw0KCQkJLyogdXNiZF9yZXNldF9wb3J0KGRldiwgcG9ydCwgJnVwLT5z dGF0dXMpOyAqLw0KDQoJCQkvKiANCgkJCSAqIFRoZSB1bml0IHJlZnVzZWQg dG8gYWNjZXB0IGEgbmV3IGFkZHJlc3MsIG9yIGhhZA0KCQkJICogc29tZSBv dGhlciBzZXJpb3VzIHByb2JsZW0uICBTaW5jZSB3ZSBjYW5ub3QgbGVhdmUN CgkJCSAqIGF0IDAgd2UgaGF2ZSB0byBkaXNhYmxlIHRoZSBwb3J0IGluc3Rl YWQuDQoJCQkgKi8NCgkJCXByaW50ZigiJXM6IGRldmljZSBwcm9ibGVtLCBk aXNhYmxpbmcgcG9ydCAlZFxuIiwNCgkJCSAgICAgICBVU0JERVZOQU1FKHNj LT5zY19kZXYpLCBwb3J0KTsNCgkJCXVzYmRfY2xlYXJfcG9ydF9mZWF0dXJl KGRldiwgcG9ydCwgVUhGX1BPUlRfRU5BQkxFKTsNCgkJfSBlbHNlIHsNCgkJ CS8qIHRoZSBwb3J0IHNldCB1cCBzdWNjZWVkZWQsIHJlc2V0IGVycm9yIGNv dW50ICovDQoJCQl1cC0+cmVzdGFydGNudCA9IDA7DQoNCgkJCWlmICh1cC0+ ZGV2aWNlLT5odWIpDQoJCQkJdXAtPmRldmljZS0+aHViLT5leHBsb3JlKHVw LT5kZXZpY2UpOw0KCQl9DQoJfQ0KCXJldHVybiAoVVNCRF9OT1JNQUxfQ09N UExFVElPTik7DQp9DQoNCiNpZiBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRl ZmluZWQoX19PcGVuQlNEX18pDQppbnQNCnVodWJfYWN0aXZhdGUoc2VsZiwg YWN0KQ0KCWRldmljZV9wdHJfdCBzZWxmOw0KCWVudW0gZGV2YWN0IGFjdDsN CnsNCglzdHJ1Y3QgdWh1Yl9zb2Z0YyAqc2MgPSAoc3RydWN0IHVodWJfc29m dGMgKilzZWxmOw0KCXN0cnVjdCB1c2JkX2h1YiAqaHViID0gc2MtPnNjX2h1 Yi0+aHViOw0KCXVzYmRfZGV2aWNlX2hhbmRsZSBkZXY7DQoJaW50IG5wb3J0 cywgcG9ydCwgaTsNCg0KCXN3aXRjaCAoYWN0KSB7DQoJY2FzZSBEVkFDVF9B Q1RJVkFURToNCgkJcmV0dXJuIChFT1BOT1RTVVBQKTsNCgkJYnJlYWs7DQoN CgljYXNlIERWQUNUX0RFQUNUSVZBVEU6DQoJCWlmIChodWIgPT0gTlVMTCkg LyogbWFsZnVuY3Rpb25pbmcgaHViICovDQoJCQlicmVhazsNCgkJbnBvcnRz ID0gaHViLT5odWJkZXNjLmJOYnJQb3J0czsNCgkJZm9yKHBvcnQgPSAwOyBw b3J0IDwgbnBvcnRzOyBwb3J0KyspIHsNCgkJCWRldiA9IGh1Yi0+cG9ydHNb cG9ydF0uZGV2aWNlOw0KCQkJaWYgKGRldiAhPSBOVUxMKSB7DQoJCQkJZm9y IChpID0gMDsgZGV2LT5zdWJkZXZzW2ldOyBpKyspDQoJCQkJCWNvbmZpZ19k ZWFjdGl2YXRlKGRldi0+c3ViZGV2c1tpXSk7DQoJCQl9DQoJCX0NCgkJYnJl YWs7DQoJfQ0KCXJldHVybiAoMCk7DQp9DQojZW5kaWYNCg0KLyoNCiAqIENh bGxlZCBmcm9tIHByb2Nlc3MgY29udGV4dCB3aGVuIHRoZSBodWIgaXMgZ29u ZS4NCiAqIERldGFjaCBhbGwgZGV2aWNlcyBvbiBhY3RpdmUgcG9ydHMuDQog Ki8NClVTQl9ERVRBQ0godWh1YikNCnsNCglVU0JfREVUQUNIX1NUQVJUKHVo dWIsIHNjKTsNCglzdHJ1Y3QgdXNiZF9odWIgKmh1YiA9IHNjLT5zY19odWIt Pmh1YjsNCglzdHJ1Y3QgdXNiZF9wb3J0ICpydXA7DQoJaW50IHBvcnQsIG5w b3J0czsNCg0KI2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChf X09wZW5CU0RfXykNCglEUFJJTlRGKCgidWh1Yl9kZXRhY2g6IHNjPSVwIGZs YWdzPSVkXG4iLCBzYywgZmxhZ3MpKTsNCiNlbGlmIGRlZmluZWQoX19GcmVl QlNEX18pDQoJRFBSSU5URigoInVodWJfZGV0YWNoOiBzYz0lcG9ydFxuIiwg c2MpKTsNCiNlbmRpZg0KDQoJaWYgKGh1YiA9PSBOVUxMKQkJLyogTXVzdCBi ZSBwYXJ0aWFsbHkgd29ya2luZyAqLw0KCQlyZXR1cm4gKDApOw0KDQoJdXNi ZF9hYm9ydF9waXBlKHNjLT5zY19pcGlwZSk7DQoJdXNiZF9jbG9zZV9waXBl KHNjLT5zY19pcGlwZSk7DQoNCglucG9ydHMgPSBodWItPmh1YmRlc2MuYk5i clBvcnRzOw0KCWZvcihwb3J0ID0gMDsgcG9ydCA8IG5wb3J0czsgcG9ydCsr KSB7DQoJCXJ1cCA9ICZodWItPnBvcnRzW3BvcnRdOw0KCQlpZiAocnVwLT5k ZXZpY2UpDQoJCQl1c2JfZGlzY29ubmVjdF9wb3J0KHJ1cCwgc2VsZik7DQoJ fQ0KCQ0KDQoJZnJlZShodWIsIE1fVVNCREVWKTsNCglzYy0+c2NfaHViLT5o dWIgPSBOVUxMOw0KDQoJcmV0dXJuICgwKTsNCn0NCg0KI2lmIGRlZmluZWQo X19GcmVlQlNEX18pDQovKiBDYWxsZWQgd2hlbiBhIGRldmljZSBoYXMgYmVl biBkZXRhY2hlZCBmcm9tIGl0ICovDQpTdGF0aWMgdm9pZA0KdWh1Yl9jaGls ZF9kZXRhY2hlZChzZWxmLCBjaGlsZCkNCiAgICAgICBkZXZpY2VfdCBzZWxm Ow0KICAgICAgIGRldmljZV90IGNoaWxkOw0Kew0KICAgICAgIHN0cnVjdCB1 aHViX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoc2VsZik7DQogICAg ICAgdXNiZF9kZXZpY2VfaGFuZGxlIGRldmh1YiA9IHNjLT5zY19odWI7DQog ICAgICAgdXNiZF9kZXZpY2VfaGFuZGxlIGRldjsNCiAgICAgICBpbnQgbnBv cnRzOw0KICAgICAgIGludCBwb3J0Ow0KICAgICAgIGludCBpOw0KDQogICAg ICAgaWYgKCFkZXZodWItPmh1YikgIA0KICAgICAgICAgICAgICAgLyogc2hv dWxkIG5ldmVyIGhhcHBlbjsgY2hpbGRyZW4gYXJlIG9ubHkgY3JlYXRlZCBh ZnRlciBpbml0ICovDQogICAgICAgICAgICAgICBwYW5pYygiaHViIG5vdCBm dWxseSBpbml0aWFsaXNlZCwgYnV0IGNoaWxkIGRlbGV0ZWQ/Iik7DQoNCiAg ICAgICBucG9ydHMgPSBkZXZodWItPmh1Yi0+aHViZGVzYy5iTmJyUG9ydHM7 DQogICAgICAgZm9yIChwb3J0ID0gMDsgcG9ydCA8IG5wb3J0czsgcG9ydCsr KSB7DQogICAgICAgICAgICAgICBkZXYgPSBkZXZodWItPmh1Yi0+cG9ydHNb cG9ydF0uZGV2aWNlOw0KICAgICAgICAgICAgICAgaWYgKGRldiAmJiBkZXYt PnN1YmRldnMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0g MDsgZGV2LT5zdWJkZXZzW2ldOyBpKyspIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoZGV2LT5zdWJkZXZzW2ldID09IGNoaWxkKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYt PnN1YmRldnNbaV0gPSBOVUxMOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgfQ0KICAgICAgIH0NCn0NCiNlbmRpZg0KDQoNCi8qDQogKiBI dWIgaW50ZXJydXB0Lg0KICogVGhpcyBhbiBpbmRpY2F0aW9uIHRoYXQgc29t ZSBwb3J0IGhhcyBjaGFuZ2VkIHN0YXR1cy4NCiAqIE5vdGlmeSB0aGUgYnVz IGV2ZW50IGhhbmRsZXIgdGhyZWFkIHRoYXQgd2UgbmVlZA0KICogdG8gYmUg ZXhwbG9yZWQgYWdhaW4uDQogKi8NCnZvaWQNCnVodWJfaW50cih4ZmVyLCBh ZGRyLCBzdGF0dXMpDQoJdXNiZF94ZmVyX2hhbmRsZSB4ZmVyOw0KCXVzYmRf cHJpdmF0ZV9oYW5kbGUgYWRkcjsNCgl1c2JkX3N0YXR1cyBzdGF0dXM7DQp7 DQoJc3RydWN0IHVodWJfc29mdGMgKnNjID0gYWRkcjsNCg0KCURQUklOVEZO KDUsKCJ1aHViX2ludHI6IHNjPSVwXG4iLCBzYykpOw0KCWlmIChzdGF0dXMg IT0gVVNCRF9OT1JNQUxfQ09NUExFVElPTikNCgkJdXNiZF9jbGVhcl9lbmRw b2ludF9zdGFsbF9hc3luYyhzYy0+c2NfaXBpcGUpOw0KDQoJdXNiX25lZWRz X2V4cGxvcmUoc2MtPnNjX2h1Yi0+YnVzKTsNCn0NCg0KI2lmIGRlZmluZWQo X19GcmVlQlNEX18pDQpEUklWRVJfTU9EVUxFKHVodWIsIHVzYiwgdWh1YnJv b3RfZHJpdmVyLCB1aHVicm9vdF9kZXZjbGFzcywgMCwgMCk7DQpEUklWRVJf TU9EVUxFKHVodWIsIHVodWIsIHVodWJfZHJpdmVyLCB1aHViX2RldmNsYXNz LCB1c2JkX2RyaXZlcl9sb2FkLCAwKTsNCiNlbmRpZg0K --0-895156531-966876436=:2385-- From: Joakim Henriksson To: rendhalver@users.sourceforge.net Cc: mailto: ; Subject: Re: kern/20734: USB mouse detaches and never reataches Date: Thu, 29 Nov 2001 17:23:32 +0100 > i get the same problems with my mouse disapearing > it happens about every hour or two > the only way i have found to fix it is to reboot my system > > the patch submitted wont work for my version of src/sys/dev/usb/uhub.c > > can someone remake the patch for 4.4 release ?? My problem was a very broken cable. I cut of half a meter of it and resoldered it inside the mouse. Not a problem since... -- regards/ Joakim State-Changed-From-To: open->closed State-Changed-By: n_hibma State-Changed-When: Thu Nov 29 08:49:23 PST 2001 State-Changed-Why: Hardware fault it seems. Thanks for confirming. http://www.FreeBSD.org/cgi/query-pr.cgi?pr=20734 From: Peter Brown To: freebsd-gnats-submit@FreeBSD.org, murduth@ludd.luth.se Cc: Subject: Re: kern/20734: USB mouse detaches and never reataches Date: Sat, 1 Dec 2001 13:10:29 +1000 hi all i just bought my mouse about 2 months ago so i'm not going th cut it up just yet its not a hardware fault in my case if i unplug the mouse and plug it back in it works for a while again why does the mouse detach in the first place ?? i would like a patch for 4.4 thanks From: Nick Hibma To: freebsd-gnats-submit@FreeBSD.org, murduth@ludd.luth.se Cc: Subject: Re: kern/20734: USB mouse detaches and never reataches Date: Sat, 01 Dec 2001 11:28:57 +0000 The reason for disconnection is probably that the mouse is cheap and electrically unstable, producing a disconnect once in a while. Or the firmware is shoddy and freezes up once in a while. Lots of reasons. But it is definitely not the USB stack's fault as the stack only disconnects the mouse in the case where it disconnects itself electrically from the hub. From: Peter Brown To: freebsd-gnats-submit@FreeBSD.org Cc: Subject: Re: kern/20734: USB mouse detaches and never reataches Date: Sun, 2 Dec 2001 11:19:33 +1000 > The reason for disconnection is probably that the mouse is cheap and > electrically unstable, producing a disconnect once in a while. i wish people wouldnt insult hardware they have never met i bought this mouse in particular because it was actually on the list of usb mice that FreeBSD supports > Or the firmware is shoddy and freezes up once in a while. well my mother board is one of the early usb ones > Lots of reasons. But it is definitely not the USB stack's fault as the > stack only disconnects the mouse in the case where it disconnects itself > electrically from the hub. so why does it not reconnect in these instances ???? that other infamous OS does >Unformatted: