ion: invalide cache, L1 first

This commit is contained in:
kfx
2012-03-09 09:11:20 +08:00
parent ad09d96ed4
commit aa2d99e76e

View File

@@ -192,12 +192,18 @@ int ion_carveout_cache_op(struct ion_heap *heap, struct ion_buffer *buffer,
outer_flush_range(buffer->priv_phys,buffer->priv_phys + size);
break;
case ION_CACHE_CLEAN:
/* When cleaning, always clean the innermost (L1) cache first
* and then clean the outer cache(s).
*/
dmac_clean_range((void *)start, (void *)end);
outer_clean_range(buffer->priv_phys,buffer->priv_phys + size);
break;
case ION_CACHE_INVALID:
dmac_inv_range((void *)start, (void *)end);
/* When invalidating, always invalidate the outermost cache first
* and the L1 cache last.
*/
outer_inv_range(buffer->priv_phys,buffer->priv_phys + size);
dmac_inv_range((void *)start, (void *)end);
break;
default:
return -EINVAL;