<javier__>
tilmann: I would go with the chrome os 3.8 kernel tree since that has support for the peach pit (exynos5420) and pi (5422/5800)
<javier__>
tilmann: or did you already check that one and didn't find what you were looking for? (sorry if I missed from the backlog)
<tfiga>
javier__: apparently there is no DT entry for ARM PMU in related dts files in chromeos-3.8 tree
<tilmann>
thanks for the pointers, i will have a look :)
<tomeu`>
tfiga: what's the status of s2r on the exynos4?
<tomeu`>
(in mainline, of course)
<tfiga>
tomeu`: SoC-wise it should work after applying the patches I sent some time ago
<tfiga>
boards might need specific fixup depending on design
<tfiga>
unfortunately getting something merged through Samsung SoC tree can be quite hard, so they missed this merge window and are delayed for 3.18
<javier__>
tfiga, tilmann: right, I just looked at the chrome os 3.8 kernel and I don't see that an "arm-pmu" is registered as a platform device neither
<tomeu`>
tfiga: do you have a rough idea of when those were sent?
<tomeu`>
ah, thought they were more recent, thanks
<javier__>
tfiga, tilmann: so I was looking at adding the needed PMU nodes for 5420 but I've some questions since I don't see other big.LITTLE platform on mainline that has their PMU defined
<javier__>
now it seems that the a15 and a7 cores interrupts are hooked differently
<javier__>
the a7 pmu have a combiner irq type while the a15 are just gic spi irqs
<javier__>
tfiga: does that mean that I should add 2 arm-pmu dev nodes?
* javier__
wonders how that works when the bL switches is not enabled
<tfiga>
javier__: to be honest, I have no idea
<tfiga>
but interrupts shouldn't matter here
<tfiga>
I mean, you could just use interrupts-extended or interrupt-map to specifiy interrupts with different parents
<javier__>
tfiga: right, I complete forgot about interrupts-extended
<javier__>
that was my question indeed since to use the exynos combiner I needed to define interrupt-parent = <&combiner>;
<javier__>
tfiga: thanks for the pointer
<tfiga>
but I wonder whether there aren't in fact two different PMU units
<tfiga>
one per cluster
<tfiga>
clearly I don't know too much about ARM PMU
<javier__>
yeah me neither, I'm just trying to help since I've access to the docs
<javier__>
but seems to not be as trivial as I thought
<javier__>
tfiga: there is also the question about the compatible string, by looking at arch/arm/kernel/perf_event_cpu.c I see that the pmu init function is passed in of_id->data
<javier__>
tfiga: so I don't think that the driver supports to init pmu units for different cpuid parts
<tfiga>
this might be a suggestion that you indeed need two separate nodes for both clusters
<javier__>
nod
<javier__>
hence my question what happens when you don't enable the bL switcher and just let the scheduler to manage all the cores
<tfiga>
although I wonder if this driver supports such cases
<tfiga>
apparently it doesn't
<javier__>
tilmann ^ may not be that trivial to enable the PMU for big.LITTLE machines
<javier__>
tilmann: better to ask on linux-samsung-soc for someone who has more experience with this
<tfiga>
well, at least if you require support for all cores
<tfiga>
it might not be that hard to fix the driver, though
<tfiga>
AFAICT the biggest issue is that it always sets things up for all possible CPUs, not a subset of them
<javier__>
tfiga: right, I guess it shouldn't be that hard to fix
<javier__>
although is more complex that just adding a DTS node as I originally thought :)
<javier__>
I'll add it to my TODO anyways for when I've more time to look at it in more detail
<tfiga>
javier__: tilmann: it looks like there is some ongoing work
<tilmann>
javier__: tfiga my understanding is that there is one PMU per CPU (e.g. two on Exynos 5420)
<tilmann>
so it sounds like there's no pmu code for big.LITTLE machines at all?
<tilmann>
to be honest at this point in time i'd be happy if it works just on the Cortex-A15 cores (the Cortex-A7 cores don't even boot on the Arndale Octa)
<javier__>
tilmann: are may try this DTS snippet (completely untested but afaiu has the right IRQs from the doc): http://paste.debian.net/plain/114859
<tilmann>
that looks like what's missing!
<javier__>
tilmann: ups you also need to include <dt-bindings/interrupt-controller/arm-gic.h>
<tilmann>
let me check what's in the kernel i'm using right now