diff --git a/packages/ti/drv/dss/include/dss_disp.h b/packages/ti/drv/dss/include/dss_disp.h
index aa97114..4634418 100755
--- a/packages/ti/drv/dss/include/dss_disp.h
+++ b/packages/ti/drv/dss/include/dss_disp.h
@@ -250,6 +250,19 @@ typedef void (*Dss_DispSafetyErrCbFxn)(uint32_t capturedSign,
  */
 #define IOCTL_DSS_DISP_SET_PIPE_CSC_COEFF      (DSS_DISP_IOCTL_BASE + 0x0005U)
 
+/**
+ * \brief Command to set Global Alpha parameters.
+ *
+ *  This IOCTL is used to program the Pipe Global Alpha parameters. Refer to structure
+ *  #CSL_DssVidPipeAlphaCfg for details on DSS parameters.
+ *
+ * \param cmdArgs       [IN]  Pointer of type #CSL_DssVidPipeAlphaCfg
+ * \param cmdArgsStatus [OUT] NULL
+ *
+ * \return  FVID2_SOK if successful, else suitable error code
+ */
+#define IOCTL_DSS_DISP_SET_GLOBAL_ALPHA          (DSS_DISP_IOCTL_BASE + 0x0006U)
+
 /**
  * \brief Command to register buffer program callback function.
  *
@@ -266,7 +279,7 @@ typedef void (*Dss_DispSafetyErrCbFxn)(uint32_t capturedSign,
  *
  * \return  FVID2_SOK if successful, else suitable error code
  */
-#define IOCTL_DSS_DISP_REGISTER_BUF_PRGM_CB    (DSS_DISP_IOCTL_BASE + 0x0006U)
+#define IOCTL_DSS_DISP_REGISTER_BUF_PRGM_CB    (DSS_DISP_IOCTL_BASE + 0x0007U)
 
 /**
  * \brief Command to register video pipe program callback function.
@@ -284,7 +297,7 @@ typedef void (*Dss_DispSafetyErrCbFxn)(uint32_t capturedSign,
  *
  * \return  FVID2_SOK if successful, else suitable error code
  */
-#define IOCTL_DSS_DISP_REGISTER_PIPE_PRGM_CB   (DSS_DISP_IOCTL_BASE + 0x0007U)
+#define IOCTL_DSS_DISP_REGISTER_PIPE_PRGM_CB   (DSS_DISP_IOCTL_BASE + 0x0008U)
 
 /**
  * \brief Command to register video pipe underflow callback function.
@@ -303,7 +316,7 @@ typedef void (*Dss_DispSafetyErrCbFxn)(uint32_t capturedSign,
  * \return  FVID2_SOK if successful, else suitable error code
  */
 #define IOCTL_DSS_DISP_REGISTER_PIPE_UNDERFLOW_CB      \
-                                               (DSS_DISP_IOCTL_BASE + 0x0008U)
+                                               (DSS_DISP_IOCTL_BASE + 0x0009U)
 
 /* @} */
 
diff --git a/packages/ti/drv/dss/src/drv/disp/dss_dispApi.c b/packages/ti/drv/dss/src/drv/disp/dss_dispApi.c
index 44c49dc..16266c2 100755
--- a/packages/ti/drv/dss/src/drv/disp/dss_dispApi.c
+++ b/packages/ti/drv/dss/src/drv/disp/dss_dispApi.c
@@ -140,6 +140,9 @@ static int32_t Dss_dispDrvSetPipePrgmCbParamsIoctl(
 static int32_t Dss_dispDrvSetPipeUnderFlowCbParamsIoctl(
                             Dss_DispDrvInstObj *instObj,
                             const Dss_DispUnderFlowCbParams *underFlowCbParams);
+static int32_t Dss_dispDrvSetDssPipeAlphaCfgIoctl(
+                            Dss_DispDrvInstObj *instObj,
+                            const CSL_DssVidPipeAlphaCfg * alphaParams);
 static int32_t Dss_dispDrvValidateDssParams(const Dss_DispDrvInstObj *instObj,
                                             const Dss_DispParams *dispParams);
 static int32_t Dss_dispDrvValidateRtParams(const Dss_DispDrvInstObj *instObj,
@@ -851,6 +854,11 @@ static int32_t Dss_dispDrvControl(Fdrv_Handle handle,
                                 instObj,
                                 (const CSL_DssCscCoeff *) cmdArgs);
                 break;
+            case IOCTL_DSS_DISP_SET_GLOBAL_ALPHA:
+                retVal = Dss_dispDrvSetDssPipeAlphaCfgIoctl(
+                                instObj,
+                                (const CSL_DssVidPipeAlphaCfg *) cmdArgs);
+                break;
             case IOCTL_DSS_DISP_REGISTER_BUF_PRGM_CB:
                 retVal = Dss_dispDrvSetBufPrgmCbParamsIoctl(
                                 instObj,
@@ -1846,6 +1854,53 @@ static int32_t Dss_dispDrvSetPipeUnderFlowCbParamsIoctl(
     return (retVal);
 }
 
+static int32_t Dss_dispDrvSetDssPipeAlphaCfgIoctl(
+                            Dss_DispDrvInstObj *instObj,
+                            const CSL_DssVidPipeAlphaCfg * alphaParams)
+{
+    int32_t retVal = FVID2_SOK;
+    CSL_dss_pipeRegs *pipeRegs;
+    const Dss_SocInfo *socInfo;
+
+    GT_assert(DssTrace, (NULL != instObj));
+
+    /* Check for wrong inputs */
+    if((DSS_DISP_INST_MAX <= instObj->drvInstId) || (NULL == alphaParams))
+    {
+        GT_0trace(DssTrace, GT_ERR, "Invalid argument!!\r\n");
+        retVal = FVID2_EBADARGS;
+    }
+
+    /* Take the instance semaphore */
+    (void) SemaphoreP_pend(instObj->lockSem, SemaphoreP_WAIT_FOREVER);
+
+    if(FVID2_SOK == retVal)
+    {
+        /* Get video pipe registers */
+        socInfo = Dss_getSocInfo();
+        pipeRegs = socInfo->pipeRegs[instObj->pipeId];
+        GT_assert(DssTrace, (NULL != pipeRegs));
+    }
+
+    if(FVID2_SOK == retVal)
+    {
+        CSL_dssVidPipeSetAlphaConfig(
+                    pipeRegs,
+                    (const CSL_DssVidPipeAlphaCfg *)alphaParams);
+    }
+
+    if(FVID2_SOK != retVal)
+    {
+        GT_0trace(DssTrace, GT_ERR, "Set Global Alpha IOCTL failed\r\n");
+    }
+
+    /* Post the instance semaphore */
+    (void) SemaphoreP_post(instObj->lockSem);
+
+    return (retVal);
+
+}
+
 static int32_t Dss_dispDrvValidateDssParams(const Dss_DispDrvInstObj *instObj,
                                             const Dss_DispParams *dispParams)
 {
