linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: jiang.liu@linux.intel.com (Jiang Liu)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC Part4 v1 00/17] Refine support of non-PCI-compliant Message
Date: Sun,  9 Nov 2014 23:10:22 +0800	[thread overview]
Message-ID: <1415545839-28263-1-git-send-email-jiang.liu@linux.intel.com> (raw)

Some interrupt controllers, such as DMAR/HPET/HT_IRQ, work almost in
the same as PCI MSI interrupt controller. And there some devices make
use of PCI MSI mechanism for non-PCI devices on ARm/ARM64 platforms.

So this patches tries to split PCI MSI code into PCI dependent part
and PCI independent part. The PCI independent part will be used to
support other PCI MSI like interrupt controllers.

Patch 1-9 are clean ups for previous hierarchy irqdomain patchset
and preparation for coming PCI MSI code reorganization.
Patch 10-15 split PCI MSI code and implement common mechanism to support
other MSI alike interrupt contollers.
Patch 16-17 converts HT_IRQ to use the common MSI support mechanism.

This patch set only solves the issue to manage interrupt controller,
but we still need another patch set to provide pci_enable_msix_range()
alike interfaces to support non-PCI devices. To achieve that, we will:
1) Move msi_list from struct pci_dev into struct device
2) Abstract common code from drivers/pci/msi.c into kernel/irq/msi.c
3) Implement msi_enable_range()/msi_disable() alike interfaces.

Apparently, we need much more time to discuss the proposal for next
patch set.

Hi Thomas and Bjorn,
	Could you please to review patch 10,13 and give your thoughts?
Those are the main changes. This patch set only passes compilation and
boot tests.

Regards!
Gerry

Jiang Liu (17):
  x86, irq: Normalize x86 irq_chip name
  genirq: Introduce helper irq_domain_set_info() to reduce duplicated
    code
  x86, PCI/MSI: Simplify the way to deal with remapped MSI interrupts
  PCI/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg()
  PCI/MSI: Move msi_set_affinity() to PCI core
  genirq: Introduce callback irq_chip.irq_write_msi_msg
  x86, irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET
    irq_chips
  PCI/MSI: Use irq_chip.irq_write_msi_msg() to share common code
  x86, irq: Simplify MSI/DMAR/HPET implementation by using common code
  PCI, MSI: Split MSI code into PCI dependent and PCI independent parts
  PCI, MSI: Rename __read_msi_msg() as __pci_read_msi_msg()
  PCI, MSI: Rename __write_msi_msg() as __pci_write_msi_msg()
  MSI: Provide irqdomain support for generic MSI
  x86, PCI, MSI: Use common code to manage MSI interrupts
  PCI, MSI: Clean up unused irqdomain related code
  x86, htirq: Kill struct ht_irq_msg by reusing struct msi_msg
  x86, htirq: Use common MSI code to manage Hypertransport interrupts

 arch/powerpc/platforms/pseries/msi.c        |    2 +-
 arch/x86/kernel/apic/htirq.c                |  137 +++++-------
 arch/x86/kernel/apic/msi.c                  |  309 ++++++++++++---------------
 arch/x86/pci/xen.c                          |    4 +-
 arch/x86/platform/uv/uv_irq.c               |    5 +-
 drivers/infiniband/hw/ipath/ipath_iba6110.c |    2 +-
 drivers/pci/Kconfig                         |    5 +-
 drivers/pci/htirq.c                         |   20 +-
 drivers/pci/msi.c                           |  144 ++-----------
 include/linux/htirq.h                       |   15 +-
 include/linux/irq.h                         |    8 +
 include/linux/irqdomain.h                   |    4 +
 include/linux/msi.h                         |   89 +++++---
 kernel/irq/Kconfig                          |   10 +-
 kernel/irq/Makefile                         |    1 +
 kernel/irq/irqdomain.c                      |   10 +
 kernel/irq/msi.c                            |  133 ++++++++++++
 17 files changed, 454 insertions(+), 444 deletions(-)
 create mode 100644 kernel/irq/msi.c

-- 
1.7.10.4

             reply	other threads:[~2014-11-09 15:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-09 15:10 Jiang Liu [this message]
2014-11-09 15:10 ` [RFC Part4 v1 01/17] x86, irq: Normalize x86 irq_chip name Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 02/17] genirq: Introduce helper irq_domain_set_info() to reduce duplicated code Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 03/17] x86, PCI/MSI: Simplify the way to deal with remapped MSI interrupts Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 04/17] PCI/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg() Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 05/17] PCI/MSI: Move msi_set_affinity() to PCI core Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 06/17] genirq: Introduce callback irq_chip.irq_write_msi_msg Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 07/17] x86, irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET irq_chips Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 08/17] PCI/MSI: Use irq_chip.irq_write_msi_msg() to share common code Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 09/17] x86, irq: Simplify MSI/DMAR/HPET implementation by using " Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 10/17] PCI, MSI: Split MSI code into PCI dependent and PCI independent parts Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 11/17] PCI, MSI: Rename __read_msi_msg() as __pci_read_msi_msg() Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 12/17] PCI, MSI: Rename __write_msi_msg() as __pci_write_msi_msg() Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 13/17] MSI: Provide irqdomain support for generic MSI Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 14/17] x86, PCI, MSI: Use common code to manage MSI interrupts Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 15/17] PCI, MSI: Clean up unused irqdomain related code Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 16/17] x86, htirq: Kill struct ht_irq_msg by reusing struct msi_msg Jiang Liu
2014-11-09 15:10 ` [RFC Part4 v1 17/17] x86, htirq: Use common MSI code to manage Hypertransport interrupts Jiang Liu
2014-11-12 13:47 ` [RFC Part4 v1 00/17] Refine support of non-PCI-compliant Message Marc Zyngier
2014-11-12 14:46   ` Thomas Gleixner
2014-11-12 14:52     ` Jiang Liu
2014-11-13 11:27     ` Marc Zyngier
2014-11-13 13:27       ` Thomas Gleixner

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=1415545839-28263-1-git-send-email-jiang.liu@linux.intel.com \
    --to=jiang.liu@linux.intel.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).