/* Lane ID for general configuration registers */
 #define GENERAL_CONFIG 4
 
+/* LINK_TUNING_PARAMETERS fields */
+#define TUNING_METHOD_SHIFT 24
+
+/* LINK_OPTIMIZATION_SETTINGS fields */
+#define ENABLE_EXT_DEV_CONFIG_SHIFT 24
+
 /* LOAD_DATA 8051 command shifts and fields */
 #define LOAD_DATA_FIELD_ID_SHIFT 40
 #define LOAD_DATA_FIELD_ID_MASK 0xfull
 
        /* Enable external device config if channel is limiting active */
        read_8051_config(ppd->dd, LINK_OPTIMIZATION_SETTINGS,
                         GENERAL_CONFIG, &config_data);
-       config_data |= limiting_active;
+       config_data &= ~(0xff << ENABLE_EXT_DEV_CONFIG_SHIFT);
+       config_data |= ((u32)limiting_active << ENABLE_EXT_DEV_CONFIG_SHIFT);
        ret = load_8051_config(ppd->dd, LINK_OPTIMIZATION_SETTINGS,
                               GENERAL_CONFIG, config_data);
        if (ret != HCMD_SUCCESS)
        /* Pass tuning method to 8051 */
        read_8051_config(ppd->dd, LINK_TUNING_PARAMETERS, GENERAL_CONFIG,
                         &config_data);
-       config_data |= tuning_method;
+       config_data &= ~(0xff << TUNING_METHOD_SHIFT);
+       config_data |= ((u32)tuning_method << TUNING_METHOD_SHIFT);
        ret = load_8051_config(ppd->dd, LINK_TUNING_PARAMETERS, GENERAL_CONFIG,
                               config_data);
        if (ret != HCMD_SUCCESS)