18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
28c2ecf20Sopenharmony_ci/* QLogic qed NIC Driver
38c2ecf20Sopenharmony_ci * Copyright (c) 2015 QLogic Corporation
48c2ecf20Sopenharmony_ci * Copyright (c) 2019-2020 Marvell International Ltd.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef _QED_DEBUGFS_H
88c2ecf20Sopenharmony_ci#define _QED_DEBUGFS_H
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cienum qed_dbg_features {
118c2ecf20Sopenharmony_ci	DBG_FEATURE_GRC,
128c2ecf20Sopenharmony_ci	DBG_FEATURE_IDLE_CHK,
138c2ecf20Sopenharmony_ci	DBG_FEATURE_MCP_TRACE,
148c2ecf20Sopenharmony_ci	DBG_FEATURE_REG_FIFO,
158c2ecf20Sopenharmony_ci	DBG_FEATURE_IGU_FIFO,
168c2ecf20Sopenharmony_ci	DBG_FEATURE_PROTECTION_OVERRIDE,
178c2ecf20Sopenharmony_ci	DBG_FEATURE_FW_ASSERTS,
188c2ecf20Sopenharmony_ci	DBG_FEATURE_ILT,
198c2ecf20Sopenharmony_ci	DBG_FEATURE_NUM
208c2ecf20Sopenharmony_ci};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci/* Forward Declaration */
238c2ecf20Sopenharmony_cistruct qed_dev;
248c2ecf20Sopenharmony_cistruct qed_hwfn;
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciint qed_dbg_grc(struct qed_dev *cdev, void *buffer, u32 *num_dumped_bytes);
278c2ecf20Sopenharmony_ciint qed_dbg_grc_size(struct qed_dev *cdev);
288c2ecf20Sopenharmony_ciint qed_dbg_idle_chk(struct qed_dev *cdev, void *buffer,
298c2ecf20Sopenharmony_ci		     u32 *num_dumped_bytes);
308c2ecf20Sopenharmony_ciint qed_dbg_idle_chk_size(struct qed_dev *cdev);
318c2ecf20Sopenharmony_ciint qed_dbg_reg_fifo(struct qed_dev *cdev, void *buffer,
328c2ecf20Sopenharmony_ci		     u32 *num_dumped_bytes);
338c2ecf20Sopenharmony_ciint qed_dbg_reg_fifo_size(struct qed_dev *cdev);
348c2ecf20Sopenharmony_ciint qed_dbg_igu_fifo(struct qed_dev *cdev, void *buffer,
358c2ecf20Sopenharmony_ci		     u32 *num_dumped_bytes);
368c2ecf20Sopenharmony_ciint qed_dbg_igu_fifo_size(struct qed_dev *cdev);
378c2ecf20Sopenharmony_ciint qed_dbg_protection_override(struct qed_dev *cdev, void *buffer,
388c2ecf20Sopenharmony_ci				u32 *num_dumped_bytes);
398c2ecf20Sopenharmony_ciint qed_dbg_protection_override_size(struct qed_dev *cdev);
408c2ecf20Sopenharmony_ciint qed_dbg_fw_asserts(struct qed_dev *cdev, void *buffer,
418c2ecf20Sopenharmony_ci		       u32 *num_dumped_bytes);
428c2ecf20Sopenharmony_ciint qed_dbg_fw_asserts_size(struct qed_dev *cdev);
438c2ecf20Sopenharmony_ciint qed_dbg_ilt(struct qed_dev *cdev, void *buffer, u32 *num_dumped_bytes);
448c2ecf20Sopenharmony_ciint qed_dbg_ilt_size(struct qed_dev *cdev);
458c2ecf20Sopenharmony_ciint qed_dbg_mcp_trace(struct qed_dev *cdev, void *buffer,
468c2ecf20Sopenharmony_ci		      u32 *num_dumped_bytes);
478c2ecf20Sopenharmony_ciint qed_dbg_mcp_trace_size(struct qed_dev *cdev);
488c2ecf20Sopenharmony_ciint qed_dbg_all_data(struct qed_dev *cdev, void *buffer);
498c2ecf20Sopenharmony_ciint qed_dbg_all_data_size(struct qed_dev *cdev);
508c2ecf20Sopenharmony_ciu8 qed_get_debug_engine(struct qed_dev *cdev);
518c2ecf20Sopenharmony_civoid qed_set_debug_engine(struct qed_dev *cdev, int engine_number);
528c2ecf20Sopenharmony_ciint qed_dbg_feature(struct qed_dev *cdev, void *buffer,
538c2ecf20Sopenharmony_ci		    enum qed_dbg_features feature, u32 *num_dumped_bytes);
548c2ecf20Sopenharmony_ciint qed_dbg_feature_size(struct qed_dev *cdev, enum qed_dbg_features feature);
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_civoid qed_dbg_pf_init(struct qed_dev *cdev);
578c2ecf20Sopenharmony_civoid qed_dbg_pf_exit(struct qed_dev *cdev);
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci#endif
60