|
|
|
@ -1619,18 +1619,23 @@ |
|
|
|
|
int phy_addr;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
-struct stmmac_pci_info {
|
|
|
|
|
+struct stmmac_pci_dmi_data {
|
|
|
|
|
+ const struct stmmac_pci_func_data *func;
|
|
|
|
|
+ size_t nfuncs;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
struct stmmac_pci_info {
|
|
|
|
|
- struct pci_dev *pdev;
|
|
|
|
|
- int (*setup)(struct plat_stmmacenet_data *plat,
|
|
|
|
|
- struct stmmac_pci_info *info);
|
|
|
|
|
- struct stmmac_pci_dmi_data *dmi;
|
|
|
|
|
+struct stmmac_pci_dmi_data {
|
|
|
|
|
+ const struct stmmac_pci_func_data *func;
|
|
|
|
|
+ size_t nfuncs;
|
|
|
|
|
+ int (*setup)(struct pci_dev *pdev, struct plat_stmmacenet_data *plat);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
-static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info)
|
|
|
|
|
-{
|
|
|
|
|
+static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
|
|
|
|
|
+ const struct dmi_system_id *dmi_list)
|
|
|
|
|
{
|
|
|
|
|
- const char *name = dmi_get_system_info(DMI_BOARD_NAME);
|
|
|
|
|
- const char *asset_tag = dmi_get_system_info(DMI_BOARD_ASSET_TAG);
|
|
|
|
|
- unsigned int func = PCI_FUNC(info->pdev->devfn);
|
|
|
|
@ -1642,10 +1647,7 @@ |
|
|
|
|
- */
|
|
|
|
|
- if (!name)
|
|
|
|
|
- return 1;
|
|
|
|
|
+struct stmmac_pci_info {
|
|
|
|
|
+ int (*setup)(struct pci_dev *pdev, struct plat_stmmacenet_data *plat);
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- for (dmi = info->dmi; dmi->name && *dmi->name; dmi++) {
|
|
|
|
|
- if (!strcmp(dmi->name, name) && dmi->func == func) {
|
|
|
|
|
- /* If asset tag is provided, match on it as well. */
|
|
|
|
@ -1654,9 +1656,6 @@ |
|
|
|
|
- return dmi->phy_addr;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
+static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
|
|
|
|
|
+ const struct dmi_system_id *dmi_list)
|
|
|
|
|
+{
|
|
|
|
|
+ const struct stmmac_pci_func_data *func_data;
|
|
|
|
|
+ const struct stmmac_pci_dmi_data *dmi_data;
|
|
|
|
|
+ const struct dmi_system_id *dmi_id;
|
|
|
|
@ -1852,9 +1851,9 @@ |
|
|
|
|
|
|
|
|
|
pci_enable_msi(pdev);
|
|
|
|
|
|
|
|
|
|
@@ -270,14 +304,21 @@ static void stmmac_pci_remove(struct pci
|
|
|
|
|
@@ -306,14 +340,21 @@ static int stmmac_pci_resume(struct devi
|
|
|
|
|
|
|
|
|
|
static SIMPLE_DEV_PM_OPS(stmmac_pm_ops, stmmac_suspend, stmmac_resume);
|
|
|
|
|
static SIMPLE_DEV_PM_OPS(stmmac_pm_ops, stmmac_pci_suspend, stmmac_pci_resume);
|
|
|
|
|
|
|
|
|
|
-#define STMMAC_VENDOR_ID 0x700
|
|
|
|
|
+/* synthetic ID, no official vendor */
|
|
|
|
|