Lines Matching refs:agent
36 * already identified and bound to channel handle in both SCMI agent
60 * SCMI shm information are 0 if agent expects to use OP-TEE regular SHM
115 * @link: Reference in agent's channel list
139 * @channel_list: List of all created channels for the agent
156 static int open_session(struct scmi_optee_agent *agent, u32 *tee_session)
158 struct device *dev = agent->dev;
166 ret = tee_client_open_session(agent->tee_ctx, &arg, NULL);
177 static void close_session(struct scmi_optee_agent *agent, u32 tee_session)
179 tee_client_close_session(agent->tee_ctx, tee_session);
182 static int get_capabilities(struct scmi_optee_agent *agent)
190 ret = open_session(agent, &tee_session);
200 ret = tee_client_invoke_func(agent->tee_ctx, &arg, param);
202 close_session(agent, tee_session);
205 dev_err(agent->dev, "Can't get capabilities: %d / %#x\n", ret, arg.ret);
212 dev_err(agent->dev, "OP-TEE SCMI PTA doesn't support SMT and MSG\n");
216 agent->caps = caps;
546 struct scmi_optee_agent *agent;
560 agent = devm_kzalloc(dev, sizeof(*agent), GFP_KERNEL);
561 if (!agent) {
566 agent->dev = dev;
567 agent->tee_ctx = tee_ctx;
568 INIT_LIST_HEAD(&agent->channel_list);
569 mutex_init(&agent->mu);
571 ret = get_capabilities(agent);
575 /* Ensure agent resources are all visible before scmi_optee_private is */
577 scmi_optee_private = agent;
589 struct scmi_optee_agent *agent = scmi_optee_private;
600 tee_client_close_context(agent->tee_ctx);