lkml.org 
[lkml]   [2020]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 2/4] drm/bridge: ti-sn65dsi86: Make polling a busy loop
    Date
    There's no reason we need to wait here to poll a register over i2c. The
    i2c bus is inherently slow and delays are practically part of the
    protocol because we have to wait for the device to respond to any
    request for a register. Let's rely on the sleeping of the i2c controller
    instead of adding any sort of delay here in the bridge driver.

    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
    Cc: Jonas Karlman <jonas@kwiboo.se>
    Cc: Jernej Skrabec <jernej.skrabec@siol.net>
    Cc: Sean Paul <seanpaul@chromium.org>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    ---
    drivers/gpu/drm/bridge/ti-sn65dsi86.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    index 87726b9e446f..8276fa50138f 100644
    --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    @@ -881,9 +881,9 @@ static ssize_t ti_sn_aux_transfer(struct drm_dp_aux *aux,

    regmap_write(pdata->regmap, SN_AUX_CMD_REG, request_val | AUX_CMD_SEND);

    + /* Zero delay loop because i2c transactions are slow already */
    ret = regmap_read_poll_timeout(pdata->regmap, SN_AUX_CMD_REG, val,
    - !(val & AUX_CMD_SEND), 200,
    - 50 * 1000);
    + !(val & AUX_CMD_SEND), 0, 50 * 1000);
    if (ret)
    return ret;

    --
    Sent by a computer, using git, on the internet
    \
     
     \ /
      Last update: 2020-11-02 19:12    [W:4.113 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site