usb: dwc3: core: add a event buffer cache
This extra buffer will be used so we can copy triggered events from our event buffer to this cache and process all of them later in bottom half handler. We need this in order to implement a workaround for a known erratum in recent DWC3 release. Signed-off-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
a0fe0415e0
commit
d9fa4c63f7
|
@ -224,6 +224,10 @@ static struct dwc3_event_buffer *dwc3_alloc_one_event_buffer(struct dwc3 *dwc,
|
|||
|
||||
evt->dwc = dwc;
|
||||
evt->length = length;
|
||||
evt->cache = devm_kzalloc(dwc->dev, length, GFP_KERNEL);
|
||||
if (!evt->cache)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
evt->buf = dma_alloc_coherent(dwc->dev, length,
|
||||
&evt->dma, GFP_KERNEL);
|
||||
if (!evt->buf)
|
||||
|
|
|
@ -472,6 +472,7 @@ struct dwc3_trb;
|
|||
/**
|
||||
* struct dwc3_event_buffer - Software event buffer representation
|
||||
* @buf: _THE_ buffer
|
||||
* @cache: The buffer cache used in the threaded interrupt
|
||||
* @length: size of this buffer
|
||||
* @lpos: event offset
|
||||
* @count: cache of last read event count register
|
||||
|
@ -481,6 +482,7 @@ struct dwc3_trb;
|
|||
*/
|
||||
struct dwc3_event_buffer {
|
||||
void *buf;
|
||||
void *cache;
|
||||
unsigned length;
|
||||
unsigned int lpos;
|
||||
unsigned int count;
|
||||
|
|
Loading…
Reference in New Issue