|
@@ -3,17 +3,17 @@
|
|
* Copyright (C) 2003 Anton Blanchard <anton@au.ibm.com>, IBM
|
|
* Copyright (C) 2003 Anton Blanchard <anton@au.ibm.com>, IBM
|
|
*
|
|
*
|
|
* pSeries specific routines for PCI.
|
|
* pSeries specific routines for PCI.
|
|
- *
|
|
|
|
|
|
+ *
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
* (at your option) any later version.
|
|
- *
|
|
|
|
|
|
+ *
|
|
* This program is distributed in the hope that it will be useful,
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
* GNU General Public License for more details.
|
|
- *
|
|
|
|
|
|
+ *
|
|
* You should have received a copy of the GNU General Public License
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
@@ -54,10 +54,26 @@ void pcibios_name_device(struct pci_dev *dev)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-}
|
|
|
|
|
|
+}
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#ifdef CONFIG_PCI_IOV
|
|
|
|
+int pseries_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
|
|
|
|
+{
|
|
|
|
+ /* Allocate PCI data */
|
|
|
|
+ add_dev_pci_data(pdev);
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+int pseries_pcibios_sriov_disable(struct pci_dev *pdev)
|
|
|
|
+{
|
|
|
|
+ /* Release PCI data */
|
|
|
|
+ remove_dev_pci_data(pdev);
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
static void __init pSeries_request_regions(void)
|
|
static void __init pSeries_request_regions(void)
|
|
{
|
|
{
|
|
if (!isa_io_base)
|
|
if (!isa_io_base)
|
|
@@ -76,6 +92,11 @@ void __init pSeries_final_fixup(void)
|
|
pSeries_request_regions();
|
|
pSeries_request_regions();
|
|
|
|
|
|
eeh_addr_cache_build();
|
|
eeh_addr_cache_build();
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_PCI_IOV
|
|
|
|
+ ppc_md.pcibios_sriov_enable = pseries_pcibios_sriov_enable;
|
|
|
|
+ ppc_md.pcibios_sriov_disable = pseries_pcibios_sriov_disable;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|