Hi, > Currently only "interrupt-based" errors have their own history, > however there are some "non-interrupt-based" errors or events > which need history to improve debugging or help know the health > status of UFS devices. > > Example of fatal errors, > - Link startup error > - Suspend error > - Resume error > > Example of abnormal events, > - Task or request abort > - Device reset (now equals to Logical Unit Reset) > - Host reset > > This patch tries to track above errors and events by existed UFS error > history mechanism. > > Signed-off-by: Stanley Chu <stanley.chu@xxxxxxxxxxxx> Reviewed-by: Avri Altman <avri.altman@xxxxxxx> > /** > * ufshcd_link_startup - Initialize unipro link startup > * @hba: per adapter instance > @@ -4356,6 +4372,8 @@ static int ufshcd_link_startup(struct ufs_hba > *hba) > > /* check if device is detected by inter-connect layer */ > if (!ret && !ufshcd_is_device_present(hba)) { > + ufshcd_update_reg_hist(&hba- > >ufs_stats.link_startup_err, > + 0); So no device = no error, instead of ENXIO. Well I guess this is a fair choice, although less informative if the device stop responding.