mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 11:37:06 +02:00
drivers: qcom: rpmh-rsc: Add IPC logging support for RSC driver
In addition to logging using FTRACE. let's also log in the IPC logging for all RPMH transactions. Change-Id: I2b19006bbc776053f63eee55b447428fdb023ba4 Signed-off-by: Lina Iyer <ilina@codeaurora.org> Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
This commit is contained in:
parent
406c64307d
commit
dac9bfe822
|
|
@ -119,6 +119,7 @@ struct rpmh_ctrlr {
|
|||
* @client: Handle to the DRV's client.
|
||||
* @genpd_nb: PM Domain notifier
|
||||
* @dev: RSC device
|
||||
* @ipc_log_ctx: IPC logger handle
|
||||
*/
|
||||
struct rsc_drv {
|
||||
const char *name;
|
||||
|
|
@ -136,6 +137,7 @@ struct rsc_drv {
|
|||
struct rpmh_ctrlr client;
|
||||
struct notifier_block genpd_nb;
|
||||
struct device *dev;
|
||||
void *ipc_log_ctx;
|
||||
};
|
||||
|
||||
extern bool rpmh_standalone;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@
|
|||
#define CREATE_TRACE_POINTS
|
||||
#include "trace-rpmh.h"
|
||||
|
||||
#include <linux/ipc_logging.h>
|
||||
|
||||
#define RSC_DRV_IPC_LOG_SIZE 2
|
||||
|
||||
#define RSC_DRV_TCS_OFFSET 672
|
||||
#define RSC_DRV_CMD_OFFSET 20
|
||||
|
||||
|
|
@ -412,6 +416,7 @@ static irqreturn_t tcs_tx_done(int irq, void *p)
|
|||
goto skip;
|
||||
|
||||
trace_rpmh_tx_done(drv, i, req);
|
||||
ipc_log_string(drv->ipc_log_ctx, "IRQ response: m=%d", i);
|
||||
|
||||
/*
|
||||
* If wake tcs was re-purposed for sending active
|
||||
|
|
@ -478,6 +483,10 @@ static void __tcs_buffer_write(struct rsc_drv *drv, int tcs_id, int cmd_id,
|
|||
write_tcs_cmd(drv, RSC_DRV_CMD_ADDR, tcs_id, j, cmd->addr);
|
||||
write_tcs_cmd(drv, RSC_DRV_CMD_DATA, tcs_id, j, cmd->data);
|
||||
trace_rpmh_send_msg(drv, tcs_id, j, msgid, cmd);
|
||||
ipc_log_string(drv->ipc_log_ctx,
|
||||
"TCS write: m=%d n=%d msgid=%#x addr=%#x data=%#x wait=%d",
|
||||
tcs_id, j, msgid, cmd->addr,
|
||||
cmd->data, cmd->wait);
|
||||
}
|
||||
|
||||
cmd_enable |= read_tcs_reg(drv, RSC_DRV_CMD_ENABLE, tcs_id);
|
||||
|
|
@ -648,6 +657,7 @@ int rpmh_rsc_send_data(struct rsc_drv *drv, const struct tcs_request *msg)
|
|||
*/
|
||||
__tcs_buffer_write(drv, tcs_id, 0, msg);
|
||||
__tcs_set_trigger(drv, tcs_id, true);
|
||||
ipc_log_string(drv->ipc_log_ctx, "TCS trigger: m=%d", tcs_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -978,6 +988,8 @@ int rpmh_rsc_mode_solver_set(struct rsc_drv *drv, bool enable)
|
|||
if (!enable || !rpmh_rsc_ctrlr_is_busy(drv)) {
|
||||
drv->in_solver_mode = enable;
|
||||
trace_rpmh_solver_set(drv, enable);
|
||||
ipc_log_string(drv->ipc_log_ctx,
|
||||
"solver mode set: %d", enable);
|
||||
ret = 0;
|
||||
}
|
||||
spin_unlock(&drv->lock);
|
||||
|
|
@ -1262,6 +1274,9 @@ static int rpmh_rsc_probe(struct platform_device *pdev)
|
|||
INIT_LIST_HEAD(&drv->client.cache);
|
||||
INIT_LIST_HEAD(&drv->client.batch_cache);
|
||||
|
||||
drv->ipc_log_ctx = ipc_log_context_create(RSC_DRV_IPC_LOG_SIZE,
|
||||
drv->name, 0);
|
||||
|
||||
dev_set_drvdata(&pdev->dev, drv);
|
||||
|
||||
if (__rsc_count < MAX_RSC_COUNT)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user