From patchwork Mon Aug 13 21:30:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 10564841 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B1DAB14E2 for ; Mon, 13 Aug 2018 21:31:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A1ECE29605 for ; Mon, 13 Aug 2018 21:31:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9332F295DE; Mon, 13 Aug 2018 21:31:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 523F0295DE for ; Mon, 13 Aug 2018 21:31:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5CCD26E016; Mon, 13 Aug 2018 21:31:41 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yw1-xc43.google.com (mail-yw1-xc43.google.com [IPv6:2607:f8b0:4864:20::c43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 196876E016 for ; Mon, 13 Aug 2018 21:31:40 +0000 (UTC) Received: by mail-yw1-xc43.google.com with SMTP id q129-v6so14705958ywg.8 for ; Mon, 13 Aug 2018 14:31:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=a5ap4OcKMqzRv4qf1uIfZsbbpxP1U75fXn2L32E+GHg=; b=X/UkVmTxgbGBJOJm1kz2fe9cyDJVOA91n/nUnPaGW1lM974nj323WuO+qo53RyHXLH bnxLeLWvJ7iKa5TCoGWU08t3ZUwxKUN21nOHI10toqWZxQ9PBraiy4BCJ/7YdFuhRbyN dlE9GHB1zKv16Q4WC135D28koM4ZGBacNnLoUSeDy8y1c/pGF4/BymL2b9iv9EnVgq7x GKycHtoBGwQUiP7GBI7V1D/eWrZOvm4K0g3YTheqGyrkeT9v7bYf02eAHr3LIbo+dIXM A9jrUS9mGFj3+Y5y38LcPBvJ8/WsH06ETIKK9oel7upU8zLkOHrKeGZtAdhRPihXkdoX JCeQ== X-Gm-Message-State: AOUpUlFVMxao8y6cT5hFJMZdPJPAGOCicDT1kOeJqQX7W5yJUnRZmYvf Zs7iv1NJI/eX+y0Z28wgWWPJKLdGYoA= X-Google-Smtp-Source: AA+uWPxHZZ9XgGkyrCqgnOmWv+rZZEEpQ62OJRV/CGDucM/N1EH5AlI6vpKwX1abrjr1dU07knc4vg== X-Received: by 2002:a81:9b8b:: with SMTP id s133-v6mr9864134ywg.90.1534195899234; Mon, 13 Aug 2018 14:31:39 -0700 (PDT) Received: from rosewood.cam.corp.google.com ([2620:0:1013:11:ad55:b1db:adfe:3b9f]) by smtp.gmail.com with ESMTPSA id m82-v6sm26715319ywm.19.2018.08.13.14.31.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Aug 2018 14:31:38 -0700 (PDT) From: Sean Paul To: dri-devel@lists.freedesktop.org Subject: [PATCH v3 6/7] drm/bridge: ti-sn65dsi86: Poll for training complete Date: Mon, 13 Aug 2018 17:30:45 -0400 Message-Id: <20180813213058.184821-7-sean@poorly.run> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-goog In-Reply-To: <20180813213058.184821-1-sean@poorly.run> References: <20180813213058.184821-1-sean@poorly.run> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sandeep Panda , Laurent Pinchart Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Sean Paul Instead of just waiting 20ms for training to complete, actually poll the status to ensure training is finished. Changes in v3: - Added to the set Cc: Sandeep Panda Signed-off-by: Sean Paul Reviewed-by: Sandeep Panda --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index f02bdedae1e5e..d3e27e52ea759 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -493,7 +493,17 @@ static void ti_sn_bridge_enable(struct drm_bridge *bridge) /* Semi auto link training mode */ regmap_write(pdata->regmap, SN_ML_TX_MODE_REG, 0x0A); - msleep(20); /* 20ms delay recommended by spec */ + ret = regmap_read_poll_timeout(pdata->regmap, SN_ML_TX_MODE_REG, val, + val == ML_TX_MAIN_LINK_OFF || + val == ML_TX_NORMAL_MODE, 1000, + 500 * 1000); + if (ret) { + DRM_ERROR("Training complete polling failed (%d)\n", ret); + return; + } else if (val == ML_TX_MAIN_LINK_OFF) { + DRM_ERROR("Link training failed, link is off\n"); + return; + } /* config video parameters */ ti_sn_bridge_set_video_timings(pdata);