POKE32(PANEL_PLL_CTRL, formatPllReg(pll));
 
-               POKE32(PANEL_HORIZONTAL_TOTAL,
-               FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, TOTAL, pModeParam->horizontal_total - 1)
-               | FIELD_VALUE(0, PANEL_HORIZONTAL_TOTAL, DISPLAY_END, pModeParam->horizontal_display_end - 1));
+               reg = ((pModeParam->horizontal_total - 1) <<
+                       PANEL_HORIZONTAL_TOTAL_TOTAL_SHIFT) &
+                       PANEL_HORIZONTAL_TOTAL_TOTAL_MASK;
+               reg |= ((pModeParam->horizontal_display_end - 1) &
+                       PANEL_HORIZONTAL_TOTAL_DISPLAY_END_MASK);
+               POKE32(PANEL_HORIZONTAL_TOTAL, reg);
 
                POKE32(PANEL_HORIZONTAL_SYNC,
                FIELD_VALUE(0, PANEL_HORIZONTAL_SYNC, WIDTH, pModeParam->horizontal_sync_width)
 
 #define PANEL_PLANE_BR_RIGHT_MASK                     0xeff
 
 #define PANEL_HORIZONTAL_TOTAL                        0x080024
-#define PANEL_HORIZONTAL_TOTAL_TOTAL                  27:16
-#define PANEL_HORIZONTAL_TOTAL_DISPLAY_END            11:0
+#define PANEL_HORIZONTAL_TOTAL_TOTAL_SHIFT            16
+#define PANEL_HORIZONTAL_TOTAL_TOTAL_MASK             (0xfff << 16)
+#define PANEL_HORIZONTAL_TOTAL_DISPLAY_END_MASK       0xfff
 
 #define PANEL_HORIZONTAL_SYNC                         0x080028
 #define PANEL_HORIZONTAL_SYNC_WIDTH                   23:16