linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2nd try] PCI legacy I/O port free driver - Making MegaRAID SAS driver
@ 2009-10-14  1:03 Noriyuki Fujii
  2009-11-30 19:14 ` Yang, Bo
  2009-11-30 20:49 ` James Bottomley
  0 siblings, 2 replies; 4+ messages in thread
From: Noriyuki Fujii @ 2009-10-14  1:03 UTC (permalink / raw)
  To: megaraidlinux, linux-scsi

[-- Attachment #1: Type: text/plain, Size: 660 bytes --]

Hi,

Here's my 2nd try of the following post.

http://marc.info/?l=linux-scsi&m=124962265606425&w=2

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.

This has already been fixed in e1000 and lpfc.

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: n-fujii@np.css.fujitsu.com

Thanks,
Noriyuki Fujii


[-- Attachment #2: linux-2.6-scsi-megaraid-sas-make-legacy-i-o-port-free.patch --]
[-- Type: text/plain, Size: 1617 bytes --]

--- megaraid_sasOrg.c	2009-07-02 16:31:17.000000000 +0900
+++ megaraid_sasMod.c	2009-08-06 11:24:42.000000000 +0900
@@ -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 megas
 	iounmap(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 m
 
 	iounmap(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");

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-12-01  1:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-14  1:03 [PATCH 2nd try] PCI legacy I/O port free driver - Making MegaRAID SAS driver Noriyuki Fujii
2009-11-30 19:14 ` Yang, Bo
2009-11-30 20:49 ` James Bottomley
2009-12-01  1:15   ` Noriyuki Fujii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).