diff --git a/kernels/include/TI/video_io_display.h b/kernels/include/TI/video_io_display.h
index f7c22ca..05bbdc3 100755
--- a/kernels/include/TI/video_io_display.h
+++ b/kernels/include/TI/video_io_display.h
@@ -118,6 +118,19 @@ extern "C" {
  */
 #define TIVX_DISPLAY_SET_CROP_PARAMS        (0x30000001u)
 
+/*! \brief Control Command to set the Global Alpha parameters.
+ *
+ *          The display node supports changing the
+ *          Video pipe's Global Alpha value which is used to
+ *          set transparency of that pipe's output.
+ *
+ *         This control command uses pointer to structure
+ *         tivx_display_global_alpha_params_t as an input argument.
+ *
+ *  \ingroup group_vision_function_display
+ */
+#define TIVX_DISPLAY_SET_GLOBAL_ALPHA        (0x30000002u)
+
 /*********************************
  *      Display Defines
  *********************************/
@@ -144,6 +157,22 @@ extern "C" {
 /*********************************
  *      Capture STRUCTURES
  *********************************/
+/*!
+ * \brief The configuration data structure for setting global alpha parameters.
+ *
+ * \ingroup group_vision_function_display
+ */
+typedef struct
+{
+    uint32_t globalAlpha;
+    /**< Global alpha value from 0 to 255. 0 corresponds to fully
+     *   transparent and 255 to fully opaque */
+    uint32_t preMultiplyAlpha;
+    /**< The field configures the pipe  to process incoming data as
+     *   pre multiplied alpha data.
+     *   UFALSE: Non pre multiplied alpha data
+     *   UTRUE:  Pre multiplied alpha data */
+} tivx_display_global_alpha_params_t;
 
 /*!
  * \brief The configuration data structure for setting crop parameters.
diff --git a/kernels/video_io/display/vx_display_target.c b/kernels/video_io/display/vx_display_target.c
index 68f398a..ab3fb91 100755
--- a/kernels/video_io/display/vx_display_target.c
+++ b/kernels/video_io/display/vx_display_target.c
@@ -173,6 +173,8 @@ static vx_status tivxDisplaySwitchChannel(tivxDisplayParams *dispPrms,
     const tivx_obj_desc_user_data_object_t *usr_data_obj);
 static vx_status tivxDisplaySetCropParams(tivxDisplayParams *dispPrms,
     const tivx_obj_desc_user_data_object_t *usr_data_obj);
+static vx_status tivxDisplaySetGlobalAlpha(tivxDisplayParams *dispPrms,
+    const tivx_obj_desc_user_data_object_t *usr_data_obj);
 
 static vx_status tivxDisplaySwitchChannel(tivxDisplayParams *dispPrms,
     const tivx_obj_desc_user_data_object_t *usr_data_obj)
@@ -251,6 +253,54 @@ static vx_status tivxDisplaySetCropParams(tivxDisplayParams *dispPrms,
     return (status);
 }
 
+static vx_status tivxDisplaySetGlobalAlpha(tivxDisplayParams *dispPrms,
+    const tivx_obj_desc_user_data_object_t *usr_data_obj)
+{
+    vx_status                          status = (vx_status)VX_SUCCESS;
+    tivx_display_global_alpha_params_t *ch_prms = NULL;
+    void *target_ptr;
+    int32_t fvid2_status = FVID2_SOK;
+
+    if (NULL != usr_data_obj)
+    {
+        target_ptr = tivxMemShared2TargetPtr(&usr_data_obj->mem_ptr);
+
+        tivxCheckStatus(&status, tivxMemBufferMap(target_ptr, usr_data_obj->mem_size,
+            (vx_enum)VX_MEMORY_TYPE_HOST, (vx_enum)VX_READ_ONLY));
+
+        if (sizeof(tivx_display_global_alpha_params_t) ==
+                usr_data_obj->mem_size)
+        {
+            ch_prms = (tivx_display_global_alpha_params_t *)target_ptr;
+            memcpy(&dispPrms->dispParams.alphaCfg, ch_prms, sizeof(tivx_display_global_alpha_params_t));
+            fvid2_status = Fvid2_control(dispPrms->drvHandle,
+                                   IOCTL_DSS_DISP_SET_GLOBAL_ALPHA,
+                                   &dispPrms->dispParams.alphaCfg,
+                                   NULL);
+            if(FVID2_SOK != fvid2_status)
+            {
+                status = (vx_status)VX_FAILURE;
+                VX_PRINT(VX_ZONE_ERROR, "DISPLAY: ERROR: Display Set Global Alpha Failed!\r\n");
+            }
+        }
+        else
+        {
+            VX_PRINT(VX_ZONE_ERROR, "Invalid Size \n");
+            status = (vx_status)VX_ERROR_INVALID_PARAMETERS;
+        }
+
+        tivxCheckStatus(&status, tivxMemBufferUnmap(target_ptr, usr_data_obj->mem_size,
+            (vx_enum)VX_MEMORY_TYPE_HOST, (vx_enum)VX_READ_ONLY));
+    }
+    else
+    {
+        VX_PRINT(VX_ZONE_ERROR, "User Data Object is NULL \n");
+        status = (vx_status)VX_ERROR_INVALID_PARAMETERS;
+    }
+
+    return (status);
+}
+
 static vx_status tivxDisplayExtractFvid2Format(
     tivxDisplayParams *dispPrms, tivx_display_params_t *inDispPrms,
     const tivx_obj_desc_image_t *obj_desc_img, Fvid2_Format *format)
@@ -843,6 +893,12 @@ static vx_status VX_CALLBACK tivxDisplayControl(
                     (tivx_obj_desc_user_data_object_t *)obj_desc[0U]);
                 break;
             }
+            case TIVX_DISPLAY_SET_GLOBAL_ALPHA:
+            {
+                status = tivxDisplaySetGlobalAlpha(dispPrms,
+                    (tivx_obj_desc_user_data_object_t *)obj_desc[0U]);
+                break;
+            }
             default:
             {
                 VX_PRINT(VX_ZONE_ERROR, "Invalid Command Id\n");
