Loading drivers/scsi/ufs/ufs-qcom.c +0 −42 Original line number Diff line number Diff line Loading @@ -2636,48 +2636,6 @@ static void ufs_qcom_print_utp_hci_testbus(struct ufs_hba *hba) kfree(testbus); } void ufs_qcom_read_custom_testbus(struct ufs_hba *hba) { struct ufs_qcom_host *host = ufshcd_get_variant(hba); host->testbus.select_major = TSTBUS_UTP_HCI; host->testbus.select_minor = 5; ufs_qcom_testbus_config(host); hba->tb_ah8_ctrl_0 = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 33; ufs_qcom_testbus_config(host); hba->tb_dme = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 37; ufs_qcom_testbus_config(host); hba->tb_pa_power_ctrl = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 55; ufs_qcom_testbus_config(host); hba->tb_pa_attr_1 = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 56; ufs_qcom_testbus_config(host); hba->tb_pa_attr_2 = ufshcd_readl(hba, UFS_TEST_BUS); } int ufs_qcom_read_pa_vs_status_reg1(struct ufs_hba *hba, u32 *pa_vs_status_reg1) { int err; err = ufshcd_dme_get(hba, UIC_ARG_MIB(PA_VS_STATUS_REG1), pa_vs_status_reg1); if (err) dev_err(hba->dev, "%s: couldn't read PA_VS_STATUS_REG1 %d\n", __func__, err); return err; } static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba, bool no_sleep) { struct ufs_qcom_host *host = ufshcd_get_variant(hba); Loading drivers/scsi/ufs/ufs-qcom.h +0 −4 Original line number Diff line number Diff line Loading @@ -161,7 +161,6 @@ enum ufs_qcom_phy_init_type { /* QUniPro Vendor specific attributes */ #define PA_VS_CONFIG_REG1 0x9000 #define PA_VS_STATUS_REG1 0x9001 #define SAVECONFIGTIME_MODE_MASK 0x6000 #define PA_VS_CLK_CFG_REG 0x9004 Loading Loading @@ -397,9 +396,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host); void ufs_qcom_print_hw_debug_reg_all(struct ufs_hba *hba, void *priv, void (*print_fn)(struct ufs_hba *hba, int offset, int num_regs, char *str, void *priv)); void ufs_qcom_read_custom_testbus(struct ufs_hba *hba); int ufs_qcom_read_pa_vs_status_reg1(struct ufs_hba *hba, u32 *pa_vs_status_reg1); static inline bool ufs_qcom_cap_qunipro(struct ufs_qcom_host *host) { Loading drivers/scsi/ufs/ufshcd.c +1 −29 Original line number Diff line number Diff line Loading @@ -54,8 +54,6 @@ #ifdef CONFIG_DEBUG_FS static u32 pa_vs_status_reg1; static int ufshcd_tag_req_type(struct request *rq) { int rq_type = TS_WRITE; Loading Loading @@ -630,23 +628,6 @@ static void __ufshcd_cmd_log(struct ufs_hba *hba, char *str, char *cmd_type, entry->tag = tag; entry->tstamp = ktime_get(); entry->outstanding_reqs = hba->outstanding_reqs; if (!strcmp(cmd_type, "custom")) { ufs_qcom_read_custom_testbus(hba); entry->tb_ah8_ctrl_0 = hba->tb_ah8_ctrl_0; entry->tb_dme = hba->tb_dme; entry->tb_pa_power_ctrl = hba->tb_pa_power_ctrl; entry->tb_pa_attr_1 = hba->tb_pa_attr_1; entry->tb_pa_attr_2 = hba->tb_pa_attr_2; entry->pa_vs_status_reg1 = pa_vs_status_reg1; pa_vs_status_reg1 = 0; } else { entry->tb_ah8_ctrl_0 = 0; entry->tb_dme = 0; entry->tb_pa_power_ctrl = 0; entry->tb_pa_attr_1 = 0; entry->tb_pa_attr_2 = 0; entry->pa_vs_status_reg1 = 0; } entry->seq_num = hba->cmd_log.seq_num; hba->cmd_log.seq_num++; hba->cmd_log.pos = Loading Loading @@ -686,14 +667,11 @@ static void ufshcd_print_cmd_log(struct ufs_hba *hba) pos = (pos + 1) % UFSHCD_MAX_CMD_LOGGING; if (ktime_to_us(p->tstamp)) { pr_err("%s: %s: seq_no=%u lun=0x%x cmd_id=0x%02x lba=0x%llx txfer_len=%d tag=%u, doorbell=0x%x outstanding=0x%x idn=%d ah8_ctrl_0=0x%x dme=0x%x pa_power_ctrl=0x%x pa_attr_1=0x%x pa_attr_2=0x%x pa_vs_status_reg1=0x%x time=%lld us\n", pr_err("%s: %s: seq_no=%u lun=0x%x cmd_id=0x%02x lba=0x%llx txfer_len=%d tag=%u, doorbell=0x%x outstanding=0x%x idn=%d time=%lld us\n", p->cmd_type, p->str, p->seq_num, p->lun, p->cmd_id, (unsigned long long)p->lba, p->transfer_len, p->tag, p->doorbell, p->outstanding_reqs, p->idn, p->tb_ah8_ctrl_0, p->tb_dme, p->tb_pa_power_ctrl, p->tb_pa_attr_1, p->tb_pa_attr_2, p->pa_vs_status_reg1, ktime_to_us(p->tstamp)); usleep_range(1000, 1100); } Loading Loading @@ -10235,7 +10213,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) goto out; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "waited-for-DB-clear"); /* scale down the gear before scaling down clocks */ Loading @@ -10243,7 +10220,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) ret = ufshcd_scale_gear(hba, false); if (ret) goto clk_scaling_unprepare; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Gear-scaled-down"); } Loading @@ -10257,14 +10233,12 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Hibern8-entered"); } ret = ufshcd_scale_clks(hba, scale_up); if (ret) goto scale_up_gear; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Clk-freq-switched"); if (ufshcd_is_auto_hibern8_supported(hba)) { Loading @@ -10272,7 +10246,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Hibern8-Exited"); } Loading @@ -10283,7 +10256,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) ufshcd_scale_clks(hba, false); goto clk_scaling_unprepare; } ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Gear-scaled-up"); } Loading drivers/scsi/ufs/ufshcd.h +0 −13 Original line number Diff line number Diff line Loading @@ -686,12 +686,6 @@ struct ufshcd_cmd_log_entry { u32 seq_num; unsigned int tag; ktime_t tstamp; u32 tb_ah8_ctrl_0; u32 tb_dme; u32 tb_pa_power_ctrl; u32 tb_pa_attr_1; u32 tb_pa_attr_2; u32 pa_vs_status_reg1; }; struct ufshcd_cmd_log { Loading Loading @@ -1001,13 +995,6 @@ struct ufs_hba { struct io_latency_state io_lat_write; struct ufs_desc_size desc_size; bool restore_needed; /* Custom test bus data */ u32 tb_ah8_ctrl_0; u32 tb_dme; u32 tb_pa_power_ctrl; u32 tb_pa_attr_1; u32 tb_pa_attr_2; }; static inline void ufshcd_mark_shutdown_ongoing(struct ufs_hba *hba) Loading Loading
drivers/scsi/ufs/ufs-qcom.c +0 −42 Original line number Diff line number Diff line Loading @@ -2636,48 +2636,6 @@ static void ufs_qcom_print_utp_hci_testbus(struct ufs_hba *hba) kfree(testbus); } void ufs_qcom_read_custom_testbus(struct ufs_hba *hba) { struct ufs_qcom_host *host = ufshcd_get_variant(hba); host->testbus.select_major = TSTBUS_UTP_HCI; host->testbus.select_minor = 5; ufs_qcom_testbus_config(host); hba->tb_ah8_ctrl_0 = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 33; ufs_qcom_testbus_config(host); hba->tb_dme = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 37; ufs_qcom_testbus_config(host); hba->tb_pa_power_ctrl = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 55; ufs_qcom_testbus_config(host); hba->tb_pa_attr_1 = ufshcd_readl(hba, UFS_TEST_BUS); host->testbus.select_major = TSTBUS_UNIPRO; host->testbus.select_minor = 56; ufs_qcom_testbus_config(host); hba->tb_pa_attr_2 = ufshcd_readl(hba, UFS_TEST_BUS); } int ufs_qcom_read_pa_vs_status_reg1(struct ufs_hba *hba, u32 *pa_vs_status_reg1) { int err; err = ufshcd_dme_get(hba, UIC_ARG_MIB(PA_VS_STATUS_REG1), pa_vs_status_reg1); if (err) dev_err(hba->dev, "%s: couldn't read PA_VS_STATUS_REG1 %d\n", __func__, err); return err; } static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba, bool no_sleep) { struct ufs_qcom_host *host = ufshcd_get_variant(hba); Loading
drivers/scsi/ufs/ufs-qcom.h +0 −4 Original line number Diff line number Diff line Loading @@ -161,7 +161,6 @@ enum ufs_qcom_phy_init_type { /* QUniPro Vendor specific attributes */ #define PA_VS_CONFIG_REG1 0x9000 #define PA_VS_STATUS_REG1 0x9001 #define SAVECONFIGTIME_MODE_MASK 0x6000 #define PA_VS_CLK_CFG_REG 0x9004 Loading Loading @@ -397,9 +396,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host); void ufs_qcom_print_hw_debug_reg_all(struct ufs_hba *hba, void *priv, void (*print_fn)(struct ufs_hba *hba, int offset, int num_regs, char *str, void *priv)); void ufs_qcom_read_custom_testbus(struct ufs_hba *hba); int ufs_qcom_read_pa_vs_status_reg1(struct ufs_hba *hba, u32 *pa_vs_status_reg1); static inline bool ufs_qcom_cap_qunipro(struct ufs_qcom_host *host) { Loading
drivers/scsi/ufs/ufshcd.c +1 −29 Original line number Diff line number Diff line Loading @@ -54,8 +54,6 @@ #ifdef CONFIG_DEBUG_FS static u32 pa_vs_status_reg1; static int ufshcd_tag_req_type(struct request *rq) { int rq_type = TS_WRITE; Loading Loading @@ -630,23 +628,6 @@ static void __ufshcd_cmd_log(struct ufs_hba *hba, char *str, char *cmd_type, entry->tag = tag; entry->tstamp = ktime_get(); entry->outstanding_reqs = hba->outstanding_reqs; if (!strcmp(cmd_type, "custom")) { ufs_qcom_read_custom_testbus(hba); entry->tb_ah8_ctrl_0 = hba->tb_ah8_ctrl_0; entry->tb_dme = hba->tb_dme; entry->tb_pa_power_ctrl = hba->tb_pa_power_ctrl; entry->tb_pa_attr_1 = hba->tb_pa_attr_1; entry->tb_pa_attr_2 = hba->tb_pa_attr_2; entry->pa_vs_status_reg1 = pa_vs_status_reg1; pa_vs_status_reg1 = 0; } else { entry->tb_ah8_ctrl_0 = 0; entry->tb_dme = 0; entry->tb_pa_power_ctrl = 0; entry->tb_pa_attr_1 = 0; entry->tb_pa_attr_2 = 0; entry->pa_vs_status_reg1 = 0; } entry->seq_num = hba->cmd_log.seq_num; hba->cmd_log.seq_num++; hba->cmd_log.pos = Loading Loading @@ -686,14 +667,11 @@ static void ufshcd_print_cmd_log(struct ufs_hba *hba) pos = (pos + 1) % UFSHCD_MAX_CMD_LOGGING; if (ktime_to_us(p->tstamp)) { pr_err("%s: %s: seq_no=%u lun=0x%x cmd_id=0x%02x lba=0x%llx txfer_len=%d tag=%u, doorbell=0x%x outstanding=0x%x idn=%d ah8_ctrl_0=0x%x dme=0x%x pa_power_ctrl=0x%x pa_attr_1=0x%x pa_attr_2=0x%x pa_vs_status_reg1=0x%x time=%lld us\n", pr_err("%s: %s: seq_no=%u lun=0x%x cmd_id=0x%02x lba=0x%llx txfer_len=%d tag=%u, doorbell=0x%x outstanding=0x%x idn=%d time=%lld us\n", p->cmd_type, p->str, p->seq_num, p->lun, p->cmd_id, (unsigned long long)p->lba, p->transfer_len, p->tag, p->doorbell, p->outstanding_reqs, p->idn, p->tb_ah8_ctrl_0, p->tb_dme, p->tb_pa_power_ctrl, p->tb_pa_attr_1, p->tb_pa_attr_2, p->pa_vs_status_reg1, ktime_to_us(p->tstamp)); usleep_range(1000, 1100); } Loading Loading @@ -10235,7 +10213,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) goto out; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "waited-for-DB-clear"); /* scale down the gear before scaling down clocks */ Loading @@ -10243,7 +10220,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) ret = ufshcd_scale_gear(hba, false); if (ret) goto clk_scaling_unprepare; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Gear-scaled-down"); } Loading @@ -10257,14 +10233,12 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Hibern8-entered"); } ret = ufshcd_scale_clks(hba, scale_up); if (ret) goto scale_up_gear; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Clk-freq-switched"); if (ufshcd_is_auto_hibern8_supported(hba)) { Loading @@ -10272,7 +10246,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Hibern8-Exited"); } Loading @@ -10283,7 +10256,6 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) ufshcd_scale_clks(hba, false); goto clk_scaling_unprepare; } ufs_qcom_read_pa_vs_status_reg1(hba, &pa_vs_status_reg1); ufshcd_custom_cmd_log(hba, "Gear-scaled-up"); } Loading
drivers/scsi/ufs/ufshcd.h +0 −13 Original line number Diff line number Diff line Loading @@ -686,12 +686,6 @@ struct ufshcd_cmd_log_entry { u32 seq_num; unsigned int tag; ktime_t tstamp; u32 tb_ah8_ctrl_0; u32 tb_dme; u32 tb_pa_power_ctrl; u32 tb_pa_attr_1; u32 tb_pa_attr_2; u32 pa_vs_status_reg1; }; struct ufshcd_cmd_log { Loading Loading @@ -1001,13 +995,6 @@ struct ufs_hba { struct io_latency_state io_lat_write; struct ufs_desc_size desc_size; bool restore_needed; /* Custom test bus data */ u32 tb_ah8_ctrl_0; u32 tb_dme; u32 tb_pa_power_ctrl; u32 tb_pa_attr_1; u32 tb_pa_attr_2; }; static inline void ufshcd_mark_shutdown_ongoing(struct ufs_hba *hba) Loading