Re: mouse and keyboard hangs in linux-next

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux