Subject: pmu: armv7_a9_pmu_init() fails with -ENXIO

From: [email-masked] (Mason)
Date: Wed, 21 Oct 2015 17:44:10 +0200

On 21/10/2015 16:27, Sudeep Holla wrote:

> On 21/10/15 14:46, Mason wrote:
> 
>> I also looked more closely at of_pmu_irq_cfg()
>>
>> platform_get_irq(pdev, 0); returns -6
> 
> Won't it return here ?
> Though you must first check why is that returning error.
> 
>          irq = platform_get_irq(pdev, 0);
>          if (irq >= 0 && irq_is_percpu(irq))
>                  return 0;

Thanks for prodding me in the right direction.
platform_get_irq() was failing because I hadn't properly defined
the node's interrupt-parent...

I've added
  interrupt-parent = <&gic>;
at the root of my DT, and things now work as expected.
(Haven't tested actually using the counters yet.)

[    0.090058] irq=212 irqs=e7603400 pdev->num_resources=2
[    0.090091] hw perfevents: Failed to parse /pmu/interrupt-affinity[0]
[    0.090103] armv7_a9_pmu_init: ret=0
[    0.090145] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available

Thanks again.

Regards.