Am Dienstag, 24. Mai 2016, 14:57:23 schrieb Yakir Yang:
RK3399 and RK3288 shared the same eDP IP controller, only some light difference with VOP configure and GRF configure.
Signed-off-by: Yakir Yang ykk@rock-chips.com
Changes in v2:
- rebase with drm-next, fix some conflicts
.../bindings/display/bridge/analogix_dp.txt | 1 + .../display/rockchip/analogix_dp-rockchip.txt | 2 +- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 36 ++++++++++++++++++++-- include/drm/bridge/analogix_dp.h | 1 + 4 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt b/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt index 4f2ba8c..4a0f4f7 100644 --- a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt +++ b/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt @@ -5,6 +5,7 @@ Required properties for dp-controller: platform specific such as: * "samsung,exynos5-dp" * "rockchip,rk3288-dp"
* "rockchip,rk3399-edp"
the cleanlines-freak in my likes to know if there is a difference between the rk3399 being called -edp here and -dp on the rk3288 :-)
[...]
diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c index 29c4105..d5d4e04 100644 --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -148,6 +148,10 @@ rockchip_dp_drm_encoder_atomic_check(struct drm_encoder *encoder, struct drm_connector_state *conn_state) { struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc_state);
struct rockchip_dp_device *dp = to_dp(encoder);
int ret;
s->output_type = DRM_MODE_CONNECTOR_eDP;
/*
- FIXME(Yakir): driver should configure the CRTC output video
@@ -162,8 +166,27 @@ rockchip_dp_drm_encoder_atomic_check(struct drm_encoder *encoder, * But if I configure CTRC to RGBaaa, and eDP driver still keep * RGB666 input video mode, then screen would works prefect. */
- s->output_mode = ROCKCHIP_OUT_MODE_AAAA;
- s->output_type = DRM_MODE_CONNECTOR_eDP;
- ret = drm_of_encoder_active_endpoint_id(dp->dev->of_node, encoder);
- if (ret < 0)
return;
this needs a value returned (probably ret), otherwise you create a warning: ‘return’ with no value, in function returning non-void
drm_of_encoder_active_endpoint_id also always returns -EINVAL on rk3288- veyron-jerry because encoder->crtc is unset in drm_of_encoder_active_endpoint and that breaks display output right now.
Looking through drm code it seems only two functions would set encoder->crtc - drm_atomic_helper_update_legacy_modeset_state - drm_crtc_helper_set_config
drm_crtc_helper_set_config callback got dropped in the atomic-conversion and the other sounds to be somewhat in the legacy area.
After that drm-internals get a bit confusing.
Heiko