From: Aurelien Jarno <aurelien@aurel32.net>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org, Michael Buesch <mb@bu3sch.de>
Subject: [PATCH 1/6 v3] [MIPS] BCM47xx: Add platform specific PCI code
Date: Sat, 27 Sep 2008 16:06:16 +0200 [thread overview]
Message-ID: <20080927140616.GA4774@volta.aurel32.net> (raw)
In-Reply-To: <20080926182342.GA13542@volta.aurel32.net>
Please find below the version 3 of this patch that addresses all he
comments. This new version moves all the code to pcibios_plat_dev_init()
from pcibios_map_irq() to support dynamic interrupt routing. This way
errors can be reported correctly.
---
This patch defines pcibios_map_irq() and pcibios_plat_dev_init() for
the BCM47xx platform.
It fixes the regression introduced by commit
aab547ce0d1493d400b6468c521a0137cd8c1edf.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/mips/pci/Makefile | 1 +
arch/mips/pci/pci-bcm47xx.c | 60 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 0 deletions(-)
create mode 100644 arch/mips/pci/pci-bcm47xx.c
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 15e01ae..c8c32f4 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_SOC_TX3927) += ops-tx3927.o
obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o
obj-$(CONFIG_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o
obj-$(CONFIG_PCI_TX4927) += ops-tx4927.o
+obj-$(CONFIG_BCM47XX) += pci-bcm47xx.o
#
# These are still pretty much in the old state, watch, go blind.
diff --git a/arch/mips/pci/pci-bcm47xx.c b/arch/mips/pci/pci-bcm47xx.c
new file mode 100644
index 0000000..fe3ec84
--- /dev/null
+++ b/arch/mips/pci/pci-bcm47xx.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2008 Aurelien Jarno <aurelien@aurel32.net>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/ssb/ssb.h>
+
+int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+{
+ return 0;
+}
+
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+ int res;
+ u8 slot, pin;
+
+ res = ssb_pcibios_plat_dev_init(dev);
+ if (res < 0) {
+ printk(KERN_ALERT "PCI: Failed to init device %s\n",
+ pci_name(dev));
+ return res;
+ }
+
+ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
+ slot = PCI_SLOT(dev->devfn);
+ res = ssb_pcibios_map_irq(dev, slot, pin);
+
+ /* IRQ-0 and IRQ-1 are software interrupts. */
+ if (res < 2) {
+ printk(KERN_ALERT "PCI: Failed to map IRQ of device %s\n",
+ pci_name(dev));
+ return res;
+ }
+
+ dev->irq = res;
+ return 0;
+}
+
--
1.5.6.5
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
next prev parent reply other threads:[~2008-09-27 14:06 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-24 19:18 [PATCH 0/6] BCM47xx patches Aurelien Jarno
2008-09-24 19:19 ` [PATCH 1/6] [MIPS] BCM47xx: Add platform specific PCI code Aurelien Jarno
2008-09-24 21:17 ` Michael Buesch
2008-09-24 22:14 ` Sergei Shtylyov
2008-09-24 22:31 ` Michael Buesch
2008-09-25 0:14 ` John W. Linville
2008-09-25 9:54 ` Sergei Shtylyov
2008-09-25 0:18 ` John W. Linville
2008-09-25 0:18 ` John W. Linville
2008-09-25 10:05 ` Sergei Shtylyov
2008-09-25 12:32 ` Aurelien Jarno
2008-09-25 14:39 ` Sergei Shtylyov
2008-09-25 20:59 ` Michael Buesch
2008-09-25 17:24 ` John W. Linville
2008-09-25 21:00 ` Michael Buesch
2008-09-26 15:42 ` Ralf Baechle
2008-09-26 18:23 ` [PATCH 1/6 v2] " Aurelien Jarno
2008-09-27 14:06 ` Aurelien Jarno [this message]
2008-09-27 14:35 ` [PATCH 1/6 v3] " Ralf Baechle
2008-09-24 19:20 ` [PATCH 2/6] [MIPS] WGT634U: Add machine detection message Aurelien Jarno
2008-09-24 19:21 ` [PATCH 3/6] [MIPS] Remove references to BCM947XX Aurelien Jarno
2008-09-24 19:22 ` [PATCH 4/6] [MIPS] BCM47xx: Use the new SSB GPIO API Aurelien Jarno
2008-09-24 19:23 ` [PATCH 5/6] [MIPS] Add WGT634U reset button support Aurelien Jarno
2008-09-24 19:23 ` [PATCH 6/6] [MIPS] Scan PCI busses when they are registered Aurelien Jarno
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=20080927140616.GA4774@volta.aurel32.net \
--to=aurelien@aurel32.net \
--cc=linux-mips@linux-mips.org \
--cc=mb@bu3sch.de \
--cc=ralf@linux-mips.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.