Merge "msm_fb: Display: Enable NO_PIPE_CTRL flag for 7x30"
diff --git a/AndroidKernel.mk b/AndroidKernel.mk
index 717dd8c..843da69 100644
--- a/AndroidKernel.mk
+++ b/AndroidKernel.mk
@@ -70,7 +70,7 @@
 $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
 	$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
 	$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
-	$(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
+	$(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
 	$(mv-modules)
 	$(clean-module-folder)
 	$(append-dtb)
diff --git a/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c b/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
index 2e4b756..84a79cd 100644
--- a/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
+++ b/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
@@ -1057,8 +1057,14 @@
 	switch (cmd) {
 	case AUDIO_GET_STATS: {
 		struct msm_audio_stats stats;
+		uint64_t timestamp;
 		stats.byte_count = atomic_read(&audio->in_bytes);
 		stats.sample_count = atomic_read(&audio->in_samples);
+		timestamp = q6asm_get_session_time(audio->ac);
+		if (timestamp >= 0)
+			memcpy(&stats.unused[0], &timestamp, sizeof(timestamp));
+		else
+			pr_debug("Error while getting timestamp\n");
 		if (copy_to_user((void *)arg, &stats, sizeof(stats)))
 			rc = -EFAULT;
 		break;
diff --git a/drivers/char/diag/diagchar.h b/drivers/char/diag/diagchar.h
index b18d709..a8e33b5 100644
--- a/drivers/char/diag/diagchar.h
+++ b/drivers/char/diag/diagchar.h
@@ -39,16 +39,16 @@
 #define POOL_TYPE_HSIC		8
 #define POOL_TYPE_HSIC_WRITE	16
 #define POOL_TYPE_ALL		7
-#define MODEM_DATA 		1
-#define QDSP_DATA  		2
-#define APPS_DATA  		3
+#define MODEM_DATA		1
+#define LPASS_DATA		2
+#define APPS_DATA		3
 #define SDIO_DATA		4
 #define WCNSS_DATA		5
 #define HSIC_DATA		6
 #define SMUX_DATA		7
 #define MODEM_PROC		0
 #define APPS_PROC		1
-#define QDSP_PROC		2
+#define LPASS_PROC		2
 #define WCNSS_PROC		3
 #define MSG_MASK_SIZE 10000
 #define LOG_MASK_SIZE 8000
@@ -181,9 +181,9 @@
 	unsigned char *buf_in_1;
 	unsigned char *buf_in_2;
 	unsigned char *buf_in_cntl;
-	unsigned char *buf_in_qdsp_1;
-	unsigned char *buf_in_qdsp_2;
-	unsigned char *buf_in_qdsp_cntl;
+	unsigned char *buf_in_lpass_1;
+	unsigned char *buf_in_lpass_2;
+	unsigned char *buf_in_lpass_cntl;
 	unsigned char *buf_in_wcnss_1;
 	unsigned char *buf_in_wcnss_2;
 	unsigned char *buf_in_wcnss_cntl;
@@ -198,14 +198,14 @@
 	smd_channel_t *ch;
 	smd_channel_t *ch_cntl;
 	smd_channel_t *ch_dci;
-	smd_channel_t *chqdsp;
-	smd_channel_t *chqdsp_cntl;
+	smd_channel_t *chlpass;
+	smd_channel_t *chlpass_cntl;
 	smd_channel_t *ch_wcnss;
 	smd_channel_t *ch_wcnss_cntl;
 	int in_busy_1;
 	int in_busy_2;
-	int in_busy_qdsp_1;
-	int in_busy_qdsp_2;
+	int in_busy_lpass_1;
+	int in_busy_lpass_2;
 	int in_busy_wcnss_1;
 	int in_busy_wcnss_2;
 	int in_busy_dci;
@@ -223,13 +223,13 @@
 	struct work_struct diag_drain_work;
 	struct work_struct diag_read_smd_work;
 	struct work_struct diag_read_smd_cntl_work;
-	struct work_struct diag_read_smd_qdsp_work;
-	struct work_struct diag_read_smd_qdsp_cntl_work;
+	struct work_struct diag_read_smd_lpass_work;
+	struct work_struct diag_read_smd_lpass_cntl_work;
 	struct work_struct diag_read_smd_wcnss_work;
 	struct work_struct diag_read_smd_wcnss_cntl_work;
 	struct workqueue_struct *diag_cntl_wq;
 	struct work_struct diag_modem_mask_update_work;
-	struct work_struct diag_qdsp_mask_update_work;
+	struct work_struct diag_lpass_mask_update_work;
 	struct work_struct diag_wcnss_mask_update_work;
 	struct work_struct diag_read_smd_dci_work;
 	struct work_struct diag_clean_modem_reg_work;
@@ -246,8 +246,8 @@
 	struct diag_request *write_ptr_2;
 	struct diag_request *usb_read_ptr;
 	struct diag_request *write_ptr_svc;
-	struct diag_request *write_ptr_qdsp_1;
-	struct diag_request *write_ptr_qdsp_2;
+	struct diag_request *write_ptr_lpass_1;
+	struct diag_request *write_ptr_lpass_2;
 	struct diag_request *write_ptr_wcnss_1;
 	struct diag_request *write_ptr_wcnss_2;
 	struct diag_write_device *write_ptr_dci;
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index 59139dc..814fe64 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -151,9 +151,9 @@
 	__diag_smd_send_req();
 }
 
-void diag_read_smd_qdsp_work_fn(struct work_struct *work)
+void diag_read_smd_lpass_work_fn(struct work_struct *work)
 {
-	__diag_smd_qdsp_send_req();
+	__diag_smd_lpass_send_req();
 }
 
 void diag_read_smd_wcnss_work_fn(struct work_struct *work)
@@ -548,8 +548,8 @@
 							== NO_LOGGING_MODE) {
 			driver->in_busy_1 = 1;
 			driver->in_busy_2 = 1;
-			driver->in_busy_qdsp_1 = 1;
-			driver->in_busy_qdsp_2 = 1;
+			driver->in_busy_lpass_1 = 1;
+			driver->in_busy_lpass_2 = 1;
 			driver->in_busy_wcnss_1 = 1;
 			driver->in_busy_wcnss_2 = 1;
 #ifdef CONFIG_DIAG_SDIO_PIPE
@@ -563,17 +563,17 @@
 							== MEMORY_DEVICE_MODE) {
 			driver->in_busy_1 = 0;
 			driver->in_busy_2 = 0;
-			driver->in_busy_qdsp_1 = 0;
-			driver->in_busy_qdsp_2 = 0;
+			driver->in_busy_lpass_1 = 0;
+			driver->in_busy_lpass_2 = 0;
 			driver->in_busy_wcnss_1 = 0;
 			driver->in_busy_wcnss_2 = 0;
 			/* Poll SMD channels to check for data*/
 			if (driver->ch)
 				queue_work(driver->diag_wq,
 					&(driver->diag_read_smd_work));
-			if (driver->chqdsp)
+			if (driver->chlpass)
 				queue_work(driver->diag_wq,
-					&(driver->diag_read_smd_qdsp_work));
+					&(driver->diag_read_smd_lpass_work));
 			if (driver->ch_wcnss)
 				queue_work(driver->diag_wq,
 					&(driver->diag_read_smd_wcnss_work));
@@ -606,8 +606,8 @@
 			diagfwd_disconnect();
 			driver->in_busy_1 = 0;
 			driver->in_busy_2 = 0;
-			driver->in_busy_qdsp_1 = 0;
-			driver->in_busy_qdsp_2 = 0;
+			driver->in_busy_lpass_1 = 0;
+			driver->in_busy_lpass_2 = 0;
 			driver->in_busy_wcnss_1 = 0;
 			driver->in_busy_wcnss_2 = 0;
 
@@ -615,9 +615,9 @@
 			if (driver->ch)
 				queue_work(driver->diag_wq,
 					 &(driver->diag_read_smd_work));
-			if (driver->chqdsp)
+			if (driver->chlpass)
 				queue_work(driver->diag_wq,
-					&(driver->diag_read_smd_qdsp_work));
+					&(driver->diag_read_smd_lpass_work));
 			if (driver->ch_wcnss)
 				queue_work(driver->diag_wq,
 					&(driver->diag_read_smd_wcnss_work));
@@ -747,27 +747,27 @@
 			driver->in_busy_2 = 0;
 		}
 		/* copy lpass data */
