diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
index a7e5e6e..8c03e79 100755
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -344,7 +344,8 @@
       mOpMode(CAMERA3_STREAM_CONFIGURATION_NORMAL_MODE),
       mPrevUrgentFrameNumber(0),
       mPrevFrameNumber(0),
-      mNeedSensorRestart(false)
+      mNeedSensorRestart(false),
+      mPprocBypass(false)
 {
     getLogLevel();
     mCameraDevice.common.tag = HARDWARE_DEVICE_TAG;
@@ -1053,6 +1054,7 @@
 
     pthread_mutex_lock(&mMutex);
 
+    mPprocBypass = false;
     /* Check whether we have video stream */
     m_bIs4KVideo = false;
     m_bIsVideo = false;
@@ -1451,6 +1453,10 @@
                   mStreamConfigInfo.postprocess_mask[mStreamConfigInfo.num_streams] =
                           CAM_QCOM_FEATURE_PP_SUPERSET_HAL3;
               }
+              if (CAM_QCOM_FEATURE_NONE ==
+                      mStreamConfigInfo.postprocess_mask[mStreamConfigInfo.num_streams]) {
+                  mPprocBypass = true;
+              }
               break;
            case HAL_PIXEL_FORMAT_BLOB:
               mStreamConfigInfo.type[mStreamConfigInfo.num_streams] = CAM_STREAM_TYPE_SNAPSHOT;
@@ -7662,11 +7668,13 @@
 
     // CDS
     if (frame_settings.exists(QCAMERA3_CDS_MODE)) {
-        int32_t *cds = frame_settings.find(QCAMERA3_CDS_MODE).data.i32;
-        if ((CAM_CDS_MODE_MAX <= (*cds)) || (0 > (*cds))) {
-            ALOGE("%s: Invalid CDS mode %d!", __func__, *cds);
+        int32_t *fwk_cds = frame_settings.find(QCAMERA3_CDS_MODE).data.i32;
+        int32_t overridden_cds = (mPprocBypass ? CAM_CDS_MODE_OFF : *fwk_cds);
+        if ((CAM_CDS_MODE_MAX <= overridden_cds) || (0 > overridden_cds)) {
+            ALOGE("%s: Invalid CDS mode %d!", __func__, overridden_cds);
         } else {
-            if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata, CAM_INTF_PARM_CDS_MODE, *cds)) {
+            if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata,
+                    CAM_INTF_PARM_CDS_MODE, overridden_cds)) {
                 rc = BAD_VALUE;
             }
         }
diff --git a/QCamera2/HAL3/QCamera3HWI.h b/QCamera2/HAL3/QCamera3HWI.h
index 31ffb5e..56e49f5 100644
--- a/QCamera2/HAL3/QCamera3HWI.h
+++ b/QCamera2/HAL3/QCamera3HWI.h
@@ -391,6 +391,9 @@
     /* sensor output size with current stream configuration */
     QCamera3CropRegionMapper mCropRegionMapper;
 
+    /* Whether PPROC bypass is enabled for YUV888 */
+    bool mPprocBypass;
+
     static const QCameraMap<camera_metadata_enum_android_control_effect_mode_t,
             cam_effect_mode_type> EFFECT_MODES_MAP[];
     static const QCameraMap<camera_metadata_enum_android_control_awb_mode_t,
