• Linus Walleij's avatar
    drm/pl111: Support multiple endpoints on the CLCD · 3b6ec458
    Linus Walleij authored
    The Versatile PL110 implementations use multiple endpoints:
    from the PL111 port, the lines are routed through a PLD,
    and from there forked so the same lines go to a VGA DAC and
    an external TFT panel connector. This is discrete wireing
    so there is no way to turn of one output, i.e. this is
    really two endpoints, not two ports.
    
    We model this with multiple endpoints, so we need to loop
    over the available endpoints, check for panel or bridge on
    each and accumulate the result before continuing.
    
    The code already will give the panel preference over the
    bridge, if present, so the output will be sent to the panel
    if both a panel and a bridge is present on two endpoints
    of the same port.
    
    If they all return -EPROBE_DEFER we return -EPROBE_DEFER
    as well.
    
    If just one endpoint is present on the port, the behaviour
    is the same as before.
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180206093540.8147-5-linus.walleij@linaro.org
    3b6ec458
pl111_drv.c 9.8 KB