soc: qcom: ipc_rtr_xprt: Add support to set version in transport
Currently, there is no option to set the version in IPC Router transport. Add support to set a version in the transport so that the version can be modified from initial entry after the version negotiation. Change-Id: Ie6d823a3b4f2608efe2ac992a248a4f0884b856d Signed-off-by: Atish Kumar Patra <apatra@codeaurora.org>
This commit is contained in:
parent
8b7a1ee3b5
commit
dc86ce0faa
5 changed files with 76 additions and 1 deletions
|
@ -179,6 +179,22 @@ static void *glink_xprt_vbuf_provider(void *iovec, size_t offset,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipc_router_glink_xprt_set_version() - Set the IPC Router version in transport
|
||||
* @xprt: Reference to the transport structure.
|
||||
* @version: The version to be set in transport.
|
||||
*/
|
||||
static void ipc_router_glink_xprt_set_version(
|
||||
struct msm_ipc_router_xprt *xprt, unsigned version)
|
||||
{
|
||||
struct ipc_router_glink_xprt *glink_xprtp;
|
||||
|
||||
if (!xprt)
|
||||
return;
|
||||
glink_xprtp = container_of(xprt, struct ipc_router_glink_xprt, xprt);
|
||||
glink_xprtp->xprt_version = version;
|
||||
}
|
||||
|
||||
static int ipc_router_glink_xprt_get_version(
|
||||
struct msm_ipc_router_xprt *xprt)
|
||||
{
|
||||
|
@ -665,6 +681,7 @@ static int ipc_router_glink_config_init(
|
|||
glink_xprtp->xprt.name = glink_xprtp->ipc_rtr_xprt_name;
|
||||
|
||||
glink_xprtp->xprt.get_version = ipc_router_glink_xprt_get_version;
|
||||
glink_xprtp->xprt.set_version = ipc_router_glink_xprt_set_version;
|
||||
glink_xprtp->xprt.get_option = ipc_router_glink_xprt_get_option;
|
||||
glink_xprtp->xprt.read_avail = NULL;
|
||||
glink_xprtp->xprt.read = NULL;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2013-2015, 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
|
||||
|
@ -137,6 +137,23 @@ static struct msm_ipc_router_hsic_xprt *
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipc_router_hsic_set_xprt_version() - Set IPC Router header version
|
||||
* in the transport
|
||||
* @xprt: Reference to the transport structure.
|
||||
* @version: The version to be set in transport.
|
||||
*/
|
||||
static void ipc_router_hsic_set_xprt_version(
|
||||
struct msm_ipc_router_xprt *xprt, unsigned version)
|
||||
{
|
||||
struct msm_ipc_router_hsic_xprt *hsic_xprtp;
|
||||
|
||||
if (!xprt)
|
||||
return;
|
||||
hsic_xprtp = container_of(xprt, struct msm_ipc_router_hsic_xprt, xprt);
|
||||
hsic_xprtp->xprt_version = version;
|
||||
}
|
||||
|
||||
/**
|
||||
* msm_ipc_router_hsic_get_xprt_version() - Get IPC Router header version
|
||||
* supported by the XPRT
|
||||
|
@ -581,6 +598,8 @@ static int msm_ipc_router_hsic_config_init(
|
|||
XPRT_NAME_LEN);
|
||||
hsic_xprtp->xprt.name = hsic_xprtp->xprt_name;
|
||||
|
||||
hsic_xprtp->xprt.set_version =
|
||||
ipc_router_hsic_set_xprt_version;
|
||||
hsic_xprtp->xprt.get_version =
|
||||
msm_ipc_router_hsic_get_xprt_version;
|
||||
hsic_xprtp->xprt.get_option =
|
||||
|
|
|
@ -303,6 +303,22 @@ int mhi_xprt_queue_in_buffers(struct ipc_router_mhi_xprt *mhi_xprtp,
|
|||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipc_router_mhi_set_xprt_version() - Set the IPC Router version in transport
|
||||
* @xprt: Reference to the transport structure.
|
||||
* @version: The version to be set in transport.
|
||||
*/
|
||||
static void ipc_router_mhi_set_xprt_version(struct msm_ipc_router_xprt *xprt,
|
||||
unsigned version)
|
||||
{
|
||||
struct ipc_router_mhi_xprt *mhi_xprtp;
|
||||
|
||||
if (!xprt)
|
||||
return;
|
||||
mhi_xprtp = container_of(xprt, struct ipc_router_mhi_xprt, xprt);
|
||||
mhi_xprtp->xprt_version = version;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipc_router_mhi_get_xprt_version() - Get IPC Router header version
|
||||
* supported by the XPRT
|
||||
|
@ -874,6 +890,7 @@ static int ipc_router_mhi_config_init(
|
|||
mhi_xprtp->xprt.link_id = mhi_xprt_config->link_id;
|
||||
mhi_xprtp->xprt.name = mhi_xprtp->xprt_name;
|
||||
mhi_xprtp->xprt.get_version = ipc_router_mhi_get_xprt_version;
|
||||
mhi_xprtp->xprt.set_version = ipc_router_mhi_set_xprt_version;
|
||||
mhi_xprtp->xprt.get_option = ipc_router_mhi_get_xprt_option;
|
||||
mhi_xprtp->xprt.read_avail = NULL;
|
||||
mhi_xprtp->xprt.read = NULL;
|
||||
|
|
|
@ -135,6 +135,23 @@ static LIST_HEAD(smd_remote_xprt_list);
|
|||
|
||||
static bool is_pil_loading_disabled(uint32_t edge);
|
||||
|
||||
/**
|
||||
* ipc_router_smd_set_xprt_version() - Set IPC Router header version
|
||||
* in the transport
|
||||
* @xprt: Reference to the transport structure.
|
||||
* @version: The version to be set in transport.
|
||||
*/
|
||||
static void ipc_router_smd_set_xprt_version(
|
||||
struct msm_ipc_router_xprt *xprt, unsigned version)
|
||||
{
|
||||
struct msm_ipc_router_smd_xprt *smd_xprtp;
|
||||
|
||||
if (!xprt)
|
||||
return;
|
||||
smd_xprtp = container_of(xprt, struct msm_ipc_router_smd_xprt, xprt);
|
||||
smd_xprtp->xprt_version = version;
|
||||
}
|
||||
|
||||
static int msm_ipc_router_smd_get_xprt_version(
|
||||
struct msm_ipc_router_xprt *xprt)
|
||||
{
|
||||
|
@ -652,6 +669,8 @@ static int msm_ipc_router_smd_config_init(
|
|||
XPRT_NAME_LEN);
|
||||
smd_xprtp->xprt.name = smd_xprtp->xprt_name;
|
||||
|
||||
smd_xprtp->xprt.set_version =
|
||||
ipc_router_smd_set_xprt_version;
|
||||
smd_xprtp->xprt.get_version =
|
||||
msm_ipc_router_smd_get_xprt_version;
|
||||
smd_xprtp->xprt.get_option =
|
||||
|
|
|
@ -116,6 +116,7 @@ struct rr_packet {
|
|||
* @link_id: Network cluster ID to which the XPRT belongs to.
|
||||
* @priv: XPRT's private data.
|
||||
* @get_version: Method to get header version supported by the XPRT.
|
||||
* @set_version: Method to set header version in XPRT.
|
||||
* @get_option: Method to get XPRT specific options.
|
||||
* @read_avail: Method to get data size available to be read from the XPRT.
|
||||
* @read: Method to read data from the XPRT.
|
||||
|
@ -132,6 +133,8 @@ struct msm_ipc_router_xprt {
|
|||
|
||||
int (*get_version)(struct msm_ipc_router_xprt *xprt);
|
||||
int (*get_option)(struct msm_ipc_router_xprt *xprt);
|
||||
void (*set_version)(struct msm_ipc_router_xprt *xprt,
|
||||
unsigned version);
|
||||
int (*read_avail)(struct msm_ipc_router_xprt *xprt);
|
||||
int (*read)(void *data, uint32_t len,
|
||||
struct msm_ipc_router_xprt *xprt);
|
||||
|
|
Loading…
Add table
Reference in a new issue