* Using DMA interrupt on MPC8313 @ 2008-06-12 19:35 Ron Madrid 2008-06-12 19:47 ` Kumar Gala 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-12 19:35 UTC (permalink / raw) To: linuxppc-dev I'm trying to write a driver that would make use of the DMA on the MPC8313. I'm attempting to register the interrupt with request_irq but it is not passing. Is there something that I need to do before I call request_irq, maybe in the dts or somewhere else? Ron ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-12 19:35 Using DMA interrupt on MPC8313 Ron Madrid @ 2008-06-12 19:47 ` Kumar Gala 2008-06-12 20:04 ` Ron Madrid 0 siblings, 1 reply; 19+ messages in thread From: Kumar Gala @ 2008-06-12 19:47 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: > I'm trying to write a driver that would make use of the DMA on the > MPC8313. I'm attempting to > register the interrupt with request_irq but it is not passing. Is > there something that I need to > do before I call request_irq, maybe in the dts or somewhere else? any reason you aren't using the dmaengine driver? - k ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-12 19:47 ` Kumar Gala @ 2008-06-12 20:04 ` Ron Madrid 2008-06-12 23:01 ` Kumar Gala 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-12 20:04 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev Well in that case wouldn't I need to use the fsldma driver? Or is dmaengine a generic dma driver? Ron --- Kumar Gala <galak@kernel.crashing.org> wrote: > > On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: > > > I'm trying to write a driver that would make use of the DMA on the > > MPC8313. I'm attempting to > > register the interrupt with request_irq but it is not passing. Is > > there something that I need to > > do before I call request_irq, maybe in the dts or somewhere else? > > > any reason you aren't using the dmaengine driver? > > - k > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-12 20:04 ` Ron Madrid @ 2008-06-12 23:01 ` Kumar Gala 2008-06-13 19:02 ` Ron Madrid 0 siblings, 1 reply; 19+ messages in thread From: Kumar Gala @ 2008-06-12 23:01 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev The dmaengine provides a generic set of APIs w/a FSL dma backend. It might be the case that your need of dma doesnt fit into the current set of APIs. - k On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: > Well in that case wouldn't I need to use the fsldma driver? Or is > dmaengine a generic dma driver? > > Ron > --- Kumar Gala <galak@kernel.crashing.org> wrote: > >> >> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: >> >>> I'm trying to write a driver that would make use of the DMA on the >>> MPC8313. I'm attempting to >>> register the interrupt with request_irq but it is not passing. Is >>> there something that I need to >>> do before I call request_irq, maybe in the dts or somewhere else? >> >> >> any reason you aren't using the dmaengine driver? >> >> - k >> ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-12 23:01 ` Kumar Gala @ 2008-06-13 19:02 ` Ron Madrid 2008-06-13 23:33 ` Kumar Gala 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-13 19:02 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev So after I've built the kernel to include the dmaengine and fsldma drivers, my driver is allowed to register its ISR via request_irq. However, if these drivers are not installed then request_irq fails in my driver. So it seems that there is some other initialization happening before request_irq is being called in fsldma and subsequently my driver. Does anyone know what this is? Ron --- Kumar Gala <galak@kernel.crashing.org> wrote: > The dmaengine provides a generic set of APIs w/a FSL dma backend. It > might be the case that your need of dma doesnt fit into the current > set of APIs. > > - k > > On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: > > > Well in that case wouldn't I need to use the fsldma driver? Or is > > dmaengine a generic dma driver? > > > > Ron > > --- Kumar Gala <galak@kernel.crashing.org> wrote: > > > >> > >> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: > >> > >>> I'm trying to write a driver that would make use of the DMA on the > >>> MPC8313. I'm attempting to > >>> register the interrupt with request_irq but it is not passing. Is > >>> there something that I need to > >>> do before I call request_irq, maybe in the dts or somewhere else? > >> > >> > >> any reason you aren't using the dmaengine driver? > >> > >> - k > >> > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-13 19:02 ` Ron Madrid @ 2008-06-13 23:33 ` Kumar Gala 2008-06-13 23:52 ` Ron Madrid 0 siblings, 1 reply; 19+ messages in thread From: Kumar Gala @ 2008-06-13 23:33 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev That's a bit odd. How is your driver getting the IRQ its requesting? Are you using the same .dts in both cases? - k On Jun 13, 2008, at 2:02 PM, Ron Madrid wrote: > So after I've built the kernel to include the dmaengine and fsldma > drivers, my driver is allowed > to register its ISR via request_irq. However, if these drivers are > not installed then request_irq > fails in my driver. So it seems that there is some other > initialization happening before > request_irq is being called in fsldma and subsequently my driver. > Does anyone know what this is? > > Ron > --- Kumar Gala <galak@kernel.crashing.org> wrote: > >> The dmaengine provides a generic set of APIs w/a FSL dma backend. It >> might be the case that your need of dma doesnt fit into the current >> set of APIs. >> >> - k >> >> On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: >> >>> Well in that case wouldn't I need to use the fsldma driver? Or is >>> dmaengine a generic dma driver? >>> >>> Ron >>> --- Kumar Gala <galak@kernel.crashing.org> wrote: >>> >>>> >>>> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: >>>> >>>>> I'm trying to write a driver that would make use of the DMA on the >>>>> MPC8313. I'm attempting to >>>>> register the interrupt with request_irq but it is not passing. Is >>>>> there something that I need to >>>>> do before I call request_irq, maybe in the dts or somewhere else? >>>> >>>> >>>> any reason you aren't using the dmaengine driver? >>>> >>>> - k >>>> >> >> ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-13 23:33 ` Kumar Gala @ 2008-06-13 23:52 ` Ron Madrid 2008-06-13 23:54 ` Timur Tabi 2008-06-16 14:44 ` Kumar Gala 0 siblings, 2 replies; 19+ messages in thread From: Ron Madrid @ 2008-06-13 23:52 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev I don't know why request_irq is succeeding when the fsldma and dmaengine drivers are installed. I'm using the same dts in both cases. Ron --- Kumar Gala <galak@kernel.crashing.org> wrote: > That's a bit odd. How is your driver getting the IRQ its requesting? > Are you using the same .dts in both cases? > > - k > > On Jun 13, 2008, at 2:02 PM, Ron Madrid wrote: > > > So after I've built the kernel to include the dmaengine and fsldma > > drivers, my driver is allowed > > to register its ISR via request_irq. However, if these drivers are > > not installed then request_irq > > fails in my driver. So it seems that there is some other > > initialization happening before > > request_irq is being called in fsldma and subsequently my driver. > > Does anyone know what this is? > > > > Ron > > --- Kumar Gala <galak@kernel.crashing.org> wrote: > > > >> The dmaengine provides a generic set of APIs w/a FSL dma backend. It > >> might be the case that your need of dma doesnt fit into the current > >> set of APIs. > >> > >> - k > >> > >> On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: > >> > >>> Well in that case wouldn't I need to use the fsldma driver? Or is > >>> dmaengine a generic dma driver? > >>> > >>> Ron > >>> --- Kumar Gala <galak@kernel.crashing.org> wrote: > >>> > >>>> > >>>> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: > >>>> > >>>>> I'm trying to write a driver that would make use of the DMA on the > >>>>> MPC8313. I'm attempting to > >>>>> register the interrupt with request_irq but it is not passing. Is > >>>>> there something that I need to > >>>>> do before I call request_irq, maybe in the dts or somewhere else? > >>>> > >>>> > >>>> any reason you aren't using the dmaengine driver? > >>>> > >>>> - k > >>>> > >> > >> > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-13 23:52 ` Ron Madrid @ 2008-06-13 23:54 ` Timur Tabi 2008-06-14 0:19 ` Ron Madrid 2008-06-16 14:44 ` Kumar Gala 1 sibling, 1 reply; 19+ messages in thread From: Timur Tabi @ 2008-06-13 23:54 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev Ron Madrid wrote: > I don't know why request_irq is succeeding when the fsldma and dmaengine drivers are installed. > I'm using the same dts in both cases. At this point, my only suggestion is to debug the request_irq() call and see what exactly fails. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-13 23:54 ` Timur Tabi @ 2008-06-14 0:19 ` Ron Madrid 2008-06-16 14:11 ` Timur Tabi 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-14 0:19 UTC (permalink / raw) To: Timur Tabi; +Cc: linuxppc-dev So are you implying that the request_irq function should work without any other initialization function before it? Ron --- Timur Tabi <timur@freescale.com> wrote: > Ron Madrid wrote: > > I don't know why request_irq is succeeding when the fsldma and dmaengine drivers are > installed. > > I'm using the same dts in both cases. > > At this point, my only suggestion is to debug the request_irq() call and > see what exactly fails. > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-14 0:19 ` Ron Madrid @ 2008-06-16 14:11 ` Timur Tabi 0 siblings, 0 replies; 19+ messages in thread From: Timur Tabi @ 2008-06-16 14:11 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev Ron Madrid wrote: > So are you implying that the request_irq function should work without any other initialization > function before it? No, I'm saying that you'll get a more accurate assessment of why it fails if you see where it returns an error code. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-13 23:52 ` Ron Madrid 2008-06-13 23:54 ` Timur Tabi @ 2008-06-16 14:44 ` Kumar Gala 2008-06-16 17:13 ` Ron Madrid 1 sibling, 1 reply; 19+ messages in thread From: Kumar Gala @ 2008-06-16 14:44 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev What does your code actually look like. In your driver how are you getting the IRQ value that you pass to request_irq? - k On Jun 13, 2008, at 6:52 PM, Ron Madrid wrote: > I don't know why request_irq is succeeding when the fsldma and > dmaengine drivers are installed. > I'm using the same dts in both cases. > > Ron > --- Kumar Gala <galak@kernel.crashing.org> wrote: > >> That's a bit odd. How is your driver getting the IRQ its requesting? >> Are you using the same .dts in both cases? >> >> - k >> >> On Jun 13, 2008, at 2:02 PM, Ron Madrid wrote: >> >>> So after I've built the kernel to include the dmaengine and fsldma >>> drivers, my driver is allowed >>> to register its ISR via request_irq. However, if these drivers are >>> not installed then request_irq >>> fails in my driver. So it seems that there is some other >>> initialization happening before >>> request_irq is being called in fsldma and subsequently my driver. >>> Does anyone know what this is? >>> >>> Ron >>> --- Kumar Gala <galak@kernel.crashing.org> wrote: >>> >>>> The dmaengine provides a generic set of APIs w/a FSL dma >>>> backend. It >>>> might be the case that your need of dma doesnt fit into the current >>>> set of APIs. >>>> >>>> - k >>>> >>>> On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: >>>> >>>>> Well in that case wouldn't I need to use the fsldma driver? Or is >>>>> dmaengine a generic dma driver? >>>>> >>>>> Ron >>>>> --- Kumar Gala <galak@kernel.crashing.org> wrote: >>>>> >>>>>> >>>>>> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: >>>>>> >>>>>>> I'm trying to write a driver that would make use of the DMA on >>>>>>> the >>>>>>> MPC8313. I'm attempting to >>>>>>> register the interrupt with request_irq but it is not >>>>>>> passing. Is >>>>>>> there something that I need to >>>>>>> do before I call request_irq, maybe in the dts or somewhere >>>>>>> else? >>>>>> >>>>>> >>>>>> any reason you aren't using the dmaengine driver? >>>>>> >>>>>> - k >>>>>> >>>> >>>> >> >> ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 14:44 ` Kumar Gala @ 2008-06-16 17:13 ` Ron Madrid 2008-06-16 17:32 ` Scott Wood 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-16 17:13 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev Here's my code. There are a few other things that happen but they are inconsequential to this problem. I'm sure that the request_irq call is right, especially since it works if the fsldma drivers are builtin to the kernel. Also, the irq number 71 comes from the reference manual for them MPC8313. It is the internal interrupt for the DMA. I'll do some more testing in a little while to try to determine the cause of the error in request_irq. int result = 0; unsigned int firstminor = 0; dev_t dev; printk(KERN_ALERT "Hello World Driver! Hi Ron2!\n"); result |= alloc_chrdev_region(&dev, firstminor, 1, kModuleName); if(result < 0){ printk("simpc: alloc_chrdev_region failed %u\n", result); return result; } mpc_major = MAJOR(dev); mpc_minor = MINOR(dev); printk(KERN_ALERT kModuleName " MAJOR NUM = %d\n",mpc_major); pdx.devno = MKDEV(mpc_major, mpc_minor); cdev_init(&pdx.cdev, &mpc_fops); pdx.cdev.owner = THIS_MODULE; pdx.cdev.ops = &mpc_fops; result = cdev_add(&pdx.cdev, pdx.devno, 1); if(result) printk(KERN_ALERT kModuleName "-init_module: Error %d adding pdx.cdev", result); printk(KERN_ALERT kModuleName "-SIMPC_open: Entering\n"); pdx.irq = 71; printk(KERN_ALERT kModuleName "-SIMPC_open: IRQ = %d\n", pdx.irq); if (pdx.irq == 0){ printk(kModuleName "-SIMPC_open: WARNING-cannot get IRQ\n"); return 0; } if (request_irq(pdx.irq, SIMPC_isr, IRQF_SHARED, kModuleName, &pdx)){ printk(kModuleName "-SIMPC_open: ERROR-Interrupt Request failed.\n" " pdx.irq = %d, SIMPC_isr = 0x%x\n", pdx.irq, (int)SIMPC_isr); pdx.irq = 0; } else printk(kModuleName "-SIMPC_open: found IRQ %d\n", pdx.irq); --- Kumar Gala <galak@kernel.crashing.org> wrote: > What does your code actually look like. In your driver how are you > getting the IRQ value that you pass to request_irq? > > - k > > On Jun 13, 2008, at 6:52 PM, Ron Madrid wrote: > > > I don't know why request_irq is succeeding when the fsldma and > > dmaengine drivers are installed. > > I'm using the same dts in both cases. > > > > Ron > > --- Kumar Gala <galak@kernel.crashing.org> wrote: > > > >> That's a bit odd. How is your driver getting the IRQ its requesting? > >> Are you using the same .dts in both cases? > >> > >> - k > >> > >> On Jun 13, 2008, at 2:02 PM, Ron Madrid wrote: > >> > >>> So after I've built the kernel to include the dmaengine and fsldma > >>> drivers, my driver is allowed > >>> to register its ISR via request_irq. However, if these drivers are > >>> not installed then request_irq > >>> fails in my driver. So it seems that there is some other > >>> initialization happening before > >>> request_irq is being called in fsldma and subsequently my driver. > >>> Does anyone know what this is? > >>> > >>> Ron > >>> --- Kumar Gala <galak@kernel.crashing.org> wrote: > >>> > >>>> The dmaengine provides a generic set of APIs w/a FSL dma > >>>> backend. It > >>>> might be the case that your need of dma doesnt fit into the current > >>>> set of APIs. > >>>> > >>>> - k > >>>> > >>>> On Jun 12, 2008, at 3:04 PM, Ron Madrid wrote: > >>>> > >>>>> Well in that case wouldn't I need to use the fsldma driver? Or is > >>>>> dmaengine a generic dma driver? > >>>>> > >>>>> Ron > >>>>> --- Kumar Gala <galak@kernel.crashing.org> wrote: > >>>>> > >>>>>> > >>>>>> On Jun 12, 2008, at 2:35 PM, Ron Madrid wrote: > >>>>>> > >>>>>>> I'm trying to write a driver that would make use of the DMA on > >>>>>>> the > >>>>>>> MPC8313. I'm attempting to > >>>>>>> register the interrupt with request_irq but it is not > >>>>>>> passing. Is > >>>>>>> there something that I need to > >>>>>>> do before I call request_irq, maybe in the dts or somewhere > >>>>>>> else? > >>>>>> > >>>>>> > >>>>>> any reason you aren't using the dmaengine driver? > >>>>>> > >>>>>> - k > >>>>>> > >>>> > >>>> > >> > >> > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 17:13 ` Ron Madrid @ 2008-06-16 17:32 ` Scott Wood 2008-06-16 18:07 ` Ron Madrid 0 siblings, 1 reply; 19+ messages in thread From: Scott Wood @ 2008-06-16 17:32 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev Ron Madrid wrote: > Here's my code. There are a few other things that happen but they are inconsequential to this > problem. I'm sure that the request_irq call is right, especially since it works if the fsldma > drivers are builtin to the kernel. Also, the irq number 71 comes from the reference manual for > them MPC8313. It is the internal interrupt for the DMA. I'll do some more testing in a little > while to try to determine the cause of the error in request_irq. You cannot pass hardware IRQ numbers directly to request_irq() -- it has no idea which IRQ controller you're referring to (even if there happens to be only one on your board). You should get the IRQ from the device tree, using irq_of_parse_and_map() on the device node for the DMA channel (see the mpc8377mds device tree for an example DMA node). -Scott ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 17:32 ` Scott Wood @ 2008-06-16 18:07 ` Ron Madrid 2008-06-16 18:11 ` Timur Tabi 2008-06-16 18:40 ` Scott Wood 0 siblings, 2 replies; 19+ messages in thread From: Ron Madrid @ 2008-06-16 18:07 UTC (permalink / raw) To: Scott Wood; +Cc: linuxppc-dev I don't see a "dma" node in the mpc8377mds.dts (2.6.25). I found one in mpc8610_hpcd.dts and modeled it after that. dma@82a8 { #address-cells = <1>; #size-cells = <1>; compatible = "fsl,elo-dma"; cell-index = <0>; reg = <0x82a8 0x4>; /* DMA general status register */ ranges = <0x0 0x8100 0x200>; dma-channel@0 { compatible = "fsl,elo-dma-channel"; cell-index = <0>; reg = <0x0 0x80>; interrupt-parent = <&ipic>; interrupts = <71 0x8>; }; dma-channel@1 { compatible = "fsl,elo-dma-channel"; cell-index = <1>; reg = <0x80 0x80>; interrupt-parent = <&ipic>; interrupts = <71 0x8>; }; dma-channel@2 { compatible = "fsl,elo-dma-channel"; cell-index = <2>; reg = <0x100 0x80>; interrupt-parent = <&ipic>; interrupts = <71 0x8>; }; dma-channel@3 { compatible = "fsl,elo-dma-channel"; cell-index = <3>; reg = <0x180 0x80>; interrupt-parent = <&ipic>; interrupts = <71 0x8>; }; }; --- Scott Wood <scottwood@freescale.com> wrote: > Ron Madrid wrote: > > Here's my code. There are a few other things that happen but they are inconsequential to this > > problem. I'm sure that the request_irq call is right, especially since it works if the fsldma > > drivers are builtin to the kernel. Also, the irq number 71 comes from the reference manual > for > > them MPC8313. It is the internal interrupt for the DMA. I'll do some more testing in a > little > > while to try to determine the cause of the error in request_irq. > > You cannot pass hardware IRQ numbers directly to request_irq() -- it has > no idea which IRQ controller you're referring to (even if there happens > to be only one on your board). > > You should get the IRQ from the device tree, using > irq_of_parse_and_map() on the device node for the DMA channel (see the > mpc8377mds device tree for an example DMA node). > > -Scott > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 18:07 ` Ron Madrid @ 2008-06-16 18:11 ` Timur Tabi 2008-06-16 18:40 ` Scott Wood 1 sibling, 0 replies; 19+ messages in thread From: Timur Tabi @ 2008-06-16 18:11 UTC (permalink / raw) To: Ron Madrid; +Cc: Scott Wood, linuxppc-dev Ron Madrid wrote: > I don't see a "dma" node in the mpc8377mds.dts (2.6.25). I found one in mpc8610_hpcd.dts and > modeled it after that. The DMA hardware on the 8610 is not the same as the DMA hardware on 83xx chips. You should copy the DMA data from another 83xx DTS. -- Timur Tabi Linux kernel developer at Freescale ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 18:07 ` Ron Madrid 2008-06-16 18:11 ` Timur Tabi @ 2008-06-16 18:40 ` Scott Wood 2008-06-16 19:10 ` Ron Madrid 1 sibling, 1 reply; 19+ messages in thread From: Scott Wood @ 2008-06-16 18:40 UTC (permalink / raw) To: Ron Madrid; +Cc: linuxppc-dev Ron Madrid wrote: > I don't see a "dma" node in the mpc8377mds.dts (2.6.25). I found one in mpc8610_hpcd.dts and > modeled it after that. Try head-of-tree. > dma@82a8 { > #address-cells = <1>; > #size-cells = <1>; > compatible = "fsl,elo-dma"; > cell-index = <0>; > reg = <0x82a8 0x4>; /* DMA general status register */ > ranges = <0x0 0x8100 0x200>; Should also put the interrupts in the dma node itself, so that the driver can register it once and use the shared status register (but don't remove it from the individual channels). -Scott ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 18:40 ` Scott Wood @ 2008-06-16 19:10 ` Ron Madrid 2008-06-24 5:54 ` jumpingProgrammer 0 siblings, 1 reply; 19+ messages in thread From: Ron Madrid @ 2008-06-16 19:10 UTC (permalink / raw) To: Scott Wood; +Cc: linuxppc-dev Thank you for the help (again). I've got my driver registering the isr on it's own now. In the end the problem was the dts and also not using irq_of_parse_and_map. Ron --- Scott Wood <scottwood@freescale.com> wrote: > Ron Madrid wrote: > > I don't see a "dma" node in the mpc8377mds.dts (2.6.25). I found one in mpc8610_hpcd.dts and > > modeled it after that. > > Try head-of-tree. > > > dma@82a8 { > > #address-cells = <1>; > > #size-cells = <1>; > > compatible = "fsl,elo-dma"; > > cell-index = <0>; > > reg = <0x82a8 0x4>; /* DMA general status register */ > > ranges = <0x0 0x8100 0x200>; > > Should also put the interrupts in the dma node itself, so that the > driver can register it once and use the shared status register (but > don't remove it from the individual channels). > > -Scott > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-16 19:10 ` Ron Madrid @ 2008-06-24 5:54 ` jumpingProgrammer 2008-06-24 18:04 ` Scott Wood 0 siblings, 1 reply; 19+ messages in thread From: jumpingProgrammer @ 2008-06-24 5:54 UTC (permalink / raw) To: linuxppc-dev I use this in 8313erdb.dts, but can not find DMA info in /proc/interrupts.why? dma@8030 { #address-cells = <1>; #size-cells = <1>; compatible = "fsl,elo-dma"; cell-index = <0>; reg = <8030 2d0>; /* DMA general status register */ ranges = <0 8100 200>; dma-channel@0 { compatible = "fsl,elo-dma-channel"; cell-index = <0>; reg = <0 80>; interrupt-parent = <700>; interrupts = <47 8>; }; dma-channel@1 { compatible = "fsl,elo-dma-channel"; cell-index = <1>; reg = <80 80>; interrupt-parent = <700>; interrupts = <47 8>; }; dma-channel@2 { compatible = "fsl,elo-dma-channel"; cell-index = <2>; reg = <100 80>; interrupt-parent = <700>; interrupts = <47 8>; }; dma-channel@3 { compatible = "fsl,elo-dma-channel"; cell-index = <3>; reg = <180 80>; interrupt-parent = <700>; interrupts = <47 8>; }; } _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev -- View this message in context: http://www.nabble.com/Using-DMA-interrupt-on-MPC8313-tp17808164p18084260.html Sent from the linuxppc-dev mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Using DMA interrupt on MPC8313 2008-06-24 5:54 ` jumpingProgrammer @ 2008-06-24 18:04 ` Scott Wood 0 siblings, 0 replies; 19+ messages in thread From: Scott Wood @ 2008-06-24 18:04 UTC (permalink / raw) To: jumpingProgrammer; +Cc: linuxppc-dev On Mon, Jun 23, 2008 at 10:54:28PM -0700, jumpingProgrammer wrote: > > I use this in 8313erdb.dts, but can not find DMA info in > /proc/interrupts.why? Is the driver enabled, and did it call request_irq? -Scott ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2008-06-24 18:05 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-06-12 19:35 Using DMA interrupt on MPC8313 Ron Madrid 2008-06-12 19:47 ` Kumar Gala 2008-06-12 20:04 ` Ron Madrid 2008-06-12 23:01 ` Kumar Gala 2008-06-13 19:02 ` Ron Madrid 2008-06-13 23:33 ` Kumar Gala 2008-06-13 23:52 ` Ron Madrid 2008-06-13 23:54 ` Timur Tabi 2008-06-14 0:19 ` Ron Madrid 2008-06-16 14:11 ` Timur Tabi 2008-06-16 14:44 ` Kumar Gala 2008-06-16 17:13 ` Ron Madrid 2008-06-16 17:32 ` Scott Wood 2008-06-16 18:07 ` Ron Madrid 2008-06-16 18:11 ` Timur Tabi 2008-06-16 18:40 ` Scott Wood 2008-06-16 19:10 ` Ron Madrid 2008-06-24 5:54 ` jumpingProgrammer 2008-06-24 18:04 ` Scott Wood
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).