Ver código fonte

修复usb中断处理时间过长的问题

huangliang 2 anos atrás
pai
commit
2ad13fc9b9

+ 2 - 2
linux/drivers/usb/musb/musb_ark.c

@@ -374,9 +374,9 @@ static int ark_musb_set_mode(struct musb *musb, u8 mode)
 	void __iomem *sys_softrest_base = (void __iomem *)((unsigned int)glue->sys_base + glue->usb_softrest_reg_offset);
 	u32 regval;
 
-	usb_hcd_resume_root_hub(musb->hcd);
+	/*usb_hcd_resume_root_hub(musb->hcd);
 	musb_root_disconnect(musb);
-	musb_g_reset(musb);
+	musb_g_reset(musb);*/
 
 	switch (mode) {
 		case MUSB_HOST:

+ 4 - 0
linux/drivers/usb/musb/musb_host.c

@@ -90,7 +90,11 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
 	struct musb	*musb = ep->musb;
 	void __iomem	*epio = ep->regs;
 	u16		csr;
+#if NICHOLAS_ADD
+	int		retries = 1;
+#else
 	int		retries = 1000;
+#endif
 
 	csr = musb_readw(epio, MUSB_TXCSR);
 	while (csr & MUSB_TXCSR_FIFONOTEMPTY) {