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

Commit 5598d766 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: msm_bus: resend TCS commands for IPA"

parents b7a06f70 ff115408
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2019, 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
@@ -17,6 +17,7 @@
#include <linux/rtmutex.h>
#include <linux/clk.h>
#include <linux/msm-bus.h>
#include <dt-bindings/msm/msm-bus-ids.h>
#include "msm_bus_core.h"
#include "msm_bus_rpmh.h"

@@ -1393,6 +1394,16 @@ static int update_client_paths(struct msm_bus_client *client, bool log_trns,
			goto exit_update_client_paths;
		}

		if (dest == MSM_BUS_SLAVE_IPA_CORE && cur_idx <= 0 && idx > 0) {
			struct device *dev;

			dev = bus_find_device(&msm_bus_type, NULL,
				(void *) &dest, msm_bus_device_match_adhoc);

			if (dev)
				msm_bus_commit_single(dev);
		}

		if (log_trns)
			getpath_debug(src, lnode, pdata->active_only);
	}
+21 −1
Original line number Diff line number Diff line
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2019, 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
@@ -735,6 +735,26 @@ static void bcm_commit_single_req(struct msm_bus_node_device_type *cur_bcm,
	kfree(cmd_active);
}

void msm_bus_commit_single(struct device *dev)
{
	struct msm_bus_node_device_type *bus_dev;
	struct msm_bus_node_device_type *bcm_dev;

	if (!dev)
		return;

	bus_dev = to_msm_bus_node(dev);
	if (!bus_dev)
		return;

	bcm_dev = to_msm_bus_node(bus_dev->node_info->bcm_devs[0]);
	if (!bcm_dev)
		return;

	bcm_commit_single_req(bcm_dev, bcm_dev->node_vec[DUAL_CTX].vec_a,
				bcm_dev->node_vec[DUAL_CTX].vec_b);
}

void *msm_bus_realloc_devmem(struct device *dev, void *p, size_t old_size,
					size_t new_size, gfp_t flags)
{
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2019, 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
@@ -242,6 +242,7 @@ static inline struct msm_bus_node_device_type *to_msm_bus_node(struct device *d)
int msm_bus_enable_limiter(struct msm_bus_node_device_type *nodedev,
				int throttle_en, uint64_t lim_bw);
int msm_bus_commit_data(struct list_head *clist);
void msm_bus_commit_single(struct device *dev);
int bcm_remove_handoff_req(struct device *dev, void *data);
int commit_late_init_data(bool lock);
int msm_bus_query_gen(struct list_head *qlist,