summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSuraj Jaiswal <jsuraj@codeaurora.org>2019-04-03 18:18:54 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2019-09-04 02:38:55 -0700
commit616eae73079acc609d6ac54c74e1eb0530ec58ee (patch)
treedc0343d6234e04f8dc45eedc14b8e7f130536510 /drivers
parent6f0bd19696c5330e476a0de6d53c3fe5f50775a4 (diff)
downloaddata-kernel-616eae73079acc609d6ac54c74e1eb0530ec58ee.tar.gz
data-kernel: EMAC: Boot KPI marker
Add a boot marker to indicate the time when driver probe is completed. Change-Id: Icfe65b88fb58e68384e4a67ecc9202032afac3c6
Diffstat (limited to 'drivers')
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_drv.c10
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c7
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c8
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h6
4 files changed, 27 insertions, 4 deletions
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_drv.c b/drivers/emac-dwc-eqos/DWC_ETH_QOS_drv.c
index ab7057e..c56b4f4 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_drv.c
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_drv.c
@@ -2969,6 +2969,11 @@ static void DWC_ETH_QOS_tx_interrupt(struct net_device *dev,
if (dev->stats.tx_packets == 1)
EMACINFO("Transmitted First Rx packet\n");
#endif
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+ if ( dev->stats.tx_packets == 1) {
+ place_marker("M - Ethernet first packet transmitted");
+ }
+#endif
}
#else
if ((hw_if->get_tx_desc_ls(txptr)) && !(hw_if->get_tx_desc_ctxt(txptr))) {
@@ -3885,6 +3890,11 @@ static int DWC_ETH_QOS_clean_rx_irq(struct DWC_ETH_QOS_prv_data *pdata,
#endif
DWC_ETH_QOS_receive_skb(pdata, dev, skb, qinx);
received++;
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+ if ( dev->stats.rx_packets == 1) {
+ place_marker("M - Ethernet first packet received");
+ }
+#endif
} else {
dump_rx_desc(qinx, RX_NORMAL_DESC, desc_data->cur_rx);
if (!(RX_NORMAL_DESC->RDES3 &
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c b/drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c
index c9ceaa9..017fe03 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c
@@ -996,6 +996,13 @@ void DWC_ETH_QOS_adjust_link(struct net_device *dev)
if (new_state) {
phy_print_status(phydev);
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+ if ((phydev->link == 1) && !pdata->print_kpi) {
+ place_marker("M - Ethernet is Ready.Link is UP");
+ pdata->print_kpi = 1;
+ }
+#endif
+
if (pdata->ipa_enabled && netif_running(dev)) {
if (phydev->link == 1)
DWC_ETH_QOS_ipa_offload_event_handler(pdata, EV_PHY_LINK_UP);
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c b/drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c
index abc0427..03badef 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c
@@ -2013,7 +2013,9 @@ static int DWC_ETH_QOS_probe(struct platform_device *pdev)
int ret = 0;
EMACDBG("--> DWC_ETH_QOS_probe\n");
-
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+ place_marker("M - Ethernet probe start");
+#endif
if (of_device_is_compatible(pdev->dev.of_node, "qcom,emac-smmu-embedded"))
return emac_emb_smmu_cb_probe(pdev);
@@ -2309,7 +2311,9 @@ static INT DWC_ETH_QOS_suspend(struct platform_device *pdev, pm_message_t state)
DWC_ETH_QOS_suspend_clks(pdata);
EMACDBG("<--DWC_ETH_QOS_suspend ret = %d\n", ret);
-
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+ pdata->print_kpi = 0;
+#endif
return ret;
}
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h b/drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h
index 7f5c7b0..e1d5923 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h
@@ -130,7 +130,9 @@
#include <net/ipv6.h>
#include <linux/inet.h>
#include <asm/uaccess.h>
-
+#ifdef CONFIG_MSM_BOOT_TIME_MARKER
+#include <soc/qcom/boot_stats.h>
+#endif
/* QOS Version Control Macros */
/* #define DWC_ETH_QOS_VER_4_0 */
/* Default Configuration is for QOS version 4.1 and above */
@@ -1868,8 +1870,8 @@ struct DWC_ETH_QOS_prv_data {
dev_t avb_class_b_dev_t;
struct cdev* avb_class_b_cdev;
struct class* avb_class_b_class;
-
struct delayed_work ipv6_addr_assign_wq;
+ bool print_kpi;
};
struct ip_params {