linux/drivers/gpu/drm
Ville Syrjälä 0962c3c9c7 drm/i915: Register the backlight device after the modeset init
Currently we register the backlight device as soon as we register the
connector. That means we can get backlight requests from userspace
already before reading out the current modeset hardware state.

That means we don't yet know the current crtc->encoder->connector mapping,
which causes problems for VLV/CHV which need to know the current pipe in
order to figure out which BLC registers to poke. Currently we just
ignore such requests fairly deep in the backlight code which means the
backlight device brightness property will get out of sync with our
backlight.level and the actual hardware state.

Fix the problem by delaying the backlight device registration until the
entire modeset init has been performed. And we also move the
backlight unregisteration to happen as the first thing during the
modeset cleanup so that we also won't be bothered with userspace
backlight requested during teardown.

This is a real world problem on machines using systemd, because systemd,
for some reason, wants to restore the backlight to the level it used last
time. And that happens as soon as it sees the backlight device appearing
in the system. Sometimes the userspace access makes it through before
the modeset init, sometimes not.

v2: Do not lie to the user in the debug prints (Jani)
    Include connector name in the prints (Jani)
    Fix a typo in the commit message (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-14 10:29:20 +01:00
..
armada drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
ast drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
bochs drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
bridge
cirrus drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
exynos drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
gma500 Merge tag 'topic/atomic-helpers-2014-11-09' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-11-10 09:59:16 +10:00
i2c
i810 drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
i915 drm/i915: Register the backlight device after the modeset init 2014-11-14 10:29:20 +01:00
mga drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
mgag200 drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
msm drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
nouveau drm/edid: fix Baseline_ELD_Len field in drm_edid_to_eld() 2014-11-14 10:29:12 +01:00
omapdrm drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
panel
qxl drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
r128 drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
radeon drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
rcar-du drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
savage drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
shmobile drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
sis drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
sti drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
tdfx drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
tegra drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
tilcdc drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
ttm drm/ttm: Don't evict BOs outside of the requested placement range 2014-10-16 18:34:08 -04:00
udl drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
via drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
vmwgfx drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c drm/atomic: Refcounting for plane_state->fb 2014-11-06 21:08:37 +01:00
drm_atomic_helper.c drm/atomic: Refcounting for plane_state->fb 2014-11-06 21:08:37 +01:00
drm_auth.c
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc.c drm/mode: document path property and function to set it. (v1.1) 2014-11-10 10:21:14 +10:00
drm_crtc_helper.c drm/atomic: Refcounting for plane_state->fb 2014-11-06 21:08:37 +01:00
drm_crtc_internal.h
drm_debugfs.c
drm_dma.c
drm_dp_helper.c drm/dp: Add counters in the drm_dp_aux struct for I2C NACKs and DEFERs 2014-11-05 14:03:22 +01:00
drm_dp_mst_topology.c Merge tag 'topic/core-stuff-2014-11-05' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-11-07 10:58:46 +10:00
drm_drv.c drm: drm_err: Remove unnecessary __func__ argument 2014-10-12 20:57:16 +02:00
drm_edid.c drm/edid: fix Baseline_ELD_Len field in drm_edid_to_eld() 2014-11-14 10:29:12 +01:00
drm_edid_load.c
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm: Remove compiler BUG_ON() test 2014-11-04 09:47:45 +01:00
drm_flip_work.c
drm_fops.c drm: Implement O_NONBLOCK support on /dev/dri/cardN 2014-10-08 15:07:07 +02:00
drm_gem.c drm/core: use helper to check driver features 2014-10-03 10:38:56 +02:00
drm_gem_cma_helper.c drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
drm_global.c
drm_hashtab.c
drm_info.c drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
drm_internal.h drm: Move internal debugfs functions to drm_internal.h 2014-09-24 11:43:35 +10:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c gpu:drm: Fix typo in Documentation/DocBook/drm.xml 2014-10-21 10:55:33 +02:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_modes.c gpu:drm: Fix typo in Documentation/DocBook/drm.xml 2014-10-21 10:55:33 +02:00
drm_modeset_lock.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
drm_of.c
drm_panel.c
drm_pci.c
drm_plane_helper.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2014-11-10 10:55:35 +01:00
drm_platform.c
drm_prime.c gpu:drm: Fix typo in Documentation/DocBook/drm.xml 2014-10-21 10:55:33 +02:00
drm_probe_helper.c drm: Fix DRM_FORCE_ON_DIGITAL use 2014-11-04 09:45:04 +01:00
drm_rect.c
drm_scatter.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vm.c drm: Move drm_vm_open_locked into drm_internal.h 2014-09-24 11:43:20 +10:00
drm_vma_manager.c
Kconfig
Makefile drm: Add atomic/plane helpers 2014-11-05 18:07:01 +01:00