Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
8d11fc9
CPUFREQ: Add 7 Governors
noahwastaken Aug 6, 2013
a949a4e
CPUFREQ: Add Actual Governors (D3RP)
noahwastaken Aug 6, 2013
3b94787
fix: warnings: 'sport' may be used uninitialized in this function
noahwastaken Aug 7, 2013
66f6565
Drivers: Fix warnings from IOWAIT_TIME
noahwastaken Aug 7, 2013
ccb1621
cpufreq:Remerge Conflicts with no warnings
noahwastaken Aug 7, 2013
ee96b58
CPUFREQ: Remove unneccessary Governor that still has warning
noahwastaken Aug 7, 2013
7e0f70e
Added LulzactiveV2,Lagfree,Smartass,SmartassV2,Minmax,InteractiveX Go…
noahwastaken Aug 7, 2013
1988758
Added CPUfreq governor 'lazy'.
noahwastaken Aug 7, 2013
0c43aba
Fixed compile error (Lazy)
noahwastaken Aug 7, 2013
ea71572
Added Intellidemand, Scary Governor
noahwastaken Aug 7, 2013
26eb4d4
Revert "Added Intellidemand, Scary Governor"
noahwastaken Aug 7, 2013
7f1503e
Added OndemandX governor and cleanup of cpu driver files
noahwastaken Aug 7, 2013
86da717
Added Brazilianwax governor
noahwastaken Aug 7, 2013
8cee675
Revert "Added LulzactiveV2,Lagfree,Smartass,SmartassV2,Minmax,Interac…
noahwastaken Aug 7, 2013
dda1722
Revert "Revert "Added LulzactiveV2,Lagfree,Smartass,SmartassV2,Minmax…
noahwastaken Aug 7, 2013
dbf3a23
Revert "Added Brazilianwax governor"
noahwastaken Aug 7, 2013
e1027e5
Revert "Added OndemandX governor and cleanup of cpu driver files"
noahwastaken Aug 7, 2013
61f29fd
Revert "Revert "Added Intellidemand, Scary Governor""
noahwastaken Aug 7, 2013
68b536a
Revert "Added Intellidemand, Scary Governor"
noahwastaken Aug 7, 2013
d3955e4
Revert "Fixed compile error (Lazy)"
noahwastaken Aug 7, 2013
f209f0a
Revert "Added CPUfreq governor 'lazy'."
noahwastaken Aug 7, 2013
27e15b5
Revert "Added LulzactiveV2,Lagfree,Smartass,SmartassV2,Minmax,Interac…
noahwastaken Aug 7, 2013
3347e15
CPUFREQ: Fixed all errors and dependencies for governors and merged
noahwastaken Aug 7, 2013
3e87a2c
blahh
noahwastaken Aug 7, 2013
173f8bc
Revert "blahh"
noahwastaken Aug 7, 2013
19fd433
Revert "CPUFREQ: Fixed all errors and dependencies for governors and …
noahwastaken Aug 7, 2013
5a55cd6
Govs
noahwastaken Aug 7, 2013
cfd189f
Revert "Govs"
noahwastaken Aug 7, 2013
52bfd49
gdflgndsnfdkn CPU SHIZZ
noahwastaken Aug 8, 2013
e7e5c5d
Revert "gdflgndsnfdkn CPU SHIZZ"
noahwastaken Aug 8, 2013
55cf6f6
cpufreq: Add abyssplugv2 from abyss kernel
noahwastaken Aug 12, 2013
63c2d12
CPURFREQ: Add govs
noahwastaken Aug 12, 2013
0a10b90
RM abyssplugv2 & add back smartassv2 and lionheart
noahwastaken Aug 12, 2013
7867f1e
Add govs again ughhh
noahwastaken Aug 12, 2013
91babeb
CPUFREQ: Add Govs Perm. & Fix warnings/errors and change values for m7
noahwastaken Aug 12, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions arch/arm/mach-msm/include/mach/ppmu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
/* linux/arch/arm/mach-exynos/include/mach/ppmu.h
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* EXYNOS4 - PPMU support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/

#ifndef __ASM_ARCH_PPMU_H
#define __ASM_ARCH_PPMU_H __FILE__

#define NUMBER_OF_COUNTER 4

#define PPMU_CNTENS 0x10
#define PPMU_CNTENC 0x20
#define PPMU_INTENS 0x30
#define PPMU_INTENC 0x40
#define PPMU_FLAG 0x50

#define PPMU_CCNT 0x100
#define PPMU_PMCNT0 0x110
#define PPMU_PMCNT_OFFSET 0x10

#define PPMU_BEVT0SEL 0x1000
#define PPMU_BEVTSEL_OFFSET 0x100
#define PPMU_CNT_RESET 0x1800

#define DEVT0_SEL 0x1000
#define DEVT0_ID 0x1010
#define DEVT0_IDMSK 0x1014
#define DEVT_ID_OFFSET 0x100

#define DEFAULT_WEIGHT 1

#define MAX_CCNT 100

/* For flags */
#define VIDEO_DOMAIN 0x00000001
#define AUDIO_DOMAIN 0x00000002
#define ALL_DOMAIN 0xffffffff

/* For event */
#define RD_DATA_COUNT 0x00000005
#define WR_DATA_COUNT 0x00000006
#define RDWR_DATA_COUNT 0x00000007

#define PMCNT_OFFSET(i) (PPMU_PMCNT0 + (PPMU_PMCNT_OFFSET * i))

enum ppmu_counter {
PPMU_PMNCNT0,
PPMU_PMCCNT1,
PPMU_PMNCNT2,
PPMU_PMNCNT3,
PPMU_PMNCNT_MAX,
};

enum ppmu_ch {
DMC0,
DMC1,
};

enum ppmu_type {
PPMU_MIF,
PPMU_INT,
PPMU_TYPE_END,
};

enum exynos4_ppmu {
PPMU_DMC0,
PPMU_DMC1,
PPMU_CPU,
#ifdef CONFIG_ARCH_EXYNOS5
PPMU_DDR_C,
PPMU_DDR_R1,
PPMU_DDR_L,
PPMU_RIGHT0_BUS,
#endif
PPMU_END,
};

extern unsigned long long ppmu_load[PPMU_END];
extern unsigned long long ppmu_load_detail[2][PPMU_END];

struct exynos4_ppmu_hw {
struct list_head node;
void __iomem *hw_base;
unsigned int ccnt;
unsigned int event[NUMBER_OF_COUNTER];
unsigned int weight;
int usage;
int id;
unsigned int flags;
struct device *dev;
unsigned int count[NUMBER_OF_COUNTER];
};

void exynos4_ppc_reset(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppc_start(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppc_stop(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppc_setevent(struct exynos4_ppmu_hw *ppmu,
unsigned int evt_num);
unsigned long long exynos4_ppc_update(struct exynos4_ppmu_hw *ppmu);

void exynos4_ppmu_reset(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppmu_start(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppmu_stop(struct exynos4_ppmu_hw *ppmu);
void exynos4_ppmu_setevent(struct exynos4_ppmu_hw *ppmu,
unsigned int evt_num);
unsigned long long exynos4_ppmu_update(struct exynos4_ppmu_hw *ppmu, int ch);

void ppmu_init(struct exynos4_ppmu_hw *ppmu, struct device *dev);
void ppmu_start(struct device *dev);
void ppmu_update(struct device *dev, int ch);
void ppmu_reset(struct device *dev);

extern struct exynos4_ppmu_hw exynos_ppmu[];
#endif /* __ASM_ARCH_PPMU_H */

Loading