msm: ipc: Add HTC changes to msm_ipc_router_lookup_server_name
HTC uses msm_ipc_port_addr instead of msm_ipc_server_info.
Change-Id: Ide0d72f1988f920ea1371f749013d6cc433fd7d4
diff --git a/arch/arm/mach-msm/ipc_router.c b/arch/arm/mach-msm/ipc_router.c
index 2c91371..97d1f5d 100644
--- a/arch/arm/mach-msm/ipc_router.c
+++ b/arch/arm/mach-msm/ipc_router.c
@@ -2226,7 +2226,11 @@
}
int msm_ipc_router_lookup_server_name(struct msm_ipc_port_name *srv_name,
+#ifdef CONFIG_MACH_HTC
+ struct msm_ipc_port_addr *srv_info,
+#else
struct msm_ipc_server_info *srv_info,
+#endif
int num_entries_in_array,
uint32_t lookup_mask)
{
@@ -2247,7 +2251,11 @@
mutex_lock(&server_list_lock);
if (!lookup_mask)
lookup_mask = 0xFFFFFFFF;
+#ifdef CONFIG_MACH_HTC
+ for (key = 0; key < SRV_HASH_SIZE; key++)
+#else
key = (srv_name->service & (SRV_HASH_SIZE - 1));
+#endif
list_for_each_entry(server, &server_list[key], list) {
if ((server->name.service != srv_name->service) ||
((server->name.instance & lookup_mask) !=
@@ -2261,8 +2269,10 @@
server_port->server_addr.node_id;
srv_info[i].port_id =
server_port->server_addr.port_id;
+#ifndef CONFIG_MACH_HTC
srv_info[i].service = server->name.service;
srv_info[i].instance = server->name.instance;
+#endif
}
i++;
}
diff --git a/arch/arm/mach-msm/ipc_router.h b/arch/arm/mach-msm/ipc_router.h
index d56c0dd..90456da 100644
--- a/arch/arm/mach-msm/ipc_router.h
+++ b/arch/arm/mach-msm/ipc_router.h
@@ -196,7 +196,11 @@
int msm_ipc_router_get_curr_pkt_size(struct msm_ipc_port *port_ptr);
int msm_ipc_router_bind_control_port(struct msm_ipc_port *port_ptr);
int msm_ipc_router_lookup_server_name(struct msm_ipc_port_name *srv_name,
+#ifdef CONFIG_MACH_HTC
+ struct msm_ipc_port_addr *srv_info,
+#else
struct msm_ipc_server_info *srv_info,
+#endif
int num_entries_in_array,
uint32_t lookup_mask);
int msm_ipc_router_close_port(struct msm_ipc_port *port_ptr);
diff --git a/arch/arm/mach-msm/ipc_socket.c b/arch/arm/mach-msm/ipc_socket.c
index 17a98b6..b843317 100644
--- a/arch/arm/mach-msm/ipc_socket.c
+++ b/arch/arm/mach-msm/ipc_socket.c
@@ -125,7 +125,11 @@
temp = skb_peek(msg_head);
hdr = (struct rr_header *)(temp->data);
+#ifdef CONFIG_MACH_HTC
+ if (addr || (hdr->src_port_id != IPC_ROUTER_ADDRESS)) {
+#else
if (addr && (hdr->src_port_id != IPC_ROUTER_ADDRESS)) {
+#endif
addr->family = AF_MSM_IPC;
addr->address.addrtype = MSM_IPC_ADDR_ID;
addr->address.addr.port_addr.node_id = hdr->src_node_id;
@@ -355,7 +359,11 @@
struct sock *sk = sock->sk;
struct msm_ipc_port *port_ptr;
struct server_lookup_args server_arg;
+#ifdef CONFIG_MACH_HTC
+ struct msm_ipc_port_addr *srv_info = NULL;
+#else
struct msm_ipc_server_info *srv_info = NULL;
+#endif
unsigned int n, srv_info_sz = 0;
int ret;