Lines Matching refs:cache

83 	struct ps3vram_cache cache;  member
317 struct ps3vram_cache *cache = &priv->cache; in ps3vram_cache_evict() local
319 if (!(cache->tags[entry].flags & CACHE_PAGE_DIRTY)) in ps3vram_cache_evict()
323 cache->tags[entry].address); in ps3vram_cache_evict()
324 if (ps3vram_upload(dev, CACHE_OFFSET + entry * cache->page_size, in ps3vram_cache_evict()
325 cache->tags[entry].address, DMA_PAGE_SIZE, in ps3vram_cache_evict()
326 cache->page_size / DMA_PAGE_SIZE) < 0) { in ps3vram_cache_evict()
329 entry * cache->page_size, cache->tags[entry].address, in ps3vram_cache_evict()
330 cache->page_size); in ps3vram_cache_evict()
332 cache->tags[entry].flags &= ~CACHE_PAGE_DIRTY; in ps3vram_cache_evict()
339 struct ps3vram_cache *cache = &priv->cache; in ps3vram_cache_load() local
343 CACHE_OFFSET + entry * cache->page_size, in ps3vram_cache_load()
345 cache->page_size / DMA_PAGE_SIZE) < 0) { in ps3vram_cache_load()
348 address, entry * cache->page_size, cache->page_size); in ps3vram_cache_load()
351 cache->tags[entry].address = address; in ps3vram_cache_load()
352 cache->tags[entry].flags |= CACHE_PAGE_PRESENT; in ps3vram_cache_load()
359 struct ps3vram_cache *cache = &priv->cache; in ps3vram_cache_flush() local
363 for (i = 0; i < cache->page_count; i++) { in ps3vram_cache_flush()
365 cache->tags[i].flags = 0; in ps3vram_cache_flush()
373 struct ps3vram_cache *cache = &priv->cache; in ps3vram_cache_match() local
379 offset = (unsigned int) (address & (cache->page_size - 1)); in ps3vram_cache_match()
383 for (i = 0; i < cache->page_count; i++) { in ps3vram_cache_match()
384 if ((cache->tags[i].flags & CACHE_PAGE_PRESENT) && in ps3vram_cache_match()
385 cache->tags[i].address == base) { in ps3vram_cache_match()
386 cache->hit++; in ps3vram_cache_match()
388 cache->tags[i].address); in ps3vram_cache_match()
394 i = (jiffies + (counter++)) % cache->page_count; in ps3vram_cache_match()
400 cache->miss++; in ps3vram_cache_match()
408 priv->cache.page_count = CACHE_PAGE_COUNT; in ps3vram_cache_init()
409 priv->cache.page_size = CACHE_PAGE_SIZE; in ps3vram_cache_init()
410 priv->cache.tags = kzalloc(sizeof(struct ps3vram_tag) * in ps3vram_cache_init()
412 if (priv->cache.tags == NULL) { in ps3vram_cache_init()
428 kfree(priv->cache.tags); in ps3vram_cache_cleanup()
452 offset = (unsigned int) (from & (priv->cache.page_size - 1)); in ps3vram_read()
453 avail = priv->cache.page_size - offset; in ps3vram_read()
456 cached = CACHE_OFFSET + entry * priv->cache.page_size + offset; in ps3vram_read()
493 offset = (unsigned int) (to & (priv->cache.page_size - 1)); in ps3vram_write()
494 avail = priv->cache.page_size - offset; in ps3vram_write()
497 cached = CACHE_OFFSET + entry * priv->cache.page_size + offset; in ps3vram_write()
507 priv->cache.tags[entry].flags |= CACHE_PAGE_DIRTY; in ps3vram_write()
522 seq_printf(m, "hit:%u\nmiss:%u\n", priv->cache.hit, priv->cache.miss); in ps3vram_proc_show()