From patchwork Fri Mar 10 04:32:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 9614819 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C27AC60415 for ; Fri, 10 Mar 2017 04:53:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B5108286D1 for ; Fri, 10 Mar 2017 04:53:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A9FA8286EF; Fri, 10 Mar 2017 04:53:44 +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=-1.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 560FD286D1 for ; Fri, 10 Mar 2017 04:53:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PZ4NoA9wpiKQ+DFDKQlnbgDD+4mrseSlCiH+VnKJjjE=; b=ifKgFNSWCOMxG9 cPe7xJGfRFzvMeColGWYVBjtdOu0bpC539foJuHA3qWrxt3J6KFIY07HfFNeVknIJeA6sGuCLy0be Vuwt3oKpweQmC6EUNsvHZHPa2EeTykLknRAID/y3A4kVsV8t0UNytLAAhBZWHkkY0R3ggCUoU6Xac cnUxg/XN2WCbc4nPhs6w22Nl+mNAIuVbBvevX19qtOZ8Oy5MDfbJsdrktWgwTdzHwEClBruk0DjQt EEOxFn+aDD1e0ZobP9oSM9c+whD/X7/rG9BoBgXPU5Y0BnTm3mNfoVdfE6tJFuQi38O/NiwfdYbV9 tdEfH4yT1o7YIhSd+I8A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cmCYh-0001so-KA; Fri, 10 Mar 2017 04:53:43 +0000 Received: from casper.infradead.org ([2001:770:15f::2]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cmCYQ-0001OX-NB for linux-rockchip@bombadil.infradead.org; Fri, 10 Mar 2017 04:53:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=r3PgXYx6CXZeoLUtIe5w0xht/E1Zkvv2znlfeCmIPbk=; b=SkCnYOjshf1sYxkJ7/L3xb4Q7x 00PMytiItbZWqAqnrXEyf/TYHe8X7v7cKU9O3Bujn0+sy/sIw/nROT9PDH1+Gv/BASmlAZAEgUYeJ WSh0TRVwln0u75ROwGXA5SSMw6fCiYY6KHtaHwidn9yc9gG9Zkm+XJRE6NDZ4LgSxTMdYcykxYvYP YoeVxmdi+xZJeFZcBDGsr42KFy0Klec/kQ8QJCU6ACdl/8TCxJV+PKpOHvnQgNGp+np/ujbuoRWxN mC04xX7Ux7LEIwBUc6jwuwl961vArUgShsQUwlxUkzfaQvzBN7LLs//bkTGv6WJFKcuBp157M9zcI VjU1MkLw==; Received: from mail-qk0-x22b.google.com ([2607:f8b0:400d:c09::22b]) by casper.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cmCIn-0001nN-R5 for linux-rockchip@lists.infradead.org; Fri, 10 Mar 2017 04:37:19 +0000 Received: by mail-qk0-x22b.google.com with SMTP id v125so148912357qkh.2 for ; Thu, 09 Mar 2017 20:36:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=r3PgXYx6CXZeoLUtIe5w0xht/E1Zkvv2znlfeCmIPbk=; b=FniccbnefcdxNaR2PGHZz1CQtciEY/UwoO7OJhuQcIs1xF3NbYYTm37IxUfa1KcfuO wG5bl1DB25ozMI9KpR1pETNpVbh5oWkgiMznRSQPCu2KVYO4d3Jfq5ZttvreGUyRx7+m +5C1f6FXc950liiEkSWKrBHj8aoxAbY4yFBR4= 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=r3PgXYx6CXZeoLUtIe5w0xht/E1Zkvv2znlfeCmIPbk=; b=ob0qH+hd4rPjHAwavzrTNJgspaqWCU+jMbCmy09DGaBeGknv8emRJ5dpacpP1KT05W qPWYeg88yz+uHPW9nf0HoWZP+wocjJ8Kyfl6jR6MdXIAwMMlBQibWwvBhB6kpfDXTdRo BJLzQlcjpqvRKQI8cmjSX39vdPd6cBOtyR0hf0I3Nl77N0xqcjjeMj3hlAM991ySh2lZ Sht2/lQv1Jy1z67c+XWT7FBMbl49aagBBs/YfsQNxNSDfYzIARRb21eug1h9DjYOUH1K b6cC8fpJqKubq/5iSm+LDSg35WDH7AhXtOSOc+HVYfrsF0j1gppLHHibFtJ5xzTLknmc SZGQ== X-Gm-Message-State: AMke39lMSGtpjJgLSHixA8UA07NRyG6/P5veuV4BQsOZ9kdb7Kzc9o2PnLSvkWTN8/obSeSj X-Received: by 10.200.53.99 with SMTP id z32mr19673947qtb.106.1489120615832; Thu, 09 Mar 2017 20:36:55 -0800 (PST) Received: from boxwood.roam.corp.google.com (cpe-75-189-128-87.nc.res.rr.com. [75.189.128.87]) by smtp.gmail.com with ESMTPSA id n19sm5697731qtn.35.2017.03.09.20.36.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 09 Mar 2017 20:36:55 -0800 (PST) From: Sean Paul To: linux-rockchip@lists.infradead.org, dri-devel@lists.freedesktop.org Subject: [PATCH 14/41] drm/rockchip: Only wait for panel ACK on PSR entry Date: Thu, 9 Mar 2017 23:32:29 -0500 Message-Id: <20170310043305.17216-15-seanpaul@chromium.org> X-Mailer: git-send-email 2.12.0.246.ga2ecc84866-goog In-Reply-To: <20170310043305.17216-1-seanpaul@chromium.org> References: <20170310043305.17216-1-seanpaul@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170310_043717_982905_C56D3198 X-CRM114-Status: GOOD ( 15.26 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Archit Taneja , zain wang , Lin Huang , Tomeu Vizoso , David Airlie , Douglas Anderson , Krzysztof Kozlowski , Sean Paul , Yakir Yang , =?UTF-8?q?St=C3=A9phane=20Marchesin?= , Sonny Rao , Heiko Stuebner Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: zain wang We currently wait for the panel to mirror our intended PSR state before continuing on both PSR enter and PSR exit. This is really only important to do when we're entering PSR, since we want to be sure the last frame we pushed is being served from the panel's internal fb before shutting down the soc blocks (vop/analogix). This patch changes the behavior such that we only wait for the panel to complete the PSR transition when we're entering PSR, and to skip verification when we're exiting. Cc: Stéphane Marchesin Cc: Sonny Rao Signed-off-by: zain wang Signed-off-by: Sean Paul --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 4 ++-- drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 2 +- drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 5bc151b0995b..9dfa1b507389 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -127,7 +127,7 @@ int analogix_dp_enable_psr(struct device *dev) psr_vsc.DB0 = 0; psr_vsc.DB1 = EDP_VSC_PSR_STATE_ACTIVE | EDP_VSC_PSR_CRC_VALUES_VALID; - return analogix_dp_send_psr_spd(dp, &psr_vsc); + return analogix_dp_send_psr_spd(dp, &psr_vsc, true); } EXPORT_SYMBOL_GPL(analogix_dp_enable_psr); @@ -154,7 +154,7 @@ int analogix_dp_disable_psr(struct device *dev) if (ret != 1) dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret); - return analogix_dp_send_psr_spd(dp, &psr_vsc); + return analogix_dp_send_psr_spd(dp, &psr_vsc, false); } EXPORT_SYMBOL_GPL(analogix_dp_disable_psr); diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h index 920607d7eb3e..6a96ef7e6934 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h @@ -253,7 +253,7 @@ void analogix_dp_enable_scrambling(struct analogix_dp_device *dp); void analogix_dp_disable_scrambling(struct analogix_dp_device *dp); void analogix_dp_enable_psr_crc(struct analogix_dp_device *dp); int analogix_dp_send_psr_spd(struct analogix_dp_device *dp, - struct edp_vsc_psr *vsc); + struct edp_vsc_psr *vsc, bool blocking); ssize_t analogix_dp_transfer(struct analogix_dp_device *dp, struct drm_dp_aux_msg *msg); diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c index 005a3f7005d2..9df2f3ef000c 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c @@ -1007,7 +1007,7 @@ static ssize_t analogix_dp_get_psr_status(struct analogix_dp_device *dp) } int analogix_dp_send_psr_spd(struct analogix_dp_device *dp, - struct edp_vsc_psr *vsc) + struct edp_vsc_psr *vsc, bool blocking) { unsigned int val; int ret; @@ -1053,6 +1053,9 @@ int analogix_dp_send_psr_spd(struct analogix_dp_device *dp, val |= IF_EN; writel(val, dp->reg_base + ANALOGIX_DP_PKT_SEND_CTL); + if (!blocking) + return 0; + ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status, psr_status >= 0 && ((vsc->DB1 && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||