drm: add register and unregister functions for connectors

Introduce generic functions to register and unregister connectors. This
provides a common place to add and remove associated user space
interfaces.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
drm/panel: Add prepare, unprepare and get_modes routines

Most of the panels need an init sequence as mentioned below:
	-- poweron LCD unit/LCD_EN
	-- start video data
	-- poweron LED unit/BACKLIGHT_EN
And, a de-init sequence as mentioned below:
	-- poweroff LED unit/BACKLIGHT_EN
	-- stop video data
	-- poweroff LCD unit/LCD_EN
With existing callbacks for drm panel, we cannot accomodate such panels,
since only two callbacks, i.e "panel_enable" and panel_disable are supported.

This patch adds:
	-- "prepare" callback which can be called before
	the actual video data is on, and then call the "enable"
	callback after the video data is available.

	-- "unprepare" callback which can be called after
	the video data is off, and use "disable" callback
	to do something before switching off the video data.

Now, we can easily map the above scenario as shown below:
	poweron LCD unit/LCD_EN = "prepare" callback
	poweron LED unit/BACKLIGHT_EN = "enable" callback
	poweroff LED unit/BACKLIGHT_EN = "disable" callback
	poweroff LCD unit/LCD_EN = "unprepare" callback

Also, a helper function for get_modes is added.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
drm/panel: Add support for prepare and unprepare routines

Now that we have 2 new callbacks(prepare and unprepare) for drm_panel,
make changes in all the drm drivers which use the drm_panel framework
to support the new callbacks.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
drm/panel: simple: Add support for auo_b133htn01 panel

Add panel_desc structure for auo_b133htn01 eDP panel.

Also, modify the panel_simple routines to support timing_parameter
delays if mentioned in the panel_desc structure.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
drm/exynos: Move DP setup into commit()

This patch moves the DP training and video enable from the hotplug
handler into commit().

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
drm/exynos: dp: Modify driver to support drm_panel

Add drm_panel controls to support powerup/down of the
eDP panel, if one is present at the sink side.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: applied manually]
Signed-off-by: Andreas Färber <afaerber@suse.de>
drm/bridge: Modify drm_bridge core to support driver model

This patch tries to seperate drm_bridge implementation
into 2 parts, a drm part and a non_drm part.

A set of helper functions are defined in this patch to make
bridge driver probe independent of the drm flow.

The bridge devices register themselves on a lookup table
when they get probed by calling "drm_bridge_add_for_lookup".

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 call "drm_bridge_attach_encoder" to pass on
the drm_device and the encoder pointers to the bridge object.

Now that the drm_device pointer is available, the encoder then calls
"bridge->funcs->post_encoder_init" to allow the bridge to continue
registering itself with the drm core.

Also, non driver model based ptn3460 driver is removed in this patch.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: applied manually]
Signed-off-by: Andreas Färber <afaerber@suse.de>
drm/bridge: Add i2c based driver for ptn3460 bridge

This patch adds ptn3460 as module_i2c_driver.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
drm/bridge: Add i2c based driver for ps8622/ps8625 bridge

This patch adds drm_bridge driver for parade DisplayPort
to LVDS bridge chip.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
ARM: dts: Add DT changes for display on snow

Add DT nodes for ptn3460 bridge chip and panel-simple panel.
Add backlight enable pin and backlight power supply for pwm-backlight.
Also add bridge phandle needed by dp to enable display on snow.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: Rebased onto Snow cleanup]
Signed-off-by: Andreas Färber <afaerber@suse.de>
Revert "Disable dp-controller node"
ARM: dts: exynos5250: Add eDP/LVDS bridge to Spring

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: Redone for v6]
Signed-off-by: Andreas Färber <afaerber@suse.de>
TEST_ONLY: Disable dp-controller, lvds-bridge, panel

Signed-off-by: Andreas Färber <afaerber@suse.de>