From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20ECEC17440 for ; Tue, 12 Nov 2019 10:54:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EF0D82084E for ; Tue, 12 Nov 2019 10:54:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=onstation.org header.i=@onstation.org header.b="VORlG8Nn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726659AbfKLKyw (ORCPT ); Tue, 12 Nov 2019 05:54:52 -0500 Received: from onstation.org ([52.200.56.107]:48248 "EHLO onstation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725899AbfKLKyv (ORCPT ); Tue, 12 Nov 2019 05:54:51 -0500 Received: from localhost (c-98-239-145-235.hsd1.wv.comcast.net [98.239.145.235]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: masneyb) by onstation.org (Postfix) with ESMTPSA id 76AAA3E994; Tue, 12 Nov 2019 10:54:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=onstation.org; s=default; t=1573556090; bh=jjKN6d8ptQSkUyJcPph5rCkFf0mBynfnJx+7tQMICQ4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=VORlG8Nn/3lq3rYkTopLtuLPXh2vlijLFzlNyEBCu4fJtdhpfSVehn+fa32ryyxyU LxnIYKoabfxZU5OhptEPMIOeM3FbFpqdhWPOiHSxLbihbLXYO2eKzMOEsJFxb6pL4R F+PmEubwY8vTdhKlUiQMI55U73QeJvBrbtU1alDE= Date: Tue, 12 Nov 2019 05:54:50 -0500 From: Brian Masney To: Jeffrey Hugo Cc: Rob Clark , Rob Clark , freedreno , Linux Kernel Mailing List , dri-devel , linux-arm-msm , Sean Paul Subject: Re: [Freedreno] drm/msm: 'pp done time out' errors after async commit changes Message-ID: <20191112105450.GA9144@onstation.org> References: <20191107111019.GA24028@onstation.org> <20191110135321.GA6728@onstation.org> <20191111113806.GA1420@onstation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 11, 2019 at 07:51:22AM -0700, Jeffrey Hugo wrote: > On Mon, Nov 11, 2019 at 4:38 AM Brian Masney wrote: > > > > On Sun, Nov 10, 2019 at 10:37:33AM -0700, Jeffrey Hugo wrote: > > > On Sun, Nov 10, 2019 at 6:53 AM Brian Masney wrote: > > > > > > > > On Fri, Nov 08, 2019 at 07:56:25AM -0700, Jeffrey Hugo wrote: > > > > There's a REG_MDP5_PP_AUTOREFRESH_CONFIG() macro upstream here: > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h#n1383 > > > > > > > > I'm not sure what to put in that register but I tried configuring it > > > > with a 1 this way and still have the same issue. > > > > > > > > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c > > > > index eeef41fcd4e1..6b9acf68fd2c 100644 > > > > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c > > > > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c > > > > @@ -80,6 +80,7 @@ static int pingpong_tearcheck_setup(struct drm_encoder *encoder, > > > > mdp5_write(mdp5_kms, REG_MDP5_PP_SYNC_THRESH(pp_id), > > > > MDP5_PP_SYNC_THRESH_START(4) | > > > > MDP5_PP_SYNC_THRESH_CONTINUE(4)); > > > > + mdp5_write(mdp5_kms, REG_MDP5_PP_AUTOREFRESH_CONFIG(pp_id), 1); > > > > > > > > return 0; > > > > } > > > > > > bit 31 is the enable bit (set that to 1), bits 15:0 are the > > > frame_count (how many te events before the MDP sends a frame, I'd > > > recommend set to 1). Then after its programmed, you'll have to flush > > > the config, and probably use a _START to make sure the flush takes > > > effect. > > > > I think that I initially get autorefresh enabled based on your > > description above since the ping pong IRQs occur much more frequently. > > However pretty quickly the error 'dsi_err_worker: status=c' is shown, > > the contents on the screen shift to the right, and the screen no longer > > updates after that. That error decodes to > > DSI_ERR_STATE_DLN0_PHY | DSI_ERR_STATE_FIFO according to dsi_host.c. > > > > Here's the relevant code that I have so far: > > So, Unless I missed it, you haven't disabled using _start when > autorefresh is enabled. If you are using both at the same time, > you'll overload the DSI and get those kinds of errors. That fixed the issue. Just to close out this thread, I submitted a patch with what I have here: https://lore.kernel.org/lkml/20191112104854.20850-1-masneyb@onstation.org/T/#u I'll work on async commit support for the MDP5. Thanks Jeff and Rob! Brian