diff options
| author | Boris Brezillon <boris.brezillon@free-electrons.com> | 2016-11-28 09:56:53 -0500 |
|---|---|---|
| committer | Boris Brezillon <boris.brezillon@free-electrons.com> | 2017-01-30 04:49:34 -0500 |
| commit | db02b7614a54bf0bf548db07bc8d3e7518fd9481 (patch) | |
| tree | a892d11be8978a058b8db4844dac7fa7ce446ba5 /drivers/gpu | |
| parent | 7ce7d89f48834cefece7804d38fc5d85382edf77 (diff) | |
drm/atmel-hlcdc: Rework the fbdev creation logic
Now that we wait for DRM panels to be available before registering the
DRM device (returning -EPROBE_DEFER if the panel has not been probed
yet), we no longer need to put the fbdev creation code in
->output_poll_changed().
This removes the 10 secs delay between DRM dev registration and fbdev
creation (polling period = 10 seconds).
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reported-by: Alex Vazquez <avazquez.dev@gmail.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c index cbd0070265c9..0bf32d6ac39b 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | |||
| @@ -431,15 +431,8 @@ static void atmel_hlcdc_fb_output_poll_changed(struct drm_device *dev) | |||
| 431 | { | 431 | { |
| 432 | struct atmel_hlcdc_dc *dc = dev->dev_private; | 432 | struct atmel_hlcdc_dc *dc = dev->dev_private; |
| 433 | 433 | ||
| 434 | if (dc->fbdev) { | 434 | if (dc->fbdev) |
| 435 | drm_fbdev_cma_hotplug_event(dc->fbdev); | 435 | drm_fbdev_cma_hotplug_event(dc->fbdev); |
| 436 | } else { | ||
| 437 | dc->fbdev = drm_fbdev_cma_init(dev, 24, | ||
| 438 | dev->mode_config.num_crtc, | ||
| 439 | dev->mode_config.num_connector); | ||
| 440 | if (IS_ERR(dc->fbdev)) | ||
| 441 | dc->fbdev = NULL; | ||
| 442 | } | ||
| 443 | } | 436 | } |
| 444 | 437 | ||
| 445 | struct atmel_hlcdc_dc_commit { | 438 | struct atmel_hlcdc_dc_commit { |
| @@ -653,10 +646,13 @@ static int atmel_hlcdc_dc_load(struct drm_device *dev) | |||
| 653 | 646 | ||
| 654 | platform_set_drvdata(pdev, dev); | 647 | platform_set_drvdata(pdev, dev); |
| 655 | 648 | ||
| 656 | drm_kms_helper_poll_init(dev); | 649 | dc->fbdev = drm_fbdev_cma_init(dev, 24, |
| 650 | dev->mode_config.num_crtc, | ||
| 651 | dev->mode_config.num_connector); | ||
| 652 | if (IS_ERR(dc->fbdev)) | ||
| 653 | dc->fbdev = NULL; | ||
| 657 | 654 | ||
| 658 | /* force connectors detection */ | 655 | drm_kms_helper_poll_init(dev); |
| 659 | drm_helper_hpd_irq_event(dev); | ||
| 660 | 656 | ||
| 661 | return 0; | 657 | return 0; |
| 662 | 658 | ||
