69 lines
2.0 KiB
C
69 lines
2.0 KiB
C
|
/* arch/arm/mach-msm/perflock.h
|
||
|
*
|
||
|
* MSM performance lock driver header
|
||
|
*
|
||
|
* Copyright (C) 2008 HTC Corporation
|
||
|
* Author: Eiven Peng <eiven_peng@htc.com>
|
||
|
*
|
||
|
* This software is licensed under the terms of the GNU General Public
|
||
|
* License version 2, as published by the Free Software Foundation, and
|
||
|
* may be copied, distributed, and modified under those terms.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef __ARCH_ARM_MACH_PERF_LOCK_H
|
||
|
#define __ARCH_ARM_MACH_PERF_LOCK_H
|
||
|
|
||
|
#include <linux/list.h>
|
||
|
|
||
|
/*
|
||
|
* Performance level determine differnt EBI1 rate
|
||
|
*/
|
||
|
|
||
|
enum {
|
||
|
PERF_LOCK_MEDIUM, /* Medium performance */
|
||
|
PERF_LOCK_HIGH, /* High performance */
|
||
|
PERF_LOCK_HIGHEST, /* Highest performance */
|
||
|
PERF_LOCK_INVALID,
|
||
|
};
|
||
|
|
||
|
struct perf_lock {
|
||
|
struct list_head link;
|
||
|
unsigned int flags;
|
||
|
unsigned int level;
|
||
|
const char *name;
|
||
|
};
|
||
|
|
||
|
struct perflock_platform_data {
|
||
|
unsigned int *perf_acpu_table;
|
||
|
unsigned int table_size;
|
||
|
};
|
||
|
|
||
|
#ifndef CONFIG_PERFLOCK
|
||
|
static inline void __init perflock_init(
|
||
|
struct perflock_platform_data *pdata) { return; }
|
||
|
static inline void perf_lock_init(struct perf_lock *lock,
|
||
|
unsigned int level, const char *name) { return; }
|
||
|
static inline void perf_lock(struct perf_lock *lock) { return; }
|
||
|
static inline void perf_unlock(struct perf_lock *lock) { return; }
|
||
|
static inline int is_perf_lock_active(struct perf_lock *lock) { return 0; }
|
||
|
static inline int is_perf_locked(void) { return 0; }
|
||
|
#else
|
||
|
extern void __init perflock_init(struct perflock_platform_data *pdata);
|
||
|
extern void perf_lock_init(struct perf_lock *lock,
|
||
|
unsigned int level, const char *name);
|
||
|
extern void perf_lock(struct perf_lock *lock);
|
||
|
extern void perf_unlock(struct perf_lock *lock);
|
||
|
extern int is_perf_lock_active(struct perf_lock *lock);
|
||
|
extern int is_perf_locked(void);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|