struct ast_vbios_mode_info *vbios_mode)
 {
        struct ast_private *ast = crtc->dev->dev_private;
+       const struct drm_framebuffer *fb = crtc->primary->fb;
        u32 refresh_rate_index = 0, mode_id, color_index, refresh_rate;
        u32 hborder, vborder;
        bool check_sync;
        struct ast_vbios_enhtable *best = NULL;
 
-       switch (crtc->primary->fb->bits_per_pixel) {
+       switch (fb->bits_per_pixel) {
        case 8:
                vbios_mode->std_table = &vbios_stdtable[VGAModeIndex];
                color_index = VGAModeIndex - 1;
                ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0x00);
                if (vbios_mode->enh_table->flags & NewModeInfo) {
                        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0xa8);
-                       ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x92, crtc->primary->fb->bits_per_pixel);
+                       ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x92, fb->bits_per_pixel);
                        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x93, adjusted_mode->clock / 1000);
                        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x94, adjusted_mode->crtc_hdisplay);
                        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x95, adjusted_mode->crtc_hdisplay >> 8);
 static void ast_set_offset_reg(struct drm_crtc *crtc)
 {
        struct ast_private *ast = crtc->dev->dev_private;
+       const struct drm_framebuffer *fb = crtc->primary->fb;
 
        u16 offset;
 
-       offset = crtc->primary->fb->pitches[0] >> 3;
+       offset = fb->pitches[0] >> 3;
        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x13, (offset & 0xff));
        ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xb0, (offset >> 8) & 0x3f);
 }
                             struct ast_vbios_mode_info *vbios_mode)
 {
        struct ast_private *ast = crtc->dev->dev_private;
+       const struct drm_framebuffer *fb = crtc->primary->fb;
        u8 jregA0 = 0, jregA3 = 0, jregA8 = 0;
 
-       switch (crtc->primary->fb->bits_per_pixel) {
+       switch (fb->bits_per_pixel) {
        case 8:
                jregA0 = 0x70;
                jregA3 = 0x01;
 static bool ast_set_dac_reg(struct drm_crtc *crtc, struct drm_display_mode *mode,
                     struct ast_vbios_mode_info *vbios_mode)
 {
-       switch (crtc->primary->fb->bits_per_pixel) {
+       const struct drm_framebuffer *fb = crtc->primary->fb;
+
+       switch (fb->bits_per_pixel) {
        case 8:
                break;
        default: