From: Magnus D. <mag...@gm...> - 2007-07-26 16:56:11
|
Hi again Manuel, On 7/25/07, Manuel Lauss <ma...@ro...> wrote: > On Wed, Jul 25, 2007 at 11:16:39PM +0900, Magnus Damm wrote: > > On 7/25/07, Manuel Lauss <ma...@ro...> wrote: > > > On Wed, Jul 25, 2007 at 10:17:39PM +0900, Magnus Damm wrote: > > > > sh: intc - add support for SH7760 > > > > > > > + INTC_GROUP(MMCIF, MMCIF0, MMCIF1, MMCIF2, MMCIF3), > > > > > > With this patch my mmcif driver not longer works, since no > > > mmcif irq is generated. In the driver I only request > > > MMCIF0-2; MMCIF3 is unused. Does the grouping above mask all > > > grouped IRQs unless all have been enabled/requested? > > > > It should be possible to request a single interrupt only. > > > > The grouping is there because the priority value is shared between all > > MMCIF interrupts. We need some way to tell the intc code which > > interrupt sources that are bundled together, and that's what the > > groups are used for. > > > > The sh7780 device supports both masking with both priorities and > > bitmaps. The common intc code should prefer to use the per-interrupt > > source bitmap for MMCIF0-3 over the priority group to mask and unmask. > > So interrupts should be masked per-interrupt source for MMCIF. > > > > So.. are things working as before, or have i mistakenly introduced > > some new behavior? =) > > New behavior -- unless all 4 of the grouped MMCIF irqs are requested, > none trigger. They show up in /proc/interrupts but count does not change. I have two ideas: 1. Please try to add MMCIF3 to mask_registers[]. I must have missed that one. The "0" after MMCIF2 should be replaced with MMCIF3. This is a pretty obvious miss that I made when I created the tables from the data sheet. I hope that this fix helps. 2. If number 1 above doesn't help, please try replacing all MMCIF0-3 with 0 in mask_registers[]. That should force masking via the priority register. Could you please check if the ideas above help? Number 1 is preferred over 2. Thanks! / magnus |