diff --git a/platform/msm8952/platform.c b/platform/msm8952/platform.c
index 0f1439a..33788b0 100644
--- a/platform/msm8952/platform.c
+++ b/platform/msm8952/platform.c
@@ -39,6 +39,7 @@
 #include <board.h>
 #include <boot_stats.h>
 #include <platform.h>
+#include <target/display.h>
 
 #define MSM_IOMAP_SIZE ((MSM_IOMAP_END - MSM_IOMAP_BASE)/MB)
 #define APPS_SS_SIZE   ((APPS_SS_END - APPS_SS_BASE)/MB)
@@ -65,6 +66,7 @@
 	{    APPS_SS_BASE,          APPS_SS_BASE,            APPS_SS_SIZE,      IOMAP_MEMORY},
 	{    MSM_SHARED_IMEM_BASE,  MSM_SHARED_IMEM_BASE,    1,                COMMON_MEMORY},
 	{    SCRATCH_ADDR,          SCRATCH_ADDR,            512,              SCRATCH_MEMORY},
+	{    MIPI_FB_ADDR,          MIPI_FB_ADDR,            10,              COMMON_MEMORY},
 };
 
 void platform_early_init(void)
diff --git a/platform/msm_shared/hsusb.c b/platform/msm_shared/hsusb.c
index 5c7d61f..766c197 100644
--- a/platform/msm_shared/hsusb.c
+++ b/platform/msm_shared/hsusb.c
@@ -46,6 +46,7 @@
 
 #define MAX_TD_XFER_SIZE  (16 * 1024)
 
+BUF_DMA_ALIGN(transfer_desc_item, ROUNDUP(sizeof(struct ept_queue_item), CACHE_LINE));
 
 /* common code - factor out into a shared file */
 
@@ -280,22 +281,19 @@
 	struct usb_request *req = (struct usb_request *)_req;
 	unsigned phys = (unsigned)req->req.buf;
 	unsigned len = req->req.length;
-	unsigned int count = 0;
 
-	curr_item = NULL;
 	xfer = (len > MAX_TD_XFER_SIZE) ? MAX_TD_XFER_SIZE : len;
 	/*
 	 * First TD allocated during request allocation
 	 */
-	item = req->item;
-	item->info = INFO_BYTES(xfer) | INFO_ACTIVE;
-	item->page0 = phys;
-	item->page1 = (phys & 0xfffff000) + 0x1000;
-	item->page2 = (phys & 0xfffff000) + 0x2000;
-	item->page3 = (phys & 0xfffff000) + 0x3000;
-	item->page4 = (phys & 0xfffff000) + 0x4000;
+	curr_item = req->item;
+	curr_item->info = INFO_BYTES(xfer) | INFO_ACTIVE;
+	curr_item->page0 = phys;
+	curr_item->page1 = (phys & 0xfffff000) + 0x1000;
+	curr_item->page2 = (phys & 0xfffff000) + 0x2000;
+	curr_item->page3 = (phys & 0xfffff000) + 0x3000;
+	curr_item->page4 = (phys & 0xfffff000) + 0x4000;
 	phys += xfer;
-	curr_item = item;
 	len -= xfer;
 
 	/*
@@ -306,23 +304,9 @@
 	while (len > 0) {
 		xfer = (len > MAX_TD_XFER_SIZE) ? MAX_TD_XFER_SIZE : len;
 		if (curr_item->next == TERMINATE) {
-			/*
-			 * Allocate new TD only if chain doesnot
-			 * exist already
-			 */
-			item = memalign(CACHE_LINE,
-					ROUNDUP(sizeof(struct ept_queue_item), CACHE_LINE));
-			if (!item) {
-				dprintf(ALWAYS, "allocate USB item fail ept%d\n %s queue\ntd count = %d\n",
-							ept->num,
-							ept->in ? "in" : "out",
-							count);
-				return -1;
-			} else {
-				count ++;
-				curr_item->next = PA((addr_t)item);
+				curr_item->next = PA((addr_t)transfer_desc_item);
+				item = (struct ept_queue_item *)transfer_desc_item;
 				item->next = TERMINATE;
-			}
 		} else
 			/* Since next TD in chain already exists */
 			item = (struct ept_queue_item *)VA(curr_item->next);
diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 70da0ad..fb83af9 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -64,6 +64,7 @@
 #define PMIC_ARB_CHANNEL_NUM    0
 #define PMIC_ARB_OWNER_ID       0
 #define TLMM_VOL_UP_BTN_GPIO    85
+#define TLMM_VOL_UP_BTN_GPIO_8956 113
 
 #define FASTBOOT_MODE           0x77665500
 #define RECOVERY_MODE           0x77665502
@@ -167,7 +168,14 @@
 {
 	uint8_t status = 0;
 
-	gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+	if(platform_is_msm8956())
+	{
+		gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO_8956, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+	}
+	else
+	{
+		gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+	}
 
 	/* Wait for the gpio config to take effect - debounce time */
 	thread_sleep(10);
