git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable/bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git]
/
drivers
/
ssb
/
pcihost_wrapper.c
diff --git
a/drivers/ssb/pcihost_wrapper.c
b/drivers/ssb/pcihost_wrapper.c
index
6536a04
..
f6c8c81
100644
(file)
--- a/
drivers/ssb/pcihost_wrapper.c
+++ b/
drivers/ssb/pcihost_wrapper.c
@@
-59,6
+59,7
@@
static int ssb_pcihost_probe(struct pci_dev *dev,
struct ssb_bus *ssb;
int err = -ENOMEM;
const char *name;
struct ssb_bus *ssb;
int err = -ENOMEM;
const char *name;
+ u32 val;
ssb = kzalloc(sizeof(*ssb), GFP_KERNEL);
if (!ssb)
ssb = kzalloc(sizeof(*ssb), GFP_KERNEL);
if (!ssb)
@@
-74,6
+75,12
@@
static int ssb_pcihost_probe(struct pci_dev *dev,
goto err_pci_disable;
pci_set_master(dev);
goto err_pci_disable;
pci_set_master(dev);
+ /* Disable the RETRY_TIMEOUT register (0x41) to keep
+ * PCI Tx retries from interfering with C3 CPU state */
+ pci_read_config_dword(dev, 0x40, &val);
+ if ((val & 0x0000ff00) != 0)
+ pci_write_config_dword(dev, 0x40, val & 0xffff00ff);
+
err = ssb_bus_pcibus_register(ssb, dev);
if (err)
goto err_pci_release_regions;
err = ssb_bus_pcibus_register(ssb, dev);
if (err)
goto err_pci_release_regions;