Merge branch 'pmu-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into devel-stable
This commit is contained in:
@@ -377,9 +377,18 @@ validate_group(struct perf_event *event)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static irqreturn_t armpmu_platform_irq(int irq, void *dev)
|
||||
{
|
||||
struct arm_pmu_platdata *plat = dev_get_platdata(&pmu_device->dev);
|
||||
|
||||
return plat->handle_irq(irq, dev, armpmu->handle_irq);
|
||||
}
|
||||
|
||||
static int
|
||||
armpmu_reserve_hardware(void)
|
||||
{
|
||||
struct arm_pmu_platdata *plat;
|
||||
irq_handler_t handle_irq;
|
||||
int i, err = -ENODEV, irq;
|
||||
|
||||
pmu_device = reserve_pmu(ARM_PMU_DEVICE_CPU);
|
||||
@@ -390,6 +399,12 @@ armpmu_reserve_hardware(void)
|
||||
|
||||
init_pmu(ARM_PMU_DEVICE_CPU);
|
||||
|
||||
plat = dev_get_platdata(&pmu_device->dev);
|
||||
if (plat && plat->handle_irq)
|
||||
handle_irq = armpmu_platform_irq;
|
||||
else
|
||||
handle_irq = armpmu->handle_irq;
|
||||
|
||||
if (pmu_device->num_resources < 1) {
|
||||
pr_err("no irqs for PMUs defined\n");
|
||||
return -ENODEV;
|
||||
@@ -400,7 +415,7 @@ armpmu_reserve_hardware(void)
|
||||
if (irq < 0)
|
||||
continue;
|
||||
|
||||
err = request_irq(irq, armpmu->handle_irq,
|
||||
err = request_irq(irq, handle_irq,
|
||||
IRQF_DISABLED | IRQF_NOBALANCING,
|
||||
"armpmu", NULL);
|
||||
if (err) {
|
||||
|
Reference in New Issue
Block a user