hsusb: Make USB data allocations cache line aligned.
For correct cache behavior in case of dma operations.
Change-Id: I814a159c712c5e715006a7c0677837267633e020
diff --git a/platform/msm_shared/hsusb.c b/platform/msm_shared/hsusb.c
index 9dcc550..e0415b3 100644
--- a/platform/msm_shared/hsusb.c
+++ b/platform/msm_shared/hsusb.c
@@ -157,7 +157,7 @@
struct udc_endpoint *ept;
unsigned cfg;
- ept = malloc(sizeof(*ept));
+ ept = memalign(CACHE_LINE, ROUNDUP(sizeof(*ept), CACHE_LINE));
ept->maxpkt = max_pkt;
ept->num = num;
@@ -247,10 +247,11 @@
struct udc_request *udc_request_alloc(void)
{
struct usb_request *req;
- req = malloc(sizeof(*req));
+ req = memalign(CACHE_LINE, ROUNDUP(sizeof(*req), CACHE_LINE));
req->req.buf = 0;
req->req.length = 0;
- req->item = memalign(32, 32);
+ req->item = memalign(CACHE_LINE, ROUNDUP(sizeof(struct ept_queue_item),
+ CACHE_LINE));
return &req->req;
}
@@ -612,7 +613,7 @@
ep0out = _udc_endpoint_alloc(0, 0, 64);
ep0in = _udc_endpoint_alloc(0, 1, 64);
ep0req = udc_request_alloc();
- ep0req->buf = malloc(4096);
+ ep0req->buf = memalign(CACHE_LINE, 4096);
{
/* create and register a language table descriptor */