Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753343AbbBBHwT (ORCPT ); Mon, 2 Feb 2015 02:52:19 -0500 Received: from mail-wi0-f175.google.com ([209.85.212.175]:42342 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752315AbbBBHwS (ORCPT ); Mon, 2 Feb 2015 02:52:18 -0500 Date: Mon, 2 Feb 2015 08:53:37 +0100 From: Daniel Vetter To: Mark yao Cc: Daniel Kurtz , David Airlie , Daniel Vetter , Rob Clark , Philipp Zabel , dri-devel , "linux-kernel@vger.kernel.org" , "open list:ARM/Rockchip SoC..." Subject: Re: [PATCH] drm/rockchip: vop: power off until vop standby take effect Message-ID: <20150202075337.GN14009@phenom.ffwll.local> Mail-Followup-To: Mark yao , Daniel Kurtz , David Airlie , Rob Clark , Philipp Zabel , dri-devel , "linux-kernel@vger.kernel.org" , "open list:ARM/Rockchip SoC..." References: <1422693698-21944-1-git-send-email-mark.yao@rock-chips.com> <54CEE131.1020600@rock-chips.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <54CEE131.1020600@rock-chips.com> X-Operating-System: Linux phenom 3.16-2-amd64 User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2541 Lines: 66 On Mon, Feb 02, 2015 at 10:30:09AM +0800, Mark yao wrote: > On 2015年02月02日 10:07, Daniel Kurtz wrote: > >Hi Mark, Heiko, > > > >On Sat, Jan 31, 2015 at 4:41 PM, Mark Yao wrote: > >>Vop standby will take effect end of current frame, > >>if dsp_hold_valid_irq happen, it means vop standby complete. > >> > >>we must wait standby complete when we want to disable aclk, > >>if not, memory bus maybe dead. > >> > >>Signed-off-by: Mark Yao > >>--- > >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 76 ++++++++++++++++++++++----- > >> 1 file changed, 63 insertions(+), 13 deletions(-) > >> > >>diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > >>index fb25836..47ea61f 100644 > >>--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > >>+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > >>@@ -89,6 +89,7 @@ struct vop { > >> /* mutex vsync_ work */ > >> struct mutex vsync_mutex; > >> bool vsync_work_pending; > >>+ struct completion dsp_hold_completion; > >> > >> const struct vop_data *data; > >> > >>@@ -382,6 +383,34 @@ static bool is_alpha_support(uint32_t format) > >> } > >> } > >> > >>+static void vop_dsp_hold_valid_irq_enable(struct vop *vop) > >>+{ > >>+ unsigned long flags; > >>+ > >>+ BUG_ON(!vop->is_enabled); > >Re: Heiko "use a WARN_ON": > > > >If the VOP clock is off, then the system will just hang when trying to > >write the VOP register so in this case, BUG_ON gives a more reliable > >crash dump than the hang. > In this way, you are right, if vop clocks is disabled, write vop register > will hang system, and the WARN_ON if (WARN_ON(cond)) return; is what we commonly use in i915. Because it's really not any good to use BUG_ON in drm drivers, at least if you expect anyone to use fbcon on top of it (i.e. anything even remotely resembling a normal distro): Then the intial modeset is all done under console_lock, which means that _none_ of your BUG_ON will ever get out over serial console. The problem is fbcon locking, but no fool yet signed up to fix it (it's horrible, I looked ...). -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/