Subject: Re: MPC7448_HPC2 question

From: Zang Roy-r61911 <[email-masked]>
Date: 26 Oct 2006 15:59:38 +0800

On Wed, 2006-10-25 at 21:45, Benjamin Herrenschmidt wrote:
> On Wed, 2006-10-25 at 17:31 +0800, Zang Roy-r61911 wrote:
> > On Wed, 2006-10-25 at 13:20, Benjamin Herrenschmidt wrote:
> > 
> > > 
> > > Cannot be replaced by:
> > > 
> > >         pci_read_irq_line(dev);
> > 
> > When I use pci_read_irq_line(), the pci interrupt number exceeds the
> > limit of mpic-> irq_count. my mpic->irq_count = 0x18, which is
> gotten
> > from on chip register. 
> > 
> > mpic_host_map() can not return successful value.
> 
> That is not normal... Something must be wrong with your code or your
> DT... can you get more details about what precisely is happening in
> both
> cases ?
> 
> Ben.
> 

I think I have gotten the point. For tsi108/9, there are 24 internal
interrupt. PCI/INTA  to PCI/INTD are routed to interrupt 23 with a
special mechanism on the chip. INTA to INTD are assiged to nubmer 36 to
39, which are exceed the nubmer irq number assigned in mpic_alloc().
This cause abnormal return in function pci_read_irq_line().
I have worked out a patch. after a test, I will publish it.
Roy