Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 10415
b: refs/heads/master
c: b5893c5
h: refs/heads/master
i:
  10413: c3dbef1
  10411: f8b560d
  10407: 5b28ad7
  10399: 7ab377b
v: v3
  • Loading branch information
Russell King authored and Russell King committed Oct 28, 2005
1 parent 353a4b7 commit f4375bb
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 53 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 90072059d2963dec237ae0cf49831ef77ddb5739
refs/heads/master: b5893c56ca7e664aef010a71c2638db768d4e996
99 changes: 47 additions & 52 deletions trunk/arch/arm/oprofile/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
#include <linux/init.h>
#include <linux/oprofile.h>
#include <linux/errno.h>
#include <asm/semaphore.h>
#include <linux/sysdev.h>
#include <asm/semaphore.h>

#include "op_counter.h"
#include "op_arm_model.h"
Expand All @@ -20,57 +20,6 @@ static struct op_arm_model_spec *pmu_model;
static int pmu_enabled;
static struct semaphore pmu_sem;

static int pmu_start(void);
static int pmu_setup(void);
static void pmu_stop(void);
static int pmu_create_files(struct super_block *, struct dentry *);

#ifdef CONFIG_PM
static int pmu_suspend(struct sys_device *dev, pm_message_t state)
{
if (pmu_enabled)
pmu_stop();
return 0;
}

static int pmu_resume(struct sys_device *dev)
{
if (pmu_enabled)
pmu_start();
return 0;
}

static struct sysdev_class oprofile_sysclass = {
set_kset_name("oprofile"),
.resume = pmu_resume,
.suspend = pmu_suspend,
};

static struct sys_device device_oprofile = {
.id = 0,
.cls = &oprofile_sysclass,
};

static int __init init_driverfs(void)
{
int ret;

if (!(ret = sysdev_class_register(&oprofile_sysclass)))
ret = sysdev_register(&device_oprofile);

return ret;
}

static void exit_driverfs(void)
{
sysdev_unregister(&device_oprofile);
sysdev_class_unregister(&oprofile_sysclass);
}
#else
#define init_driverfs() do { } while (0)
#define exit_driverfs() do { } while (0)
#endif /* CONFIG_PM */

struct op_counter_config counter_config[OP_MAX_COUNTER];

static int pmu_create_files(struct super_block *sb, struct dentry *root)
Expand Down Expand Up @@ -126,6 +75,52 @@ static void pmu_stop(void)
up(&pmu_sem);
}

#ifdef CONFIG_PM
static int pmu_suspend(struct sys_device *dev, pm_message_t state)
{
if (pmu_enabled)
pmu_stop();
return 0;
}

static int pmu_resume(struct sys_device *dev)
{
if (pmu_enabled)
pmu_start();
return 0;
}

static struct sysdev_class oprofile_sysclass = {
set_kset_name("oprofile"),
.resume = pmu_resume,
.suspend = pmu_suspend,
};

static struct sys_device device_oprofile = {
.id = 0,
.cls = &oprofile_sysclass,
};

static int __init init_driverfs(void)
{
int ret;

if (!(ret = sysdev_class_register(&oprofile_sysclass)))
ret = sysdev_register(&device_oprofile);

return ret;
}

static void exit_driverfs(void)
{
sysdev_unregister(&device_oprofile);
sysdev_class_unregister(&oprofile_sysclass);
}
#else
#define init_driverfs() do { } while (0)
#define exit_driverfs() do { } while (0)
#endif /* CONFIG_PM */

int __init pmu_init(struct oprofile_operations *ops, struct op_arm_model_spec *spec)
{
init_MUTEX(&pmu_sem);
Expand Down

0 comments on commit f4375bb

Please sign in to comment.