On Thu, 7 Dec 2006, Robert Dyck wrote: > I recently introduced 2.6.19 on one of my machines. A change made in > uhci-hcd.c is causing a problem for me. I had previously become aware of an > incompatibility between my web cam ( with microphone ) and KDE kmix. When the > camera is disconnected kmix appears to go into a loop and the CPU cycles at > 100%. This is a minor inconvenience because it is easily avoided but now when > I suspend and resume it elicits the same response as a disconnect. I have to > kill kmix and restart it.
This sounds like a problem with kmix, not a problem with uhci-hcd. Have you reported it to the people responsible for that program? > The change to uhci-hcd.c targets the ASUS A7V8X motherboard. My A7V8X-X has > not exhibited the behaviour that the patch was meant to address. Perhaps we > can also assume that the problem has been corrected in the -MX and -MX SE > boards as well. > > On my system I made a small change that works for me. I changed > DMI_MATCH(DMI_BOARD_NAME, "A7V8X") to > DMI_MATCH(DMI_BOARD_NAME, "A7V8X ") > Notice the space after A7V8X. > > I hope this information is helpful. > Rob Dyck In fact I don't even have any real evidence that the original problem exists on all A7V8X motherboards; it might exist only on the one board owned by Tim, the original reporter. Are you sure that your change will work? I suspect the string you need to match against is "A7V8X" with no space at the end. This would mean your change will break the original code. How about the patch below instead? Tim, can you confirm that your system is okay with it? Alan Stern Index: usb-2.6/drivers/usb/host/uhci-hcd.c =================================================================== --- usb-2.6.orig/drivers/usb/host/uhci-hcd.c +++ usb-2.6/drivers/usb/host/uhci-hcd.c @@ -209,24 +209,16 @@ static int resume_detect_interrupts_are_ static int remote_wakeup_is_broken(struct uhci_hcd *uhci) { - static struct dmi_system_id broken_wakeup_table[] = { - { - .ident = "Asus A7V8X", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK"), - DMI_MATCH(DMI_BOARD_NAME, "A7V8X"), - DMI_MATCH(DMI_BOARD_VERSION, "REV 1.xx"), - } - }, - { } - }; int port; + char *sys_info; + static char bad_Asus_board[] = "A7V8X"; /* One of Asus's motherboards has a bug which causes it to * wake up immediately from suspend-to-RAM if any of the ports * are connected. In such cases we will not set EGSM. */ - if (dmi_check_system(broken_wakeup_table)) { + sys_info = dmi_get_system_info(DMI_BOARD_NAME); + if (sys_info && !strcmp(sys_info, bad_Asus_board)) { for (port = 0; port < uhci->rh_numports; ++port) { if (inw(uhci->io_addr + USBPORTSC1 + port * 2) & USBPORTSC_CCS) ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel