mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
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>
This commit is contained in:
parent
1b68283b64
commit
987a404aa1
3 changed files with 11 additions and 5 deletions
|
@ -108,11 +108,6 @@
|
|||
pinctrl-0 = <&vcc50_hdmi_en>;
|
||||
};
|
||||
|
||||
&vopb {
|
||||
/* Disable this so that we use vopl */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&edp {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&edp_hpd>;
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
/ {
|
||||
aliases {
|
||||
i2c20 = &i2c_tunnel;
|
||||
video0 = &vopl;
|
||||
video1 = &vopb;
|
||||
};
|
||||
|
||||
gpio_keys: gpio-keys {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue