All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: <linux-pci@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Xinwei Hu <huxinwei@huawei.com>, Wuyun <wuyun.wu@huawei.com>,
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>,
	<linux-arch@vger.kernel.org>, <arnab.basu@freescale.com>,
	<Bharat.Bhushan@freescale.com>, <x86@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	<xen-devel@lists.xenproject.org>, Joerg Roedel <joro@8bytes.org>,
	<iommu@lists.linux-foundation.org>, <linux-mips@linux-mips.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	<linuxppc-dev@lists.ozlabs.org>, <linux-s390@vger.kernel.org>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	"Tony Luck" <tony.luck@intel.com>, <linux-ia64@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	<sparclinux@vger.kernel.org>, Chris Metcalf <cmetcalf@tilera.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	Lucas Stach <l.stach@pengutronix.de>,
	David Vrabel <david.vrabel@citrix.com>,
	"Sergei Shtylyov" <sergei.shtylyov@cogentembedded.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Thierry Reding <thierry.reding@gmail.com>,
	"Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>,
	Yijing Wang <wangyijing@huawei.com>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 11:14:22 +0800	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Xinwei Hu <huxinwei@huawei.com>, Wuyun <wuyun.wu@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	linux-arch@vger.kernel.org, arnab.basu@freescale.com,
	Bharat.Bhushan@freescale.com, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	xen-devel@lists.xenproject.org, Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-mips@linux-mips.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Tony Luck <tony.luck@intel.com>,
	linux-ia64@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	sparclinux@vger.kernel.org, Chris Metcalf <cmetcalf@til>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 11:14:22 +0800	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1

WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Xinwei Hu <huxinwei@huawei.com>, Wuyun <wuyun.wu@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	linux-arch@vger.kernel.org, arnab.basu@freescale.com,
	Bharat.Bhushan@freescale.com, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	xen-devel@lists.xenproject.org, Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-mips@linux-mips.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Tony Luck <tony.luck@intel.com>,
	linux-ia64@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	sparclinux@vger.kernel.org, Chris Metcalf <cmetcalf@tilera.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	Lucas Stach <l.stach@pengutronix.de>,
	David Vrabel <david.vrabel@citrix.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Thierry Reding <thierry.reding@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Yijing Wang <wangyijing@huawei.com>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 11:14:22 +0800	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
Message-ID: <20140925031422.0L57Tx6WPwwasABvbzM5Nm2kTkEo7RwJyMGUwkVRVpQ@z> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Xinwei Hu <huxinwei@huawei.com>, Wuyun <wuyun.wu@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	linux-arch@vger.kernel.org, arnab.basu@freescale.com,
	Bharat.Bhushan@freescale.com, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	xen-devel@lists.xenproject.org, Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-mips@linux-mips.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Tony Luck <tony.luck@intel.com>,
	linux-ia64@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	sparclinux@vger.kernel.org, Chris Metcalf <cmetcalf@til>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 02:54:31 +0000	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-mips@linux-mips.org, linux-ia64@vger.kernel.org,
	linux-pci@vger.kernel.org, Bharat.Bhushan@freescale.com,
	Yijing Wang <wangyijing@huawei.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, Russell King <linux@arm.linux.org.uk>,
	Joerg Roedel <joro@8bytes.org>,
	x86@kernel.org, Sebastian Ott <sebott@linux.vnet.ibm.com>,
	xen-devel@lists.xenproject.org, arnab.basu@freescale.com,
	Arnd Bergmann <arnd@arndb.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Chris Metcalf <cmetcalf@tilera.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Xinwei Hu <huxinwei@huawei.com>, Tony Luck <tony.luck@intel.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	linux-kernel@vger.kernel.org, Ralf Baechle <ralf@linux-mips.org>,
	iommu@lists.linux-foundation.org,
	David Vrabel <david.vrabel@citrix.com>,
	Wuyun <wuyun.wu@huawei.com>,
	linuxppc-dev@lists.ozlabs.org,
	"David S. Miller" <davem@davemloft.net>,
	Lucas Stach <l.stach@pengutronix.de>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 11:14:22 +0800	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1

