Pass the drm_device to drm_helper_mode_fill_fb_struct() so that we can
populate fb->dev early. Will make it easier to use the fb before we
register it.
@@
identifier fb, mode_cmd;
@@
 void drm_helper_mode_fill_fb_struct(
+				     struct drm_device *dev,
				     struct drm_framebuffer *fb,
				     const struct drm_mode_fb_cmd2 *mode_cmd
				     );
@@
identifier fb, mode_cmd;
@@
 void drm_helper_mode_fill_fb_struct(
+				     struct drm_device *dev,
				     struct drm_framebuffer *fb,
				     const struct drm_mode_fb_cmd2 *mode_cmd
				     )
{ ... }
@@
function func;
identifier dev;
expression E1, E2;
@@
func(struct drm_device *dev, ...)
{
 ...
 drm_helper_mode_fill_fb_struct(
+				dev,
				E1, E2);
 ...
}
@@
expression E1, E2;
@@
 drm_helper_mode_fill_fb_struct(
+				dev,
				E1, E2);
v2: Rerun spatch due to code changes
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1481748539-18283-1-git-send-email-ville.syrjala@linux.intel.com
 {
        int ret;
        rfb->obj = obj;
-       drm_helper_mode_fill_fb_struct(&rfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &rfb->base, mode_cmd);
        ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs);
        if (ret) {
                rfb->obj = NULL;
 
        dfb->mod = config;
        dfb->obj = obj;
 
-       drm_helper_mode_fill_fb_struct(&dfb->fb, mode);
+       drm_helper_mode_fill_fb_struct(dev, &dfb->fb, mode);
 
        ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
        if (ret) {
 
 {
        int ret;
 
-       drm_helper_mode_fill_fb_struct(&ast_fb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &ast_fb->base, mode_cmd);
        ast_fb->obj = obj;
        ret = drm_framebuffer_init(dev, &ast_fb->base, &ast_fb_funcs);
        if (ret) {
 
 {
        int ret;
 
-       drm_helper_mode_fill_fb_struct(&gfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &gfb->base, mode_cmd);
        gfb->obj = obj;
        ret = drm_framebuffer_init(dev, &gfb->base, &bochs_fb_funcs);
        if (ret) {
 
 {
        int ret;
 
-       drm_helper_mode_fill_fb_struct(&gfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &gfb->base, mode_cmd);
        gfb->obj = obj;
        ret = drm_framebuffer_init(dev, &gfb->base, &cirrus_fb_funcs);
        if (ret) {
 
        if (!fb_cma)
                return ERR_PTR(-ENOMEM);
 
-       drm_helper_mode_fill_fb_struct(&fb_cma->fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &fb_cma->fb, mode_cmd);
 
        for (i = 0; i < num_planes; i++)
                fb_cma->obj[i] = obj[i];
 
  * This helper can be used in a drivers fb_create callback to pre-fill the fb's
  * metadata fields.
  */
-void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
+void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
+                                   struct drm_framebuffer *fb,
                                    const struct drm_mode_fb_cmd2 *mode_cmd)
 {
        const struct drm_format_info *info;
 
                                                + mode_cmd->offsets[i];
        }
 
-       drm_helper_mode_fill_fb_struct(&exynos_fb->fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &exynos_fb->fb, mode_cmd);
 
        ret = drm_framebuffer_init(dev, &exynos_fb->fb, &exynos_drm_fb_funcs);
        if (ret < 0) {
 
        if (mode_cmd->pitches[0] & 63)
                return -EINVAL;
 
-       drm_helper_mode_fill_fb_struct(&fb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &fb->base, mode_cmd);
        fb->gtt = gt;
        ret = drm_framebuffer_init(dev, &fb->base, &psb_fb_funcs);
        if (ret) {
 
                return ERR_PTR(-ENOMEM);
        }
 
-       drm_helper_mode_fill_fb_struct(&hibmc_fb->fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &hibmc_fb->fb, mode_cmd);
        hibmc_fb->obj = obj;
        ret = drm_framebuffer_init(dev, &hibmc_fb->fb, &hibmc_fb_funcs);
        if (ret) {
 
        if (mode_cmd->offsets[0] != 0)
                return -EINVAL;
 
-       drm_helper_mode_fill_fb_struct(&intel_fb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &intel_fb->base, mode_cmd);
        intel_fb->obj = obj;
 
        ret = intel_fill_fb_info(dev_priv, &intel_fb->base);
 
        if (!mtk_fb)
                return ERR_PTR(-ENOMEM);
 
-       drm_helper_mode_fill_fb_struct(&mtk_fb->base, mode);
+       drm_helper_mode_fill_fb_struct(dev, &mtk_fb->base, mode);
 
        mtk_fb->gem_obj = obj;
 
 
 {
        int ret;
        
-       drm_helper_mode_fill_fb_struct(&gfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &gfb->base, mode_cmd);
        gfb->obj = obj;
        ret = drm_framebuffer_init(dev, &gfb->base, &mga_fb_funcs);
        if (ret) {
 
                msm_fb->planes[i] = bos[i];
        }
 
-       drm_helper_mode_fill_fb_struct(fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
 
        ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
        if (ret) {
 
        if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
                return -ENOMEM;
 
-       drm_helper_mode_fill_fb_struct(&fb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &fb->base, mode_cmd);
        fb->nvbo = nvbo;
 
        ret = drm_framebuffer_init(dev, &fb->base, &nouveau_framebuffer_funcs);
 
                plane->paddr  = 0;
        }
 
-       drm_helper_mode_fill_fb_struct(fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
 
        ret = drm_framebuffer_init(dev, fb, &omap_framebuffer_funcs);
        if (ret) {
 
                qfb->obj = NULL;
                return ret;
        }
-       drm_helper_mode_fill_fb_struct(&qfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &qfb->base, mode_cmd);
        return 0;
 }
 
 
 {
        int ret;
        rfb->obj = obj;
-       drm_helper_mode_fill_fb_struct(&rfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &rfb->base, mode_cmd);
        ret = drm_framebuffer_init(dev, &rfb->base, &radeon_fb_funcs);
        if (ret) {
                rfb->obj = NULL;
 
        if (!rockchip_fb)
                return ERR_PTR(-ENOMEM);
 
-       drm_helper_mode_fill_fb_struct(&rockchip_fb->fb, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &rockchip_fb->fb, mode_cmd);
 
        for (i = 0; i < num_planes; i++)
                rockchip_fb->obj[i] = obj[i];
 
 
        fb->num_planes = num_planes;
 
-       drm_helper_mode_fill_fb_struct(&fb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(drm, &fb->base, mode_cmd);
 
        for (i = 0; i < fb->num_planes; i++)
                fb->planes[i] = planes[i];
 
        int ret;
 
        ufb->obj = obj;
-       drm_helper_mode_fill_fb_struct(&ufb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &ufb->base, mode_cmd);
        ret = drm_framebuffer_init(dev, &ufb->base, &udlfb_funcs);
        return ret;
 }
 
                vgfb->obj = NULL;
                return ret;
        }
-       drm_helper_mode_fill_fb_struct(&vgfb->base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd);
 
        spin_lock_init(&vgfb->dirty_lock);
        vgfb->x1 = vgfb->y1 = INT_MAX;
 
                goto out_err1;
        }
 
-       drm_helper_mode_fill_fb_struct(&vfbs->base.base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &vfbs->base.base, mode_cmd);
        vfbs->surface = vmw_surface_reference(surface);
        vfbs->base.user_handle = mode_cmd->handles[0];
        vfbs->is_dmabuf_proxy = is_dmabuf_proxy;
                goto out_err1;
        }
 
-       drm_helper_mode_fill_fb_struct(&vfbd->base.base, mode_cmd);
+       drm_helper_mode_fill_fb_struct(dev, &vfbd->base.base, mode_cmd);
        vfbd->base.dmabuf = true;
        vfbd->buffer = vmw_dmabuf_reference(dmabuf);
        vfbd->base.user_handle = mode_cmd->handles[0];
 
 
 void drm_helper_move_panel_connectors_to_head(struct drm_device *);
 
-void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
+void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
+                                   struct drm_framebuffer *fb,
                                    const struct drm_mode_fb_cmd2 *mode_cmd);
 
 int drm_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,