diff options
author | Simon Glass <sjg@chromium.org> | 2016-11-13 14:22:08 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2016-11-25 17:59:31 -0700 |
commit | 987a404aa15f915638279a5520328eace8edd72f (patch) | |
tree | 63b0cb1cbcf0dd2081b1bf399f6ab9f65d93fe89 /drivers/video | |
parent | 1b68283b64a7a1847410eff20886bd7bbfd8f9a6 (diff) | |
download | u-boot-imx-987a404aa15f915638279a5520328eace8edd72f.zip u-boot-imx-987a404aa15f915638279a5520328eace8edd72f.tar.gz u-boot-imx-987a404aa15f915638279a5520328eace8edd72f.tar.bz2 |
rockchip: video: Check for device in use
Check whether a display device is in use before using it. Add a comment as
to why two displays cannot currently be used at the same time.
This allows us to remove the device-tree change that disables vopb on
jerry.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/rockchip/rk_vop.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c index 130dace..eab5486 100644 --- a/drivers/video/rockchip/rk_vop.c +++ b/drivers/video/rockchip/rk_vop.c @@ -221,6 +221,11 @@ int rk_display_init(struct udevice *dev, ulong fbbase, disp_uc_plat = dev_get_uclass_platdata(disp); debug("Found device '%s', disp_uc_priv=%p\n", disp->name, disp_uc_plat); + if (display_in_use(disp)) { + debug(" - device in use\n"); + return -EBUSY; + } + disp_uc_plat->source_id = remote_vop_id; disp_uc_plat->src_dev = dev; @@ -311,6 +316,10 @@ static int rk_vop_probe(struct udevice *dev) /* * Try all the ports until we find one that works. In practice this * tries EDP first if available, then HDMI. + * + * Note that rockchip_vop_set_clk() always uses NPLL as the source + * clock so it is currently not possible to use more than one display + * device simultaneously. */ port = fdt_subnode_offset(blob, dev->of_offset, "port"); if (port < 0) |