]> xenbits.xensource.com Git - people/aperard/linux-chromebook.git/commitdiff
CHROMIUM: MALI: fix sysfs memory file
authorMandeep Singh Baines <msb@chromium.org>
Tue, 13 Nov 2012 00:55:32 +0000 (16:55 -0800)
committerGerrit <chrome-bot@google.com>
Sat, 15 Dec 2012 03:01:40 +0000 (19:01 -0800)
The sysfs file which reports memory was broken by the recent
update go wk45.

BUG=chromium-os:36060,chrome-os-partner:16814
TEST=Verified that the sysfs file now reports the correct data

localhost ~ # cat /sys/devices/platform/mali.0/memory
57143296 bytes
localhost ~ # stop ui
ui stop/waiting
localhost ~ # cat /sys/devices/platform/mali.0/memory
28672 bytes
localhost ~ # start ui
ui start/running, process 4791
localhost ~ # cat /sys/devices/platform/mali.0/memory
51875840 bytes
localhost ~ # stop ui
ui stop/waiting
localhost ~ # cat /sys/devices/platform/mali.0/memory
28672 bytes

Change-Id: I6df9bf70028ac0bc18fe993242c65dc87c430fd2
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/39730
Reviewed-by: Anush Elangovan <anush@google.com>
drivers/gpu/arm/t6xx/kbase/src/common/mali_kbase_mem.c
drivers/gpu/arm/t6xx/kbase/src/common/mali_kbase_mem.h
drivers/gpu/arm/t6xx/kbase/src/linux/config/tpip/mali_kbase_config_exynos5.c

index 72a94419ca1951abb0a964a072d2b766a19c9903..60d2eafb261e72becdfad1613f1b62bf90366b05 100644 (file)
@@ -34,6 +34,8 @@
 #include <linux/mempool.h>
 #include <linux/mm.h>
 
+atomic_t mali_memory_pages;
+
 struct kbase_page_metadata
 {
        struct list_head list;
@@ -204,7 +206,7 @@ mali_error kbase_mem_allocator_alloc(kbase_mem_allocator *allocator, u32 nr_page
        }
 
        if (i == nr_pages)
-               return MALI_ERROR_NONE;
+               goto out;
 
        for (; i < nr_pages; i++)
        {
@@ -226,8 +228,11 @@ mali_error kbase_mem_allocator_alloc(kbase_mem_allocator *allocator, u32 nr_page
                pages[i] = PFN_PHYS(page_to_pfn(p));
        }
 
+out:
+       atomic_add(nr_pages, &mali_memory_pages);
        return MALI_ERROR_NONE;
 
+
 err_out_roll_back:
        while (i--)
        {
@@ -300,6 +305,8 @@ void kbase_mem_allocator_free(kbase_mem_allocator *allocator, u32 nr_pages, osk_
                }
        }
 
+       atomic_sub(nr_pages, &mali_memory_pages);
+
        mutex_lock(&allocator->free_list_lock);
        list_splice(&new_free_list_items, &allocator->free_list_head);
        atomic_add(page_count, &allocator->free_list_size);
index 471c6852adf48b59fd0e4176f6e96f34f3557f24..4073efcc42a27672d4b79caac1905a43efc27959 100644 (file)
@@ -578,5 +578,6 @@ mali_error kbase_alloc_phy_pages_helper(struct kbase_va_region *reg, u32 nr_page
  */
 void kbase_free_phy_pages_helper(struct kbase_va_region * reg, u32 nr_pages);
 
+extern atomic_t mali_memory_pages;
 
 #endif /* _KBASE_MEM_H_ */
index 75585fdee9743bad206b4d4a29f224e1917991ed..bf17c1fc9fc3ad9d4133d95989621c47c80827f7 100644 (file)
@@ -137,8 +137,6 @@ static kbase_io_resources io_resources =
        }
 };
 
-atomic_t mali_memory_pages;
-
 /**
  * Read the CPU clock speed
  */