Message ID | 20090528123311.GA3112@pengutronix.de (mailing list archive) |
---|---|
State | Rejected, archived |
Headers | show |
On Thu, May 28, 2009 at 10:33 PM, Wolfram Sang <w.sang@pengutronix.de> wrote: >> this is an example of how a simple 8313 Periodic Interval Timer (PIT) kernel driver >> registers for the PIT IRQ (Interrupt ID 65) >> >> #define PIT_IRQ 65 >> >> virq = irq_create_mapping(NULL, PIT_IRQ); >> set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); >> >> if(request_irq(virq, (irq_handler_t)timerEvent, 0, "timer2", (void *)0)) { >> printk(KERN_ERR "request_irq() returned error for irq=%d virq=%d\n", PIT_IRQ, virq); >> } > > It is some time ago, but when I did something similar I needed the > following patch in order to use NULL for irq_create_mapping(). Have a > try, and if it is still needed (as it looks from a glimpse), then maybe > we should get it merged? > > === > > From: Wolfram Sang <w.sang@pengutronix.de> > Subject: [PATCH] powerpc/cpm2: make cpm2_pic the default host > > Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> > --- > arch/powerpc/sysdev/cpm2_pic.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c > index 78f1f7c..7a7d4e5 100644 > --- a/arch/powerpc/sysdev/cpm2_pic.c > +++ b/arch/powerpc/sysdev/cpm2_pic.c > @@ -272,4 +272,5 @@ void cpm2_pic_init(struct device_node *node) > printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n"); > return; > } > + irq_set_default_host(cpm2_pic_host); > } Thanks guys. I can confirm that Wolfram's patch above is required to get Norbet's suggestion to work. Without the patch, I still get the original symptoms. I have tested this on 2.6.27.19. Daniel
On Thu, 2009-05-28 at 14:33 +0200, Wolfram Sang wrote: > > this is an example of how a simple 8313 Periodic Interval Timer (PIT) kernel driver > > registers for the PIT IRQ (Interrupt ID 65) > > > > #define PIT_IRQ 65 > > > > virq = irq_create_mapping(NULL, PIT_IRQ); > > set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); > > > > if(request_irq(virq, (irq_handler_t)timerEvent, 0, "timer2", (void *)0)) { > > printk(KERN_ERR "request_irq() returned error for irq=%d virq=%d\n", PIT_IRQ, virq); > > } > > It is some time ago, but when I did something similar I needed the > following patch in order to use NULL for irq_create_mapping(). Have a > try, and if it is still needed (as it looks from a glimpse), then maybe > we should get it merged? I would object that you wouldn't have this problem if you weren't hard wiring your interrupt number and were using the device-tree properly instead. As to getting your patch merged, you'll have to argue with Scott Wood who, I think, maintains the CPM2 stuff lately. Cheers, Ben. > === > > From: Wolfram Sang <w.sang@pengutronix.de> > Subject: [PATCH] powerpc/cpm2: make cpm2_pic the default host > > Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> > --- > arch/powerpc/sysdev/cpm2_pic.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c > index 78f1f7c..7a7d4e5 100644 > --- a/arch/powerpc/sysdev/cpm2_pic.c > +++ b/arch/powerpc/sysdev/cpm2_pic.c > @@ -272,4 +272,5 @@ void cpm2_pic_init(struct device_node *node) > printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n"); > return; > } > + irq_set_default_host(cpm2_pic_host); > } > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-dev
> I would object that you wouldn't have this problem if you weren't hard > wiring your interrupt number and were using the device-tree properly > instead. As to getting your patch merged, you'll have to argue with > Scott Wood who, I think, maintains the CPM2 stuff lately. I fully agree that the proper way is using the device tree. I can't recall exactly why this wasn't an option to me a year ago, but I assume it had something to do with this ugly out-of-tree-driver. I wouldn't really argue about this patch, I just thought it might be useful as it seems there are people trying to do the same for some reason. Then again, maybe it should be skipped, as it makes it easier to not use the proper solution (= device tree) :) Kind regards, Wolfram
On Tue, 2009-06-02 at 06:38 +0200, Wolfram Sang wrote: > I fully agree that the proper way is using the device tree. I can't recall > exactly why this wasn't an option to me a year ago, but I assume it had > something to do with this ugly out-of-tree-driver. I wouldn't really argue > about this patch, I just thought it might be useful as it seems there are > people trying to do the same for some reason. Then again, maybe it should be > skipped, as it makes it easier to not use the proper solution (= device tree) > :) Whether the driver is in or out of tree shouldn't affect the device-tree which represents the -devices- on the system regardless of whether a driver is in-tree or not. So while some people might flinch, I don't necessarily object to adding nodes in the device-trees we ship with the kernel for things for which we don't have an in-tree driver. It does mean however that the risk of such nodes containing busted informations that aren't spotted because nobody has the driver to test is higher but that's a risk you are taking with out of tree drivers anyway. Cheers, Ben.
=== From: Wolfram Sang <w.sang@pengutronix.de> Subject: [PATCH] powerpc/cpm2: make cpm2_pic the default host Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> --- arch/powerpc/sysdev/cpm2_pic.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c index 78f1f7c..7a7d4e5 100644 --- a/arch/powerpc/sysdev/cpm2_pic.c +++ b/arch/powerpc/sysdev/cpm2_pic.c @@ -272,4 +272,5 @@ void cpm2_pic_init(struct device_node *node) printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n"); return; } + irq_set_default_host(cpm2_pic_host); }