• Icenowy Zheng's avatar
    drm/bridge: analogix-anx6345: fix set of link bandwidth · 2be30d34
    Icenowy Zheng authored
    Current code tries to store the link rate (in bps, which is a big
    number) in a u8, which surely overflow. Then it's converted back to
    bandwidth code (which is thus 0) and written to the chip.
    
    The code sometimes works because the chip will automatically fallback to
    the lowest possible DP link rate (1.62Gbps) when get the invalid value.
    However, on the eDP panel of Olimex TERES-I, which wants 2.7Gbps link,
    it failed.
    
    As we had already read the link bandwidth as bandwidth code in earlier
    code (to check whether it is supported), use it when setting bandwidth,
    instead of converting it to link rate and then converting back.
    
    Fixes: e1cff82c ("drm/bridge: fix anx6345 compilation for v5.5")
    Signed-off-by: default avatarIcenowy Zheng <icenowy@aosc.io>
    Reviewed-by: default avatarTorsten Duwe <duwe@suse.de>
    Cc: Maxime Ripard <maxime@cerno.tech>
    Cc: Torsten Duwe <duwe@lst.de>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Icenowy Zheng <icenowy@aosc.io>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200221165127.813325-1-icenowy@aosc.io
    2be30d34
analogix-anx6345.c 19.3 KB