Browse Source

usb: dwc2: gadget: reset fifo_map when initializing fifos

After all endpoints are disabled, fifo_map should have reached 0.
Its a bug if if didn't, so warn about it and reset it to 0 so that
driver can continue using all the fifos.

Tested-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Gregory Herrero 10 năm trước cách đây
mục cha
commit
7fcbc95c1f
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      drivers/usb/dwc2/gadget.c

+ 4 - 0
drivers/usb/dwc2/gadget.c

@@ -177,6 +177,10 @@ static void s3c_hsotg_init_fifo(struct dwc2_hsotg *hsotg)
 	int timeout;
 	u32 val;
 
+	/* Reset fifo map if not correctly cleared during previous session */
+	WARN_ON(hsotg->fifo_map);
+	hsotg->fifo_map = 0;
+
 	/* set RX/NPTX FIFO sizes */
 	writel(hsotg->g_rx_fifo_sz, hsotg->regs + GRXFSIZ);
 	writel((hsotg->g_rx_fifo_sz << FIFOSIZE_STARTADDR_SHIFT) |