Commit c9fef1cc authored by Rusk, Mark's avatar Rusk, Mark Committed by Greg Kroah-Hartman

drivers/misc/hpilo: Changes to support new security states in iLO5 FW

Changes to support new security states of the iLO5 firmware.

- use BAR5 for CCB's for iLO5
- simplification of error handling
Signed-off-by: default avatarMark Rusk <mark.rusk@hpe.com>
Signed-off-by: default avatarDavid Altobelli <david.altobelli@hpe.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3936e4c8
...@@ -688,7 +688,8 @@ static void ilo_unmap_device(struct pci_dev *pdev, struct ilo_hwinfo *hw) ...@@ -688,7 +688,8 @@ static void ilo_unmap_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw) static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
{ {
int error = -ENOMEM; int bar;
unsigned long off;
/* map the memory mapped i/o registers */ /* map the memory mapped i/o registers */
hw->mmio_vaddr = pci_iomap(pdev, 1, 0); hw->mmio_vaddr = pci_iomap(pdev, 1, 0);
...@@ -698,7 +699,15 @@ static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw) ...@@ -698,7 +699,15 @@ static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
} }
/* map the adapter shared memory region */ /* map the adapter shared memory region */
hw->ram_vaddr = pci_iomap(pdev, 2, max_ccb * ILOHW_CCB_SZ); if (pdev->subsystem_device == 0x00E4) {
bar = 5;
/* Last 8k is reserved for CCBs */
off = pci_resource_len(pdev, bar) - 0x2000;
} else {
bar = 2;
off = 0;
}
hw->ram_vaddr = pci_iomap_range(pdev, bar, off, max_ccb * ILOHW_CCB_SZ);
if (hw->ram_vaddr == NULL) { if (hw->ram_vaddr == NULL) {
dev_err(&pdev->dev, "Error mapping shared mem\n"); dev_err(&pdev->dev, "Error mapping shared mem\n");
goto mmio_free; goto mmio_free;
...@@ -717,7 +726,7 @@ static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw) ...@@ -717,7 +726,7 @@ static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
mmio_free: mmio_free:
pci_iounmap(pdev, hw->mmio_vaddr); pci_iounmap(pdev, hw->mmio_vaddr);
out: out:
return error; return -ENOMEM;
} }
static void ilo_remove(struct pci_dev *pdev) static void ilo_remove(struct pci_dev *pdev)
...@@ -899,7 +908,7 @@ static void __exit ilo_exit(void) ...@@ -899,7 +908,7 @@ static void __exit ilo_exit(void)
class_destroy(ilo_class); class_destroy(ilo_class);
} }
MODULE_VERSION("1.4.1"); MODULE_VERSION("1.5.0");
MODULE_ALIAS(ILO_NAME); MODULE_ALIAS(ILO_NAME);
MODULE_DESCRIPTION(ILO_NAME); MODULE_DESCRIPTION(ILO_NAME);
MODULE_AUTHOR("David Altobelli <david.altobelli@hpe.com>"); MODULE_AUTHOR("David Altobelli <david.altobelli@hpe.com>");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment