All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/PATCH 0/5] sparc32 genirq support
@ 2011-02-20 20:37 Sam Ravnborg
  2011-02-21  9:30 ` Daniel Hellstrom
  2011-02-21 10:02 ` Sam Ravnborg
  0 siblings, 2 replies; 3+ messages in thread
From: Sam Ravnborg @ 2011-02-20 20:37 UTC (permalink / raw)
  To: sparclinux

Convert sparc32 to use genirq.

Changes since v2:
- avoid moving function in sun4d_irq to make diff more readable (Josip Rodin)
- added patch that fixes build with floppy or LEON enabled
  I broke that during my cleanup.
  This is 1/5 - and should be applied to -next soon.
- converted leon to genirq
  It was straight forward. I identified some dead code in leon_kernel
  but I did not clean it up (stuff that reference eirq).
- converted pcic to genirq
  I had missed this during the last rounds. I had also missed
  that we either used sun4m_irq OR pcic irq support.
  Note: I assume the handle_level_irq is the right handler for pcic too.

The TODO list contains only two items now:
- What to do with the smp4m_irq_rotate(cpu) functionality?
  Can we just ignore it as we have a maximum of 4 CPUs
- Are the sun4d mask/unmask implementation buggy with respect
  to cpu interrupts?
  I do not know the sun4d platform - and has no HW to test on (yet at least)


I feel quite confident with most of the code-changes.
The sun4d stuff is where I am most unsafe.
If anyone can test it on real HW it would be great!

I will try to setup QEMU during the next week or two
to see if this can help me in more testing.

	Sam

Sam Ravnborg (5):
      sparc32: fix build with leon or floppy enabled
      sparc32: introduce sparc_irq_config
      sparc32: introduce build_device_irq
      sparc32,sun4m: percpu and global register definitions moved to irq.h
      sparc32: genirq support

 arch/sparc/Kconfig                 |    5 +-
 arch/sparc/include/asm/floppy_32.h |   41 ++-
 arch/sparc/include/asm/irq_32.h    |    8 +-
 arch/sparc/include/asm/leon.h      |    3 -
 arch/sparc/include/asm/system_32.h |    5 -
 arch/sparc/kernel/Makefile         |    4 -
 arch/sparc/kernel/irq.h            |   86 ++++--
 arch/sparc/kernel/irq_32.c         |  504 ++++++++--------------------------
 arch/sparc/kernel/kernel.h         |    9 +-
 arch/sparc/kernel/leon_kernel.c    |   62 ++++-
 arch/sparc/kernel/leon_smp.c       |   20 +-
 arch/sparc/kernel/of_device_32.c   |   59 +----
 arch/sparc/kernel/pcic.c           |   82 ++++--
 arch/sparc/kernel/sun4c_irq.c      |  146 ++++++----
 arch/sparc/kernel/sun4d_irq.c      |  522 +++++++++++++++---------------------
 arch/sparc/kernel/sun4m_irq.c      |  204 +++++++-------
 arch/sparc/kernel/sun4m_smp.c      |   16 +-
 arch/sparc/kernel/time_32.c        |    2 +-
 18 files changed, 748 insertions(+), 1030 deletions(-)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC/PATCH 0/5] sparc32 genirq support
  2011-02-20 20:37 [RFC/PATCH 0/5] sparc32 genirq support Sam Ravnborg
@ 2011-02-21  9:30 ` Daniel Hellstrom
  2011-02-21 10:02 ` Sam Ravnborg
  1 sibling, 0 replies; 3+ messages in thread
From: Daniel Hellstrom @ 2011-02-21  9:30 UTC (permalink / raw)
  To: sparclinux

Sam Ravnborg wrote:

>Convert sparc32 to use genirq.
>
>Changes since v2:
>- avoid moving function in sun4d_irq to make diff more readable (Josip Rodin)
>- added patch that fixes build with floppy or LEON enabled
>  I broke that during my cleanup.
>  This is 1/5 - and should be applied to -next soon.
>- converted leon to genirq
>  It was straight forward. I identified some dead code in leon_kernel
>  but I did not clean it up (stuff that reference eirq).
>  
>
Somehow only parts of the Extended IRQ Controller patch was submitted 
when LEON was included the first time. We distribute the rest of the 
patch on our homepage, however since it is not clean and you are 
cleaning up the IRQ code I have been waiting with it.

The extended IRQ controller is basically one extra level of IRQs, when 
the EIRQ (1..14) is taken the ISR looks what IRQ actually caused the IRQ 
(16..31) and calls that handler.

