* [patch v4 3/3] arm: omap4: support pmu [not found] <1299598729-27974-1-git-send-email-tom.leiming@gmail.com> @ 2011-03-08 15:38 ` tom.leiming 2011-05-14 8:18 ` Rabin Vincent 0 siblings, 1 reply; 6+ messages in thread From: tom.leiming @ 2011-03-08 15:38 UTC (permalink / raw) To: linux; +Cc: linux-arm-kernel, will.deacon, Ming Lei, Woodruff Richard, linux-omap From: Ming Lei <tom.leiming@gmail.com> This patch supports pmu irq routed from CTI, so make pmu/perf working on OMAP4. The idea is from Woodruff Richard in the disscussion about "Oprofile on Pandaboard / Omap4" on pandaboard@googlegroups.com. Acked-by: Jean Pihet <j-pihet@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Woodruff Richard <r-woodruff2@ti.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Ming Lei <tom.leiming@gmail.com> --- arch/arm/mach-omap2/devices.c | 82 +++++++++++++++++++++++++++- arch/arm/plat-omap/include/plat/omap44xx.h | 2 + 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index d216976..d97bb5a 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c @@ -22,6 +22,7 @@ #include <asm/mach-types.h> #include <asm/mach/map.h> #include <asm/pmu.h> +#include <asm/cti.h> #include <plat/tc.h> #include <plat/board.h> @@ -322,20 +323,95 @@ static struct resource omap3_pmu_resource = { .flags = IORESOURCE_IRQ, }; +static struct resource omap4_pmu_resource[] = { + { + .start = OMAP44XX_IRQ_CTI0, + .end = OMAP44XX_IRQ_CTI0, + .flags = IORESOURCE_IRQ, + }, + { + .start = OMAP44XX_IRQ_CTI1, + .end = OMAP44XX_IRQ_CTI1, + .flags = IORESOURCE_IRQ, + } +}; + static struct platform_device omap_pmu_device = { .name = "arm-pmu", .id = ARM_PMU_DEVICE_CPU, .num_resources = 1, }; +static struct arm_pmu_platdata omap4_pmu_data; +static struct cti omap4_cti[2]; + +static void omap4_enable_cti(int irq) +{ + if (irq == OMAP44XX_IRQ_CTI0) + cti_enable(&omap4_cti[0]); + else if (irq == OMAP44XX_IRQ_CTI1) + cti_enable(&omap4_cti[1]); +} + +static void omap4_disable_cti(int irq) +{ + if (irq == OMAP44XX_IRQ_CTI0) + cti_disable(&omap4_cti[0]); + else if (irq == OMAP44XX_IRQ_CTI1) + cti_disable(&omap4_cti[1]); +} + +static irqreturn_t omap4_pmu_handler(int irq, void *dev, irq_handler_t handler) +{ + if (irq == OMAP44XX_IRQ_CTI0) + cti_irq_ack(&omap4_cti[0]); + else if (irq == OMAP44XX_IRQ_CTI1) + cti_irq_ack(&omap4_cti[1]); + + return handler(irq, dev); +} + +static void omap4_configure_pmu_irq(void) +{ + void __iomem *base0; + void __iomem *base1; + + base0 = ioremap(OMAP44XX_CTI0_BASE, SZ_4K); + base1 = ioremap(OMAP44XX_CTI1_BASE, SZ_4K); + if (!base0 && !base1) { + pr_err("ioremap for OMAP4 CTI failed\n"); + return; + } + + /*configure CTI0 for pmu irq routing*/ + cti_init(&omap4_cti[0], base0, OMAP44XX_IRQ_CTI0, 6); + cti_unlock(&omap4_cti[0]); + cti_map_trigger(&omap4_cti[0], 1, 6, 2); + + /*configure CTI1 for pmu irq routing*/ + cti_init(&omap4_cti[1], base1, OMAP44XX_IRQ_CTI1, 6); + cti_unlock(&omap4_cti[1]); + cti_map_trigger(&omap4_cti[1], 1, 6, 2); + + omap4_pmu_data.handle_irq = omap4_pmu_handler; + omap4_pmu_data.enable_irq = omap4_enable_cti; + omap4_pmu_data.disable_irq = omap4_disable_cti; +} + static void omap_init_pmu(void) { - if (cpu_is_omap24xx()) + if (cpu_is_omap24xx()) { omap_pmu_device.resource = &omap2_pmu_resource; - else if (cpu_is_omap34xx()) + } else if (cpu_is_omap34xx()) { omap_pmu_device.resource = &omap3_pmu_resource; - else + } else if (cpu_is_omap44xx()) { + omap_pmu_device.resource = omap4_pmu_resource; + omap_pmu_device.num_resources = 2; + omap_pmu_device.dev.platform_data = &omap4_pmu_data; + omap4_configure_pmu_irq(); + } else { return; + } platform_device_register(&omap_pmu_device); } diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h index ea2b8a6..b127a16 100644 --- a/arch/arm/plat-omap/include/plat/omap44xx.h +++ b/arch/arm/plat-omap/include/plat/omap44xx.h @@ -57,5 +57,7 @@ #define OMAP44XX_HSUSB_OHCI_BASE (L4_44XX_BASE + 0x64800) #define OMAP44XX_HSUSB_EHCI_BASE (L4_44XX_BASE + 0x64C00) +#define OMAP44XX_CTI0_BASE 0x54148000 +#define OMAP44XX_CTI1_BASE 0x54149000 #endif /* __ASM_ARCH_OMAP44XX_H */ -- 1.7.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [patch v4 3/3] arm: omap4: support pmu 2011-03-08 15:38 ` [patch v4 3/3] arm: omap4: support pmu tom.leiming @ 2011-05-14 8:18 ` Rabin Vincent 2011-05-14 8:48 ` Ming Lei 0 siblings, 1 reply; 6+ messages in thread From: Rabin Vincent @ 2011-05-14 8:18 UTC (permalink / raw) To: tom.leiming Cc: linux, linux-omap, Woodruff Richard, will.deacon, linux-arm-kernel On Tue, Mar 8, 2011 at 21:08, <tom.leiming@gmail.com> wrote: > From: Ming Lei <tom.leiming@gmail.com> > > This patch supports pmu irq routed from CTI, so > make pmu/perf working on OMAP4. > > The idea is from Woodruff Richard in the disscussion > about "Oprofile on Pandaboard / Omap4" on pandaboard@googlegroups.com. > > Acked-by: Jean Pihet <j-pihet@ti.com> > Acked-by: Tony Lindgren <tony@atomide.com> > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > Cc: Woodruff Richard <r-woodruff2@ti.com> > Cc: linux-omap@vger.kernel.org > Signed-off-by: Ming Lei <tom.leiming@gmail.com> What happened to this patch? It is neither in mainline nor in linux-next. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 3/3] arm: omap4: support pmu 2011-05-14 8:18 ` Rabin Vincent @ 2011-05-14 8:48 ` Ming Lei 2011-05-14 9:49 ` Russell King - ARM Linux 2011-05-15 14:16 ` Will Deacon 0 siblings, 2 replies; 6+ messages in thread From: Ming Lei @ 2011-05-14 8:48 UTC (permalink / raw) To: Rabin Vincent Cc: linux, linux-omap, Woodruff Richard, will.deacon, linux-arm-kernel Hi Rabin, 2011/5/14 Rabin Vincent <rabin@rab.in>: > What happened to this patch? It is neither in mainline nor in > linux-next. > This patch depends on the two with titles: introduce cross trigger interface helpers pmu: allow platform specific irq enable/disable handling and the above patches have been submitted to RMK's patch system as 6839/1 and 6840/1, but not been pushed to -next or mainline by rmk, so I can't ask omap guys to merge this one into their tree now. thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 3/3] arm: omap4: support pmu 2011-05-14 8:48 ` Ming Lei @ 2011-05-14 9:49 ` Russell King - ARM Linux 2011-05-15 14:16 ` Will Deacon 1 sibling, 0 replies; 6+ messages in thread From: Russell King - ARM Linux @ 2011-05-14 9:49 UTC (permalink / raw) To: Ming Lei Cc: Rabin Vincent, linux-omap, Woodruff Richard, will.deacon, linux-arm-kernel On Sat, May 14, 2011 at 04:48:52PM +0800, Ming Lei wrote: > Hi Rabin, > > 2011/5/14 Rabin Vincent <rabin@rab.in>: > > What happened to this patch? It is neither in mainline nor in > > linux-next. > > > > This patch depends on the two with titles: > > introduce cross trigger interface helpers > pmu: allow platform specific irq enable/disable handling > > and the above patches have been submitted to RMK's patch system > as 6839/1 and 6840/1, but not been pushed to -next or mainline by rmk, > so I can't ask omap guys to merge this one into their tree now. Given the state of linux-next, which isn't showing much in the way of consolidation by anyone other than what's in my tree, I'm _desperately_ avoiding adding any new code for this coming merge window. In fact, the picture in linux-next is looking worse than the state of my tree. For arch/arm, my tree looks like this: 256 files changed, 1022 insertions(+), 14022 deletions(-) And for-next: 748 files changed, 15066 insertions(+), 26209 deletions(-) So there's a net reduction of 13000 lines in my tree, compared to a net reduction of 11143 lines in linux-next - so a net increase of 1857 lines for arch/arm from trees which aren't my tree. This is rather disappointing, and if linux-next really does reflect the current state across all ARM trees, it means that we have to keep the consolidation agenda running into the next merge cycle. So, I really can not afford to be adding new stuff into my tree at the present time. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 3/3] arm: omap4: support pmu 2011-05-14 8:48 ` Ming Lei 2011-05-14 9:49 ` Russell King - ARM Linux @ 2011-05-15 14:16 ` Will Deacon 2011-05-16 1:28 ` Ming Lei 1 sibling, 1 reply; 6+ messages in thread From: Will Deacon @ 2011-05-15 14:16 UTC (permalink / raw) To: Ming Lei Cc: Woodruff Richard, linux, avik.sil, Rabin Vincent, linux-omap, linux-arm-kernel [Adding Avik], On Sat, 2011-05-14 at 09:48 +0100, Ming Lei wrote: > Hi Rabin, > > 2011/5/14 Rabin Vincent <rabin@rab.in>: > > What happened to this patch? It is neither in mainline nor in > > linux-next. > > > > This patch depends on the two with titles: > > introduce cross trigger interface helpers > pmu: allow platform specific irq enable/disable handling > > and the above patches have been submitted to RMK's patch system > as 6839/1 and 6840/1, but not been pushed to -next or mainline by rmk, > so I can't ask omap guys to merge this one into their tree now. I don't think that Avik's problem with this patch has been fully addressed yet: http://lists.infradead.org/pipermail/linux-arm-kernel/2011-April/046899.html So regardless of the state of -next, I think there's still some more work to do on this code before it can go upstream. Will ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 3/3] arm: omap4: support pmu 2011-05-15 14:16 ` Will Deacon @ 2011-05-16 1:28 ` Ming Lei 0 siblings, 0 replies; 6+ messages in thread From: Ming Lei @ 2011-05-16 1:28 UTC (permalink / raw) To: Will Deacon Cc: Rabin Vincent, linux, linux-omap, Woodruff Richard, linux-arm-kernel, avik.sil Hi, 2011/5/15 Will Deacon <will.deacon@arm.com>: > [Adding Avik], > > > On Sat, 2011-05-14 at 09:48 +0100, Ming Lei wrote: >> Hi Rabin, >> >> 2011/5/14 Rabin Vincent <rabin@rab.in>: >> > What happened to this patch? It is neither in mainline nor in >> > linux-next. >> > >> >> This patch depends on the two with titles: >> >> introduce cross trigger interface helpers >> pmu: allow platform specific irq enable/disable handling >> >> and the above patches have been submitted to RMK's patch system >> as 6839/1 and 6840/1, but not been pushed to -next or mainline by rmk, >> so I can't ask omap guys to merge this one into their tree now. > > I don't think that Avik's problem with this patch has been fully > addressed yet: > > http://lists.infradead.org/pipermail/linux-arm-kernel/2011-April/046899.html > > So regardless of the state of -next, I think there's still some more > work to do on this code before it can go upstream. I remembered that Avik reported his issue on linaro kernel, instead of mainline. If Avik can reproduce this issue on mainline plus pandaboard, we can help to do it. In fact, this issue is not reproduced at all in mainline on my pandaboard. thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-05-16 1:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1299598729-27974-1-git-send-email-tom.leiming@gmail.com>
2011-03-08 15:38 ` [patch v4 3/3] arm: omap4: support pmu tom.leiming
2011-05-14 8:18 ` Rabin Vincent
2011-05-14 8:48 ` Ming Lei
2011-05-14 9:49 ` Russell King - ARM Linux
2011-05-15 14:16 ` Will Deacon
2011-05-16 1:28 ` Ming Lei
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).