PCI legacy I/O port free driver - Making MegaRAID SAS driver
PATCH 1/1 PCI legacy I/O port free driver - Making MegaRAID SAS driver
Hi,
I made a patch for MegaRAID sas driver to make PCI legacy I/O port free.
The way to make PCI legacy I/O port free is the same as Fusion-MPT driver's and it has been merged into 2.6.30.4.
As a result of the above, the driver can handle its device even when there are a huge number of PCI devices being used on the system and no I/O port region assigned to the device.
I'm not in the linux-scsi mailing list.
Please reply to the following address.
E-Mail: [email protected]
Thanks,
Noriyuki Fujii
megaraid_sasMod.c renamed from megaraid_sasOrg.c +9 -5
@@ -2573,7 +2573,9 @@ static int megasas_init_mfi(struct megas instance->base_addr =pci_resource_start (instance->pdev,0 ); } -if (pci_request_regions (instance->pdev,"megasas: LSI" )) { +if (pci_request_selected_regions (instance->pdev, +pci_select_bars (instance->pdev,IORESOURCE_MEM ), +"megasas: LSI" )) {printk (KERN_DEBUG "megasas: IO memory region busy!\n" );return -EBUSY ; }
@@ -2719,7 +2721,8 @@ static int megasas_init_mfi(struct megasiounmap (instance->reg_set); fail_ioremap: -pci_release_regions (instance->pdev); +pci_release_selected_regions (instance->pdev, +pci_select_bars (instance->pdev,IORESOURCE_MEM ));return -EINVAL ; }
@@ -2739,7 +2742,8 @@ static void megasas_release_mfi(struct miounmap (instance->reg_set); -pci_release_regions (instance->pdev); +pci_release_selected_regions (instance->pdev, +pci_select_bars (instance->pdev,IORESOURCE_MEM )); }/**
@@ -3049,7 +3053,7 @@ megasas_probe_one(struct pci_dev *pdev,/* * PCI prepping: enable device set bus mastering and dma mask */ - rval =pci_enable_device (pdev); + rval =pci_enable_device_mem (pdev);if (rval) {return rval;
@@ -3343,7 +3347,7 @@ megasas_resume(struct pci_dev *pdev)/* * PCI prepping: enable device set bus mastering and dma mask */ - rval =pci_enable_device (pdev); + rval =pci_enable_device_mem (pdev);if (rval) {printk (KERN_INFO "megasas: Enable device failed\n" );