-		if (driver->in_busy_qdsp_1 == 1) {
+		if (driver->in_busy_lpass_1 == 1) {
 			num_data++;
 			/*Copy the length of data being passed*/
 			COPY_USER_SPACE_OR_EXIT(buf+ret,
-				 (driver->write_ptr_qdsp_1->length), 4);
+				 (driver->write_ptr_lpass_1->length), 4);
 			/*Copy the actual data being passed*/
 			COPY_USER_SPACE_OR_EXIT(buf+ret, *(driver->
-							buf_in_qdsp_1),
-					 driver->write_ptr_qdsp_1->length);
-			driver->in_busy_qdsp_1 = 0;
+							buf_in_lpass_1),
+					 driver->write_ptr_lpass_1->length);
+			driver->in_busy_lpass_1 = 0;
 		}
-		if (driver->in_busy_qdsp_2 == 1) {
+		if (driver->in_busy_lpass_2 == 1) {
 			num_data++;
 			/*Copy the length of data being passed*/
 			COPY_USER_SPACE_OR_EXIT(buf+ret,
-				 (driver->write_ptr_qdsp_2->length), 4);
+				 (driver->write_ptr_lpass_2->length), 4);
 			/*Copy the actual data being passed*/
 			COPY_USER_SPACE_OR_EXIT(buf+ret, *(driver->
-				buf_in_qdsp_2), driver->
-					write_ptr_qdsp_2->length);
-			driver->in_busy_qdsp_2 = 0;
+				buf_in_lpass_2), driver->
+					write_ptr_lpass_2->length);
+			driver->in_busy_lpass_2 = 0;
 		}
 		/* copy wncss data */
 		if (driver->in_busy_wcnss_1 == 1) {
@@ -886,9 +886,9 @@
 		if (driver->ch)
 			queue_work(driver->diag_wq,
 					 &(driver->diag_read_smd_work));
-		if (driver->chqdsp)
+		if (driver->chlpass)
 			queue_work(driver->diag_wq,
-					 &(driver->diag_read_smd_qdsp_work));
+					 &(driver->diag_read_smd_lpass_work));
 		if (driver->ch_wcnss)
 			queue_work(driver->diag_wq,
 					 &(driver->diag_read_smd_wcnss_work));
@@ -1403,10 +1403,10 @@
 		INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn);
 		INIT_WORK(&(driver->diag_read_smd_cntl_work),
 						 diag_read_smd_cntl_work_fn);