WARNING: multiple messages have this Message-ID (diff)
From: wangyijing@huawei.com (Yijing Wang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 11:14:22 +0800	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start@logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1

WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Xinwei Hu <huxinwei@huawei.com>, Wuyun <wuyun.wu@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	linux-arch@vger.kernel.org, arnab.basu@freescale.com,
	Bharat.Bhushan@freescale.com, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	xen-devel@lists.xenproject.org, Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-mips@linux-mips.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Tony Luck <tony.luck@intel.com>,
	linux-ia64@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	sparclinux@vger.kernel.org, Chris Metcalf <cmetcalf@tilera.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	Lucas Stach <l.stach@pengutronix.de>,
	David Vrabel <david.vrabel@citrix.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Thierry Reding <thierry.reding@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Yijing Wang <wangyijing@huawei.com>
Subject: [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq
Date: Thu, 25 Sep 2014 02:54:59 +0000	[thread overview]
Message-ID: <1411614872-4009-13-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1411614872-4009-1-git-send-email-wangyijing@huawei.com>

Use MSI chip framework instead of arch MSI functions to configure
MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 arch/mips/pci/msi-octeon.c |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/msi-octeon.c b/arch/mips/pci/msi-octeon.c
index 63bbe07..14f2d16 100644
--- a/arch/mips/pci/msi-octeon.c
+++ b/arch/mips/pci/msi-octeon.c
@@ -57,7 +57,7 @@ static int msi_irq_size;
  *
  * Returns 0 on success.
  */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
+static int octeon_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
 {
 	struct msi_msg msg;
 	u16 control;
@@ -132,12 +132,12 @@ msi_irq_allocated:
 	/* Make sure the search for available interrupts didn't fail */
 	if (irq >= 64) {
 		if (request_private_bits) {
-			pr_err("arch_setup_msi_irq: Unable to find %d free interrupts, trying just one",
+			pr_err("octeon_setup_msi_irq: Unable to find %d free interrupts, trying just one",
 			       1 << request_private_bits);
 			request_private_bits = 0;
 			goto try_only_one;
 		} else
-			panic("arch_setup_msi_irq: Unable to find a free MSI interrupt");
+			panic("octeon_setup_msi_irq: Unable to find a free MSI interrupt");
 	}
 
 	/* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */
@@ -168,7 +168,7 @@ msi_irq_allocated:
 		msg.address_hi = (0 + CVMX_SLI_PCIE_MSI_RCV) >> 32;
 		break;
 	default:
-		panic("arch_setup_msi_irq: Invalid octeon_dma_bar_type");
+		panic("octeon_setup_msi_irq: Invalid octeon_dma_bar_type");
 	}
 	msg.data = irq - OCTEON_IRQ_MSI_BIT0;
 
@@ -182,7 +182,7 @@ msi_irq_allocated:
 	return 0;
 }
 
-int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+static int octeon_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 {
 	struct msi_desc *entry;
 	int ret;
@@ -201,7 +201,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 		return 1;
 
 	list_for_each_entry(entry, &dev->msi_list, list) {
-		ret = arch_setup_msi_irq(dev, entry);
+		ret = octeon_setup_msi_irq(dev, entry);
 		if (ret < 0)
 			return ret;
 		if (ret > 0)
@@ -210,14 +210,13 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
 
 	return 0;
 }
-
 /**
  * Called when a device no longer needs its MSI interrupts. All
  * MSI interrupts for the device are freed.
  *
  * @irq:    The devices first irq number. There may be multple in sequence.
  */
-void arch_teardown_msi_irq(unsigned int irq)
+static void octeon_teardown_msi_irq(unsigned int irq)
 {
 	int number_irqs;
 	u64 bitmask;
@@ -226,8 +225,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 
 	if ((irq < OCTEON_IRQ_MSI_BIT0)
 		|| (irq > msi_irq_size + OCTEON_IRQ_MSI_BIT0))
-		panic("arch_teardown_msi_irq: Attempted to teardown illegal "
-		      "MSI interrupt (%d)", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown illegal "
+			"MSI interrupt (%d)", irq);
 
 	irq -= OCTEON_IRQ_MSI_BIT0;
 	index = irq / 64;
@@ -240,7 +239,7 @@ void arch_teardown_msi_irq(unsigned int irq)
 	 */
 	number_irqs = 0;
 	while ((irq0 + number_irqs < 64) &&
-	       (msi_multiple_irq_bitmask[index]
+		(msi_multiple_irq_bitmask[index]
 		& (1ull << (irq0 + number_irqs))))
 		number_irqs++;
 	number_irqs++;
@@ -249,8 +248,8 @@ void arch_teardown_msi_irq(unsigned int irq)
 	/* Shift the mask to the correct bit location */
 	bitmask <<= irq0;
 	if ((msi_free_irq_bitmask[index] & bitmask) != bitmask)
-		panic("arch_teardown_msi_irq: Attempted to teardown MSI "
-		      "interrupt (%d) not in use", irq);
+		panic("octeon_teardown_msi_irq: Attempted to teardown MSI "
+			"interrupt (%d) not in use", irq);
 
 	/* Checks are done, update the in use bitmask */
 	spin_lock(&msi_free_irq_bitmask_lock);
@@ -259,6 +258,16 @@ void arch_teardown_msi_irq(unsigned int irq)
 	spin_unlock(&msi_free_irq_bitmask_lock);
 }
 
+static struct msi_chip octeon_msi_chip = {
+	.setup_irqs = octeon_setup_msi_irqs,
+	.teardown_irq = octeon_teardown_msi_irq,
+};
+
+struct msi_chip *arch_find_msi_chip(struct pci_dev *dev)
+{
+	return &octeon_msi_chip;
+}
+
 static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
 
 static u64 msi_rcv_reg[4];
-- 
1.7.1


  parent reply	other threads:[~2014-09-25  2:54 UTC|newest]

Thread overview: 539+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25  2:55 [PATCH v2 00/22] Use MSI chip framework to configure MSI/MSI-X in all platforms Yijing Wang
2014-09-25  3:14 ` Yijing Wang
2014-09-25  3:14 ` Yijing Wang
2014-09-25  3:14 ` Yijing Wang
2014-09-25  3:14 ` Yijing Wang
2014-09-25  3:14 ` Yijing Wang
2014-09-25  2:56 ` Yijing Wang
2014-09-25  2:50 ` [PATCH v2 07/22] PCI/MSI: Refactor struct msi_chip to make it become more common Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:54   ` Yijing Wang
2014-09-25  2:50 ` [PATCH v2 05/22] s390/MSI: Use __msi_mask_irq() instead of default_msi_mask_irq() Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:50   ` Yijing Wang
2014-09-25  2:51 ` [PATCH v2 22/22] PCI/MSI: Clean up unused MSI arch functions Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:51   ` Yijing Wang
2014-09-25  2:51 ` [PATCH v2 19/22] IA64/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:52   ` Yijing Wang
2014-09-25  2:51 ` [PATCH v2 21/22] tile/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:52   ` Yijing Wang
2014-09-25  2:51 ` [PATCH v2 20/22] Sparc/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:52   ` Yijing Wang
2014-09-25  2:52 ` [PATCH v2 18/22] arm/iop13xx/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:52   ` Yijing Wang
2014-09-25  2:52 ` [PATCH v2 17/22] s390/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:53   ` Yijing Wang
2014-09-25  7:38   ` Thierry Reding
2014-09-25  7:38     ` Thierry Reding
2014-09-25  7:38     ` Thierry Reding
2014-09-25  7:38     ` Thierry Reding
2014-09-25  7:38     ` Thierry Reding
2014-09-25  7:38     ` Thierry Reding
2014-09-26  2:14     ` Yijing Wang
2014-09-26  2:14     ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-26  2:14       ` Yijing Wang
2014-09-25  7:38   ` Thierry Reding
2014-09-25  2:52 ` [PATCH v2 08/22] x86/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:52   ` Yijing Wang
2014-09-25  2:53 ` [PATCH v2 16/22] Powerpc/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:53   ` Yijing Wang
2014-09-25  2:54 ` [PATCH v2 06/22] PCI/MSI: Introduce weak arch_find_msi_chip() to find MSI chip Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:59   ` Yijing Wang
2014-09-25  7:26   ` Thierry Reding
2014-09-25  7:26   ` Thierry Reding
2014-09-25  7:26     ` Thierry Reding
2014-09-25  7:26     ` Thierry Reding
2014-09-25  7:26     ` Thierry Reding
2014-09-25  7:26     ` Thierry Reding
2014-09-25  7:26     ` Thierry Reding
2014-09-26  2:10     ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10       ` Yijing Wang
2014-09-26  2:10     ` Yijing Wang
2014-09-25 10:38   ` Thomas Gleixner
2014-09-25 10:38     ` Thomas Gleixner
2014-09-25 10:38     ` Thomas Gleixner
2014-09-25 10:38     ` Thomas Gleixner
2014-09-25 10:38     ` Thomas Gleixner
2014-09-25 10:38     ` Thomas Gleixner
2014-09-26  2:33     ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33       ` Yijing Wang
2014-09-26  2:33     ` Yijing Wang
2014-09-26  2:44     ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26  2:44       ` Yijing Wang
2014-09-26 10:38       ` Thomas Gleixner
2014-09-26 10:38       ` Thomas Gleixner
2014-09-26 10:38         ` Thomas Gleixner
2014-09-26 10:38         ` Thomas Gleixner
2014-09-26 10:38         ` Thomas Gleixner
2014-09-26 10:38         ` Thomas Gleixner
2014-09-26 10:38         ` Thomas Gleixner
2014-09-28  2:35         ` Yijing Wang
2014-09-28  2:35         ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-28  2:35           ` Yijing Wang
2014-09-26  2:44     ` Yijing Wang
2014-09-25 10:38   ` Thomas Gleixner
2014-09-25  2:54 ` Yijing Wang [this message]
2014-09-25  3:14   ` [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:54   ` Yijing Wang
2014-09-25  7:34   ` Thierry Reding
2014-09-25  7:34   ` Thierry Reding
2014-09-25  7:34     ` Thierry Reding
2014-09-25  7:34     ` Thierry Reding
2014-09-25  7:34     ` Thierry Reding
2014-09-25  7:34     ` Thierry Reding
2014-09-25  7:34     ` Thierry Reding
2014-09-26  2:12     ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12       ` Yijing Wang
2014-09-26  2:12     ` Yijing Wang
2014-09-25  2:54 ` [PATCH v2 13/22] MIPS/Xlp: Remove the dead function destroy_irq() to fix build error Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:54   ` Yijing Wang
2014-09-25  2:55 ` [PATCH v2 03/22] MSI: Remove the redundant irq_set_chip_data() Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:57   ` Yijing Wang
2014-09-25  7:19   ` Thierry Reding
2014-09-25  7:19   ` Thierry Reding
2014-09-25  7:19     ` Thierry Reding
2014-09-25  7:19     ` Thierry Reding
2014-09-25  7:19     ` Thierry Reding
2014-09-25  7:19     ` Thierry Reding
2014-09-25  7:19     ` Thierry Reding
2014-09-26  2:04     ` Yijing Wang
2014-09-26  2:04     ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  2:04       ` Yijing Wang
2014-09-26  8:09       ` Thierry Reding
2014-09-26  8:09       ` Thierry Reding
2014-09-26  8:09         ` Thierry Reding
2014-09-26  8:09         ` Thierry Reding
2014-09-26  8:09         ` Thierry Reding
2014-09-26  8:09         ` Thierry Reding
2014-09-26  8:09         ` Thierry Reding
2014-09-26  8:09   ` Thierry Reding
2014-09-26  8:09   ` Thierry Reding
2014-09-26  8:09     ` Thierry Reding
2014-09-26  8:09     ` Thierry Reding
2014-09-26  8:09     ` Thierry Reding
2014-09-26  8:09     ` Thierry Reding
2014-09-26  8:09     ` Thierry Reding
     [not found] ` <1411614872-4009-1-git-send-email-wangyijing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2014-09-25  2:53   ` [PATCH v2 15/22] MIPS/Xlr/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:53     ` Yijing Wang
2014-09-25  7:37     ` Thierry Reding
2014-09-25  7:37     ` Thierry Reding
2014-09-25  7:37       ` Thierry Reding
2014-09-25  7:37       ` Thierry Reding
2014-09-25  7:37       ` Thierry Reding
2014-09-25  7:37       ` Thierry Reding
2014-09-25  7:37       ` Thierry Reding
2014-09-26  2:13       ` Yijing Wang
2014-09-26  2:13       ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-25  2:54   ` [PATCH v2 14/22] MIPS/Xlp/MSI: " Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:55     ` Yijing Wang
2014-09-25  7:36     ` Thierry Reding
2014-09-25  7:36       ` Thierry Reding
2014-09-25  7:36       ` Thierry Reding
2014-09-25  7:36       ` Thierry Reding
2014-09-25  7:36       ` Thierry Reding
2014-09-25  7:36       ` Thierry Reding
2014-09-26  2:13       ` Yijing Wang
2014-09-26  2:13       ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-26  2:13         ` Yijing Wang
2014-09-25  7:36     ` Thierry Reding
2014-09-25  2:55   ` [PATCH v2 01/22] PCI/MSI: Clean up struct msi_chip argument Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:56     ` Yijing Wang
2014-09-25  7:15     ` Thierry Reding
2014-09-25  7:15     ` Thierry Reding
2014-09-25  7:15       ` Thierry Reding
2014-09-25  7:15       ` Thierry Reding
2014-09-25  7:15       ` Thierry Reding
2014-09-25  7:15       ` Thierry Reding
2014-09-25  7:15       ` Thierry Reding
2014-09-25 10:20       ` Thomas Gleixner
2014-09-25 10:20       ` Thomas Gleixner
2014-09-25 10:20         ` Thomas Gleixner
2014-09-25 10:20         ` Thomas Gleixner
2014-09-25 10:20         ` Thomas Gleixner
2014-09-25 10:20         ` Thomas Gleixner
2014-09-25 10:20         ` Thomas Gleixner
2014-09-26  2:15         ` Yijing Wang
2014-09-26  2:15         ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  2:15           ` Yijing Wang
2014-09-26  1:58       ` Yijing Wang
2014-09-26  1:58       ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-26  1:58         ` Yijing Wang
2014-09-25  2:56   ` [PATCH v2 11/22] x86/MSI: Remove unused MSI weak arch functions Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:56     ` Yijing Wang
2014-09-25  2:56   ` [PATCH v2 04/22] x86/xen/MSI: Eliminate arch_msix_mask_irq() and arch_msi_mask_irq() Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:57     ` Yijing Wang
2014-09-25 14:33     ` Konrad Rzeszutek Wilk
2014-09-25 14:33     ` Konrad Rzeszutek Wilk
2014-09-25 14:33       ` Konrad Rzeszutek Wilk
2014-09-25 14:33       ` Konrad Rzeszutek Wilk
2014-09-25 14:33       ` Konrad Rzeszutek Wilk
2014-09-25 14:33       ` Konrad Rzeszutek Wilk
2014-09-25 14:33       ` Konrad Rzeszutek Wilk
2014-09-26  3:12       ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12         ` Yijing Wang
2014-09-26  3:12       ` Yijing Wang
2014-09-25  2:57   ` [PATCH v2 02/22] PCI/MSI: Remove useless bus->msi assignment Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  3:14     ` Yijing Wang
2014-09-25  2:58     ` Yijing Wang
2014-09-25  7:06     ` Thierry Reding
2014-09-25  7:06       ` Thierry Reding
2014-09-25  7:06       ` Thierry Reding
2014-09-25  7:06       ` Thierry Reding
2014-09-25  7:06       ` Thierry Reding
2014-09-25  7:06       ` Thierry Reding
2014-09-26  1:55       ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55         ` Yijing Wang
2014-09-26  1:55       ` Yijing Wang
2014-09-25  7:06     ` Thierry Reding
2014-09-25  2:57 ` [PATCH v2 09/22] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:58   ` Yijing Wang
2014-09-25  2:57 ` [PATCH v2 10/22] Irq_remapping/MSI: " Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  3:14   ` Yijing Wang
2014-09-25  2:58   ` Yijing Wang
2014-09-25  3:14 ` [PATCH v2 01/22] PCI/MSI: Clean up struct msi_chip argument Yijing Wang
2014-09-25  3:14 ` [PATCH v2 02/22] PCI/MSI: Remove useless bus->msi assignment Yijing Wang
2014-09-25  3:14 ` [PATCH v2 03/22] MSI: Remove the redundant irq_set_chip_data() Yijing Wang
2014-09-25  3:14 ` [PATCH v2 04/22] x86/xen/MSI: Eliminate arch_msix_mask_irq() and arch_msi_mask_irq() Yijing Wang
2014-09-25  3:14 ` [PATCH v2 05/22] s390/MSI: Use __msi_mask_irq() instead of default_msi_mask_irq() Yijing Wang
2014-09-25  3:14 ` [PATCH v2 06/22] PCI/MSI: Introduce weak arch_find_msi_chip() to find MSI chip Yijing Wang
2014-09-25  3:14 ` [PATCH v2 07/22] PCI/MSI: Refactor struct msi_chip to make it become more common Yijing Wang
2014-09-25  3:14 ` [PATCH v2 08/22] x86/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14 ` [PATCH v2 09/22] x86/xen/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 10/22] Irq_remapping/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 11/22] x86/MSI: Remove unused MSI weak arch functions Yijing Wang
2014-09-25  3:14 ` [PATCH v2 12/22] MIPS/Octeon/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14 ` [PATCH v2 13/22] MIPS/Xlp: Remove the dead function destroy_irq() to fix build error Yijing Wang
2014-09-25  3:14 ` [PATCH v2 14/22] MIPS/Xlp/MSI: Use MSI chip framework to configure MSI/MSI-X irq Yijing Wang
2014-09-25  3:14 ` [PATCH v2 15/22] MIPS/Xlr/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 16/22] Powerpc/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 17/22] s390/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 18/22] arm/iop13xx/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 19/22] IA64/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 20/22] Sparc/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 21/22] tile/MSI: " Yijing Wang
2014-09-25  3:14 ` [PATCH v2 22/22] PCI/MSI: Clean up unused MSI arch functions Yijing Wang
2014-09-25  7:42 ` [PATCH v2 00/22] Use MSI chip framework to configure MSI/MSI-X in all platforms Thierry Reding
2014-09-25  7:42 ` Thierry Reding
2014-09-25  7:42   ` Thierry Reding
2014-09-25  7:42   ` Thierry Reding
2014-09-25  7:42   ` Thierry Reding
2014-09-25  7:42   ` Thierry Reding
2014-09-25  7:42   ` Thierry Reding
2014-09-25 14:48   ` Liviu Dudau
2014-09-25 14:48   ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 14:48     ` Liviu Dudau
2014-09-25 16:49     ` Thierry Reding
2014-09-25 16:49       ` Thierry Reding
2014-09-25 16:49       ` Thierry Reding
2014-09-25 16:49       ` Thierry Reding
2014-09-25 16:49       ` Thierry Reding
2014-09-25 16:49       ` Thierry Reding
2014-09-25 17:16       ` Liviu Dudau
2014-09-25 17:16       ` Liviu Dudau
2014-09-25 17:16         ` Liviu Dudau
2014-09-25 17:16         ` Liviu Dudau
2014-09-25 17:16         ` Liviu Dudau
2014-09-25 17:16         ` Liviu Dudau
2014-09-25 17:16         ` Liviu Dudau
2014-09-26  6:20         ` Yijing Wang
2014-09-26  6:20         ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  6:20           ` Yijing Wang
2014-09-26  8:54           ` Thierry Reding
2014-09-26  8:54           ` Thierry Reding
2014-09-26  8:54             ` Thierry Reding
2014-09-26  8:54             ` Thierry Reding
2014-09-26  8:54             ` Thierry Reding
2014-09-26  8:54             ` Thierry Reding
2014-09-26  8:54             ` Thierry Reding
2014-09-26  9:05             ` Thierry Reding
2014-09-26  9:05               ` Thierry Reding
2014-09-26  9:05               ` Thierry Reding
2014-09-26  9:05               ` Thierry Reding
2014-09-26  9:05               ` Thierry Reding
2014-09-26  9:05               ` Thierry Reding
2014-09-28  2:32               ` Yijing Wang
2014-09-28  2:32               ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  2:32                 ` Yijing Wang
2014-09-28  6:11                 ` Yijing Wang
2014-09-28  6:11                 ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-28  6:11                   ` Yijing Wang
2014-09-29  8:37                   ` Lucas Stach
2014-09-29  8:37                   ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29  8:37                     ` Lucas Stach
2014-09-29 10:13                     ` Yijing Wang
2014-09-29 10:13                     ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-29 10:13                       ` Yijing Wang
2014-09-26  9:05             ` Thierry Reding
2014-09-26  3:42       ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  3:42         ` Yijing Wang
2014-09-26  8:50         ` Liviu Dudau
2014-09-26  8:50         ` Liviu Dudau
2014-09-26  8:50           ` Liviu Dudau
2014-09-26  8:50           ` Liviu Dudau
2014-09-26  8:50           ` Liviu Dudau
2014-09-26  8:50           ` Liviu Dudau
2014-09-26  8:50           ` Liviu Dudau
2014-09-28  2:16           ` Yijing Wang
2014-09-28  2:16           ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28  2:16             ` Yijing Wang
2014-09-28 11:21             ` Liviu Dudau
2014-09-28 11:21               ` Liviu Dudau
2014-09-28 11:21               ` Liviu Dudau
2014-09-28 11:21               ` Liviu Dudau
2014-09-28 11:21               ` Liviu Dudau
2014-09-28 11:21               ` Liviu Dudau
2014-09-29  1:44               ` Yijing Wang
2014-09-29  1:44               ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  1:44                 ` Yijing Wang
2014-09-29  9:26                 ` Liviu Dudau
2014-09-29  9:26                 ` Liviu Dudau
2014-09-29  9:26                   ` Liviu Dudau
2014-09-29  9:26                   ` Liviu Dudau
2014-09-29  9:26                   ` Liviu Dudau
2014-09-29  9:26                   ` Liviu Dudau
2014-09-29  9:26                   ` Liviu Dudau
2014-09-29 10:12                   ` Yijing Wang
2014-09-29 10:12                   ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-29 10:12                     ` Yijing Wang
2014-09-28 11:21             ` Liviu Dudau
2014-09-26  3:42       ` Yijing Wang
2014-09-25 16:49     ` Thierry Reding
2014-09-25 14:23 ` Konrad Rzeszutek Wilk
2014-09-25 14:23   ` Konrad Rzeszutek Wilk
2014-09-25 14:23   ` Konrad Rzeszutek Wilk
2014-09-25 14:23   ` Konrad Rzeszutek Wilk
2014-09-25 14:23   ` Konrad Rzeszutek Wilk
2014-09-25 14:23   ` Konrad Rzeszutek Wilk
2014-09-26  2:47   ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47     ` Yijing Wang
2014-09-26  2:47   ` Yijing Wang
2014-09-25 14:23 ` Konrad Rzeszutek Wilk

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=1411614872-4009-13-git-send-email-wangyijing@huawei.com \
    --to=wangyijing@huawei.com \
    --cc=Bharat.Bhushan@freescale.com \
    --cc=arnab.basu@freescale.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=cmetcalf@tilera.com \
    --cc=davem@davemloft.net \
    --cc=david.vrabel@citrix.com \
    --cc=huxinwei@huawei.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=konrad.wilk@oracle.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=ralf@linux-mips.org \
    --cc=sebott@linux.vnet.ibm.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tony.luck@intel.com \
    --cc=wuyun.wu@huawei.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.