From: Valentine Barshak <vbarshak@ru.mvista.com>
To: linux-kernel@vger.kernel.org
Cc: jarkao2@o2.pl
Subject: [PATCH] pci: Fix e100 interrupt quirk
Date: Wed, 19 Sep 2007 16:36:49 +0400 [thread overview]
Message-ID: <20070919123649.GA3686@ru.mvista.com> (raw)
In-Reply-To: <20070919104342.GB3226@ff.dom.local>
PCI memory space may have a 64-bit offset on some architectures
(for example, PowerPC 440) and the actual PCI memory address
has to fixed up (an offset to PCI mem space shuld be added)
before remapping. So, pci_iomap should be used instead of
reading and remapping PCI BAR directly. This has been tested
on Sequoia PowerPC 440EPx board.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
diff -ruN linux-2.6.orig/drivers/pci/quirks.c linux-2.6/drivers/pci/quirks.c
--- linux-2.6.orig/drivers/pci/quirks.c 2007-09-18 15:32:48.000000000 +0400
+++ linux-2.6/drivers/pci/quirks.c 2007-09-19 15:57:26.000000000 +0400
@@ -1444,7 +1444,6 @@
static void __devinit quirk_e100_interrupt(struct pci_dev *dev)
{
u16 command;
- u32 bar;
u8 __iomem *csr;
u8 cmd_hi;
@@ -1476,16 +1475,18 @@
* re-enable them when it's ready.
*/
pci_read_config_word(dev, PCI_COMMAND, &command);
- pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &bar);
- if (!(command & PCI_COMMAND_MEMORY) || !bar)
+ if (!(command & PCI_COMMAND_MEMORY))
return;
- csr = ioremap(bar, 8);
+ if (pci_request_region(dev, 0, "e100_quirk"))
+ return;
+
+ csr = pci_iomap(dev, 0, 8);
if (!csr) {
printk(KERN_WARNING "PCI: Can't map %s e100 registers\n",
pci_name(dev));
- return;
+ goto e100_quirk_exit;
}
cmd_hi = readb(csr + 3);
@@ -1495,7 +1496,9 @@
writeb(1, csr + 3);
}
- iounmap(csr);
+ pci_iounmap(dev, csr);
+e100_quirk_exit:
+ pci_release_region(dev, 0);
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt);
next prev parent reply other threads:[~2007-09-19 12:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-18 11:17 [PATCH] pci: Fix e100 interrupt quirk Valentine Barshak
2007-09-19 10:43 ` Jarek Poplawski
2007-09-19 10:59 ` Valentine Barshak
2007-09-19 12:36 ` Valentine Barshak [this message]
2007-09-20 6:37 ` Andrew Morton
2007-09-20 11:33 ` Valentine Barshak
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=20070919123649.GA3686@ru.mvista.com \
--to=vbarshak@ru.mvista.com \
--cc=jarkao2@o2.pl \
--cc=linux-kernel@vger.kernel.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