diff options
Diffstat (limited to 'drivers/scsi/ufs/ufs-debugfs.h')
| -rw-r--r-- | drivers/scsi/ufs/ufs-debugfs.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufs-debugfs.h b/drivers/scsi/ufs/ufs-debugfs.h new file mode 100644 index 000000000000..13848e8b72e0 --- /dev/null +++ b/drivers/scsi/ufs/ufs-debugfs.h @@ -0,0 +1,69 @@ +/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * UFS debugfs - add debugfs interface to the ufshcd. + * This is currently used for statistics collection and exporting from the + * UFS driver. + * This infrastructure can be used for debugging or direct tweaking + * of the driver from userspace. + * + */ + +#ifndef _UFS_DEBUGFS_H +#define _UFS_DEBUGFS_H + +#include <linux/debugfs.h> +#include "ufshcd.h" + +enum ufsdbg_err_inject_scenario { + ERR_INJECT_INTR, + ERR_INJECT_PWR_CHANGE, + ERR_INJECT_UIC, + ERR_INJECT_DME_ATTR, + ERR_INJECT_QUERY, + ERR_INJECT_MAX_ERR_SCENARIOS, +}; + +#ifdef CONFIG_DEBUG_FS +void ufsdbg_add_debugfs(struct ufs_hba *hba); +void ufsdbg_remove_debugfs(struct ufs_hba *hba); +void ufsdbg_pr_buf_to_std(struct ufs_hba *hba, int offset, int num_regs, + char *str, void *priv); +void ufsdbg_set_err_state(struct ufs_hba *hba); +#else +static inline void ufsdbg_add_debugfs(struct ufs_hba *hba) +{ +} +static inline void ufsdbg_remove_debugfs(struct ufs_hba *hba) +{ +} +static inline void ufsdbg_pr_buf_to_std(struct ufs_hba *hba, int offset, + int num_regs, char *str, void *priv) +{ +} +void ufsdbg_set_err_state(struct ufs_hba *hba) +{ +} +#endif + +#ifdef CONFIG_UFS_FAULT_INJECTION +void ufsdbg_error_inject_dispatcher(struct ufs_hba *hba, + enum ufsdbg_err_inject_scenario err_scenario, + int success_value, int *ret_value); +#else +static inline void ufsdbg_error_inject_dispatcher(struct ufs_hba *hba, + enum ufsdbg_err_inject_scenario err_scenario, + int success_value, int *ret_value) +{ +} +#endif + +#endif /* End of Header */ |
