Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0a149a1 authored by Sujeev Dias's avatar Sujeev Dias
Browse files

mhi: dev: satellite: driver clean-up



Clean-up debugfs hooks as feature is enabled by default and
remove unsupported subsystem entries no longer required.

CRs-Fixed: 2479799
Change-Id: I38b5f520918092a7174f59df8b8ed8b0bc7ed5a7
Acked-by: default avatarBhaumik Vasav Bhatt <bbhatt@qti.qualcomm.com>
Signed-off-by: default avatarSujeev Dias <sdias@codeaurora.org>
parent f84134c2
Loading
Loading
Loading
Loading
+0 −84
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.*/

#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/dma-direction.h>
#include <linux/dma-mapping.h>
@@ -19,8 +18,6 @@

#define MHI_SAT_DRIVER_NAME "mhi_satellite"

static bool mhi_sat_defer_init;

/* logging macros */
#define IPC_LOG_PAGES (10)
#define IPC_LOG_LVL (MHI_MSG_LVL_INFO)
@@ -147,17 +144,13 @@ enum mhi_ev_ccs {
/* satellite subsystem definitions */
enum subsys_id {
	SUBSYS_ADSP,
	SUBSYS_CDSP,
	SUBSYS_SLPI,
	SUBSYS_MODEM,
	SUBSYS_MAX,
};

static const char * const subsys_names[SUBSYS_MAX] = {
	[SUBSYS_ADSP] = "adsp",
	[SUBSYS_CDSP] = "cdsp",
	[SUBSYS_SLPI] = "slpi",
	[SUBSYS_MODEM] = "modem",
};

struct mhi_sat_subsys {
@@ -285,9 +278,6 @@ struct mhi_sat_driver {

	struct mhi_sat_subsys *subsys; /* pointer to subsystem array */
	unsigned int num_subsys;

	struct dentry *dentry; /* debugfs directory */
	bool deferred_init_done; /* flag for deferred init protection */
};

static struct mhi_sat_driver mhi_sat_driver;
@@ -1006,17 +996,6 @@ static const struct mhi_device_id mhi_sat_dev_match_table[] = {
	{ .chan = "ADSP_7", .driver_data = SUBSYS_ADSP },
	{ .chan = "ADSP_8", .driver_data = SUBSYS_ADSP },
	{ .chan = "ADSP_9", .driver_data = SUBSYS_ADSP },
	/* CDSP */
	{ .chan = "CDSP_0", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_1", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_2", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_3", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_4", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_5", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_6", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_7", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_8", .driver_data = SUBSYS_CDSP },
	{ .chan = "CDSP_9", .driver_data = SUBSYS_CDSP },
	/* SLPI */
	{ .chan = "SLPI_0", .driver_data = SUBSYS_SLPI },
	{ .chan = "SLPI_1", .driver_data = SUBSYS_SLPI },
@@ -1028,17 +1007,6 @@ static const struct mhi_device_id mhi_sat_dev_match_table[] = {
	{ .chan = "SLPI_7", .driver_data = SUBSYS_SLPI },
	{ .chan = "SLPI_8", .driver_data = SUBSYS_SLPI },
	{ .chan = "SLPI_9", .driver_data = SUBSYS_SLPI },
	/* MODEM */
	{ .chan = "MODEM_0", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_1", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_2", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_3", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_4", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_5", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_6", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_7", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_8", .driver_data = SUBSYS_MODEM },
	{ .chan = "MODEM_9", .driver_data = SUBSYS_MODEM },
	{},
};

@@ -1053,44 +1021,6 @@ static struct mhi_driver mhi_sat_dev_driver = {
	},
};

int mhi_sat_trigger_init(void *data, u64 val)
{
	struct mhi_sat_subsys *subsys;
	int i, ret;

	if (mhi_sat_driver.deferred_init_done)
		return -EIO;

	ret = register_rpmsg_driver(&mhi_sat_rpmsg_driver);
	if (ret)
		goto error_sat_trigger_init;

	ret = mhi_driver_register(&mhi_sat_dev_driver);
	if (ret)
		goto error_sat_trigger_register;

	mhi_sat_driver.deferred_init_done = true;

	return 0;

error_sat_trigger_register:
	unregister_rpmsg_driver(&mhi_sat_rpmsg_driver);

error_sat_trigger_init:
	subsys = mhi_sat_driver.subsys;
	for (i = 0; i < mhi_sat_driver.num_subsys; i++, subsys++) {
		ipc_log_context_destroy(subsys->ipc_log);
		mutex_destroy(&subsys->cntrl_mutex);
	}
	kfree(mhi_sat_driver.subsys);
	mhi_sat_driver.subsys = NULL;

	return ret;
}

DEFINE_SIMPLE_ATTRIBUTE(mhi_sat_debugfs_fops, NULL,
			mhi_sat_trigger_init, "%llu\n");

static int mhi_sat_init(void)
{
	struct mhi_sat_subsys *subsys;
@@ -1116,20 +1046,6 @@ static int mhi_sat_init(void)
		subsys->ipc_log = ipc_log_context_create(IPC_LOG_PAGES, log, 0);
	}

	/* create debugfs entry if defer_init is enabled */
	if (mhi_sat_defer_init) {
		mhi_sat_driver.dentry = debugfs_create_dir("mhi_sat", NULL);
		if (IS_ERR_OR_NULL(mhi_sat_driver.dentry)) {
			ret = -ENODEV;
			goto error_sat_init;
		}

		debugfs_create_file("debug", 0444, mhi_sat_driver.dentry, NULL,
				    &mhi_sat_debugfs_fops);

		return 0;
	}

	ret = register_rpmsg_driver(&mhi_sat_rpmsg_driver);
	if (ret)
		goto error_sat_init;