mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 23:02:08 +00:00
3d3f8b1f8b
Currently, third party bridge drivers(ptn3460) are dependent on the corresponding encoder driver init, since bridge driver needs a drm_device pointer to finish drm initializations. The encoder driver passes the drm_device pointer to the bridge driver. Because of this dependency, third party drivers like ptn3460 doesn't adhere to the driver model. In this patch, we reframe the bridge registration framework so that bridge initialization is split into 2 steps, and bridge registration happens independent of drm flow: --Step 1: gather all the bridge settings independent of drm and add the bridge onto a global list of bridges. --Step 2: when the encoder driver is probed, call drm_bridge_attach for the corresponding bridge so that the bridge receives drm_device pointer and continues with connector and other drm initializations. The old set of bridge helpers are removed, and a set of new helpers are added to accomplish the 2 step initialization. The bridge devices register themselves onto global list of bridges when they get probed by calling "drm_bridge_add". The parent encoder driver waits till the bridge is available in the lookup table(by calling "of_drm_find_bridge") and then continues with its initialization. The encoder driver should also call "drm_bridge_attach" to pass on the drm_device to the bridge object. drm_bridge_attach inturn calls "bridge->funcs->attach" so that bridge can continue with drm related initializations. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Tested-by: Rahul Sharma <rahul.sharma@samsung.com> Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Tested-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Thierry Reding <treding@nvidia.com>
72 lines
2.5 KiB
Makefile
72 lines
2.5 KiB
Makefile
#
|
|
# Makefile for the drm device driver. This driver provides support for the
|
|
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
|
|
ccflags-y := -Iinclude/drm
|
|
|
|
drm-y := drm_auth.o drm_bufs.o drm_cache.o \
|
|
drm_context.o drm_dma.o \
|
|
drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \
|
|
drm_lock.o drm_memory.o drm_drv.o drm_vm.o \
|
|
drm_agpsupport.o drm_scatter.o drm_pci.o \
|
|
drm_platform.o drm_sysfs.o drm_hashtab.o drm_mm.o \
|
|
drm_crtc.o drm_modes.o drm_edid.o \
|
|
drm_info.o drm_debugfs.o drm_encoder_slave.o \
|
|
drm_trace_points.o drm_global.o drm_prime.o \
|
|
drm_rect.o drm_vma_manager.o drm_flip_work.o \
|
|
drm_modeset_lock.o drm_atomic.o drm_bridge.o
|
|
|
|
drm-$(CONFIG_COMPAT) += drm_ioc32.o
|
|
drm-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_gem_cma_helper.o
|
|
drm-$(CONFIG_PCI) += ati_pcigart.o
|
|
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
|
|
drm-$(CONFIG_OF) += drm_of.o
|
|
|
|
drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o drm_probe_helper.o \
|
|
drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o
|
|
drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o
|
|
drm_kms_helper-$(CONFIG_DRM_KMS_FB_HELPER) += drm_fb_helper.o
|
|
drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o
|
|
|
|
obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
|
|
|
|
CFLAGS_drm_trace_points.o := -I$(src)
|
|
|
|
obj-$(CONFIG_DRM) += drm.o
|
|
obj-$(CONFIG_DRM_MIPI_DSI) += drm_mipi_dsi.o
|
|
obj-$(CONFIG_DRM_TTM) += ttm/
|
|
obj-$(CONFIG_DRM_TDFX) += tdfx/
|
|
obj-$(CONFIG_DRM_R128) += r128/
|
|
obj-$(CONFIG_HSA_AMD) += amd/amdkfd/
|
|
obj-$(CONFIG_DRM_RADEON)+= radeon/
|
|
obj-$(CONFIG_DRM_MGA) += mga/
|
|
obj-$(CONFIG_DRM_I810) += i810/
|
|
obj-$(CONFIG_DRM_I915) += i915/
|
|
obj-$(CONFIG_DRM_MGAG200) += mgag200/
|
|
obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus/
|
|
obj-$(CONFIG_DRM_SIS) += sis/
|
|
obj-$(CONFIG_DRM_SAVAGE)+= savage/
|
|
obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
|
|
obj-$(CONFIG_DRM_VIA) +=via/
|
|
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
|
|
obj-$(CONFIG_DRM_EXYNOS) +=exynos/
|
|
obj-$(CONFIG_DRM_ROCKCHIP) +=rockchip/
|
|
obj-$(CONFIG_DRM_GMA500) += gma500/
|
|
obj-$(CONFIG_DRM_UDL) += udl/
|
|
obj-$(CONFIG_DRM_AST) += ast/
|
|
obj-$(CONFIG_DRM_ARMADA) += armada/
|
|
obj-$(CONFIG_DRM_ATMEL_HLCDC) += atmel-hlcdc/
|
|
obj-$(CONFIG_DRM_RCAR_DU) += rcar-du/
|
|
obj-$(CONFIG_DRM_SHMOBILE) +=shmobile/
|
|
obj-$(CONFIG_DRM_OMAP) += omapdrm/
|
|
obj-$(CONFIG_DRM_TILCDC) += tilcdc/
|
|
obj-$(CONFIG_DRM_QXL) += qxl/
|
|
obj-$(CONFIG_DRM_BOCHS) += bochs/
|
|
obj-$(CONFIG_DRM_MSM) += msm/
|
|
obj-$(CONFIG_DRM_TEGRA) += tegra/
|
|
obj-$(CONFIG_DRM_STI) += sti/
|
|
obj-$(CONFIG_DRM_IMX) += imx/
|
|
obj-y += i2c/
|
|
obj-y += panel/
|
|
obj-y += bridge/
|