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

Commit 70c642c7 authored by Yuanyuan Liu's avatar Yuanyuan Liu
Browse files

cnss2: Create target specific ramdump function



Create qca6174 specific ramdump function. Move target
specific oprations from common path to this function.

CRs-Fixed: 2004197
Change-Id: I303f22a341cbb5fd946f4d6224cb6aa3137716c6
Signed-off-by: default avatarYuanyuan Liu <yuanliu@codeaurora.org>
parent be05b187
Loading
Loading
Loading
Loading
+19 −10
Original line number Diff line number Diff line
@@ -1156,31 +1156,40 @@ static int cnss_shutdown(const struct subsys_desc *subsys_desc, bool force_stop)
	return ret;
}

static int cnss_ramdump(int enable, const struct subsys_desc *subsys_desc)
static int cnss_qca6174_ramdump(struct cnss_plat_data *plat_priv)
{
	int ret = 0;
	struct cnss_plat_data *plat_priv = dev_get_drvdata(subsys_desc->dev);
	struct cnss_ramdump_info *ramdump_info;
	struct ramdump_segment segment;

	ramdump_info = &plat_priv->ramdump_info;
	if (!ramdump_info->ramdump_size)
		return -EINVAL;

	memset(&segment, 0, sizeof(segment));
	segment.v_address = ramdump_info->ramdump_va;
	segment.size = ramdump_info->ramdump_size;
	ret = do_ramdump(ramdump_info->ramdump_dev, &segment, 1);

	return ret;
}

static int cnss_ramdump(int enable, const struct subsys_desc *subsys_desc)
{
	int ret = 0;
	struct cnss_plat_data *plat_priv = dev_get_drvdata(subsys_desc->dev);

	if (!plat_priv) {
		cnss_pr_err("plat_priv is NULL!\n");
		return -ENODEV;
	}

	ramdump_info = &plat_priv->ramdump_info;
	if (!ramdump_info->ramdump_size)
		return -EINVAL;

	if (!enable)
		return 0;

	switch (plat_priv->device_id) {
	case QCA6174_DEVICE_ID:
		memset(&segment, 0, sizeof(segment));
		segment.v_address = ramdump_info->ramdump_va;
		segment.size = ramdump_info->ramdump_size;
		ret = do_ramdump(ramdump_info->ramdump_dev, &segment, 1);
		ret = cnss_qca6174_ramdump(plat_priv);
		break;
	case QCA6290_DEVICE_ID:
		break;