From 8250f4a796665b6633ff8ba235b2e05a045e08b8 Mon Sep 17 00:00:00 2001 From: Subhash Jadavani Date: Wed, 21 Feb 2018 10:21:15 -0800 Subject: [PATCH] scsi: ufs: print TSTBUS_UTP_HCI testbus data This change adds supports to print TESTBUS_UTP_HCI testbus data. Change-Id: I586a9f8cb6b38c546f1ec9e2f7e83ad2d1ad0625 Signed-off-by: Subhash Jadavani Signed-off-by: Can Guo --- drivers/scsi/ufs/ufs-qcom.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index aaddf2fff99c..8b501f9d08c6 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -2711,6 +2711,27 @@ static void ufs_qcom_print_unipro_testbus(struct ufs_hba *hba) kfree(testbus); } +static void ufs_qcom_print_utp_hci_testbus(struct ufs_hba *hba) +{ + struct ufs_qcom_host *host = ufshcd_get_variant(hba); + u32 *testbus = NULL; + int i, nminor = 32, testbus_len = nminor * sizeof(u32); + + testbus = kmalloc(testbus_len, GFP_KERNEL); + if (!testbus) + return; + + host->testbus.select_major = TSTBUS_UTP_HCI; + for (i = 0; i <= nminor; i++) { + host->testbus.select_minor = i; + ufs_qcom_testbus_config(host); + testbus[i] = ufshcd_readl(hba, UFS_TEST_BUS); + } + print_hex_dump(KERN_ERR, "UTP_HCI_TEST_BUS ", DUMP_PREFIX_OFFSET, + 16, 4, testbus, testbus_len, false); + kfree(testbus); +} + static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba, bool no_sleep) { struct ufs_qcom_host *host = ufshcd_get_variant(hba); @@ -2729,6 +2750,8 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba, bool no_sleep) usleep_range(1000, 1100); ufs_qcom_print_unipro_testbus(hba); usleep_range(1000, 1100); + ufs_qcom_print_utp_hci_testbus(hba); + usleep_range(1000, 1100); ufs_qcom_phy_dbg_register_dump(phy); usleep_range(1000, 1100); ufs_qcom_ice_print_regs(host);