[PATCH] video: rockchip: Add missing dpcd_write() call to link_train_ce()
Kever Yang
kever.yang at rock-chips.com
Fri Oct 30 11:17:58 CET 2020
On 2020/10/7 上午4:39, Alper Nebi Yasak wrote:
> Found this by comparing it to the coreboot driver, a form of this call
> was introduced there in their commit b9a7877568cf ("rockchip/*: refactor
> edp driver"). This is copy-pasted from U-Boot's link_train_cr() slightly
> above it.
>
> Without this on a gru-kevin chromebook, I have:
>
> clock recovery at voltage 0 pre-emphasis 0
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> channel eq failed, ret=-5
> link train failed!
> rk_vop_probe() Device failed: ret=-5
>
> With this, it looks like training succeeds:
>
> clock recovery at voltage 0 pre-emphasis 0
> requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 3.5dB
> using signal parameters: voltage 0.4V pre_emph 3.5dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 6dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 6dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 6dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 6dB
> using signal parameters: voltage 0.4V pre_emph 6dB
> requested signal parameters: lane 0 voltage 0.4V pre_emph 0dB
> requested signal parameters: lane 1 voltage 0.4V pre_emph 0dB
> requested signal parameters: lane 2 voltage 0.4V pre_emph 0dB
> requested signal parameters: lane 3 voltage 0.4V pre_emph 0dB
> using signal parameters: voltage 0.4V pre_emph 0dB
> channel eq at voltage 0 pre-emphasis 0
> config video failed
> rk_vop_probe() Device failed: ret=-110
>
> The "config video failed" error also goes away when I disable higher
> log levels, and it claims to have successfully probed the device.
>
> Signed-off-by: Alper Nebi Yasak <alpernebiyasak at gmail.com>
Reviewed-by: Kever Yang<kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> I'm testing this with a lot of other patches to make the board work. The
> actual tree I'm using is available here:
>
> https://github.com/alpernebbi/u-boot/commits/rk3399-gru-kevin/wip
> (currently at commit c0dc4b42afe770671ce7bb0dd519d894a3acdea0)
>
> drivers/video/rockchip/rk_edp.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c
> index 000bd48140..a032eb6889 100644
> --- a/drivers/video/rockchip/rk_edp.c
> +++ b/drivers/video/rockchip/rk_edp.c
> @@ -559,6 +559,12 @@ static int rk_edp_link_train_ce(struct rk_edp_priv *edp)
> channel_eq = 0;
> for (tries = 0; tries < 5; tries++) {
> rk_edp_set_link_training(edp, edp->train_set);
> + ret = rk_edp_dpcd_write(regs, DPCD_TRAINING_LANE0_SET,
> + edp->train_set,
> + edp->link_train.lane_count);
> + if (ret)
> + return ret;
> +
> udelay(400);
>
> if (rk_edp_dpcd_read_link_status(edp, status) < 0) {
More information about the U-Boot
mailing list