From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] irqchip: irq-armada-370-xp: use the generic MSI infrastructure
Date: Tue, 26 Jan 2016 16:33:24 +0000 [thread overview]
Message-ID: <56A79FD4.4070800@arm.com> (raw)
In-Reply-To: <20160126165240.5436c514@free-electrons.com>
On 26/01/16 15:52, Thomas Petazzoni wrote:
> Marc,
>
> On Tue, 26 Jan 2016 14:12:06 +0000, Marc Zyngier wrote:
>
>> I finally found some bandwidth to have a look at this. A few comments below:
>
> Great, thanks! Since 4.5-rc1 is out, I was about to resend this patch
> series, so your review comes exactly at the right time. Some comments
> below.
>
>>> +static struct irq_chip armada_370_xp_msi_irq_chip = {
>>> + .name = "armada_370_xp_msi_irq",
>>> + .irq_enable = pci_msi_unmask_irq,
>>> + .irq_disable = pci_msi_mask_irq,
>>> + .irq_mask = pci_msi_mask_irq,
>>> + .irq_unmask = pci_msi_unmask_irq,
>>
>> Having only mask/unmask ought to be enough.
>
> OK, will fix.
>
>>> - return hwirq;
>>> -}
>>> +static struct msi_domain_info armada_370_xp_msi_domain_info = {
>>> + .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
>>> + MSI_FLAG_MULTI_PCI_MSI),
>>
>> And not MSI-X? That seems rather strange (I'm pretty sure it just works).
>
> See commit 830cbe4b7a918613276aa3d3b28d24410623f92c ("irqchip:
> armada-370-xp: implement the ->check_device() msi_chip operation") in
> which we changed the driver to explicitly disable MSI-X support. The HW
> does support it, but we haven't enabled it yet in the irqchip driver,
> and we a PCI device driver tries to use MSI-X, it fails badly.
>
> So, I'd like to keep the enabling of MSI-X as a separate exercise, if
> you don't mind :-)
Sure. It would be interesting to find out what is triggering the issue,
so having that as a separate patch is fine.
>
>>> - msg.address_lo = msi_doorbell_addr;
>>> - msg.address_hi = 0;
>>> - msg.data = 0xf00 | (hwirq + 16);
>>> + irq_domain_set_info(domain, virq, hwirq, &armada_370_xp_msi_bottom_irq_chip,
>>> + domain->host_data, handle_simple_irq,
>>> + NULL, NULL);
>>>
>>> - pci_write_msi_msg(virq, &msg);
>>> - return 0;
>>> + return hwirq;
>>
>> So you are allocating one bit at a time, irrespective of nr_irqs. This
>> implies that you can't support MULTI_MSI here (you'd need to guarantee a
>> contiguous allocation of nr_irqs bits). So either you amend your
>> allocator to deal with those (pretty easy), or you drop MULTI_MSI from
>> your msi_domain_info.
>
> Correct. Since the patch is already a bit complicated, I'm going to
> drop MULTI_MSI from this patch, and then add another patch which adds
> MULTI_MSI support (after adapting the alloc/free functions accordingly).
OK.
>
>>> + armada_370_xp_msi_inner_domain =
>>> + irq_domain_add_linear(NULL, PCI_MSI_DOORBELL_NR,
>>> + &armada_370_xp_msi_domain_ops, NULL);
>>
>> nit: Please keep the assignment on a single line.
>
> Unfortunately, due to the long name of the variable and the function,
> keeping the assignment on a single line quickly reaches the 80 columns
> limit, and each argument has to be put on its own line, making the
> thing even less pretty. I tend to prefer splitting the assignment on
> several lines like done here in such cases, but if you really don't
> like, then I don't mind changing that.
I definitely don't mind having lines larger than 80 chars (I've retired
my vt100 a while ago), but that's your call in the end.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2016-01-26 16:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-21 14:19 [PATCH 0/4] Use new MSI infrastructure on Marvell EBU Thomas Petazzoni
2015-12-21 14:19 ` [PATCH 1/4] irqchip: irq-armada-370-xp: add Kconfig option for the driver Thomas Petazzoni
2015-12-23 11:11 ` Gregory CLEMENT
2015-12-21 14:19 ` [PATCH 2/4] irqchip: irq-armada-370-xp: use the generic MSI infrastructure Thomas Petazzoni
2015-12-23 11:37 ` Gregory CLEMENT
2016-01-26 15:41 ` Thomas Petazzoni
2016-01-26 14:12 ` Marc Zyngier
2016-01-26 15:52 ` Thomas Petazzoni
2016-01-26 16:33 ` Marc Zyngier [this message]
2015-12-21 14:19 ` [PATCH 3/4] irqchip: irq-armada-370-xp: use shorter names for irq_chip Thomas Petazzoni
2015-12-23 11:23 ` Gregory CLEMENT
2016-01-26 16:07 ` Thomas Petazzoni
2016-01-26 16:23 ` Gregory CLEMENT
2015-12-21 14:19 ` [PATCH 4/4] ARM: mvebu: use the ARMADA_370_XP_IRQ option Thomas Petazzoni
2015-12-23 11:24 ` Gregory CLEMENT
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=56A79FD4.4070800@arm.com \
--to=marc.zyngier@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).