Hi Yakir, Am Mittwoch, 13. Januar 2016, 15:59:51 schrieb Heiko Stuebner: > Am Mittwoch, 23. Dezember 2015, 20:25:38 schrieb Yakir Yang: > > The Samsung Exynos eDP controller and Rockchip RK3288 eDP controller > > > > share the same IP, so a lot of parts can be re-used. I split the common > > code into bridge directory, then rk3288 and exynos only need to keep > > some platform code. Cause I can't find the exact IP name of exynos dp > > controller, so I decide to name dp core driver with "analogix" which I > > find in rk3288 eDP TRM > > could you rebase your patches on top of Dave's drm-next branch [0] please? > The exynos part got some const attributes for the *_func_ops structs and > drm_encoder_init got an additional parameter. > I'm still hoping that we can get this finally committed once 4.5-rc1 is > released in 1.5 weeks :-) . > > I did try to merge things together [1], the system at least comes up and > detects the panel (EDID is read correctly and it turns the backlight on) > but I don't see any output on the display - hdmi works fine though and > X11 is claiming everything to be fine in both cases. > > So I don't know yet if I made a mistake when putting this together or > there is an issue on the driver-side. I was able to debug this a bit more, and it seems the encoder_helper_funcs don't like the prepare/commit callbacks and like enable better. So when I do something similar to Marks patch a8eef71d38da ("drm/rockchip: dw_hdmi: use encoder enable function"), like in the attached patch (to be folded into the original addition of those functions), I get display output again. Heiko > [0] http://cgit.freedesktop.org/~airlied/linux/log/?h=drm-next > [1] https://github.com/mmind/linux-rockchip/tree/tmp/analogixdp_v12-veyron > I left out patch16, per your talk with Jingoo and me not seeing any AUX > CH errors without it.
>From 46e5badf6cf9b07461fc72279fe4617b644f8589 Mon Sep 17 00:00:00 2001 From: Heiko Stuebner <heiko@xxxxxxxxx> Date: Sun, 17 Jan 2016 15:16:29 +0100 Subject: [PATCH] analogix_dp-rockchip: use .enable instead of preprare/commit in encoder_helper_funcs --- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c index 7cb3f6b..15619c5 100644 --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -108,7 +108,7 @@ static void rockchip_dp_drm_encoder_mode_set(struct drm_encoder *encoder, /* do nothing */ } -static void rockchip_dp_drm_encoder_prepare(struct drm_encoder *encoder) +static void rockchip_dp_drm_encoder_enable(struct drm_encoder *encoder) { struct rockchip_dp_device *dp = to_dp(encoder); int ret; @@ -161,8 +161,7 @@ static void rockchip_dp_drm_encoder_nop(struct drm_encoder *encoder) static const struct drm_encoder_helper_funcs rockchip_dp_encoder_helper_funcs = { .mode_fixup = rockchip_dp_drm_encoder_mode_fixup, .mode_set = rockchip_dp_drm_encoder_mode_set, - .prepare = rockchip_dp_drm_encoder_prepare, - .commit = rockchip_dp_drm_encoder_nop, + .enable = rockchip_dp_drm_encoder_enable, .disable = rockchip_dp_drm_encoder_nop, }; -- 2.6.4