OpenCloudOS-Kernel/drivers/gpu/drm/i915
Imre Deak 80f65de3c9 drm/i915: dp: fix order of dp aux i2c device cleanup
Atm we set the parent of the dp i2c device to be the correspondig
connector device. During driver cleanup we first remove the connector
device through intel_modeset_cleanup()->drm_sysfs_connector_remove() and
only after that the i2c device through the encoder's destroy callback.
This order is not supported by the device core and we'll get a warning,
see the below bugzilla ticket. The proper order is to remove first any
child device and only then the parent device.

The first part of the fix changes the i2c device's parent to be the drm
device. Its logical owner is not the connector anyway, but the encoder.
Since the encoder doesn't have a device object, the next best choice is
the drm device. This is the same what we do in the case of the sdvo i2c
device and what the nouveau driver does.

The second part creates a symlink in the connector's sysfs directory
pointing to the i2c device. This is so, that we keep the current ABI,
which also makes sense in case someone wants to look up the i2c device
belonging to a specific connector.

Reference: http://lists.freedesktop.org/archives/intel-gfx/2014-January/038782.html
Reference: http://lists.freedesktop.org/archives/intel-gfx/2014-February/039427.html
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70523
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Antti Koskipää <antti.koskipaa@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-02-14 11:24:59 +01:00
..
Kconfig i915, fbdev: Fix Kconfig typo 2013-11-21 21:59:02 +01:00
Makefile drm/i915: move module parameters into a struct, in a new file 2014-01-27 17:16:45 +01:00
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/ns2501: Rip out the reenable hack 2013-11-04 16:32:31 +01:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: don't reference null pointer at i915_sink_crc 2014-02-13 22:33:28 +01:00
i915_dma.c drm/i915: delay master/sarea deref for legacy ioctls 2014-02-12 23:50:06 +01:00
i915_drv.c drm/i915: Restore rps/rc6 on reset 2014-02-07 10:25:10 +01:00
i915_drv.h drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
i915_gem.c drm/i915: Flush GPU rendering with a lockless wait during a pagefault 2014-02-12 18:52:59 +01:00
i915_gem_context.c drm/i915: check for oom when allocating private_default_ctx 2014-02-04 12:10:26 +01:00
i915_gem_debug.c drm/i915: Fix #endif comment 2013-08-09 10:45:52 +02:00
i915_gem_dmabuf.c drm/i915: Pin pages whilst allocating for dma-buf vmap() 2013-11-29 15:51:20 +01:00
i915_gem_evict.c drm/i915: Kerneldoc for i915_gem_evict.c 2014-01-29 22:19:17 +01:00
i915_gem_execbuffer.c drm/i915: move module parameters into a struct, in a new file 2014-01-27 17:16:45 +01:00
i915_gem_gtt.c drm/i915/bdw: Split up PPGTT cleanup 2014-02-13 11:51:21 +01:00
i915_gem_stolen.c drm/i915: Fix the offset issue for the stolen GEM objects 2014-01-28 09:04:42 +01:00
i915_gem_tiling.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_gpu_error.c drm/i915: Generate a hang error code 2014-02-05 17:17:10 +01:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Some polish for the new pipestat_irq_handler 2014-02-12 23:42:02 +01:00
i915_params.c drm/i915: Provide a command line option to disable display 2014-02-12 18:53:01 +01:00
i915_reg.h drm/i915: Convert DIP port switch cases to a simple macro 2014-02-13 10:43:21 +01:00
i915_suspend.c drm/i915: Kill most of the FBC register save/restore 2014-01-25 21:17:03 +01:00
i915_sysfs.c drm/i915: Update rps interrupt limits 2014-02-07 10:26:17 +01:00
i915_trace.h drm/i915: Add a tracepoint for using a semaphore 2013-10-01 07:45:24 +02:00
i915_trace_points.c
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
intel_bios.c drm/i915: move module parameters into a struct, in a new file 2014-01-27 17:16:45 +01:00
intel_bios.h drm/i915: parse backlight modulation frequency from the BIOS VBT 2013-12-16 10:02:48 +01:00
intel_crt.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_ddi.c drm/i915: Consolidate FUSE_STRAP in one set of defines 2014-02-12 18:52:52 +01:00
intel_display.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_dp.c drm/i915: dp: fix order of dp aux i2c device cleanup 2014-02-14 11:24:59 +01:00
intel_drv.h drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_dsi.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_dsi.h drm/i915: Parametrize the dphy and other spec specific parameters 2013-12-11 23:52:20 +01:00
intel_dsi_cmd.c drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_cmd.h drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_pll.c drm/i915: Try harder to get best m, n, p values with minimal error 2013-12-11 23:52:18 +01:00
intel_dvo.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_fbdev.c drm/i915: don't preserve inherited configs with nothing on v2 2014-02-13 11:52:44 +01:00
intel_hdmi.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_i2c.c drm/i915/vlv: split CCK and DDR freq usage 2013-11-05 19:28:47 +01:00
intel_lvds.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c drm/i915: Eliminate lots of WARNs when there's no backlight present 2014-01-22 10:34:38 +01:00
intel_overlay.c Merge branch 'topic/ppgtt' into drm-intel-next-queued 2014-01-25 21:14:57 +01:00
intel_panel.c drm/i915: Initialize downclock mode in panel init 2014-02-12 18:53:05 +01:00
intel_pm.c drm/i915/bdw: Use centralized rc6 info print 2014-02-12 18:53:14 +01:00
intel_ringbuffer.c drm/i915: protect ringbuffer sarea update behind !MODESET 2014-02-12 23:44:34 +01:00
intel_ringbuffer.h drm/i915: Use hangcheck score to find guilty context 2014-02-04 11:57:24 +01:00
intel_sdvo.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sideband.c drm/i915: Use FLISDSI interface for band gap reset 2013-12-11 23:52:17 +01:00
intel_sprite.c drm/i915: Shuffle sprite register writes into a tighter group 2014-01-24 17:22:53 +01:00
intel_tv.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_uncore.c Merge branch 'topic/ppgtt' into drm-intel-next-queued 2014-01-25 21:14:57 +01:00