aboutsummaryrefslogtreecommitdiffstats
path: root/pci
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-05-16 11:40:42 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-05-16 11:40:42 -0700
commitfa85fcfe976353f1ec893a3b5bdeb3f483bc75f6 (patch)
treea00251a382c54e181f1c6162f51bb1b4126a890a /pci
parentce9a255921ea1c72bec651559cb85348bf8a8bd5 (diff)
downloadpatches-fa85fcfe976353f1ec893a3b5bdeb3f483bc75f6.tar.gz
pci fixes and testing patches
Diffstat (limited to 'pci')
-rw-r--r--pci/pci-test-that-drivers-properly-call-pci_set_master.patch47
-rw-r--r--pci/pciehp-fix-programming-hotplug-parameters.patch15
2 files changed, 55 insertions, 7 deletions
diff --git a/pci/pci-test-that-drivers-properly-call-pci_set_master.patch b/pci/pci-test-that-drivers-properly-call-pci_set_master.patch
new file mode 100644
index 0000000000000..f3e1502991268
--- /dev/null
+++ b/pci/pci-test-that-drivers-properly-call-pci_set_master.patch
@@ -0,0 +1,47 @@
+From torvalds@osdl.org Wed Mar 8 16:58:31 2006
+Date: Wed, 8 Mar 2006 16:58:22 -0800 (PST)
+From: Linus Torvalds <torvalds@osdl.org>
+To: Andrew Morton <akpm@osdl.org>
+Cc: Ingo Molnar <mingo@elte.hu>, gregkh@suse.de
+Subject: PCI: test that drivers properly call pci_set_master(dev)
+Message-ID: <Pine.LNX.4.64.0603081654540.32577@g5.osdl.org>
+
+[Note, this will not be sent to mainline, but is very good to have for -mm (gkh)]
+
+Btw, this patch obviously depends on all drivers that depend on DMA doing
+the proper "pci_set_master(dev)", but all the good drivers should do that
+anyway.
+
+The point being that this is not for general use, because it certainly
+_can_ break some setups. But it should be an easy first thing to test, and
+if it breaks some driver, that's interesting information in itself.
+
+
+---
+---
+ drivers/pci/probe.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- gregkh-2.6.orig/drivers/pci/probe.c
++++ gregkh-2.6/drivers/pci/probe.c
+@@ -639,6 +639,7 @@ static void pci_read_irq(struct pci_dev
+ */
+ static int pci_setup_device(struct pci_dev * dev)
+ {
++ u16 cmd;
+ u32 class;
+
+ sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(dev->bus),
+@@ -664,6 +665,12 @@ static int pci_setup_device(struct pci_d
+ if (class == PCI_CLASS_BRIDGE_PCI)
+ goto bad;
+ pci_read_irq(dev);
++ pci_read_config_word(dev, PCI_COMMAND, &cmd);
++ if (cmd & PCI_COMMAND_MASTER) {
++ printk("Turning off bus mastering on %s\n", pci_name(dev));
++ cmd &= ~PCI_COMMAND_MASTER;
++ pci_write_config_word(dev, PCI_COMMAND, cmd);
++ }
+ pci_read_bases(dev, 6, PCI_ROM_ADDRESS);
+ pci_read_config_word(dev, PCI_SUBSYSTEM_VENDOR_ID, &dev->subsystem_vendor);
+ pci_read_config_word(dev, PCI_SUBSYSTEM_ID, &dev->subsystem_device);
diff --git a/pci/pciehp-fix-programming-hotplug-parameters.patch b/pci/pciehp-fix-programming-hotplug-parameters.patch
index 692e5457d93da..3ccb08f841f81 100644
--- a/pci/pciehp-fix-programming-hotplug-parameters.patch
+++ b/pci/pciehp-fix-programming-hotplug-parameters.patch
@@ -1,10 +1,10 @@
-From pcihpd-discuss-admin@lists.sourceforge.net Mon May 1 19:01:17 2006
-Message-ID: <4456BCB4.30707@jp.fujitsu.com>
+From pcihpd-discuss-admin@lists.sourceforge.net Mon May 8 17:52:40 2006
+Message-ID: <445F1091.5020009@jp.fujitsu.com>
From: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
-To: gregkh@suse.de, kristen.c.accardi@intel.com
-Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
+To: gregkh@suse.de
+Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>, <kristen.c.accardi@intel.com>
Subject: pciehp: Fix programming hotplug parameters
-Date: Tue, 02 May 2006 10:58:12 +0900
+Date: Mon, 08 May 2006 18:34:09 +0900
Current PCHEHP driver doesn't have any code to program hotplug
parameters from firmware. So hotplug parameters are never programed at
@@ -15,6 +15,7 @@ Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: Kristen Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
---
drivers/pci/hotplug/pciehp_pci.c | 141 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 139 insertions(+), 2 deletions(-)
@@ -84,13 +85,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ /* Initialize Device Control Register */
+ pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &reg16);
-+ reg32 = (reg16 & hpp->pci_exp_devctl_and) | hpp->pci_exp_devctl_or;
++ reg16 = (reg16 & hpp->pci_exp_devctl_and) | hpp->pci_exp_devctl_or;
+ pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, reg16);
+
+ /* Initialize Link Control Register */
+ if (dev->subordinate) {
+ pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &reg16);
-+ reg16 = (reg32 & hpp->pci_exp_lnkctl_and)
++ reg16 = (reg16 & hpp->pci_exp_lnkctl_and)
+ | hpp->pci_exp_lnkctl_or;
+ pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, reg16);
+ }