diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-16 11:40:42 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-16 11:40:42 -0700 |
commit | fa85fcfe976353f1ec893a3b5bdeb3f483bc75f6 (patch) | |
tree | a00251a382c54e181f1c6162f51bb1b4126a890a /pci | |
parent | ce9a255921ea1c72bec651559cb85348bf8a8bd5 (diff) | |
download | patches-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.patch | 47 | ||||
-rw-r--r-- | pci/pciehp-fix-programming-hotplug-parameters.patch | 15 |
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, ®16); -+ 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, ®16); -+ 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); + } |