Loading drivers/scsi/ufs/ufs-qcom.c +11 −9 Original line number Diff line number Diff line Loading @@ -2314,7 +2314,6 @@ static int ufs_qcom_init(struct ufs_hba *hba) out_phy_exit: phy_exit(host->generic_phy); out_variant_clear: devm_kfree(dev, host); ufshcd_set_variant(hba, NULL); out: return err; Loading Loading @@ -2781,6 +2780,8 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba) /* sleep a bit intermittently as we are dumping too much data */ ufs_qcom_print_hw_debug_reg_all(hba, NULL, ufs_qcom_dump_regs_wrapper); if (in_task()) { usleep_range(1000, 1100); ufs_qcom_testbus_read(hba); usleep_range(1000, 1100); Loading @@ -2790,6 +2791,7 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba) usleep_range(1000, 1100); ufs_qcom_phy_dbg_register_dump(phy); } } /* * ufs_qcom_parse_limits - read limits from DTS Loading drivers/scsi/ufs/ufshcd.c +31 −10 Original line number Diff line number Diff line Loading @@ -450,8 +450,6 @@ static void ufshcd_print_host_regs(struct ufs_hba *hba) ufshcd_print_clk_freqs(hba); ufshcd_vops_dbg_register_dump(hba); ufshcd_crypto_debug(hba); } Loading Loading @@ -1880,6 +1878,8 @@ static void ufshcd_init_clk_gating(struct ufs_hba *hba) if (!ufshcd_is_clkgating_allowed(hba)) return; hba->clk_gating.state = CLKS_ON; hba->clk_gating.delay_ms = 150; INIT_DELAYED_WORK(&hba->clk_gating.gate_work, ufshcd_gate_work); INIT_WORK(&hba->clk_gating.ungate_work, ufshcd_ungate_work); Loading Loading @@ -2568,6 +2568,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) clear_bit_unlock(tag, &hba->lrb_in_use); goto out; } if (ufshcd_is_clkgating_allowed(hba)) WARN_ON(hba->clk_gating.state != CLKS_ON); lrbp = &hba->lrb[tag]; Loading Loading @@ -3948,6 +3949,7 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } spin_lock_irqsave(hba->host->host_lock, flags); Loading Loading @@ -4659,6 +4661,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba) ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } return ret; } Loading Loading @@ -5015,8 +5018,10 @@ ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp) dev_err(hba->dev, "OCS error from controller = %x for tag %d\n", ocs, lrbp->task_tag); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); break; } /* end of switch */ Loading Loading @@ -5731,6 +5736,11 @@ static void ufshcd_err_handler(struct work_struct *work) if (!ret) goto skip_err_handling; } spin_unlock_irqrestore(hba->host->host_lock, flags); ufshcd_vops_dbg_register_dump(hba); spin_lock_irqsave(hba->host->host_lock, flags); if ((hba->saved_err & INT_FATAL_ERRORS) || (hba->saved_err & UFSHCD_UIC_HIBERN8_MASK) || ((hba->saved_err & UIC_ERROR) && Loading Loading @@ -5978,8 +5988,9 @@ static irqreturn_t ufshcd_check_errors(struct ufs_hba *hba) __func__, hba->saved_err, hba->saved_uic_err); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_print_tmrs(hba, hba->outstanding_tasks); ufshcd_print_trs(hba, hba->outstanding_reqs, pr_prdt); Loading Loading @@ -6556,10 +6567,11 @@ static int ufshcd_abort(struct scsi_cmnd *cmd) scsi_print_command(hba->lrb[tag].cmd); if (!hba->req_abort_count) { ufshcd_update_reg_hist(&hba->ufs_stats.task_abort, 0); ufshcd_print_host_regs(hba); ufshcd_print_trs(hba, 1 << tag, true); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_trs(hba, 1 << tag, true); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } else { ufshcd_print_trs(hba, 1 << tag, false); } Loading Loading @@ -8436,8 +8448,11 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) /* If link is active, device ref_clk can't be switched off */ __ufshcd_setup_clocks(hba, false, true); if (ufshcd_is_clkgating_allowed(hba)) { hba->clk_gating.state = CLKS_OFF; trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); } /* Put the host controller in low power mode if possible */ ufshcd_hba_vreg_set_lpm(hba); Loading Loading @@ -8575,6 +8590,11 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) if (hba->clk_scaling.is_allowed) ufshcd_suspend_clkscaling(hba); ufshcd_setup_clocks(hba, false); if (ufshcd_is_clkgating_allowed(hba)) { hba->clk_gating.state = CLKS_OFF; trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); } out: hba->pm_op_in_progress = 0; if (ret) Loading Loading @@ -8993,8 +9013,9 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) err = ufshcd_hba_enable(hba); if (err) { dev_err(hba->dev, "Host controller enable failed\n"); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); goto out_remove_scsi_host; } Loading Loading
drivers/scsi/ufs/ufs-qcom.c +11 −9 Original line number Diff line number Diff line Loading @@ -2314,7 +2314,6 @@ static int ufs_qcom_init(struct ufs_hba *hba) out_phy_exit: phy_exit(host->generic_phy); out_variant_clear: devm_kfree(dev, host); ufshcd_set_variant(hba, NULL); out: return err; Loading Loading @@ -2781,6 +2780,8 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba) /* sleep a bit intermittently as we are dumping too much data */ ufs_qcom_print_hw_debug_reg_all(hba, NULL, ufs_qcom_dump_regs_wrapper); if (in_task()) { usleep_range(1000, 1100); ufs_qcom_testbus_read(hba); usleep_range(1000, 1100); Loading @@ -2790,6 +2791,7 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba) usleep_range(1000, 1100); ufs_qcom_phy_dbg_register_dump(phy); } } /* * ufs_qcom_parse_limits - read limits from DTS Loading
drivers/scsi/ufs/ufshcd.c +31 −10 Original line number Diff line number Diff line Loading @@ -450,8 +450,6 @@ static void ufshcd_print_host_regs(struct ufs_hba *hba) ufshcd_print_clk_freqs(hba); ufshcd_vops_dbg_register_dump(hba); ufshcd_crypto_debug(hba); } Loading Loading @@ -1880,6 +1878,8 @@ static void ufshcd_init_clk_gating(struct ufs_hba *hba) if (!ufshcd_is_clkgating_allowed(hba)) return; hba->clk_gating.state = CLKS_ON; hba->clk_gating.delay_ms = 150; INIT_DELAYED_WORK(&hba->clk_gating.gate_work, ufshcd_gate_work); INIT_WORK(&hba->clk_gating.ungate_work, ufshcd_ungate_work); Loading Loading @@ -2568,6 +2568,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) clear_bit_unlock(tag, &hba->lrb_in_use); goto out; } if (ufshcd_is_clkgating_allowed(hba)) WARN_ON(hba->clk_gating.state != CLKS_ON); lrbp = &hba->lrb[tag]; Loading Loading @@ -3948,6 +3949,7 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } spin_lock_irqsave(hba->host->host_lock, flags); Loading Loading @@ -4659,6 +4661,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba) ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } return ret; } Loading Loading @@ -5015,8 +5018,10 @@ ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp) dev_err(hba->dev, "OCS error from controller = %x for tag %d\n", ocs, lrbp->task_tag); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); break; } /* end of switch */ Loading Loading @@ -5731,6 +5736,11 @@ static void ufshcd_err_handler(struct work_struct *work) if (!ret) goto skip_err_handling; } spin_unlock_irqrestore(hba->host->host_lock, flags); ufshcd_vops_dbg_register_dump(hba); spin_lock_irqsave(hba->host->host_lock, flags); if ((hba->saved_err & INT_FATAL_ERRORS) || (hba->saved_err & UFSHCD_UIC_HIBERN8_MASK) || ((hba->saved_err & UIC_ERROR) && Loading Loading @@ -5978,8 +5988,9 @@ static irqreturn_t ufshcd_check_errors(struct ufs_hba *hba) __func__, hba->saved_err, hba->saved_uic_err); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_host_regs(hba); ufshcd_print_tmrs(hba, hba->outstanding_tasks); ufshcd_print_trs(hba, hba->outstanding_reqs, pr_prdt); Loading Loading @@ -6556,10 +6567,11 @@ static int ufshcd_abort(struct scsi_cmnd *cmd) scsi_print_command(hba->lrb[tag].cmd); if (!hba->req_abort_count) { ufshcd_update_reg_hist(&hba->ufs_stats.task_abort, 0); ufshcd_print_host_regs(hba); ufshcd_print_trs(hba, 1 << tag, true); ufshcd_print_host_state(hba); ufshcd_print_pwr_info(hba); ufshcd_print_trs(hba, 1 << tag, true); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); } else { ufshcd_print_trs(hba, 1 << tag, false); } Loading Loading @@ -8436,8 +8448,11 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) /* If link is active, device ref_clk can't be switched off */ __ufshcd_setup_clocks(hba, false, true); if (ufshcd_is_clkgating_allowed(hba)) { hba->clk_gating.state = CLKS_OFF; trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); } /* Put the host controller in low power mode if possible */ ufshcd_hba_vreg_set_lpm(hba); Loading Loading @@ -8575,6 +8590,11 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) if (hba->clk_scaling.is_allowed) ufshcd_suspend_clkscaling(hba); ufshcd_setup_clocks(hba, false); if (ufshcd_is_clkgating_allowed(hba)) { hba->clk_gating.state = CLKS_OFF; trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); } out: hba->pm_op_in_progress = 0; if (ret) Loading Loading @@ -8993,8 +9013,9 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) err = ufshcd_hba_enable(hba); if (err) { dev_err(hba->dev, "Host controller enable failed\n"); ufshcd_print_host_regs(hba); ufshcd_print_host_state(hba); ufshcd_print_host_regs(hba); ufshcd_vops_dbg_register_dump(hba); goto out_remove_scsi_host; } Loading