Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/tegra: Remove struct tegra_fbdev

Remove struct tegra_fbdev, which is an empty wrapper around struct
drm_fb_helper. Use the latter directly. No functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>

authored by

Thomas Zimmermann and committed by
Thierry Reding
43443460 08263e91

+22 -47
-10
drivers/gpu/drm/tegra/drm.h
··· 29 29 30 30 struct reset_control; 31 31 32 - #ifdef CONFIG_DRM_FBDEV_EMULATION 33 - struct tegra_fbdev { 34 - struct drm_fb_helper base; 35 - }; 36 - #endif 37 - 38 32 struct tegra_drm { 39 33 struct drm_device *drm; 40 34 ··· 45 51 46 52 struct mutex clients_lock; 47 53 struct list_head clients; 48 - 49 - #ifdef CONFIG_DRM_FBDEV_EMULATION 50 - struct tegra_fbdev *fbdev; 51 - #endif 52 54 53 55 unsigned int hmask, vmask; 54 56 unsigned int pitch_align;
+22 -37
drivers/gpu/drm/tegra/fb.c
··· 18 18 #include "drm.h" 19 19 #include "gem.h" 20 20 21 - #ifdef CONFIG_DRM_FBDEV_EMULATION 22 - static inline struct tegra_fbdev *to_tegra_fbdev(struct drm_fb_helper *helper) 23 - { 24 - return container_of(helper, struct tegra_fbdev, base); 25 - } 26 - #endif 27 - 28 21 struct tegra_bo *tegra_fb_get_plane(struct drm_framebuffer *framebuffer, 29 22 unsigned int index) 30 23 { ··· 290 297 .fb_probe = tegra_fbdev_probe, 291 298 }; 292 299 293 - static struct tegra_fbdev *tegra_fbdev_create(struct drm_device *drm) 300 + static struct drm_fb_helper *tegra_fbdev_create(struct drm_device *drm) 294 301 { 295 - struct tegra_fbdev *fbdev; 302 + struct drm_fb_helper *helper; 296 303 297 - fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL); 298 - if (!fbdev) { 304 + helper = kzalloc(sizeof(*helper), GFP_KERNEL); 305 + if (!helper) { 299 306 dev_err(drm->dev, "failed to allocate DRM fbdev\n"); 300 307 return ERR_PTR(-ENOMEM); 301 308 } 302 309 303 - drm_fb_helper_prepare(drm, &fbdev->base, 32, &tegra_fb_helper_funcs); 310 + drm_fb_helper_prepare(drm, helper, 32, &tegra_fb_helper_funcs); 304 311 305 - return fbdev; 312 + return helper; 306 313 } 307 314 308 - static void tegra_fbdev_free(struct tegra_fbdev *fbdev) 315 + static void tegra_fbdev_free(struct drm_fb_helper *helper) 309 316 { 310 - drm_fb_helper_unprepare(&fbdev->base); 311 - kfree(fbdev); 317 + drm_fb_helper_unprepare(helper); 318 + kfree(helper); 312 319 } 313 320 314 - static int tegra_fbdev_init(struct tegra_fbdev *fbdev, 321 + static int tegra_fbdev_init(struct drm_fb_helper *helper, 315 322 unsigned int num_crtc, 316 323 unsigned int max_connectors) 317 324 { 318 - struct drm_device *drm = fbdev->base.dev; 325 + struct drm_device *drm = helper->dev; 319 326 int err; 320 327 321 - err = drm_fb_helper_init(drm, &fbdev->base); 328 + err = drm_fb_helper_init(drm, helper); 322 329 if (err < 0) { 323 330 dev_err(drm->dev, "failed to initialize DRM FB helper: %d\n", 324 331 err); 325 332 return err; 326 333 } 327 334 328 - err = drm_fb_helper_initial_config(&fbdev->base); 335 + err = drm_fb_helper_initial_config(helper); 329 336 if (err < 0) { 330 337 dev_err(drm->dev, "failed to set initial configuration: %d\n", 331 338 err); ··· 335 342 return 0; 336 343 337 344 fini: 338 - drm_fb_helper_fini(&fbdev->base); 345 + drm_fb_helper_fini(helper); 339 346 return err; 340 347 } 341 348 342 - static void tegra_fbdev_exit(struct tegra_fbdev *fbdev) 349 + static void tegra_fbdev_exit(struct drm_fb_helper *helper) 343 350 { 344 - struct drm_fb_helper *helper = &fbdev->base; 345 351 struct drm_framebuffer *fb = helper->fb; 346 352 347 353 drm_fb_helper_unregister_info(helper); ··· 358 366 } 359 367 360 368 drm_fb_helper_fini(helper); 361 - tegra_fbdev_free(fbdev); 369 + tegra_fbdev_free(helper); 362 370 } 363 371 #endif 364 372 365 373 int tegra_drm_fb_prepare(struct drm_device *drm) 366 374 { 367 375 #ifdef CONFIG_DRM_FBDEV_EMULATION 368 - struct tegra_drm *tegra = drm->dev_private; 369 - 370 - tegra->fbdev = tegra_fbdev_create(drm); 371 - if (IS_ERR(tegra->fbdev)) 372 - return PTR_ERR(tegra->fbdev); 376 + drm->fb_helper = tegra_fbdev_create(drm); 377 + if (IS_ERR(drm->fb_helper)) 378 + return PTR_ERR(drm->fb_helper); 373 379 #endif 374 380 375 381 return 0; ··· 376 386 void tegra_drm_fb_free(struct drm_device *drm) 377 387 { 378 388 #ifdef CONFIG_DRM_FBDEV_EMULATION 379 - struct tegra_drm *tegra = drm->dev_private; 380 - 381 - tegra_fbdev_free(tegra->fbdev); 389 + tegra_fbdev_free(drm->fb_helper); 382 390 #endif 383 391 } 384 392 385 393 int tegra_drm_fb_init(struct drm_device *drm) 386 394 { 387 395 #ifdef CONFIG_DRM_FBDEV_EMULATION 388 - struct tegra_drm *tegra = drm->dev_private; 389 396 int err; 390 397 391 - err = tegra_fbdev_init(tegra->fbdev, drm->mode_config.num_crtc, 398 + err = tegra_fbdev_init(drm->fb_helper, drm->mode_config.num_crtc, 392 399 drm->mode_config.num_connector); 393 400 if (err < 0) 394 401 return err; ··· 397 410 void tegra_drm_fb_exit(struct drm_device *drm) 398 411 { 399 412 #ifdef CONFIG_DRM_FBDEV_EMULATION 400 - struct tegra_drm *tegra = drm->dev_private; 401 - 402 - tegra_fbdev_exit(tegra->fbdev); 413 + tegra_fbdev_exit(drm->fb_helper); 403 414 #endif 404 415 }