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;