Messages in this thread | | | Date | Thu, 03 Dec 2020 13:49:05 +0800 | From | Can Guo <> | Subject | Re: [PATCH v1 3/3] scsi: ufs: Introduce notify_event variant function |
| |
On 2020-11-26 13:38, Stanley Chu wrote: > Introduce notify_event variant function to allow > vendor to get notified of important events and connect > to any proprietary debugging facilities. > > Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> > --- > drivers/scsi/ufs/ufshcd.c | 2 ++ > drivers/scsi/ufs/ufshcd.h | 11 +++++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index 7194bed1f10b..63fe37e1c908 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -4484,6 +4484,8 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, > u32 id, u32 val) > e->val[e->pos] = val; > e->tstamp[e->pos] = ktime_get(); > e->pos = (e->pos + 1) % UFS_EVENT_HIST_LENGTH; > + > + ufshcd_vops_notify_event(hba, id, &val); > } > EXPORT_SYMBOL_GPL(ufshcd_update_evt_hist); > > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h > index 82c2fc5597bb..a81ca36c1715 100644 > --- a/drivers/scsi/ufs/ufshcd.h > +++ b/drivers/scsi/ufs/ufshcd.h > @@ -317,6 +317,7 @@ struct ufs_pwr_mode_info { > * @phy_initialization: used to initialize phys > * @device_reset: called to issue a reset pulse on the UFS device > * @program_key: program or evict an inline encryption key > + * @notify_event: called to notify important events > */ > struct ufs_hba_variant_ops { > const char *name; > @@ -352,6 +353,8 @@ struct ufs_hba_variant_ops { > void *data); > int (*program_key)(struct ufs_hba *hba, > const union ufs_crypto_cfg_entry *cfg, int slot); > + void (*notify_event)(struct ufs_hba *hba, > + enum ufs_event_type evt, void *data); > }; > > /* clock gating state */ > @@ -1097,6 +1100,14 @@ static inline int > ufshcd_vops_clk_scale_notify(struct ufs_hba *hba, > return 0; > } > > +static inline void ufshcd_vops_notify_event(struct ufs_hba *hba, > + enum ufs_event_type evt, > + void *data) > +{ > + if (hba->vops && hba->vops->notify_event) > + hba->vops->notify_event(hba, evt, data); > +} > + > static inline int ufshcd_vops_setup_clocks(struct ufs_hba *hba, bool > on, > enum ufs_notify_change_status status) > {
Reviewed-by: Can Guo <cang@codeaurora.org>
| |