Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1672329

[PATCH v5 2/5] stmmac: pci: Use stmmac_pci_info for all devices

From Jan Kiszka <jan.kiszka@siemens.com>
Newsgroups linux.kernel
Subject [PATCH v5 2/5] stmmac: pci: Use stmmac_pci_info for all devices
Date 2017-06-22 08:20 +0200
Message-ID <tV3Dc-L3-19@gated-at.bofh.it> (permalink)
References <tV3Db-L3-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Jan Kiszka <jan.kiszka@siemens.com>

Make stmmac_default_data compatible with stmmac_pci_info.setup and use
an info structure for all devices. This allows to make the probing more
regular.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 36 +++++++++++++++---------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
index 0efe42659a37..d3d74e526e17 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
@@ -100,7 +100,9 @@ static void common_default_data(struct plat_stmmacenet_data *plat)
 	plat->rx_queues_cfg[0].pkt_route = 0x0;
 }
 
-static void stmmac_default_data(struct plat_stmmacenet_data *plat)
+static int stmmac_default_data(struct pci_dev *pdev,
+			       struct plat_stmmacenet_data *plat,
+			       const struct stmmac_pci_info *info)
 {
 	/* Set common default data first */
 	common_default_data(plat);
@@ -112,8 +114,14 @@ static void stmmac_default_data(struct plat_stmmacenet_data *plat)
 	plat->dma_cfg->pbl = 32;
 	plat->dma_cfg->pblx8 = true;
 	/* TODO: AXI */
+
+	return 0;
 }
 
+static const struct stmmac_pci_info stmmac_pci_info = {
+	.setup = stmmac_default_data,
+};
+
 static int quark_default_data(struct pci_dev *pdev,
 			      struct plat_stmmacenet_data *plat,
 			      const struct stmmac_pci_info *info)
@@ -236,14 +244,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
 
 	pci_set_master(pdev);
 
-	if (info) {
-		if (info->setup) {
-			ret = info->setup(pdev, plat, info);
-			if (ret)
-				return ret;
-		}
-	} else
-		stmmac_default_data(plat);
+	ret = info->setup(pdev, plat, info);
+	if (ret)
+		return ret;
 
 	pci_enable_msi(pdev);
 
@@ -269,14 +272,21 @@ static void stmmac_pci_remove(struct pci_dev *pdev)
 
 static SIMPLE_DEV_PM_OPS(stmmac_pm_ops, stmmac_suspend, stmmac_resume);
 
-#define STMMAC_VENDOR_ID 0x700
+/* synthetic ID, no official vendor */
+#define PCI_VENDOR_ID_STMMAC 0x700
+
 #define STMMAC_QUARK_ID  0x0937
 #define STMMAC_DEVICE_ID 0x1108
 
+#define STMMAC_DEVICE(vendor_id, dev_id, info)	{	\
+	PCI_VDEVICE(vendor_id, dev_id),			\
+	.driver_data = (kernel_ulong_t)&info		\
+	}
+
 static const struct pci_device_id stmmac_id_table[] = {
-	{PCI_DEVICE(STMMAC_VENDOR_ID, STMMAC_DEVICE_ID)},
-	{PCI_DEVICE(PCI_VENDOR_ID_STMICRO, PCI_DEVICE_ID_STMICRO_MAC)},
-	{PCI_VDEVICE(INTEL, STMMAC_QUARK_ID), (kernel_ulong_t)&quark_pci_info},
+	STMMAC_DEVICE(STMMAC, STMMAC_DEVICE_ID, stmmac_pci_info),
+	STMMAC_DEVICE(STMICRO, PCI_DEVICE_ID_STMICRO_MAC, stmmac_pci_info),
+	STMMAC_DEVICE(INTEL, STMMAC_QUARK_ID, quark_pci_info),
 	{}
 };
 
-- 
2.12.3

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 0/5] stmmac: pci: Refactor DMI probing Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  [PATCH v5 1/5] stmmac: pci: Make stmmac_pci_info structure constant Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  [PATCH v5 3/5] stmmac: pci: Make stmmac_pci_find_phy_addr truly generic Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  [PATCH v5 4/5] stmmac: pci: Select quark_pci_dmi_data from quark_default_data Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  [PATCH v5 2/5] stmmac: pci: Use stmmac_pci_info for all devices Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  [PATCH v5 5/5] stmmac: pci: Use dmi_system_id table for retrieving PHY addresses Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 08:20 +0200
  Re: [PATCH v5 0/5] stmmac: pci: Refactor DMI probing David Miller <davem@davemloft.net> - 2017-06-22 19:50 +0200
    Re: [PATCH v5 0/5] stmmac: pci: Refactor DMI probing Jan Kiszka <jan.kiszka@siemens.com> - 2017-06-22 19:50 +0200
      Re: [PATCH v5 0/5] stmmac: pci: Refactor DMI probing David Miller <davem@davemloft.net> - 2017-06-22 20:00 +0200

csiph-web