import OT_8063_20170412 mali driver
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / gpu / ged / src / ged_base.c
index 91ed382caf88fad36e7e3976d5d00d29ebbb3a0b..1884068391eea085e5a5da9c851a16e39824e047 100644 (file)
 unsigned long ged_copy_to_user(void __user *pvTo, const void *pvFrom, unsigned long ulBytes)
 {
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-    if (access_ok(VERIFY_WRITE, pvTo, ulBytes))
-    {
-       return __copy_to_user(pvTo, pvFrom, ulBytes);
-    }
-    return ulBytes;
+       if (access_ok(VERIFY_WRITE, pvTo, ulBytes))
+       {
+               return __copy_to_user(pvTo, pvFrom, ulBytes);
+       }
+       return ulBytes;
 #else
-    return copy_to_user(pvTo, pvFrom, ulBytes);
+       return copy_to_user(pvTo, pvFrom, ulBytes);
 #endif
 }
 
 unsigned long ged_copy_from_user(void *pvTo, const void __user *pvFrom, unsigned long ulBytes)
 {
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-    if (access_ok(VERIFY_READ, pvFrom, ulBytes))
-    {
-           return __copy_from_user(pvTo, pvFrom, ulBytes);
-    }
-    return ulBytes;
+       if (access_ok(VERIFY_READ, pvFrom, ulBytes))
+       {
+               return __copy_from_user(pvTo, pvFrom, ulBytes);
+       }
+       return ulBytes;
 #else
-    return copy_from_user(pvTo, pvFrom, ulBytes);
+       return copy_from_user(pvTo, pvFrom, ulBytes);
 #endif
 }
 
 void* ged_alloc(int i32Size)
 {
-    void *pvBuf;
-
-    if (i32Size <= PAGE_SIZE)
-    {
-        pvBuf = kmalloc(i32Size, GFP_KERNEL);
-    }
-    else
-    {
-        pvBuf = vmalloc(i32Size);
-    }
-
-    return pvBuf;
+       void *pvBuf;
+
+       if (i32Size <= PAGE_SIZE)
+       {
+               pvBuf = kmalloc(i32Size, GFP_KERNEL);
+       }
+       else
+       {
+               pvBuf = vmalloc(i32Size);
+       }
+
+       return pvBuf;
+}
+
+void* ged_alloc_atomic(int i32Size)
+{
+       void *pvBuf;
+
+       if (i32Size <= PAGE_SIZE)
+       {
+               pvBuf = kmalloc(i32Size, GFP_ATOMIC);
+       }
+       else
+       {
+               pvBuf = vmalloc(i32Size);
+       }
+
+       return pvBuf;
 }
 
 void ged_free(void* pvBuf, int i32Size)
 {
-    if (pvBuf)
-    {
-        if (i32Size <= PAGE_SIZE)
-        {
-            kfree(pvBuf);
-        }
-        else
-        {
-            vfree(pvBuf);
-        }
-    }
+       if (pvBuf)
+       {
+               if (i32Size <= PAGE_SIZE)
+               {
+                       kfree(pvBuf);
+               }
+               else
+               {
+                       vfree(pvBuf);
+               }
+       }
 }
 
 long ged_get_pid(void)
 {
-    if (in_interrupt())
-    {
-        return 0xffffffffL;
-    }
+       if (in_interrupt())
+       {
+               return 0xffffffffL;
+       }
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
-    return (long)current->pgrp;
+       return (long)current->pgrp;
 #else
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
-    return (long)task_tgid_nr(current);
+       return (long)task_tgid_nr(current);
 #else
-    return (long)current->tgid;
+       return (long)current->tgid;
 #endif
 #endif
 }
 
+unsigned long long ged_get_time()
+{
+       unsigned long long temp;
+
+       preempt_disable();
+       temp = cpu_clock(smp_processor_id());
+       preempt_enable();
+
+       return temp;
+}
+