0004-stmmac-pci-Select-quark_pci_dmi_data-from-quark_defa.patch 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. From 95e91552d7a7d0fd28afc42191d8be1c3096d6c2 Mon Sep 17 00:00:00 2001
  2. From: Jan Kiszka <jan.kiszka@siemens.com>
  3. Date: Thu, 22 Jun 2017 08:18:00 +0200
  4. Subject: [PATCH 04/32] stmmac: pci: Select quark_pci_dmi_data from
  5. quark_default_data
  6. Commit 7bc519b3ea04026877242328d2fe73cc8e6102bd upsteam.
  7. No need to carry this reference in stmmac_pci_info - the Quark-specific
  8. setup handler knows that it needs to use the Quark-specific DMI table.
  9. This also allows to drop the stmmac_pci_info reference from the setup
  10. handler parameter list.
  11. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
  12. Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
  13. Signed-off-by: David S. Miller <davem@davemloft.net>
  14. ---
  15. drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 83 +++++++++++-------------
  16. 1 file changed, 39 insertions(+), 44 deletions(-)
  17. diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
  18. index 19cf9607618a..9fe6368738ec 100644
  19. --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
  20. +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
  21. @@ -42,13 +42,11 @@ struct stmmac_pci_dmi_data {
  22. };
  23. struct stmmac_pci_info {
  24. - int (*setup)(struct pci_dev *pdev, struct plat_stmmacenet_data *plat,
  25. - const struct stmmac_pci_info *info);
  26. - struct stmmac_pci_dmi_data *dmi;
  27. + int (*setup)(struct pci_dev *pdev, struct plat_stmmacenet_data *plat);
  28. };
  29. static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
  30. - const struct stmmac_pci_info *info)
  31. + struct stmmac_pci_dmi_data *dmi_data)
  32. {
  33. const char *name = dmi_get_system_info(DMI_BOARD_NAME);
  34. const char *asset_tag = dmi_get_system_info(DMI_BOARD_ASSET_TAG);
  35. @@ -58,7 +56,7 @@ static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
  36. if (!name)
  37. return -ENODEV;
  38. - for (dmi = info->dmi; dmi->name && *dmi->name; dmi++) {
  39. + for (dmi = dmi_data; dmi->name && *dmi->name; dmi++) {
  40. if (!strcmp(dmi->name, name) && dmi->func == func) {
  41. /* If asset tag is provided, match on it as well. */
  42. if (dmi->asset_tag && strcmp(dmi->asset_tag, asset_tag))
  43. @@ -71,8 +69,7 @@ static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
  44. }
  45. static int stmmac_default_data(struct pci_dev *pdev,
  46. - struct plat_stmmacenet_data *plat,
  47. - const struct stmmac_pci_info *info)
  48. + struct plat_stmmacenet_data *plat)
  49. {
  50. plat->bus_id = 1;
  51. plat->phy_addr = 0;
  52. @@ -100,9 +97,40 @@ static const struct stmmac_pci_info stmmac_pci_info = {
  53. .setup = stmmac_default_data,
  54. };
  55. +static struct stmmac_pci_dmi_data quark_pci_dmi_data[] = {
  56. + {
  57. + .name = "Galileo",
  58. + .func = 6,
  59. + .phy_addr = 1,
  60. + },
  61. + {
  62. + .name = "GalileoGen2",
  63. + .func = 6,
  64. + .phy_addr = 1,
  65. + },
  66. + {
  67. + .name = "SIMATIC IOT2000",
  68. + .asset_tag = "6ES7647-0AA00-0YA2",
  69. + .func = 6,
  70. + .phy_addr = 1,
  71. + },
  72. + {
  73. + .name = "SIMATIC IOT2000",
  74. + .asset_tag = "6ES7647-0AA00-1YA2",
  75. + .func = 6,
  76. + .phy_addr = 1,
  77. + },
  78. + {
  79. + .name = "SIMATIC IOT2000",
  80. + .asset_tag = "6ES7647-0AA00-1YA2",
  81. + .func = 7,
  82. + .phy_addr = 1,
  83. + },
  84. + {}
  85. +};
  86. +
  87. static int quark_default_data(struct pci_dev *pdev,
  88. - struct plat_stmmacenet_data *plat,
  89. - const struct stmmac_pci_info *info)
  90. + struct plat_stmmacenet_data *plat)
  91. {
  92. int ret;
  93. @@ -110,7 +138,7 @@ static int quark_default_data(struct pci_dev *pdev,
  94. * Refuse to load the driver and register net device if MAC controller
  95. * does not connect to any PHY interface.
  96. */
  97. - ret = stmmac_pci_find_phy_addr(pdev, info);
  98. + ret = stmmac_pci_find_phy_addr(pdev, quark_pci_dmi_data);
  99. if (ret < 0) {
  100. /* Return error to the caller on DMI enabled boards. */
  101. if (dmi_get_system_info(DMI_BOARD_NAME))
  102. @@ -147,41 +175,8 @@ static int quark_default_data(struct pci_dev *pdev,
  103. return 0;
  104. }
  105. -static struct stmmac_pci_dmi_data quark_pci_dmi_data[] = {
  106. - {
  107. - .name = "Galileo",
  108. - .func = 6,
  109. - .phy_addr = 1,
  110. - },
  111. - {
  112. - .name = "GalileoGen2",
  113. - .func = 6,
  114. - .phy_addr = 1,
  115. - },
  116. - {
  117. - .name = "SIMATIC IOT2000",
  118. - .asset_tag = "6ES7647-0AA00-0YA2",
  119. - .func = 6,
  120. - .phy_addr = 1,
  121. - },
  122. - {
  123. - .name = "SIMATIC IOT2000",
  124. - .asset_tag = "6ES7647-0AA00-1YA2",
  125. - .func = 6,
  126. - .phy_addr = 1,
  127. - },
  128. - {
  129. - .name = "SIMATIC IOT2000",
  130. - .asset_tag = "6ES7647-0AA00-1YA2",
  131. - .func = 7,
  132. - .phy_addr = 1,
  133. - },
  134. - {}
  135. -};
  136. -
  137. static const struct stmmac_pci_info quark_pci_info = {
  138. .setup = quark_default_data,
  139. - .dmi = quark_pci_dmi_data,
  140. };
  141. /**
  142. @@ -240,7 +235,7 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
  143. pci_set_master(pdev);
  144. - ret = info->setup(pdev, plat, info);
  145. + ret = info->setup(pdev, plat);
  146. if (ret)
  147. return ret;
  148. --
  149. 2.16.4