Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: ufs-mediatek: add dbg_register_dump implementation

Add dbg_register_dump variant vendor implementation in MediaTek UFS driver.

Link: https://lore.kernel.org/r/20200117035108.19699-2-stanley.chu@mediatek.com
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Stanley Chu and committed by
Martin K. Petersen
b406a197 17c5f65d

+21
+16
drivers/scsi/ufs/ufs-mediatek.c
··· 406 406 return 0; 407 407 } 408 408 409 + static void ufs_mtk_dbg_register_dump(struct ufs_hba *hba) 410 + { 411 + ufshcd_dump_regs(hba, REG_UFS_REFCLK_CTRL, 0x4, "Ref-Clk Ctrl "); 412 + 413 + ufshcd_dump_regs(hba, REG_UFS_EXTREG, 0x4, "Ext Reg "); 414 + 415 + ufshcd_dump_regs(hba, REG_UFS_MPHYCTRL, 416 + REG_UFS_REJECT_MON - REG_UFS_MPHYCTRL + 4, 417 + "MPHY Ctrl "); 418 + 419 + /* Direct debugging information to REG_MTK_PROBE */ 420 + ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL); 421 + ufshcd_dump_regs(hba, REG_UFS_PROBE, 0x4, "Debug Probe "); 422 + } 423 + 409 424 static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba, 410 425 struct ufs_dev_desc *card) 411 426 { ··· 445 430 .apply_dev_quirks = ufs_mtk_apply_dev_quirks, 446 431 .suspend = ufs_mtk_suspend, 447 432 .resume = ufs_mtk_resume, 433 + .dbg_register_dump = ufs_mtk_dbg_register_dump, 448 434 .device_reset = ufs_mtk_device_reset, 449 435 }; 450 436
+5
drivers/scsi/ufs/ufs-mediatek.h
··· 13 13 * Vendor specific UFSHCI Registers 14 14 */ 15 15 #define REG_UFS_REFCLK_CTRL 0x144 16 + #define REG_UFS_EXTREG 0x2100 17 + #define REG_UFS_MPHYCTRL 0x2200 18 + #define REG_UFS_REJECT_MON 0x22AC 19 + #define REG_UFS_DEBUG_SEL 0x22C0 20 + #define REG_UFS_PROBE 0x22C8 16 21 17 22 /* 18 23 * Ref-clk control