-		INIT_WORK(&(driver->diag_read_smd_qdsp_work),
-			   diag_read_smd_qdsp_work_fn);
-		INIT_WORK(&(driver->diag_read_smd_qdsp_cntl_work),
-			   diag_read_smd_qdsp_cntl_work_fn);
+		INIT_WORK(&(driver->diag_read_smd_lpass_work),
+			   diag_read_smd_lpass_work_fn);
+		INIT_WORK(&(driver->diag_read_smd_lpass_cntl_work),
+			   diag_read_smd_lpass_cntl_work_fn);
 		INIT_WORK(&(driver->diag_read_smd_wcnss_work),
 			diag_read_smd_wcnss_work_fn);
 		INIT_WORK(&(driver->diag_read_smd_wcnss_cntl_work),
diff --git a/drivers/char/diag/diagfwd.c b/drivers/char/diag/diagfwd.c
index a669b45..737edbf 100644
--- a/drivers/char/diag/diagfwd.c
+++ b/drivers/char/diag/diagfwd.c
@@ -50,7 +50,7 @@
 unsigned char diag_debug_buf[1024];
 static unsigned int buf_tbl_size = 8; /*Number of entries in table of buffers */
 struct diag_master_table entry;
-smd_channel_t *ch_temp = NULL, *chqdsp_temp = NULL, *ch_wcnss_temp = NULL;
+smd_channel_t *ch_temp = NULL, *chlpass_temp = NULL, *ch_wcnss_temp = NULL;
 int diag_event_num_bytes;
 int diag_event_config;
 struct diag_send_desc_type send = { NULL, NULL, DIAG_STATE_START, 0 };
@@ -353,11 +353,11 @@
 			driver->in_busy_2 = 0;
 			queue_work(driver->diag_wq, &(driver->
 							diag_read_smd_work));
-		} else if (proc_num == QDSP_DATA) {
-			driver->in_busy_qdsp_1 = 0;
-			driver->in_busy_qdsp_2 = 0;
+		} else if (proc_num == LPASS_DATA) {
+			driver->in_busy_lpass_1 = 0;
+			driver->in_busy_lpass_2 = 0;
 			queue_work(driver->diag_wq, &(driver->
-						diag_read_smd_qdsp_work));
+						diag_read_smd_lpass_work));
 		}  else if (proc_num == WCNSS_DATA) {
 			driver->in_busy_wcnss_1 = 0;
 			driver->in_busy_wcnss_2 = 0;
@@ -403,7 +403,7 @@
 					    buf, write_ptr->length, 1);
 #endif /* DIAG DEBUG */
 			err = usb_diag_write(driver->legacy_ch, write_ptr);
-		} else if (proc_num == QDSP_DATA) {
+		} else if (proc_num == LPASS_DATA) {
 			write_ptr->buf = buf;
 			err = usb_diag_write(driver->legacy_ch, write_ptr);
 		} else if (proc_num == WCNSS_DATA) {
@@ -510,24 +510,24 @@
 	}
 }
 
