Message ID | 20200117035108.19699-2-stanley.chu@mediatek.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | b406a1978376b40f6737d5cc37bbb836b4428963 |
Headers | show |
Series | scsi: ufs-mediatek: add MediaTek vendor implementation part II | expand |
Hi Stanley On Fri, Jan 17, 2020 at 9:44 AM Stanley Chu <stanley.chu@mediatek.com> wrote: > > Add dbg_register_dump variant vendor implementation in MediaTek > UFS driver. > > Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> > --- Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > drivers/scsi/ufs/ufs-mediatek.c | 16 ++++++++++++++++ > drivers/scsi/ufs/ufs-mediatek.h | 5 +++++ > 2 files changed, 21 insertions(+) > > diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c > index 8d999c0e60fe..d5194d0c4ef5 100644 > --- a/drivers/scsi/ufs/ufs-mediatek.c > +++ b/drivers/scsi/ufs/ufs-mediatek.c > @@ -406,6 +406,21 @@ static int ufs_mtk_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) > return 0; > } > > +static void ufs_mtk_dbg_register_dump(struct ufs_hba *hba) > +{ > + ufshcd_dump_regs(hba, REG_UFS_REFCLK_CTRL, 0x4, "Ref-Clk Ctrl "); > + > + ufshcd_dump_regs(hba, REG_UFS_EXTREG, 0x4, "Ext Reg "); > + > + ufshcd_dump_regs(hba, REG_UFS_MPHYCTRL, > + REG_UFS_REJECT_MON - REG_UFS_MPHYCTRL + 4, > + "MPHY Ctrl "); > + > + /* Direct debugging information to REG_MTK_PROBE */ > + ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL); > + ufshcd_dump_regs(hba, REG_UFS_PROBE, 0x4, "Debug Probe "); > +} > + > static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba, > struct ufs_dev_desc *card) > { > @@ -430,6 +445,7 @@ static struct ufs_hba_variant_ops ufs_hba_mtk_vops = { > .apply_dev_quirks = ufs_mtk_apply_dev_quirks, > .suspend = ufs_mtk_suspend, > .resume = ufs_mtk_resume, > + .dbg_register_dump = ufs_mtk_dbg_register_dump, > .device_reset = ufs_mtk_device_reset, > }; > > diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/scsi/ufs/ufs-mediatek.h > index 31b7fead19eb..fccdd979d6fb 100644 > --- a/drivers/scsi/ufs/ufs-mediatek.h > +++ b/drivers/scsi/ufs/ufs-mediatek.h > @@ -13,6 +13,11 @@ > * Vendor specific UFSHCI Registers > */ > #define REG_UFS_REFCLK_CTRL 0x144 > +#define REG_UFS_EXTREG 0x2100 > +#define REG_UFS_MPHYCTRL 0x2200 > +#define REG_UFS_REJECT_MON 0x22AC > +#define REG_UFS_DEBUG_SEL 0x22C0 > +#define REG_UFS_PROBE 0x22C8 > > /* > * Ref-clk control > -- > 2.18.0
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 8d999c0e60fe..d5194d0c4ef5 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -406,6 +406,21 @@ static int ufs_mtk_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) return 0; } +static void ufs_mtk_dbg_register_dump(struct ufs_hba *hba) +{ + ufshcd_dump_regs(hba, REG_UFS_REFCLK_CTRL, 0x4, "Ref-Clk Ctrl "); + + ufshcd_dump_regs(hba, REG_UFS_EXTREG, 0x4, "Ext Reg "); + + ufshcd_dump_regs(hba, REG_UFS_MPHYCTRL, + REG_UFS_REJECT_MON - REG_UFS_MPHYCTRL + 4, + "MPHY Ctrl "); + + /* Direct debugging information to REG_MTK_PROBE */ + ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL); + ufshcd_dump_regs(hba, REG_UFS_PROBE, 0x4, "Debug Probe "); +} + static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba, struct ufs_dev_desc *card) { @@ -430,6 +445,7 @@ static struct ufs_hba_variant_ops ufs_hba_mtk_vops = { .apply_dev_quirks = ufs_mtk_apply_dev_quirks, .suspend = ufs_mtk_suspend, .resume = ufs_mtk_resume, + .dbg_register_dump = ufs_mtk_dbg_register_dump, .device_reset = ufs_mtk_device_reset, }; diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/scsi/ufs/ufs-mediatek.h index 31b7fead19eb..fccdd979d6fb 100644 --- a/drivers/scsi/ufs/ufs-mediatek.h +++ b/drivers/scsi/ufs/ufs-mediatek.h @@ -13,6 +13,11 @@ * Vendor specific UFSHCI Registers */ #define REG_UFS_REFCLK_CTRL 0x144 +#define REG_UFS_EXTREG 0x2100 +#define REG_UFS_MPHYCTRL 0x2200 +#define REG_UFS_REJECT_MON 0x22AC +#define REG_UFS_DEBUG_SEL 0x22C0 +#define REG_UFS_PROBE 0x22C8 /* * Ref-clk control
Add dbg_register_dump variant vendor implementation in MediaTek UFS driver. Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> --- drivers/scsi/ufs/ufs-mediatek.c | 16 ++++++++++++++++ drivers/scsi/ufs/ufs-mediatek.h | 5 +++++ 2 files changed, 21 insertions(+)