--- a/src/common/drv_dsl_cpe_os_linux.c
+++ b/src/common/drv_dsl_cpe_os_linux.c
@@ -431,7 +431,11 @@ static int DSL_DRV_DevNodeInit(DSL_void_
    }
 
    /* create a device class used for createing /dev/ entries */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
    dsl_class = class_create(THIS_MODULE, DRV_DSL_CPE_API_DEV_NAME);
+#else
+   dsl_class = class_create(DRV_DSL_CPE_API_DEV_NAME);
+#endif
    if (IS_ERR(dsl_class)) {
       DSL_DEBUG(DSL_DBG_ERR,
          (DSL_NULL, SYS_DBG_ERR""DSL_DRV_CRLF DSL_DRV_CRLF
--- a/src/common/drv_dsl_cpe_api.c
+++ b/src/common/drv_dsl_cpe_api.c
@@ -1370,7 +1370,8 @@ DSL_boolean_t DSL_DRV_BondingEnableCheck
       nDslMode = DSL_DRV_VRX_DslModeIndexGet(pContext);
 
       DSL_CHECK_DSLMODE(nDslMode);
-      DSL_CHECK_ERR_CODE();
+      if (nErrCode != DSL_SUCCESS)
+         return bPafEnable;
 
       /* Bonding is always enabled for both lines/devices together so using the
          configuration from the current line/device is ok. */
@@ -3886,7 +3887,7 @@ DSL_Error_t DSL_DRV_RetxStatisticsGet(
 
    DSL_CHECK_POINTER(pContext, pData);
    DSL_CHECK_ERR_CODE();
-   DSL_CHECK_DIRECTION(pData->nDirection);
+   DSL_CHECK_ATU_DIRECTION(pData->nDirection);
    DSL_CHECK_ERR_CODE();
 
    DSL_DEBUG(DSL_DBG_MSG,
--- a/src/device/drv_dsl_cpe_device_vrx.c
+++ b/src/device/drv_dsl_cpe_device_vrx.c
@@ -2760,7 +2760,7 @@ static DSL_Error_t DSL_DRV_VRX_ChannelSt
    DSL_CHECK_CHANNEL_RANGE(nChannel);
    DSL_CHECK_ERR_CODE();
 
-   DSL_CHECK_ATU_DIRECTION(nDirection);
+   DSL_CHECK_DIRECTION(nDirection);
    DSL_CHECK_ERR_CODE();
 
    DSL_DEBUG(DSL_DBG_MSG,
@@ -2807,8 +2807,8 @@ static DSL_Error_t DSL_DRV_VRX_ChannelSt
       if (nVerCheck >= DSL_VERSION_EQUAL)
       {
          bRocEnable = nDirection == DSL_UPSTREAM ?
-                     (DSL_boolean_t)sAckLs.FUS.ROCstatus_us :
-                     (DSL_boolean_t)sAckLs.FDS.ROCstatus_ds;
+                     (DSL_FeatureSupport_t)sAckLs.FUS.ROCstatus_us :
+                     (DSL_FeatureSupport_t)sAckLs.FDS.ROCstatus_ds;
 
          DSL_CTX_WRITE_SCALAR(
             pContext, nErrCode, lineFeatureDataSts[nDirection].bRocEnable,
@@ -4885,7 +4885,7 @@ DSL_Error_t DSL_DRV_DEV_FwDownload(
 
          /* Set VRX device FW mode*/
          fwModeSelect.firmwareFeatures.nPlatformId = nFwFeatures.nPlatformId;
-         fwModeSelect.firmwareFeatures.eFirmwareXdslModes = nFwFeatures.nFirmwareXdslModes;
+         fwModeSelect.firmwareFeatures.eFirmwareXdslModes = (IOCTL_MEI_firmwareXdslMode_t)nFwFeatures.nFirmwareXdslModes;
 
          if( DSL_DRV_VRX_InternalFwModeCtrlSet((MEI_DYN_CNTRL_T*)dev, &fwModeSelect) != 0 )
          {
@@ -7420,7 +7420,7 @@ DSL_Error_t DSL_DRV_VRX_ChannelStatusGet
 {
    DSL_Error_t nErrCode = DSL_SUCCESS;
 
-   DSL_CHECK_ATU_DIRECTION(nDirection);
+   DSL_CHECK_DIRECTION(nDirection);
    DSL_CHECK_ERR_CODE();
 
    DSL_CTX_READ_SCALAR(pContext, nErrCode,
--- a/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
+++ b/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
@@ -480,7 +480,8 @@ DSL_Error_t DSL_DRV_BND_DEV_PafBndStatus
    else
    {
       pData->nRemotePafSupported =
-         pafHsStatus.bPafEnable ? DSL_BND_ENABLE_ON : DSL_BND_ENABLE_OFF;
+         pafHsStatus.bPafEnable ? (DSL_BND_Supported_t)DSL_BND_ENABLE_ON :
+                                  (DSL_BND_Supported_t)DSL_BND_ENABLE_OFF;
    }
 
    DSL_DEBUG(DSL_DBG_MSG, (pContext,
@@ -517,7 +518,8 @@ DSL_Error_t DSL_DRV_BND_DEV_ImapBndStatu
    else
    {
       pData->nRemoteImapSupported =
-         imapHsStatus.bImapEnable ? DSL_BND_ENABLE_ON : DSL_BND_ENABLE_OFF;
+         imapHsStatus.bImapEnable ? (DSL_BND_Supported_t)DSL_BND_ENABLE_ON :
+                                    (DSL_BND_Supported_t)DSL_BND_ENABLE_OFF;
    }
 
    DSL_DEBUG(DSL_DBG_MSG, (pContext,
