Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82cd02c1 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Paul Mackerras
Browse files

[PATCH] powerpc: reduce oprofile/common.c differences



Rename and slightly modify {request,free}_perfmon_irq in the ppc code.

Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 86a5cddb
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -46,19 +46,12 @@ static void op_handle_interrupt(struct pt_regs *regs)

static int op_powerpc_setup(void)
{
#ifdef __powerpc64__
	int err;

	/* Grab the hardware */
	err = reserve_pmc_hardware(op_handle_interrupt);
	if (err)
		return err;
#else /* __powerpc64__ */
	/* Install our interrupt handler into the existing hook.  */
	if (request_perfmon_irq(&op_handle_interrupt))
		return -EBUSY;
	mb();
#endif /* __powerpc64__ */

	/* Pre-compute the values to stuff in the hardware registers.  */
	model->reg_setup(ctr, &sys, model->num_counters);
@@ -78,13 +71,7 @@ static int op_powerpc_setup(void)

static void op_powerpc_shutdown(void)
{
#ifdef __powerpc64__
	release_pmc_hardware();
#else /* __powerpc64__ */
	mb();
	/* Remove our interrupt handler. We may be removing this module. */
	free_perfmon_irq();
#endif /* __powerpc64__ */
}

static void op_powerpc_cpu_start(void *dummy)
+5 −5
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ void (*perf_irq)(struct pt_regs *) = dummy_perf;

/* Grab the interrupt, if it's free.
 * Returns 0 on success, -1 if the interrupt is taken already */
int request_perfmon_irq(void (*handler)(struct pt_regs *))
int reserve_pmc_hardware(void (*handler)(struct pt_regs *))
{
	int err = 0;

@@ -71,7 +71,7 @@ int request_perfmon_irq(void (*handler)(struct pt_regs *))
		perf_irq = handler;
	else {
		pr_info("perfmon irq already handled by %p\n", perf_irq);
		err = -1;
		err = -EBUSY;
	}

	spin_unlock(&perfmon_lock);
@@ -79,7 +79,7 @@ int request_perfmon_irq(void (*handler)(struct pt_regs *))
	return err;
}

void free_perfmon_irq(void)
void release_pmc_hardware(void)
{
	spin_lock(&perfmon_lock);

@@ -89,5 +89,5 @@ void free_perfmon_irq(void)
}

EXPORT_SYMBOL(perf_irq);
EXPORT_SYMBOL(request_perfmon_irq);
EXPORT_SYMBOL(free_perfmon_irq);
EXPORT_SYMBOL(reserve_pmc_hardware);
EXPORT_SYMBOL(release_pmc_hardware);
+2 −2
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@

extern void (*perf_irq)(struct pt_regs *);

int request_perfmon_irq(void (*handler)(struct pt_regs *));
void free_perfmon_irq(void);
int reserve_pmc_hardware(void (*handler)(struct pt_regs *));
void release_pmc_hardware(void);

#ifdef CONFIG_FSL_BOOKE
void init_pmc_stop(int ctr);