diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts
index 8b2373e2c079..c9e0bc54e469 100644
--- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts
+++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts
@@ -1,4 +1,4 @@
-/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2019, 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
@@ -83,14 +83,18 @@
 	};
 };
 
+&ion {
+	/delete-node/ qcom,ion-heap@25;
+
+	system_heap: qcom,ion-heap@25 {
+		reg = <25>;
+		qcom,ion-heap-type = "SYSTEM";
+	};
+};
+
 &reserved_memory {
 		pmem_shared: pmem_shared_region@d0000000 {
 			reg = <0 0xd0000000 0 0x20000000>;
 			label = "pmem_shared_mem";
 		};
-
-		ion_system: ion_system_region@100000000 {
-			reg = <0x1 0x60000000 0 0x10000000>;
-			label = "ion_system_mem";
-		};
 };
diff --git a/drivers/media/platform/msm/ais/isp/msm_isp47.c b/drivers/media/platform/msm/ais/isp/msm_isp47.c
index 1ddcab3ed331..666f1916eaa9 100644
--- a/drivers/media/platform/msm/ais/isp/msm_isp47.c
+++ b/drivers/media/platform/msm/ais/isp/msm_isp47.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2019, 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
@@ -1323,8 +1323,8 @@ void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev,
 	first_line = camif_cfg->first_line;
 	last_line = camif_cfg->last_line;
 
-	msm_camera_io_w((camif_cfg->lines_per_frame) << 16 |
-		(camif_cfg->pixels_per_line), vfe_dev->vfe_base + 0x484);
+	msm_camera_io_w((camif_cfg->lines_per_frame - 1) << 16 |
+		(camif_cfg->pixels_per_line - 1), vfe_dev->vfe_base + 0x484);
 	if (bus_sub_en) {
 		val = msm_camera_io_r(vfe_dev->vfe_base + 0x47C);
 		val &= 0xFFFFFFDF;
diff --git a/drivers/media/v4l2loopback-master/v4l2loopback.c b/drivers/media/v4l2loopback-master/v4l2loopback.c
index f8ade92b9407..b6e7f6a2a768 100644
--- a/drivers/media/v4l2loopback-master/v4l2loopback.c
+++ b/drivers/media/v4l2loopback-master/v4l2loopback.c
@@ -483,6 +483,8 @@ static ssize_t attr_store_format(struct device *cd,
 	struct v4l2_loopback_device *dev = v4l2loopback_cd2dev(cd);
 	int fps_num = 0, fps_den = 1;
 
+	if (!dev)
+		return -EINVAL;
 	/* only fps changing is supported */
 	if (sscanf(buf, "@%d/%d", &fps_num, &fps_den) > 0) {
 		struct v4l2_fract f = {
@@ -490,7 +492,6 @@ static ssize_t attr_store_format(struct device *cd,
 			.denominator = fps_num
 		};
 		int err = 0;
-
 		err = set_timeperframe(dev, &f);
 		if (err < 0)
 			return err;
@@ -671,7 +672,7 @@ static inline void unset_flags(struct v4l2l_buffer *buffer)
 static void vidioc_fill_name(char *buf, int len, int nr)
 {
 	if (card_label[nr] != NULL)
-		snprintf(buf, len, card_label[nr]);
+		snprintf(buf, len, "%s\n", card_label[nr]);
 	else
 		snprintf(buf, len, "Dummy video device (0x%04X)", nr);
 }
@@ -1909,7 +1910,7 @@ static int v4l2_loopback_mmap(struct file *file, struct vm_area_struct *vma)
 
 		page = (void *)vmalloc_to_page((void *)addr);
 
-		if (vm_insert_page(vma, start, page) < 0)
+		if (!page || vm_insert_page(vma, start, page) < 0)
 			return -EAGAIN;
 
 		start += PAGE_SIZE;
diff --git a/drivers/soc/qcom/hab/hab_ghs.c b/drivers/soc/qcom/hab/hab_ghs.c
index f479d69b9e38..57c4513c4058 100644
--- a/drivers/soc/qcom/hab/hab_ghs.c
+++ b/drivers/soc/qcom/hab/hab_ghs.c
@@ -86,7 +86,7 @@ static void ghs_irq_handler(void *cookie)
 		(struct ghs_vdev *) (pchan ? pchan->hyp_data : NULL);
 
 	if (dev)
-		tasklet_schedule(&dev->task);
+		tasklet_hi_schedule(&dev->task);
 }
 
 static int get_dt_name_idx(int vmid_base, int mmid,
diff --git a/drivers/soc/qcom/hab/hab_qvm.c b/drivers/soc/qcom/hab/hab_qvm.c
index f9f72fc1beb4..6f1cf26334f2 100644
--- a/drivers/soc/qcom/hab/hab_qvm.c
+++ b/drivers/soc/qcom/hab/hab_qvm.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2019, 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
@@ -80,7 +80,7 @@ static irqreturn_t shm_irq_handler(int irq, void *_pchan)
 
 		if (status & 0xffff) {/*source bitmask indicator*/
 			rc = IRQ_HANDLED;
-			tasklet_schedule(&dev->task);
+			tasklet_hi_schedule(&dev->task);
 		}
 	}
 	return rc;
diff --git a/include/linux/diagchar.h b/include/linux/diagchar.h
index 1046fb4611bf..d931f9690e2f 100644
--- a/include/linux/diagchar.h
+++ b/include/linux/diagchar.h
@@ -145,10 +145,10 @@ the appropriate macros. */
 /* This needs to be modified manually now, when we add
  a new RANGE of SSIDs to the msg_mask_tbl */
 #define MSG_MASK_TBL_CNT		26
-#define APPS_EVENT_LAST_ID		0xCB4
+#define APPS_EVENT_LAST_ID		0xCB7
 
 #define MSG_SSID_0			0
-#define MSG_SSID_0_LAST			130
+#define MSG_SSID_0_LAST			131
 #define MSG_SSID_1			500
 #define MSG_SSID_1_LAST			506
 #define MSG_SSID_2			1000
@@ -341,13 +341,15 @@ static const uint32_t msg_bld_masks_0[] = {
 	MSG_LVL_MED,
 	MSG_LVL_HIGH,
 	MSG_LVL_LOW,
-	MSG_LVL_LOW|MSG_LVL_MED|MSG_LVL_HIGH|MSG_LVL_ERROR|MSG_LVL_FATAL,
+	MSG_LVL_LOW | MSG_LVL_MED | MSG_LVL_HIGH | MSG_LVL_ERROR |
+		MSG_LVL_FATAL,
 	MSG_LVL_HIGH,
 	MSG_LVL_LOW,
 	MSG_LVL_MED,
 	MSG_LVL_MED,
 	MSG_LVL_HIGH,
-	MSG_LVL_HIGH
+	MSG_LVL_HIGH,
+	MSG_LVL_LOW | MSG_LVL_MED | MSG_LVL_HIGH | MSG_LVL_ERROR
 };
 
 static const uint32_t msg_bld_masks_1[] = {
@@ -911,7 +913,7 @@ static const uint32_t msg_bld_masks_25[] = {
 /* LOG CODES */
 static const uint32_t log_code_last_tbl[] = {
 	0x0,	/* EQUIP ID 0 */
-	0x1CB2,	/* EQUIP ID 1 */
+	0x1CC0,	/* EQUIP ID 1 */
 	0x0,	/* EQUIP ID 2 */
 	0x0,	/* EQUIP ID 3 */
 	0x4910,	/* EQUIP ID 4 */