qemu-ppc
[Top][All Lists]

## Re: [Qemu-ppc] [PATCH 3/5] PPC: E500: Generate dt pci irq map dynamicall

 From: Scott Wood Subject: Re: [Qemu-ppc] [PATCH 3/5] PPC: E500: Generate dt pci irq map dynamically Date: Wed, 12 Dec 2012 17:43:43 -0600

```On 12/12/2012 05:38:32 PM, Alexander Graf wrote:
```
```
On 12.12.2012, at 19:40, Scott Wood wrote:

> On 12/12/2012 08:09:56 AM, Alexander Graf wrote:
>> +    for (slot = first_slot; slot < last_slot; slot++) {
>> +        for (pci_irq = 0; pci_irq < 4; pci_irq++) {
>> +            pci_map[i++] = cpu_to_be32(slot << 11);
>> +            pci_map[i++] = cpu_to_be32(0x0);
>> +            pci_map[i++] = cpu_to_be32(0x0);
>> +            pci_map[i++] = cpu_to_be32(pci_irq + 1);
>> +            pci_map[i++] = cpu_to_be32(mpic);
```
>> + pci_map[i++] = cpu_to_be32(((pci_irq + slot) % 4) + 1);
```>> +            pci_map[i++] = cpu_to_be32(0x1);
>> +        }
>>     }
>
```
> It would be nice if the slot-to-IRQ calculation were done in only one place rather than duplicated here.
```
Sure, what exactly would you suggest to do? :)
```
```
```
Have a common function to calculate the IRQ given the slot number, and call that both from here and from mpc85xx_pci_map_irq().
```
```
```We can move the whole function to ppce500_pci.c.
```
We could export the function(slot, pci_irq) through the header of ppce500_pci.c.
```
```
Either works, though I'd lean towards moving this function into ppce500_pci.c.
```
```
We could also try and traverse the pci bus to find the function that is actually called to convert irq numbers internally, so we potentially support other pci host controllers.
```
Not sure what you mean here.

-Scott

```