-void __diag_smd_qdsp_send_req(void)
+void __diag_smd_lpass_send_req(void)
 {
 	void *buf = NULL;
-	int *in_busy_qdsp_ptr = NULL;
-	struct diag_request *write_ptr_qdsp = NULL;
+	int *in_busy_lpass_ptr = NULL;
+	struct diag_request *write_ptr_lpass = NULL;
 
-	if (!driver->in_busy_qdsp_1) {
-		buf = driver->buf_in_qdsp_1;
-		write_ptr_qdsp = driver->write_ptr_qdsp_1;
-		in_busy_qdsp_ptr = &(driver->in_busy_qdsp_1);
-	} else if (!driver->in_busy_qdsp_2) {
-		buf = driver->buf_in_qdsp_2;
-		write_ptr_qdsp = driver->write_ptr_qdsp_2;
-		in_busy_qdsp_ptr = &(driver->in_busy_qdsp_2);
+	if (!driver->in_busy_lpass_1) {
+		buf = driver->buf_in_lpass_1;
+		write_ptr_lpass = driver->write_ptr_lpass_1;
+		in_busy_lpass_ptr = &(driver->in_busy_lpass_1);
+	} else if (!driver->in_busy_lpass_2) {
+		buf = driver->buf_in_lpass_2;
+		write_ptr_lpass = driver->write_ptr_lpass_2;
+		in_busy_lpass_ptr = &(driver->in_busy_lpass_2);
 	}
 
-	if (driver->chqdsp && buf) {
-		int r = smd_read_avail(driver->chqdsp);
+	if (driver->chlpass && buf) {
+		int r = smd_read_avail(driver->chlpass);
 
 		if (r > IN_BUF_SIZE) {
 			if (r < MAX_IN_BUF_SIZE) {
@@ -542,18 +542,18 @@
 		}
 		if (r > 0) {
 			if (!buf)
-				printk(KERN_INFO "Out of diagmem for QDSP\n");
+				printk(KERN_INFO "Out of diagmem for LPASS\n");
 			else {
 				APPEND_DEBUG('i');
-				smd_read(driver->chqdsp, buf, r);
+				smd_read(driver->chlpass, buf, r);
 				APPEND_DEBUG('j');
-				write_ptr_qdsp->length = r;
-				*in_busy_qdsp_ptr = 1;
-				diag_device_write(buf, QDSP_DATA,
-							 write_ptr_qdsp);
+				write_ptr_lpass->length = r;
+				*in_busy_lpass_ptr = 1;
+				diag_device_write(buf, LPASS_DATA,
+							 write_ptr_lpass);
 			}
 		}
-	} else if (driver->chqdsp && !buf &&
+	} else if (driver->chlpass && !buf &&
 		(driver->logging_mode == MEMORY_DEVICE_MODE)) {
 		chk_logging_wakeup();
 	}
@@ -856,9 +856,9 @@
 						RESET_ID)
 						return;
 				smd_write(driver->ch, buf, len);
-			} else if (entry.client_id == QDSP_PROC &&
-							 driver->chqdsp) {
-				smd_write(driver->chqdsp, buf, len);
+			} else if (entry.client_id == LPASS_PROC &&
+							 driver->chlpass) {
+				smd_write(driver->chlpass, buf, len);
 			} else if (entry.client_id == WCNSS_PROC &&
 							 driver->ch_wcnss) {
 				smd_write(driver->ch_wcnss, buf, len);
@@ -877,12 +877,12 @@
 	diag_send_event_mask_update(driver->ch_cntl, diag_event_num_bytes);
 }
 
-void diag_qdsp_mask_update_fn(struct work_struct *work)
+void diag_lpass_mask_update_fn(struct work_struct *work)
 {
-	diag_send_msg_mask_update(driver->chqdsp_cntl, ALL_SSID,
-						   ALL_SSID, QDSP_PROC);
-	diag_send_log_mask_update(driver->chqdsp_cntl, ALL_EQUIP_ID);
-	diag_send_event_mask_update(driver->chqdsp_cntl, diag_event_num_bytes);
+	diag_send_msg_mask_update(driver->chlpass_cntl, ALL_SSID,
+						   ALL_SSID, LPASS_PROC);
+	diag_send_log_mask_update(driver->chlpass_cntl, ALL_EQUIP_ID);
+	diag_send_event_mask_update(driver->chlpass_cntl, diag_event_num_bytes);
 }
 
 void diag_wcnss_mask_update_fn(struct work_struct *work)
@@ -1078,8 +1078,8 @@
 			if (driver->ch_cntl)
 				diag_send_log_mask_update(driver->ch_cntl,
 								 *(int *)buf);
-			if (driver->chqdsp_cntl)
-				diag_send_log_mask_update(driver->chqdsp_cntl,
+			if (driver->chlpass_cntl)
+				diag_send_log_mask_update(driver->chlpass_cntl,
 								 *(int *)buf);
 			if (driver->ch_wcnss_cntl)
 				diag_send_log_mask_update(driver->ch_wcnss_cntl,
@@ -1128,8 +1128,8 @@
 			if (driver->ch_cntl)
 				diag_send_log_mask_update(driver->ch_cntl,
 								 ALL_EQUIP_ID);
-			if (driver->chqdsp_cntl)
-				diag_send_log_mask_update(driver->chqdsp_cntl,
+			if (driver->chlpass_cntl)
+				diag_send_log_mask_update(driver->chlpass_cntl,
 								 ALL_EQUIP_ID);
 			if (driver->ch_wcnss_cntl)
 				diag_send_log_mask_update(driver->ch_wcnss_cntl,
@@ -1187,9 +1187,9 @@
 			if (driver->ch_cntl)
 				diag_send_msg_mask_update(driver->ch_cntl,
 					 ssid_first, ssid_last, MODEM_PROC);
-			if (driver->chqdsp_cntl)
-				diag_send_msg_mask_update(driver->chqdsp_cntl,
-					 ssid_first, ssid_last, QDSP_PROC);
+			if (driver->chlpass_cntl)
+				diag_send_msg_mask_update(driver->chlpass_cntl,
+					 ssid_first, ssid_last, LPASS_PROC);
 			if (driver->ch_wcnss_cntl)
 				diag_send_msg_mask_update(driver->ch_wcnss_cntl,
 					 ssid_first, ssid_last, WCNSS_PROC);
@@ -1214,9 +1214,9 @@
 			if (driver->ch_cntl)
 				diag_send_msg_mask_update(driver->ch_cntl,
 					 ALL_SSID, ALL_SSID, MODEM_PROC);
-			if (driver->chqdsp_cntl)
-				diag_send_msg_mask_update(driver->chqdsp_cntl,
-					 ALL_SSID, ALL_SSID, QDSP_PROC);
+			if (driver->chlpass_cntl)
+				diag_send_msg_mask_update(driver->chlpass_cntl,
+					 ALL_SSID, ALL_SSID, LPASS_PROC);
 			if (driver->ch_wcnss_cntl)
 				diag_send_msg_mask_update(driver->ch_wcnss_cntl,
 					 ALL_SSID, ALL_SSID, WCNSS_PROC);
@@ -1242,9 +1242,10 @@
 			if (driver->ch_cntl)
 				diag_send_event_mask_update(driver->ch_cntl,
 							 diag_event_num_bytes);
-			if (driver->chqdsp_cntl)
-				diag_send_event_mask_update(driver->chqdsp_cntl,
-							 diag_event_num_bytes);
+			if (driver->chlpass_cntl)
+				diag_send_event_mask_update(
+						driver->chlpass_cntl,
+						diag_event_num_bytes);
 			if (driver->ch_wcnss_cntl)
 				diag_send_event_mask_update(
 				driver->ch_wcnss_cntl, diag_event_num_bytes);
@@ -1265,9 +1266,10 @@
 			if (driver->ch_cntl)
 				diag_send_event_mask_update(driver->ch_cntl,
 							 diag_event_num_bytes);
-			if (driver->chqdsp_cntl)
-				diag_send_event_mask_update(driver->chqdsp_cntl,
-							 diag_event_num_bytes);
+			if (driver->chlpass_cntl)
+				diag_send_event_mask_update(
+						driver->chlpass_cntl,
+						diag_event_num_bytes);
 			if (driver->ch_wcnss_cntl)
 				diag_send_event_mask_update(
 				driver->ch_wcnss_cntl, diag_event_num_bytes);
@@ -1651,8 +1653,8 @@
 		if (chk_apps_only()) {
 			diag_send_error_rsp(hdlc.dest_idx);
 		} else { /* APQ 8060, Let Q6 respond */
-			if (driver->chqdsp)
-				smd_write(driver->chqdsp, driver->hdlc_buf,
+			if (driver->chlpass)
+				smd_write(driver->chlpass, driver->hdlc_buf,
 						  hdlc.dest_idx - 3);
 		}
 		type = 0;
@@ -1695,18 +1697,18 @@
 	driver->usb_connected = 1;
 	driver->in_busy_1 = 0;
 	driver->in_busy_2 = 0;
-	driver->in_busy_qdsp_1 = 0;
-	driver->in_busy_qdsp_2 = 0;
+	driver->in_busy_lpass_1 = 0;
+	driver->in_busy_lpass_2 = 0;
 	driver->in_busy_wcnss_1 = 0;
 	driver->in_busy_wcnss_2 = 0;
 
 	/* Poll SMD channels to check for data*/
 	queue_work(driver->diag_wq, &(driver->diag_read_smd_work));
-	queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+	queue_work(driver->diag_wq, &(driver->diag_read_smd_lpass_work));
 	queue_work(driver->diag_wq, &(driver->diag_read_smd_wcnss_work));
 	/* Poll SMD CNTL channels to check for data */
 	diag_smd_cntl_notify(NULL, SMD_EVENT_DATA);
-	diag_smd_qdsp_cntl_notify(NULL, SMD_EVENT_DATA);
+	diag_smd_lpass_cntl_notify(NULL, SMD_EVENT_DATA);
 	diag_smd_wcnss_cntl_notify(NULL, SMD_EVENT_DATA);
 	/* Poll USB channel to check for data*/
 	queue_work(driver->diag_wq, &(driver->diag_read_work));
@@ -1730,8 +1732,8 @@
 	if (driver->logging_mode == USB_MODE) {
 		driver->in_busy_1 = 1;
 		driver->in_busy_2 = 1;
-		driver->in_busy_qdsp_1 = 1;
-		driver->in_busy_qdsp_2 = 1;
+		driver->in_busy_lpass_1 = 1;
+		driver->in_busy_lpass_2 = 1;
 		driver->in_busy_wcnss_1 = 1;
 		driver->in_busy_wcnss_2 = 1;
 	}
@@ -1757,14 +1759,16 @@
 		driver->in_busy_2 = 0;
 		APPEND_DEBUG('O');
 		queue_work(driver->diag_wq, &(driver->diag_read_smd_work));
-	} else if (buf == (void *)driver->buf_in_qdsp_1) {
-		driver->in_busy_qdsp_1 = 0;
+	} else if (buf == (void *)driver->buf_in_lpass_1) {
+		driver->in_busy_lpass_1 = 0;
 		APPEND_DEBUG('p');
-		queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
-	} else if (buf == (void *)driver->buf_in_qdsp_2) {
-		driver->in_busy_qdsp_2 = 0;
+		queue_work(driver->diag_wq,
+				&(driver->diag_read_smd_lpass_work));
+	} else if (buf == (void *)driver->buf_in_lpass_2) {
+		driver->in_busy_lpass_2 = 0;
 		APPEND_DEBUG('P');
-		queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+		queue_work(driver->diag_wq,
+				&(driver->diag_read_smd_lpass_work));
 	} else if (buf == driver->buf_in_wcnss_1) {
 		driver->in_busy_wcnss_1 = 0;
 		APPEND_DEBUG('r');
@@ -1890,18 +1894,18 @@
 }
 
 #if defined(CONFIG_MSM_N_WAY_SMD)
-static void diag_smd_qdsp_notify(void *ctxt, unsigned event)
+static void diag_smd_lpass_notify(void *ctxt, unsigned event)
 {
 	if (event == SMD_EVENT_CLOSE) {
 		queue_work(driver->diag_cntl_wq,
 			 &(driver->diag_clean_lpass_reg_work));
-		driver->chqdsp = 0;
+		driver->chlpass = 0;
 		return;
 	} else if (event == SMD_EVENT_OPEN) {
-		if (chqdsp_temp)
-			driver->chqdsp = chqdsp_temp;
+		if (chlpass_temp)
+			driver->chlpass = chlpass_temp;
 	}
-	queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+	queue_work(driver->diag_wq, &(driver->diag_read_smd_lpass_work));
 }
 #endif
 
@@ -1929,9 +1933,9 @@
 	}
 #if defined(CONFIG_MSM_N_WAY_SMD)
 	if (pdev->id == SMD_APPS_QDSP) {
-		r = smd_named_open_on_edge("DIAG", SMD_APPS_QDSP
-			, &driver->chqdsp, driver, diag_smd_qdsp_notify);
-		chqdsp_temp = driver->chqdsp;
+		r = smd_named_open_on_edge("DIAG", SMD_APPS_QDSP,
+			&driver->chlpass, driver, diag_smd_lpass_notify);
+		chlpass_temp = driver->chlpass;
 	}
 #endif
 	if (pdev->id == SMD_APPS_WCNSS) {
@@ -2023,17 +2027,17 @@
 			goto err;
 		kmemleak_not_leak(driver->buf_in_2);
 	}
-	if (driver->buf_in_qdsp_1 == NULL) {
-		driver->buf_in_qdsp_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
-		if (driver->buf_in_qdsp_1 == NULL)
+	if (driver->buf_in_lpass_1 == NULL) {
+		driver->buf_in_lpass_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+		if (driver->buf_in_lpass_1 == NULL)
 			goto err;
-		kmemleak_not_leak(driver->buf_in_qdsp_1);
+		kmemleak_not_leak(driver->buf_in_lpass_1);
 	}
-	if (driver->buf_in_qdsp_2 == NULL) {
-		driver->buf_in_qdsp_2 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
-		if (driver->buf_in_qdsp_2 == NULL)
+	if (driver->buf_in_lpass_2 == NULL) {
+		driver->buf_in_lpass_2 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+		if (driver->buf_in_lpass_2 == NULL)
 			goto err;
-		kmemleak_not_leak(driver->buf_in_qdsp_2);
+		kmemleak_not_leak(driver->buf_in_lpass_2);
 	}
 	if (driver->buf_in_wcnss_1 == NULL) {
 		driver->buf_in_wcnss_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
@@ -2137,19 +2141,19 @@
 			goto err;
 		kmemleak_not_leak(driver->write_ptr_2);
 	}
-	if (driver->write_ptr_qdsp_1 == NULL) {
-		driver->write_ptr_qdsp_1 = kzalloc(
+	if (driver->write_ptr_lpass_1 == NULL) {
+		driver->write_ptr_lpass_1 = kzalloc(
 			sizeof(struct diag_request), GFP_KERNEL);
-		if (driver->write_ptr_qdsp_1 == NULL)
+		if (driver->write_ptr_lpass_1 == NULL)
 			goto err;
-		kmemleak_not_leak(driver->write_ptr_qdsp_1);
+		kmemleak_not_leak(driver->write_ptr_lpass_1);
 	}
-	if (driver->write_ptr_qdsp_2 == NULL) {
-		driver->write_ptr_qdsp_2 = kzalloc(
+	if (driver->write_ptr_lpass_2 == NULL) {
+		driver->write_ptr_lpass_2 = kzalloc(
 			sizeof(struct diag_request), GFP_KERNEL);
-		if (driver->write_ptr_qdsp_2 == NULL)
+		if (driver->write_ptr_lpass_2 == NULL)
 			goto err;
-		kmemleak_not_leak(driver->write_ptr_qdsp_2);
+		kmemleak_not_leak(driver->write_ptr_lpass_2);
 	}
 	if (driver->write_ptr_wcnss_1 == NULL) {
 		driver->write_ptr_wcnss_1 = kzalloc(
@@ -2190,8 +2194,8 @@
 	INIT_WORK(&(driver->diag_read_work), diag_read_work_fn);
 	INIT_WORK(&(driver->diag_modem_mask_update_work),
 						 diag_modem_mask_update_fn);
-	INIT_WORK(&(driver->diag_qdsp_mask_update_work),
-						 diag_qdsp_mask_update_fn);
+	INIT_WORK(&(driver->diag_lpass_mask_update_work),
+						 diag_lpass_mask_update_fn);
 	INIT_WORK(&(driver->diag_wcnss_mask_update_work),
 						 diag_wcnss_mask_update_fn);
 	driver->legacy_ch = usb_diag_open(DIAG_LEGACY, driver,
@@ -2212,8 +2216,8 @@
 		kfree(driver->msg_mask);
 		kfree(driver->buf_in_1);
 		kfree(driver->buf_in_2);
-		kfree(driver->buf_in_qdsp_1);
-		kfree(driver->buf_in_qdsp_2);
+		kfree(driver->buf_in_lpass_1);
+		kfree(driver->buf_in_lpass_2);
 		kfree(driver->buf_in_wcnss_1);
 		kfree(driver->buf_in_wcnss_2);
 		kfree(driver->buf_msg_mask_update);
@@ -2231,8 +2235,8 @@
 		kfree(driver->pkt_buf);
 		kfree(driver->write_ptr_1);
 		kfree(driver->write_ptr_2);
-		kfree(driver->write_ptr_qdsp_1);
-		kfree(driver->write_ptr_qdsp_2);
+		kfree(driver->write_ptr_lpass_1);
+		kfree(driver->write_ptr_lpass_2);
 		kfree(driver->write_ptr_wcnss_1);
 		kfree(driver->write_ptr_wcnss_2);
 		kfree(driver->usb_read_ptr);
@@ -2245,10 +2249,10 @@
 void diagfwd_exit(void)
 {
 	smd_close(driver->ch);
-	smd_close(driver->chqdsp);
+	smd_close(driver->chlpass);
 	smd_close(driver->ch_wcnss);
 	driver->ch = 0;		/* SMD can make this NULL */
-	driver->chqdsp = 0;
+	driver->chlpass = 0;
 	driver->ch_wcnss = 0;
 #ifdef CONFIG_DIAG_OVER_USB
 	if (driver->usb_connected)
@@ -2263,8 +2267,8 @@
 	kfree(driver->msg_mask);
 	kfree(driver->buf_in_1);
 	kfree(driver->buf_in_2);
-	kfree(driver->buf_in_qdsp_1);
-	kfree(driver->buf_in_qdsp_2);
+	kfree(driver->buf_in_lpass_1);
+	kfree(driver->buf_in_lpass_2);
 	kfree(driver->buf_in_wcnss_1);
 	kfree(driver->buf_in_wcnss_2);
 	kfree(driver->buf_msg_mask_update);
@@ -2282,8 +2286,8 @@
 	kfree(driver->pkt_buf);
 	kfree(driver->write_ptr_1);
 	kfree(driver->write_ptr_2);
-	kfree(driver->write_ptr_qdsp_1);
-	kfree(driver->write_ptr_qdsp_2);
+	kfree(driver->write_ptr_lpass_1);
+	kfree(driver->write_ptr_lpass_2);
 	kfree(driver->write_ptr_wcnss_1);
 	kfree(driver->write_ptr_wcnss_2);
 	kfree(driver->usb_read_ptr);
diff --git a/drivers/char/diag/diagfwd.h b/drivers/char/diag/diagfwd.h
index f5de2ac..cf7fda6 100644
--- a/drivers/char/diag/diagfwd.h
+++ b/drivers/char/diag/diagfwd.h
@@ -20,7 +20,7 @@
 void diagfwd_exit(void);
 void diag_process_hdlc(void *data, unsigned len);
 void __diag_smd_send_req(void);
-void __diag_smd_qdsp_send_req(void);
+void __diag_smd_lpass_send_req(void);
 void __diag_smd_wcnss_send_req(void);
 void diag_usb_legacy_notifier(void *, unsigned, struct diag_request *);
 long diagchar_ioctl(struct file *, unsigned int, unsigned long);
diff --git a/drivers/char/diag/diagfwd_cntl.c b/drivers/char/diag/diagfwd_cntl.c
index e417d5a..9fc1164 100644
--- a/drivers/char/diag/diagfwd_cntl.c
+++ b/drivers/char/diag/diagfwd_cntl.c
@@ -36,7 +36,7 @@
 {
 	pr_debug("diag: clean lpass registration\n");
 	reg_dirty |= DIAG_CON_LPASS;
-	diag_clear_reg(QDSP_PROC);
+	diag_clear_reg(LPASS_PROC);
 	reg_dirty ^= DIAG_CON_LPASS;
 }
 
@@ -72,26 +72,26 @@
 	}
 }
 
-void diag_smd_qdsp_cntl_notify(void *ctxt, unsigned event)
+void diag_smd_lpass_cntl_notify(void *ctxt, unsigned event)
 {
 	int r1, r2;
 
-	if (!(driver->chqdsp_cntl))
+	if (!(driver->chlpass_cntl))
 		return;
 
 	switch (event) {
 	case SMD_EVENT_DATA:
-		r1 = smd_read_avail(driver->chqdsp_cntl);
-		r2 = smd_cur_packet_size(driver->chqdsp_cntl);
+		r1 = smd_read_avail(driver->chlpass_cntl);
+		r2 = smd_cur_packet_size(driver->chlpass_cntl);
 		if (r1 > 0 && r1 == r2)
 			queue_work(driver->diag_wq,
-				 &(driver->diag_read_smd_qdsp_cntl_work));
+				 &(driver->diag_read_smd_lpass_cntl_work));
 		else
 			pr_debug("diag: incomplete pkt on LPASS CNTL ch\n");
 		break;
 	case SMD_EVENT_OPEN:
 		queue_work(driver->diag_cntl_wq,
-			 &(driver->diag_qdsp_mask_update_work));
+			 &(driver->diag_lpass_mask_update_work));
 		break;
 	}
 }
@@ -142,9 +142,9 @@
 		buf = driver->buf_in_cntl;
 		smd_ch = driver->ch_cntl;
 		reg_mask = DIAG_CON_MPSS;
-	} else if (proc_num == QDSP_PROC) {
-		buf = driver->buf_in_qdsp_cntl;
-		smd_ch = driver->chqdsp_cntl;
+	} else if (proc_num == LPASS_PROC) {
+		buf = driver->buf_in_lpass_cntl;
+		smd_ch = driver->chlpass_cntl;
 		reg_mask = DIAG_CON_LPASS;
 	} else if (proc_num == WCNSS_PROC) {
 		buf = driver->buf_in_wcnss_cntl;
@@ -230,8 +230,8 @@
 		/* Poll SMD CNTL channels to check for data */
 		if (proc_num == MODEM_PROC)
 			diag_smd_cntl_notify(NULL, SMD_EVENT_DATA);
-		else if (proc_num == QDSP_PROC)
-			diag_smd_qdsp_cntl_notify(NULL, SMD_EVENT_DATA);
+		else if (proc_num == LPASS_PROC)
+			diag_smd_lpass_cntl_notify(NULL, SMD_EVENT_DATA);
 		else if (proc_num == WCNSS_PROC)
 			diag_smd_wcnss_cntl_notify(NULL, SMD_EVENT_DATA);
 	}
@@ -242,9 +242,9 @@
 	diag_smd_cntl_send_req(MODEM_PROC);
 }
 
-void diag_read_smd_qdsp_cntl_work_fn(struct work_struct *work)
+void diag_read_smd_lpass_cntl_work_fn(struct work_struct *work)
 {
-	diag_smd_cntl_send_req(QDSP_PROC);
+	diag_smd_cntl_send_req(LPASS_PROC);
 }
 
 void diag_read_smd_wcnss_cntl_work_fn(struct work_struct *work)
@@ -263,8 +263,8 @@
 							diag_smd_cntl_notify);
 		if (pdev->id == SMD_APPS_QDSP)
 			r = smd_named_open_on_edge("DIAG_CNTL", SMD_APPS_QDSP
-				, &driver->chqdsp_cntl, driver,
-					 diag_smd_qdsp_cntl_notify);
+					, &driver->chlpass_cntl, driver,
+					diag_smd_lpass_cntl_notify);
 		if (pdev->id == SMD_APPS_WCNSS)
 			r = smd_named_open_on_edge("APPS_RIVA_CTRL",
 				SMD_APPS_WCNSS, &driver->ch_wcnss_cntl,
@@ -322,11 +322,11 @@
 			goto err;
 		kmemleak_not_leak(driver->buf_in_cntl);
 	}
-	if (driver->buf_in_qdsp_cntl == NULL) {
-		driver->buf_in_qdsp_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
-		if (driver->buf_in_qdsp_cntl == NULL)
+	if (driver->buf_in_lpass_cntl == NULL) {
+		driver->buf_in_lpass_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+		if (driver->buf_in_lpass_cntl == NULL)
 			goto err;
-		kmemleak_not_leak(driver->buf_in_qdsp_cntl);
+		kmemleak_not_leak(driver->buf_in_lpass_cntl);
 	}
 	if (driver->buf_in_wcnss_cntl == NULL) {
 		driver->buf_in_wcnss_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
@@ -341,7 +341,7 @@
 err:
 		pr_err("diag: Could not initialize diag buffers");
 		kfree(driver->buf_in_cntl);
-		kfree(driver->buf_in_qdsp_cntl);
+		kfree(driver->buf_in_lpass_cntl);
 		kfree(driver->buf_in_wcnss_cntl);
 		if (driver->diag_cntl_wq)
 			destroy_workqueue(driver->diag_cntl_wq);
@@ -350,17 +350,17 @@
 void diagfwd_cntl_exit(void)
 {
 	smd_close(driver->ch_cntl);
-	smd_close(driver->chqdsp_cntl);
+	smd_close(driver->chlpass_cntl);
 	smd_close(driver->ch_wcnss_cntl);
 	driver->ch_cntl = 0;
-	driver->chqdsp_cntl = 0;
+	driver->chlpass_cntl = 0;
 	driver->ch_wcnss_cntl = 0;
 	destroy_workqueue(driver->diag_cntl_wq);
 	platform_driver_unregister(&msm_smd_ch1_cntl_driver);
 	platform_driver_unregister(&diag_smd_lite_cntl_driver);
 
 	kfree(driver->buf_in_cntl);
-	kfree(driver->buf_in_qdsp_cntl);
+	kfree(driver->buf_in_lpass_cntl);
 	kfree(driver->buf_in_wcnss_cntl);
 }
 
@@ -397,18 +397,18 @@
 		"uses device tree: %d\n"
 		"in_busy_1: %d\n"
 		"in_busy_2: %d\n"
-		"in_busy_qdsp_1: %d\n"
-		"in_busy_qdsp_2: %d\n"
+		"in_busy_lpass_1: %d\n"
+		"in_busy_lpass_2: %d\n"
 		"in_busy_wcnss_1: %d\n"
 		"in_busy_wcnss_2: %d\n"
 		"in_busy_dci: %d\n"
 		"logging_mode: %d\n",
 		(unsigned int)driver->ch,
-		(unsigned int)driver->chqdsp,
+		(unsigned int)driver->chlpass,
 		(unsigned int)driver->ch_wcnss,
 		(unsigned int)driver->ch_dci,
 		(unsigned int)driver->ch_cntl,
-		(unsigned int)driver->chqdsp_cntl,
+		(unsigned int)driver->chlpass_cntl,
 		(unsigned int)driver->ch_wcnss_cntl,
 		chk_config_get_id(),
 		chk_apps_only(),
@@ -418,8 +418,8 @@
 		driver->use_device_tree,
 		driver->in_busy_1,
 		driver->in_busy_2,
-		driver->in_busy_qdsp_1,
-		driver->in_busy_qdsp_2,
+		driver->in_busy_lpass_1,
+		driver->in_busy_lpass_2,
 		driver->in_busy_wcnss_1,
 		driver->in_busy_wcnss_2,
 		driver->in_busy_dci,
@@ -453,23 +453,23 @@
 		"diag_drain_work: %d\n"
 		"diag_read_smd_work: %d\n"
 		"diag_read_smd_cntl_work: %d\n"
-		"diag_read_smd_qdsp_work: %d\n"
-		"diag_read_smd_qdsp_cntl_work: %d\n"
+		"diag_read_smd_lpass_work: %d\n"
+		"diag_read_smd_lpass_cntl_work: %d\n"
 		"diag_read_smd_wcnss_work: %d\n"
 		"diag_read_smd_wcnss_cntl_work: %d\n"
 		"diag_modem_mask_update_work: %d\n"
-		"diag_qdsp_mask_update_work: %d\n"
+		"diag_lpass_mask_update_work: %d\n"
 		"diag_wcnss_mask_update_work: %d\n"
 		"diag_read_smd_dci_work: %d\n",
 		work_pending(&(driver->diag_drain_work)),
 		work_pending(&(driver->diag_read_smd_work)),
 		work_pending(&(driver->diag_read_smd_cntl_work)),
-		work_pending(&(driver->diag_read_smd_qdsp_work)),
-		work_pending(&(driver->diag_read_smd_qdsp_cntl_work)),
+		work_pending(&(driver->diag_read_smd_lpass_work)),
+		work_pending(&(driver->diag_read_smd_lpass_cntl_work)),
 		work_pending(&(driver->diag_read_smd_wcnss_work)),
 		work_pending(&(driver->diag_read_smd_wcnss_cntl_work)),
 		work_pending(&(driver->diag_modem_mask_update_work)),
-		work_pending(&(driver->diag_qdsp_mask_update_work)),
+		work_pending(&(driver->diag_lpass_mask_update_work)),
 		work_pending(&(driver->diag_wcnss_mask_update_work)),
 		work_pending(&(driver->diag_read_smd_dci_work)));
 
diff --git a/drivers/char/diag/diagfwd_cntl.h b/drivers/char/diag/diagfwd_cntl.h
index 59e5e6b..e6f5352 100644
--- a/drivers/char/diag/diagfwd_cntl.h
+++ b/drivers/char/diag/diagfwd_cntl.h
@@ -80,10 +80,10 @@
 void diagfwd_cntl_init(void);
 void diagfwd_cntl_exit(void);
 void diag_read_smd_cntl_work_fn(struct work_struct *);
-void diag_read_smd_qdsp_cntl_work_fn(struct work_struct *);
+void diag_read_smd_lpass_cntl_work_fn(struct work_struct *);
 void diag_read_smd_wcnss_cntl_work_fn(struct work_struct *);
 void diag_smd_cntl_notify(void *ctxt, unsigned event);
-void diag_smd_qdsp_cntl_notify(void *ctxt, unsigned event);
+void diag_smd_lpass_cntl_notify(void *ctxt, unsigned event);
 void diag_smd_wcnss_cntl_notify(void *ctxt, unsigned event);
 void diag_clean_modem_reg_fn(struct work_struct *);
 void diag_clean_lpass_reg_fn(struct work_struct *);
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 8d967cd..adbf217 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -94,7 +94,7 @@
  */
 #define	EHCI_TUNE_FLS		1	/* (medium) 512-frame schedule */
 
-#define EHCI_IAA_MSECS		10		/* arbitrary */
+#define EHCI_IAA_MSECS		100		/* arbitrary */
 #define EHCI_IO_JIFFIES		(HZ/10)		/* io watchdog > irq_thresh */
 #define EHCI_ASYNC_JIFFIES	(HZ/20)		/* async idle timeout */
 #define EHCI_SHRINK_JIFFIES	(DIV_ROUND_UP(HZ, 200) + 1)
diff --git a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
index 596c86f..931c1c8 100644
--- a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
+++ b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
@@ -1859,6 +1859,7 @@
 	struct vcd_buffer_requirement *input_buf_req;
 	struct vcd_buffer_requirement *output_buf_req;
 	u32  min_dpb, y_cb_cr_size;
+	u32  frame_height_actual = 0;
 
 	if (!decoder->codec.codec)
 		return false;
@@ -1882,6 +1883,7 @@
 		if ((decoder->buf_format.buffer_format ==
 			VCD_BUFFER_FORMAT_TILE_4x2) &&
 			(frame_size->height < MDP_MIN_TILE_HEIGHT)) {
+			frame_height_actual = frame_size->height;
 			frame_size->height = MDP_MIN_TILE_HEIGHT;
 			ddl_calculate_stride(frame_size,
 				!decoder->progressive_only);
@@ -1920,6 +1922,10 @@
 	input_buf_req->sz = (1024 * 1024 * 2);
 	input_buf_req->align = DDL_LINEAR_BUFFER_ALIGN_BYTES;
 	decoder->min_input_buf_req = *input_buf_req;
+	if (frame_height_actual) {
+		frame_size->height = frame_height_actual;
+		ddl_calculate_stride(frame_size, !decoder->progressive_only);
+	}
 	return true;
 }