• Andrey Smirnov's avatar
    drm/bridge: tc358767: Simplify AUX data write · 792a081a
    Andrey Smirnov authored
    Simplify AUX data write by dropping index arithmetic and shifting and
    replacing it with a call to a helper function that does two things:
    
        1. Copies user-provided data into a write buffer
        2. Transfers contents of the write buffer to up to 4 32-bit
           registers on the chip
    
    Note that separate data endianness fix:
    
        tmp = (tmp << 8) | buf[i];
    
    that was reserved for DP_AUX_I2C_WRITE looks really strange, since it
    will place data differently depending on the passed user-data
    size. E.g. for a write of 1 byte, data transferred to the chip would
    look like:
    
    [byte0] [dummy1] [dummy2] [dummy3]
    
    whereas for a write of 4 bytes we'd get:
    
    [byte3] [byte2] [byte1] [byte0]
    
    Since there's no indication in the datasheet that I2C write buffer
    should be treated differently than AUX write buffer and no comment in
    the original code explaining why it was done this way, that special
    I2C write buffer transformation was dropped in this patch.
    Signed-off-by: default avatarAndrey Smirnov <andrew.smirnov@gmail.com>
    Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
    Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Andrzej Hajda <a.hajda@samsung.com>
    Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
    Cc: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: Cory Tusar <cory.tusar@zii.aero>
    Cc: Chris Healy <cphealy@gmail.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190619052716.16831-8-andrew.smirnov@gmail.com
    792a081a
tc358767.c 41.6 KB