On Fri, 18 May 2012, Greg KH wrote: > > > It may be similar with the problem I met with usb-hub (periods transfer abnormal) > > > at linux-next tree. > > > > > > http://marc.info/?t=133727396500042&r=1&w=2 > > > > Thanks for the pointer, I've reverted that patch and let's see if it > > solves the issue for me or not... > > Ok, this seems to have solved the problem for me. > > Alan, I'm going to revert 3d9545cc375d117554a9b35dfddadf9189c62775 > (EHCI: maintain the ehci->command value properly), your as1543 patch, if > you don't mind, as we are running out of time for the 3.5 merge window > (I'd like to close my tree by the end of today given the immanent 3.4 > release.) All right, go ahead. But when that's done, can you test with that commit re-applied and the patch below added on top? The same for Peter, Richard, and Dan: Please try this patch on top of 3.4-rc7. Alan Stern Index: xes/drivers/usb/host/ehci-hcd.c =================================================================== --- xes.orig/drivers/usb/host/ehci-hcd.c +++ xes/drivers/usb/host/ehci-hcd.c @@ -352,7 +352,9 @@ static int ehci_reset (struct ehci_hcd * if (ehci->debug) dbgp_external_startup(); - ehci->command = ehci_readl(ehci, &ehci->regs->command); + ehci->command |= ehci_readl(ehci, &ehci->regs->command) & + ~(CMD_HIRD | CMD_ITHR_MASK | CMD_PPCEE | CMD_PARK | + CMD_PARK_MASK | CMD_FLSIZE_MASK); ehci->port_c_suspend = ehci->suspended_ports = ehci->resuming_ports = 0; return retval; Index: xes/include/linux/usb/ehci_def.h =================================================================== --- xes.orig/include/linux/usb/ehci_def.h +++ xes/include/linux/usb/ehci_def.h @@ -68,18 +68,21 @@ struct ehci_regs { /* EHCI 1.1 addendum */ #define CMD_HIRD (0xf<<24) /* host initiated resume duration */ +/* 23:16 is r/w intr rate, in microframes; default "8" == 1/msec */ +#define CMD_ITHR_MASK (0xff<<16) /* interrupt threshold control mask */ #define CMD_PPCEE (1<<15) /* per port change event enable */ #define CMD_FSP (1<<14) /* fully synchronized prefetch */ #define CMD_ASPE (1<<13) /* async schedule prefetch enable */ #define CMD_PSPE (1<<12) /* periodic schedule prefetch enable */ -/* 23:16 is r/w intr rate, in microframes; default "8" == 1/msec */ #define CMD_PARK (1<<11) /* enable "park" on async qh */ +#define CMD_PARK_MASK (3<<8) /* park mode count mask */ #define CMD_PARK_CNT(c) (((c)>>8)&3) /* how many transfers to park for */ #define CMD_LRESET (1<<7) /* partial reset (no ports, etc) */ #define CMD_IAAD (1<<6) /* "doorbell" interrupt async advance */ #define CMD_ASE (1<<5) /* async schedule enable */ #define CMD_PSE (1<<4) /* periodic schedule enable */ /* 3:2 is periodic frame list size */ +#define CMD_FLSIZE_MASK (3<<2) /* frame list size mask */ #define CMD_RESET (1<<1) /* reset HC not bus */ #define CMD_RUN (1<<0) /* start/stop HC */ -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html