linux/drivers/gpu/drm
Noralf Trønnes f53705fd98 drm/imx: Use drm_fbdev_generic_setup()
The CMA helper is already using the drm_fb_helper_generic_probe part of
the generic fbdev emulation. This patch makes full use of the generic
fbdev emulation by using its drm_client callbacks. This means that
drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are
now handled by the emulation code. Additionally fbdev unregister happens
automatically on drm_dev_unregister().

The drm_fbdev_generic_setup() call is put after drm_dev_register() in the
driver. This is done to highlight the fact that fbdev emulation is an
internal client that makes use of the driver, it is not part of the
driver as such. If fbdev setup fails, an error is printed, but the driver
succeeds probing.

CONFIG_DRM_FBDEV_EMULATION wasn't honoured by the CMA helper, but it is by
drm_fb_helper.

Cc: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Tested-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20180908134648.2582-12-noralf@tronnes.org
2018-09-25 11:32:15 +02:00
..
amd drm/amdgpu: Use per-device driver_features to disable atomic 2018-09-13 21:24:06 +03:00
arc
arm drm/arm/mali: Use drm_fbdev_generic_setup() 2018-09-25 11:31:29 +02:00
armada drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
ast
atmel-hlcdc drm/atmel-hlcdc: support bus-width (12/16/18/24) in endpoint nodes 2018-08-27 21:22:52 +02:00
bochs bochs: convert to drm_dev_register 2018-09-10 07:10:38 +02:00
bridge drm/bridge: analogix_dp: Downgrade "Link Training" messages to dev_dbg 2018-09-13 10:47:17 +02:00
cirrus drm/cirrus: use simpler remove_conflicting_pci_framebuffers() 2018-09-03 18:16:47 +02:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2018-08-08 06:07:30 +10:00
exynos
fsl-dcu
gma500 Merge drm/drm-next into drm-misc-next 2018-08-27 10:00:03 -04:00
hisilicon
i2c VLA leftovers pull summary: 2018-08-17 10:40:09 -07:00
i810
i915 drm: Change limited M/N quirk to constant N quirk. 2018-09-19 16:44:12 +03:00
imx drm/imx: Use drm_fbdev_generic_setup() 2018-09-25 11:32:15 +02:00
lib
mediatek Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
meson
mga
mgag200 drm/mgag200: use simpler remove_conflicting_pci_framebuffers() 2018-09-03 18:17:32 +02:00
msm drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
mxsfb
nouveau fbdev: Drop FBINFO_CAN_FORCE_OUTPUT flag 2018-09-11 14:11:01 +02:00
omapdrm
panel drm/panel: simple: tv123wam: Add unprepare delay 2018-08-14 13:42:37 -04:00
pl111
qxl qxl: refactor to use drm_fb_helper_fbdev_setup 2018-09-12 09:01:18 +02:00
r128
radeon drm/radeon: use simpler remove_conflicting_pci_framebuffers() 2018-09-03 18:17:20 +02:00
rcar-du drm/crc: Cleanup crtc_crc_open function 2018-08-22 09:47:58 -07:00
rockchip drm/rockchip: Allow driver to be shutdown on reboot/kexec 2018-09-10 10:52:27 +02:00
savage
scheduler drm/scheduler: fix param documentation 2018-08-09 11:57:39 -05:00
selftests
shmobile
sis
sti drm/sti: do not remove the drm_bridge that was never added 2018-08-07 15:33:00 +02:00
stm
sun4i drm/sun4i: add support for R40 HDMI PHY 2018-09-19 10:59:21 +02:00
tdfx
tegra drm/tegra: kick out simplefb 2018-09-03 18:18:08 +02:00
tilcdc
tinydrm drm/tinydrm: Replace drm_dev_unref with drm_dev_put 2018-08-07 17:09:15 +02:00
ttm drm/ttm: clean up non-x86 definitions on ttm_tt 2018-08-01 17:23:56 -05:00
tve200
udl
v3d drm: expand replace_fence to support timeline point v2 2018-09-06 11:09:31 +02:00
vc4 drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
vgem drm/vgem: Remove unecessary dma_fence_ops 2018-08-17 11:22:58 +02:00
via
virtio drm/virtio: add dma sync for dma mapped virtio gpu framebuffer pages 2018-09-19 13:33:06 +02:00
vkms drm/vkms: Fix possible memory leak in _vkms_get_crc() 2018-09-21 10:50:45 +02:00
vmwgfx Merge drm/drm-next into drm-misc-next 2018-08-27 10:00:03 -04:00
xen
zte gpu: do not double put device node in zx_drm_probe 2018-09-19 14:24:05 -07:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
drm_atomic_helper.c drm/atomic: Initialise planes with opaque alpha values 2018-09-20 13:55:01 +01:00
drm_atomic_uapi.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_auth.c
drm_blend.c drm: Clarify DRM_MODE_REFLECT_X/Y documentation 2018-09-11 11:21:30 +01:00
drm_bridge.c drm: bridge: document bridge attach/detach imbalance 2018-09-13 11:28:12 +02:00
drm_bufs.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_cache.c
drm_client.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_color_mgmt.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_connector.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_context.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_crtc.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_crtc_helper.c drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
drm_crtc_helper_internal.h
drm_crtc_internal.h drm: refuse ADDFB2 ioctl for broken bigendian drivers 2018-09-10 07:10:36 +02:00
drm_debugfs.c
drm_debugfs_crc.c Revert "drm: crc: Wait for a frame before returning from open()" 2018-08-22 09:50:16 -07:00
drm_dma.c
drm_dp_aux_dev.c
drm_dp_cec.c drm_dp_cec: add note about good MegaChips 2900 CEC support 2018-08-31 10:20:38 +02:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: add LG eDP panel to quirk database 2018-09-19 16:44:12 +03:00
drm_dp_mst_topology.c drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read() 2018-08-31 10:20:38 +02:00
drm_drv.c drm: Introduce per-device driver_features 2018-09-13 18:44:06 +03:00
drm_dumb_buffers.c
drm_edid.c drm/edid: Add 6 bpc quirk for SDC panel in Lenovo B50-80 2018-08-23 10:25:39 +02:00
drm_edid_load.c
drm_encoder.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Use horizontal and vertical chroma subsampling factor while calculating offsets in the physical address of framebuffer 2018-08-20 14:13:43 +01:00
drm_fb_helper.c drm/fb-helper: Improve error reporting in setup 2018-09-25 11:28:44 +02:00
drm_file.c
drm_flip_work.c
drm_fourcc.c drm: Reject unknown legacy bpp and depth for drm_mode_addfb ioctl 2018-09-06 08:07:41 +01:00
drm_framebuffer.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_gem.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm: Drop drmP.h from drm_connector.c 2018-09-09 14:19:17 +02:00
drm_ioc32.c
drm_ioctl.c drm: Return -EOPNOTSUPP in drm_setclientcap() when driver do not support KMS 2018-09-21 11:19:40 +02:00
drm_irq.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_kms_helper_common.c
drm_lease.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_legacy.h
drm_lock.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_mode_object.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c drm/panel: Fix sphinx warning 2018-08-16 11:30:02 -04:00
drm_panel_orientation_quirks.c
drm_pci.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_plane.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_plane_helper.c drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
drm_prime.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_print.c
drm_probe_helper.c
drm_property.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_rect.c
drm_scatter.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_scdc_helper.c
drm_simple_kms_helper.c
drm_syncobj.c drm: Fix syncobj handing of schedule() returning 0 2018-09-21 10:31:12 +01:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm: Differentiate the lack of an interface from invalid parameter 2018-09-14 17:29:47 +01:00
drm_vm.c
drm_vma_manager.c drm: Remove "protection" around drm_vma_offset_manager_destroy() 2018-09-04 19:00:32 +01:00
drm_writeback.c
Kconfig
Makefile drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00