[Fwd: [PATCH Resend 01/02] Add Linux ASMP support for MPC8641D]

Kumar Gala galak at kernel.crashing.org
Fri Mar 23 02:44:17 EST 2007


On Mar 22, 2007, at 10:51 AM, Olof Johansson wrote:

> On Thu, Mar 22, 2007 at 08:32:33AM -0700, Yoder Stuart-B08248 wrote:
>>
>>> +		mpic: pic at 40000 {
>>> +			clock-frequency = <0>;
>>> +			interrupt-controller;
>>> +			#address-cells = <0>;
>>> +			#interrupt-cells = <2>;
>>> +			reg = <40000 40000>;
>>> +			built-in;
>>> +			compatible = "chrp,open-pic";
>>> +			device_type = "open-pic";
>>> +			big-endian;
>>> +			interrupts = <
>>> +			18 2 49 2 19 2
>>> +			2a 2 2b 2 4a 1
>>> +			1d 2 1e 2 22 2
>>> +			23 2 24 2 28 2
>>> +			>;
>>> +		};
>>> +	};
>>> +};
>>
>> I think using the 'interrupts' property in this way is bad.  It's
>> being used to tell the pic which interrupts belong to it.
>>
>> The problem is that the interrupts property is being overloaded
>> and used for a completely different purpose than that which
>> it was originally intended and documented.  Interrupt controllers
>> should not have an interrupts property.
>>
>> The only reason I can see to do this is as a convenience to avoid
>> walking the device tree.   The pic code should walk the device tree
>> to determine the irq numbers the running core.
>
> Not speaking for the case of the freescale boards here, but not all
> interrupts are in the device tree, nor do they have to. Especially for
> PCI devices, etc.
>
> This is quite a special case. Having a brand new property for it might
> be a good idea. It's a pretty big hack anyway, so adding another  
> one to
> the device tree isn't that big a deal.

I think the issue is you don't want the per interrupt registers  
initialized twice.  Thus I suggest we just let set_irq_type handle it.

There is still an issue for shared interrupts, but I don't think you  
can solve that.  W/o moving the interrupt processing to some common  
level.

- k



More information about the Linuxppc-dev mailing list