mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
To: Michal Simek <michal.simek@xilinx.com>, <monstr@monstr.eu>,
	<tglx@linutronix.de>, <jason@lakedaemon.net>,
	<marc.zyngier@arm.com>
Cc: <linux-kernel@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org>,
	<mpe@ellerman.id.au>
Subject: Re: [Patch v7 3/7] irqchip: xilinx: restructure and use jump label api
Date: Tue, 15 Nov 2016 16:03:08 +0000	[thread overview]
Message-ID: <cccf1577-b979-4034-7dda-5d43850c25a7@imgtec.com> (raw)
In-Reply-To: <f60948d3-d283-bb53-268b-9638f686ff35@xilinx.com>

Hi,

On 11/15/2016 12:49 PM, Michal Simek wrote:
> On 14.11.2016 13:13, Zubair Lutfullah Kakakhel wrote:
>> Add a global structure to house various variables.
>> And cleanup read/write handling by using jump label api.
>>
>> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
>>

...

>> @@ -138,59 +136,75 @@ static const struct irq_domain_ops xintc_irq_domain_ops = {
>>  static int __init xilinx_intc_of_init(struct device_node *intc,
>>  					     struct device_node *parent)
>>  {
>> -	u32 nr_irq, intr_mask;
>> +	u32 nr_irq;
>>  	int ret;
>> +	struct xintc_irq_chip *irqc;
>>
>> -	intc_baseaddr = of_iomap(intc, 0);
>> -	BUG_ON(!intc_baseaddr);
>> +	if (xintc_irqc) {
>> +		pr_err("irq-xilinx: Multiple instances aren't supported\n");
>> +		return -EINVAL;
>> +	}
>
> I don't agree with this.
> Pretty long time ago we were added support for multiple instances in
> xilinx private tree.
> You can look here.
>
> https://github.com/Xilinx/linux-xlnx/blob/master/drivers/irqchip/irq-xilinx-intc.c
>
> Not sure if this the latest way how to do it but as you can see
> we were setting up
> irq_set_handler_data(irq, intc);
>
> and then when you need that structure we were calling
> struct intc *local_intc = irq_data_get_irq_chip_data(d);
>
> And that should be it to support multiple instance of this driver.
>
> Based on 5/7 you are describing your interrupt subsystem like this.
>
> Peripherals --> xilinx_intcontroller -> mips_cpu_int controller
> If mips_cpu_int has more than one input you can connect more xilinx intc
> controllers.
> If not you still have an option to connect
> xilinx_intcontroller(up to 32 peripherals) -> xilinx_intcontroller(one
> intc + up to 31 peripherals)  -> mips_cpu_int controller

That configuration in FPGA is technically possible. Although not done/needed in the
way we use the Xilinx Interrupt Controller IP block in MIPSfpga.

This series takes the drivers out of arch code and makes it accessible.
Any further development on the driver would be common to all architectures.
Support for multiple instances would be a 'new feature'.

I say this as this series keeps growing and mutating in terms of its scope
and work.

Would it be possible to ack this so that the restructure out of arch code
can move forward?

Regards,
ZubairLK

>
> Thanks,
> Michal
>

  reply	other threads:[~2016-11-15 16:03 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-14 12:13 [Patch v7 0/7] microblaze/PowerPC: Move irq-xilinx to irqchip Zubair Lutfullah Kakakhel
2016-11-14 12:13 ` [Patch v7 1/7] microblaze: irqchip: Move intc driver " Zubair Lutfullah Kakakhel
2016-11-15 12:22   ` Michal Simek
2016-11-14 12:13 ` [Patch v7 2/7] irqchip: xilinx: clean up print messages Zubair Lutfullah Kakakhel
2016-11-15 12:23   ` Michal Simek
2016-11-14 12:13 ` [Patch v7 3/7] irqchip: xilinx: restructure and use jump label api Zubair Lutfullah Kakakhel
2016-11-15 12:49   ` Michal Simek
2016-11-15 16:03     ` Zubair Lutfullah Kakakhel [this message]
2016-11-16  9:24       ` Michal Simek
2016-11-14 12:13 ` [Patch v7 4/7] irqchip: xilinx: Rename get_irq to xintc_get_irq Zubair Lutfullah Kakakhel
2016-11-15 12:24   ` Michal Simek
2016-11-14 12:13 ` [Patch v7 5/7] irqchip: xilinx: Add support for parent intc Zubair Lutfullah Kakakhel
2016-11-14 12:13 ` [Patch v7 6/7] irqchip: xilinx: Try to fall back if xlnx,kind-of-intr not provided Zubair Lutfullah Kakakhel
2016-11-15 12:26   ` Michal Simek
2016-11-18 13:29   ` Thomas Gleixner
2016-11-21 14:05     ` Zubair Lutfullah Kakakhel
2016-11-21 14:17       ` Marc Zyngier
2016-11-21 14:36         ` Zubair Lutfullah Kakakhel
2016-11-21 15:48       ` Thomas Gleixner
2016-11-14 12:13 ` [Patch v7 7/7] powerpc/virtex: Use generic xilinx irqchip driver Zubair Lutfullah Kakakhel
2016-11-15 12:28   ` Michal Simek
2016-11-22 10:55 ` [Patch v7 0/7] microblaze/PowerPC: Move irq-xilinx to irqchip Marc Zyngier
2016-11-22 11:10   ` Zubair Lutfullah Kakakhel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cccf1577-b979-4034-7dda-5d43850c25a7@imgtec.com \
    --to=zubair.kakakhel@imgtec.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=marc.zyngier@arm.com \
    --cc=michal.simek@xilinx.com \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®