Example #1
0
static enum rpc_accept_stat rpc_bbc_bw_register(
	u32 version,
	struct nvshm_rpc_message *req,
	struct nvshm_rpc_message **resp)
{
	u32 bw;
	struct nvshm_rpc_datum_out req_data[] = {
		NVSHM_RPC_OUT_UINT(&bw),
	};
	int rc;

	/* Decode request */
	if (nvshm_rpc_utils_decode_args(req, false, req_data,
					ARRAY_SIZE(req_data)) < 0)
		return RPC_GARBAGE_ARGS;

	/* Call */
	rc = tegra_bbc_proxy_bw_register(proxy_dev, bw);

	/* Encode response */
	{
		struct nvshm_rpc_datum_in resp_data[] = {
			NVSHM_RPC_IN_SINT(rc),
		};

		*resp = nvshm_rpc_utils_prepare_response(req, RPC_SUCCESS,
				resp_data, ARRAY_SIZE(resp_data));
	}
	return *resp ? RPC_SUCCESS : RPC_SYSTEM_ERR;
}
static ssize_t iso_register_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{

	unsigned int bw;
	int ret;

	if (sscanf(buf, "%u", &bw) != 1)
		return -EINVAL;

	ret = tegra_bbc_proxy_bw_register(dev, bw);

	return ret ? ret : size;
}