static void ufshcd_print_host_regs(struct ufs_hba *hba)
 {
        ufshcd_dump_regs(hba, 0, UFSHCI_REG_SPACE_SIZE, "host_regs: ");
-       dev_err(hba->dev, "hba->ufs_version = 0x%x, hba->capabilities = 0x%x\n",
-               hba->ufs_version, hba->capabilities);
-       dev_err(hba->dev,
-               "hba->outstanding_reqs = 0x%x, hba->outstanding_tasks = 0x%x\n",
-               (u32)hba->outstanding_reqs, (u32)hba->outstanding_tasks);
-       dev_err(hba->dev,
-               "last_hibern8_exit_tstamp at %lld us, hibern8_exit_cnt = %d\n",
-               ktime_to_us(hba->ufs_stats.last_hibern8_exit_tstamp),
-               hba->ufs_stats.hibern8_exit_cnt);
 
        ufshcd_print_err_hist(hba, &hba->ufs_stats.pa_err, "pa_err");
        ufshcd_print_err_hist(hba, &hba->ufs_stats.dl_err, "dl_err");
        ufshcd_print_err_hist(hba, &hba->ufs_stats.host_reset, "host_reset");
        ufshcd_print_err_hist(hba, &hba->ufs_stats.task_abort, "task_abort");
 
-       ufshcd_print_clk_freqs(hba);
-
        ufshcd_vops_dbg_register_dump(hba);
 }
 
 
 static void ufshcd_print_host_state(struct ufs_hba *hba)
 {
+       struct scsi_device *sdev_ufs = hba->sdev_ufs_device;
+
        dev_err(hba->dev, "UFS Host state=%d\n", hba->ufshcd_state);
        dev_err(hba->dev, "outstanding reqs=0x%lx tasks=0x%lx\n",
                hba->outstanding_reqs, hba->outstanding_tasks);
        dev_err(hba->dev, "Auto BKOPS=%d, Host self-block=%d\n",
                hba->auto_bkops_enabled, hba->host->host_self_blocked);
        dev_err(hba->dev, "Clk gate=%d\n", hba->clk_gating.state);
+       dev_err(hba->dev,
+               "last_hibern8_exit_tstamp at %lld us, hibern8_exit_cnt=%d\n",
+               ktime_to_us(hba->ufs_stats.last_hibern8_exit_tstamp),
+               hba->ufs_stats.hibern8_exit_cnt);
+       dev_err(hba->dev, "last intr at %lld us, last intr status=0x%x\n",
+               ktime_to_us(hba->ufs_stats.last_intr_ts),
+               hba->ufs_stats.last_intr_status);
        dev_err(hba->dev, "error handling flags=0x%x, req. abort count=%d\n",
                hba->eh_flags, hba->req_abort_count);
-       dev_err(hba->dev, "Host capabilities=0x%x, caps=0x%x\n",
-               hba->capabilities, hba->caps);
+       dev_err(hba->dev, "hba->ufs_version=0x%x, Host capabilities=0x%x, caps=0x%x\n",
+               hba->ufs_version, hba->capabilities, hba->caps);
        dev_err(hba->dev, "quirks=0x%x, dev. quirks=0x%x\n", hba->quirks,
                hba->dev_quirks);
+       if (sdev_ufs)
+               dev_err(hba->dev, "UFS dev info: %.8s %.16s rev %.4s\n",
+                       sdev_ufs->vendor, sdev_ufs->model, sdev_ufs->rev);
+
+       ufshcd_print_clk_freqs(hba);
 }
 
 /**
 
        spin_lock(hba->host->host_lock);
        intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
+       hba->ufs_stats.last_intr_status = intr_status;
+       hba->ufs_stats.last_intr_ts = ktime_get();
 
        /*
         * There could be max of hba->nutrs reqs in flight and in worst case