Sfoglia il codice sorgente

usb: gadget: bdc: fix a driver crash on disconnect

ep_dequeue() in bdc_ep.c was capturing the hw dequeue pointer
incorrectly by reading the wrong register for the upper 32 bits.

Signed-off-by: Al Cooper <alcooperx@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Al Cooper 10 anni fa
parent
commit
02c3b4c759
1 ha cambiato i file con 1 aggiunte e 1 eliminazioni
  1. 1 1
      drivers/usb/gadget/udc/bdc/bdc_ep.c

+ 1 - 1
drivers/usb/gadget/udc/bdc/bdc_ep.c

@@ -779,7 +779,7 @@ static int ep_dequeue(struct bdc_ep *ep, struct bdc_req *req)
 	/* The current hw dequeue pointer */
 	tmp_32 = bdc_readl(bdc->regs, BDC_EPSTS0(0));
 	deq_ptr_64 = tmp_32;
-	tmp_32 = bdc_readl(bdc->regs, BDC_EPSTS0(1));
+	tmp_32 = bdc_readl(bdc->regs, BDC_EPSTS1(0));
 	deq_ptr_64 |= ((u64)tmp_32 << 32);
 
 	/* we have the dma addr of next bd that will be fetched by hardware */