__SMU_DUMMY_MAP(SetSoftMinVpe), \
        __SMU_DUMMY_MAP(GetMetricsVersion), \
        __SMU_DUMMY_MAP(EnableUCLKShadow), \
-       __SMU_DUMMY_MAP(RmaDueToBadPageThreshold),\
+       __SMU_DUMMY_MAP(RmaDueToBadPageThreshold), \
 +      __SMU_DUMMY_MAP(SelectPstatePolicy), \
        __SMU_DUMMY_MAP(MALLPowerController), \
        __SMU_DUMMY_MAP(MALLPowerState),
  
 
                info->flags |= FBINFO_READS_FAST; /* signal caching */
        info->screen_size = sizes->surface_height * fb->pitches[0];
        info->screen_buffer = map.vaddr;
-       info->fix.smem_start = page_to_phys(virt_to_page(info->screen_buffer));
+       if (!(info->flags & FBINFO_HIDE_SMEM_START)) {
+               if (!drm_WARN_ON(dev, is_vmalloc_addr(info->screen_buffer)))
+                       info->fix.smem_start = page_to_phys(virt_to_page(info->screen_buffer));
+       }
        info->fix.smem_len = info->screen_size;
  
 +      /* deferred I/O */
 +      fb_helper->fbdefio.delay = HZ / 20;
 +      fb_helper->fbdefio.deferred_io = drm_fb_helper_deferred_io;
 +
 +      info->fbdefio = &fb_helper->fbdefio;
 +      ret = fb_deferred_io_init(info);
 +      if (ret)
 +              goto err_drm_fb_helper_release_info;
 +
        return 0;
  
 +err_drm_fb_helper_release_info:
 +      drm_fb_helper_release_info(fb_helper);
  err_drm_client_buffer_vunmap:
        fb_helper->fb = NULL;
        fb_helper->buffer = NULL;