Thanks,
Daniel

>- converted pcic to genirq
>  I had missed this during the last rounds. I had also missed
>  that we either used sun4m_irq OR pcic irq support.
>  Note: I assume the handle_level_irq is the right handler for pcic too.
>
>The TODO list contains only two items now:
>- What to do with the smp4m_irq_rotate(cpu) functionality?
>  Can we just ignore it as we have a maximum of 4 CPUs
>- Are the sun4d mask/unmask implementation buggy with respect
>  to cpu interrupts?
>  I do not know the sun4d platform - and has no HW to test on (yet at least)
>
>
>I feel quite confident with most of the code-changes.
>The sun4d stuff is where I am most unsafe.
>If anyone can test it on real HW it would be great!
>
>I will try to setup QEMU during the next week or two
>to see if this can help me in more testing.
>
>	Sam
>
>Sam Ravnborg (5):
>      sparc32: fix build with leon or floppy enabled
>      sparc32: introduce sparc_irq_config
>      sparc32: introduce build_device_irq
>      sparc32,sun4m: percpu and global register definitions moved to irq.h
>      sparc32: genirq support
>
> arch/sparc/Kconfig                 |    5 +-
> arch/sparc/include/asm/floppy_32.h |   41 ++-
> arch/sparc/include/asm/irq_32.h    |    8 +-
> arch/sparc/include/asm/leon.h      |    3 -
> arch/sparc/include/asm/system_32.h |    5 -
> arch/sparc/kernel/Makefile         |    4 -
> arch/sparc/kernel/irq.h            |   86 ++++--
> arch/sparc/kernel/irq_32.c         |  504 ++++++++--------------------------
> arch/sparc/kernel/kernel.h         |    9 +-
> arch/sparc/kernel/leon_kernel.c    |   62 ++++-
> arch/sparc/kernel/leon_smp.c       |   20 +-
> arch/sparc/kernel/of_device_32.c   |   59 +----
> arch/sparc/kernel/pcic.c           |   82 ++++--
> arch/sparc/kernel/sun4c_irq.c      |  146 ++++++----
> arch/sparc/kernel/sun4d_irq.c      |  522 +++++++++++++++---------------------
> arch/sparc/kernel/sun4m_irq.c      |  204 +++++++-------
> arch/sparc/kernel/sun4m_smp.c      |   16 +-
> arch/sparc/kernel/time_32.c        |    2 +-
> 18 files changed, 748 insertions(+), 1030 deletions(-)
>
>
>  
>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC/PATCH 0/5] sparc32 genirq support
  2011-02-20 20:37 [RFC/PATCH 0/5] sparc32 genirq support Sam Ravnborg
  2011-02-21  9:30 ` Daniel Hellstrom
@ 2011-02-21 10:02 ` Sam Ravnborg
  1 sibling, 0 replies; 3+ messages in thread
From: Sam Ravnborg @ 2011-02-21 10:02 UTC (permalink / raw)
  To: sparclinux

On Mon, Feb 21, 2011 at 10:30:55AM +0100, Daniel Hellstrom wrote:
> Sam Ravnborg wrote:
>
>> Convert sparc32 to use genirq.
>>
>> Changes since v2:
>> - avoid moving function in sun4d_irq to make diff more readable (Josip Rodin)
>> - added patch that fixes build with floppy or LEON enabled
>>  I broke that during my cleanup.
>>  This is 1/5 - and should be applied to -next soon.
>> - converted leon to genirq
>>  It was straight forward. I identified some dead code in leon_kernel
>>  but I did not clean it up (stuff that reference eirq).
>>  
>>
> Somehow only parts of the Extended IRQ Controller patch was submitted  
> when LEON was included the first time. We distribute the rest of the  
> patch on our homepage, however since it is not clean and you are  
> cleaning up the IRQ code I have been waiting with it.
>
> The extended IRQ controller is basically one extra level of IRQs, when  
> the EIRQ (1..14) is taken the ISR looks what IRQ actually caused the IRQ  
> (16..31) and calls that handler.

That explains it.
I agree that we shall wait with the eirq bits until we get the genirq stuff in shape.

If you find time I would appreciate a review both of the generic and the
leon specific genirq changes.

	Sam

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-02-21 10:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-20 20:37 [RFC/PATCH 0/5] sparc32 genirq support Sam Ravnborg
2011-02-21  9:30 ` Daniel Hellstrom
2011-02-21 10:02 ` Sam Ravnborg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.