162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2020-2021 Intel Corporation.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/debugfs.h>
762306a36Sopenharmony_ci#include <linux/wwan.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "iosm_ipc_imem.h"
1062306a36Sopenharmony_ci#include "iosm_ipc_trace.h"
1162306a36Sopenharmony_ci#include "iosm_ipc_debugfs.h"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_civoid ipc_debugfs_init(struct iosm_imem *ipc_imem)
1462306a36Sopenharmony_ci{
1562306a36Sopenharmony_ci	ipc_imem->debugfs_wwan_dir = wwan_get_debugfs_dir(ipc_imem->dev);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	ipc_imem->debugfs_dir = debugfs_create_dir(KBUILD_MODNAME,
1862306a36Sopenharmony_ci						   ipc_imem->debugfs_wwan_dir);
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	ipc_imem->trace = ipc_trace_init(ipc_imem);
2162306a36Sopenharmony_ci	if (!ipc_imem->trace)
2262306a36Sopenharmony_ci		dev_warn(ipc_imem->dev, "trace channel init failed");
2362306a36Sopenharmony_ci}
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_civoid ipc_debugfs_deinit(struct iosm_imem *ipc_imem)
2662306a36Sopenharmony_ci{
2762306a36Sopenharmony_ci	ipc_trace_deinit(ipc_imem->trace);
2862306a36Sopenharmony_ci	debugfs_remove_recursive(ipc_imem->debugfs_dir);
2962306a36Sopenharmony_ci	wwan_put_debugfs_dir(ipc_imem->debugfs_wwan_dir);
3062306a36Sopenharmony_ci}
31