Re: [PATCH] pci: enable MSI on 8132

Eric W. Biederman
2009-02-22T12:54:41Z

Prakesh could you try this patch instead?

I think the problem is simply that the MCP55 ht mapping capability
requires an address to be programed into it and it wasn't in your
case.

It should not hurt to enable one msi ht mapping capability too many.

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index baad093..f7a0370 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2017,10 +2017,19 @@ static void __devinit ht_enable_msi_mapping(struct pci_dev *dev)
while (pos && ttl--) {
u8 flags;

- if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS,
- &flags) == 0) {
+ if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS, &flags))
+ return;
+
+ if (!(flags & HT_MSI_FLAGS_ENABLE)) {
dev_info(&dev->dev, "Enabling HT MSI Mapping\n");

+ if (!(flags & HT_MSI_FLAGS_FIXED)) {
+ pci_write_config_dword(dev, pos + HT_MSI_ADDR_LO,
+ (HT_MSI_FIXED_ADDR & HT_MSI_FIXED_ADDR));
+ pci_write_config_dword(dev, pos + HT_MSI_ADDR_HI,
+ (HT_MSI_FIXED_ADDR >> 32));
+ }
+
pci_write_config_byte(dev, pos + HT_MSI_FLAGS,
flags | HT_MSI_FLAGS_ENABLE);
}