1/* 2 * Copyright (C) 2010, 2013-2015 ARM Limited. All rights reserved. 3 * 4 * This program is free software and is provided to you under the terms of the GNU General Public License version 2 5 * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence. 6 * 7 * A copy of the licence is included with the program, and can also be obtained from Free Software 8 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 9 */ 10 11/** 12 * @file mali_osk_time.c 13 * Implementation of the OS abstraction layer for the kernel device driver 14 */ 15 16#include "mali_osk.h" 17#include <linux/jiffies.h> 18#include <linux/time.h> 19#include <asm/delay.h> 20 21mali_bool _mali_osk_time_after_eq(unsigned long ticka, unsigned long tickb) 22{ 23 return time_after_eq(ticka, tickb) ? 24 MALI_TRUE : MALI_FALSE; 25} 26 27unsigned long _mali_osk_time_mstoticks(u32 ms) 28{ 29 return msecs_to_jiffies(ms); 30} 31 32u32 _mali_osk_time_tickstoms(unsigned long ticks) 33{ 34 return jiffies_to_msecs(ticks); 35} 36 37unsigned long _mali_osk_time_tickcount(void) 38{ 39 return jiffies; 40} 41 42void _mali_osk_time_ubusydelay(u32 usecs) 43{ 44 udelay(usecs); 45} 46 47u64 _mali_osk_time_get_ns(void) 48{ 49 struct timespec tsval; 50 getnstimeofday(&tsval); 51 return (u64)timespec_to_ns(&tsval); 52} 53 54u64 _mali_osk_boot_time_get_ns(void) 55{ 56 struct timespec tsval; 57 get_monotonic_boottime(&tsval); 58 return (u64)timespec_to_ns(&tsval); 59} 60