Re: [PATCH v2 4/5] irqchip:create irq domain for each mbigen device

From: majun (F)
Date: Tue Feb 16 2016 - 23:20:34 EST




å 2016/2/16 16:50, Marc Zyngier åé:
> On Tue, 16 Feb 2016 14:37:27 +0800
> MaJun <majun258@xxxxxxxxxx> wrote:
>
>> From: Ma Jun <majun258@xxxxxxxxxx>
[...]
>> + unsigned int nid;
>> +
>> + nid = get_mbigen_nid(hwirq);
>> +
>> + if (nid < 4)
>> + return (nid * 4) + REG_MBIGEN_VEC_OFFSET;
>> + else
>> + return (nid - 4) * 4 + REG_MBIGEN_EXT_VEC_OFFSET;
>> +}
>> +
>> +static struct irq_chip mbigen_irq_chip = {
>> + .name = "mbigen-v1",
>> +};
>> +
>> +static void mbigen_write_msg(struct msi_desc *desc, struct msi_msg *msg)
>> +{
>> + /* The address of doorbell is encoded in mbigen register by default
>> + * So,we don't need to program the doorbell address at here
>> + * Besides, the event ID is decided by the hardware pin number,
>> + * we can't change it in software.So, we don't need to encode the
>> + * event ID in mbigen register.
>> + */
>
> Really? What if tomorrow I decide to change the EventID allocation
> policy in the ITS driver? Have your HW engineers really baked the
> behaviour of the Linux driver into the device?
>

Yes.
If we really need to support this chip,is there
any possible solution for this problem?

Thanks!
MaJun

> I'm puzzled.
>
> M.
>