* [PATCH 4/4] IPMI: Add proper offset for HP PCI interfaces
@ 2010-03-03 16:17 Corey Minyard
0 siblings, 0 replies; only message in thread
From: Corey Minyard @ 2010-03-03 16:17 UTC (permalink / raw)
To: torvalds; +Cc: Linux Kernel, OpenIPMI Developers
From: Corey Minyard <cminyard@mvista.com>
On a PCI update, the offset for HP PCI interfaces to the IPMI controller
was left off. Add the offset back in. The "dead code" dealing with
first_reg_offset was removed in 2.6.32, so that is re-added.
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Index: linux-2.6.33/drivers/char/ipmi/ipmi_si_intf.c
===================================================================
--- linux-2.6.33.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-2.6.33/drivers/char/ipmi/ipmi_si_intf.c
@@ -2363,6 +2363,7 @@ static int __devinit ipmi_pci_probe(stru
int rv;
int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK;
struct smi_info *info;
+ int first_reg_offset = 0;
info = kzalloc(sizeof(*info), GFP_KERNEL);
if (!info)
@@ -2401,6 +2402,9 @@ static int __devinit ipmi_pci_probe(stru
info->addr_source_cleanup = ipmi_pci_cleanup;
info->addr_source_data = pdev;
+ if (pdev->subsystem_vendor == PCI_HP_VENDOR_ID)
+ first_reg_offset = 1;
+
if (pci_resource_flags(pdev, 0) & IORESOURCE_IO) {
info->io_setup = port_setup;
info->io.addr_type = IPMI_IO_ADDR_SPACE;
@@ -2408,7 +2412,7 @@ static int __devinit ipmi_pci_probe(stru
info->io_setup = mem_setup;
info->io.addr_type = IPMI_MEM_ADDR_SPACE;
}
- info->io.addr_data = pci_resource_start(pdev, 0);
+ info->io.addr_data = pci_resource_start(pdev, 0) + first_reg_offset;
info->io.regspacing = DEFAULT_REGSPACING;
info->io.regsize = DEFAULT_REGSPACING;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-03-03 16:18 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-03 16:17 [PATCH 4/4] IPMI: Add proper offset for HP PCI interfaces Corey Minyard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.