diff options
author | Suraj Jaiswal <jsuraj@codeaurora.org> | 2019-04-03 18:18:54 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-09-04 02:38:55 -0700 |
commit | 616eae73079acc609d6ac54c74e1eb0530ec58ee (patch) | |
tree | dc0343d6234e04f8dc45eedc14b8e7f130536510 /drivers | |
parent | 6f0bd19696c5330e476a0de6d53c3fe5f50775a4 (diff) | |
download | data-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.c | 10 | ||||
-rw-r--r-- | drivers/emac-dwc-eqos/DWC_ETH_QOS_mdio.c | 7 | ||||
-rw-r--r-- | drivers/emac-dwc-eqos/DWC_ETH_QOS_platform.c | 8 | ||||
-rw-r--r-- | drivers/emac-dwc-eqos/DWC_ETH_QOS_yheader.h | 6 |
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 { |