1
0
Fork 0
alistair23-linux/drivers/gpu/drm/nouveau
Thierry Reding 10a2310265 drm: Introduce drm_fb_helper_prepare()
To implement hotplug detection in a race-free manner, drivers must call
drm_kms_helper_poll_init() before hotplug events can be triggered. Such
events can be triggered right after any of the encoders or connectors
are initialized. At the same time, if the drm_fb_helper_hotplug_event()
helper is used by a driver, then the poll helper requires some parts of
the FB helper to be initialized to prevent a crash.

At the same time, drm_fb_helper_init() requires information that is not
necessarily available at such an early stage (number of CRTCs and
connectors), so it cannot be used yet.

Add a new helper, drm_fb_helper_prepare(), that initializes the bare
minimum needed to allow drm_kms_helper_poll_init() to execute and any
subsequent hotplug events to be processed properly.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-07-08 11:31:28 +10:00
..
core drm/nouveau/disp: fix oops in destructor with headless cards 2014-06-18 15:49:50 +10:00
dispnv04 drm/nouveau: replace drm_get_connector_name() with direct name field use 2014-06-04 13:14:41 +10:00
Kconfig ACPI / gpu / drm: Stop selecting VIDEO_OUTPUT_CONTROL 2014-03-20 02:37:22 +01:00
Makefile drm/gf117/i2c: no aux channels on this chipset 2014-06-18 15:49:50 +10:00
nouveau_abi16.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_abi16.h drm/nouveau: port all engines to new engine module format 2012-10-03 13:12:56 +10:00
nouveau_acpi.c drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi 2014-05-02 16:24:52 +10:00
nouveau_acpi.h nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES 2013-02-20 16:05:16 +10:00
nouveau_agp.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_agp.h drm/nouveau: implement devinit subdev, and new init table parser 2012-10-03 13:12:47 +10:00
nouveau_backlight.c nouveau: Don't check acpi_video_backlight_support() before registering backlight 2014-05-27 01:29:00 +02:00
nouveau_bios.c drm/nouveau: recognise higher link rate for available dp bw calculations 2014-03-26 14:08:21 +10:00
nouveau_bios.h drm/nv04/disp: hide all the cruft away in its own little hole 2013-04-26 15:37:51 +10:00
nouveau_bo.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_bo.h drm/nouveau: embed gem object in nouveau_bo 2013-10-09 14:37:55 +10:00
nouveau_chan.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_chan.h drm/nve0: use async copy engine for ttm buffer moves if available 2012-10-03 13:13:02 +10:00
nouveau_connector.c drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
nouveau_connector.h drm/nouveau: register a drm_dp_aux channel for each dp connector 2014-06-11 16:11:04 +10:00
nouveau_crtc.h drm/nv50-: prepare for attaching a SOR to multiple heads 2014-06-11 16:11:29 +10:00
nouveau_debugfs.c drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_debugfs.h drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_display.c drm/nouveau/kms: reference vblank for crtc during pageflip. 2014-06-17 14:41:41 +10:00
nouveau_display.h drm/nouveau: implement hooks for needed for drm vblank timestamping support 2014-01-30 09:20:27 +10:00
nouveau_dma.c drm: Kill DRM_*MEMORYBARRIER 2013-12-18 11:35:21 +10:00
nouveau_dma.h drm: Kill DRM_*MEMORYBARRIER 2013-12-18 11:35:21 +10:00
nouveau_dp.c drm/nouveau/dp: probe dpcd to determine connectedness 2014-06-11 16:11:42 +10:00
nouveau_drm.c Merge tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-04-05 16:14:21 +10:00
nouveau_drm.h drm/nouveau: use nv_debug for NV_DEBUG, make DRM a separate subflag 2014-03-26 13:59:32 +10:00
nouveau_encoder.h drm/nouveau/dp: probe dpcd to determine connectedness 2014-06-11 16:11:42 +10:00
nouveau_fbcon.c drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
nouveau_fbcon.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
nouveau_fence.c drm/nouveau/core: allow event source to handle multiple event types per index 2014-06-11 16:09:13 +10:00
nouveau_fence.h drm/nouveau: delay busy bo vma removal until fence signals 2013-07-01 13:50:31 +10:00
nouveau_gem.c drm: init TTM dev_mapping in ttm_bo_device_init() 2014-03-16 12:23:42 +01:00
nouveau_gem.h drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
nouveau_hwmon.c drm/nouveau/hwmon: replace strict_strtol() with kstrtol() 2014-03-26 13:59:31 +10:00
nouveau_hwmon.h drm/nouveau/drm/pm: remove everything except the hwmon interfaces to THERM 2013-11-08 15:40:00 +10:00
nouveau_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
nouveau_ioctl.h drm/nouveau: fix up 32-bit ioctls and device wake up. 2013-09-02 09:52:55 +10:00
nouveau_prime.c drm/nouveau: embed gem object in nouveau_bo 2013-10-09 14:37:55 +10:00
nouveau_reg.h drm/nva3/backlight: add suppport for newer style backlight regs 2011-09-20 16:10:06 +10:00
nouveau_sgdma.c drm/nouveau/vm: reduce number of entry-points to vm_map() 2014-01-23 13:38:25 +10:00
nouveau_sysfs.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_sysfs.h drm/nouveau: implement a simple sysfs interface to new pm code 2013-11-08 15:40:18 +10:00
nouveau_ttm.c drm/ttm: fix handling of TTM_PL_FLAG_TOPDOWN v2 2014-07-08 11:15:58 +10:00
nouveau_ttm.h drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nouveau_vga.c drm: Rip out totally bogus vga_switcheroo->can_switch locking 2014-04-23 10:32:33 +02:00
nouveau_vga.h drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nv04_fbcon.c drm/nv11-: synchronise flips to vblank, unless async flip requested 2013-11-14 14:56:56 +10:00
nv04_fence.c drm/nouveau/fence: make internal hooks part of the context 2013-02-20 16:00:53 +10:00
nv10_fence.c drm/nouveau/fence: make internal hooks part of the context 2013-02-20 16:00:53 +10:00
nv10_fence.h drm/nouveau: share fence structures between nv10+ and nv50 implementations 2013-02-20 16:00:34 +10:00
nv17_fence.c drm/nouveau: fix semaphore dmabuf obj 2013-07-30 16:46:55 +10:00
nv50_display.c drm/nv50-: trigger update after all connectors disabled 2014-06-11 16:11:35 +10:00
nv50_display.h drm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge 2012-11-29 09:57:58 +10:00
nv50_fbcon.c drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nv50_fence.c drm/nouveau: fix semaphore dmabuf obj 2013-07-30 16:46:55 +10:00
nv84_fence.c drm/nv84-/fence: prepare for emit/sync support of sysram sequences 2013-02-20 16:00:53 +10:00
nvc0_fbcon.c drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nvc0_fence.c drm/nv84-/fence: prepare for emit/sync support of sysram sequences 2013-02-20 16:00:53 +10:00