Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp738459pxf; Wed, 24 Mar 2021 14:56:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyl1gowlbFwy8hvsJd0LAO9404UQR9DJvkc9ztmRJ33M0zYzPgh3YtFAtvuoIgPEm4IeJLA X-Received: by 2002:a17:906:154f:: with SMTP id c15mr6072861ejd.142.1616623006973; Wed, 24 Mar 2021 14:56:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616623006; cv=none; d=google.com; s=arc-20160816; b=OUsYcmI1zpGOJXexAhvKgzuR+6nZDG/BHFxsVUp5fx6MgBt2aMokXATGgGhOHEuXjH woZ/Pkj3YXIZuEjn3rGK4lglOfRQALGIJk3VOz42jUYtaoP7KtFx64kr2X6DWbJRgSiZ 2okdp8Nhxf9CDS0OF4Us3jp+EGugo8lEl4uU+6hN7nS2Q6WwsIBG3ZQI0trfuGJEcnxG smsDo02LMyPicNoBe6SMf/BrfJKuat/6Fwb8yJkEZm7MPsYICcXNtYOuUtVKvfpp9NOE u4FwvaBHysAjyn5465MAwsfVVPKPoqjHJ6q4d/MkpdzULqCTQX+aTGmrqxV9DXvqrOBt UMkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=8aKGPc1keLlw45HBLYkLmxeEFhZMmZvAgXUznZuQYZ8=; b=PdaHkX7dcGwOZzgUK1cio8Kp5mjKj4nkF96/ZtvhXS7YQfbM2Dcjnen/HjrkC+vsCd jg1fAhFfDnUgKy2jeCQiy4KRvsOP6qU6JdhP1ZpnEOI6INfwKKKUnCRD02eNo4Wle6L0 2ja7RKB3lWblhJ3RS9uMqR5nbeEJtYXMbmKoEeHlLFwARTohGiMutza9wBDqFf6Kur+G eM6eavIQOebUHXpFN17MM/zAest+OZzKIY/GLaK/RO5jfQUEHNkcowC7TGyj6Wfge8Qq FJ4336Nwr3aHPaV9PpI7tfLBIE/nAhXW+DI5LIeK9VEFPab8E2s2WUSX1f5ATQMokH2i GUoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=T5q51G73; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cy16si2815914edb.300.2021.03.24.14.56.23; Wed, 24 Mar 2021 14:56:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=T5q51G73; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232059AbhCXCdM (ORCPT + 99 others); Tue, 23 Mar 2021 22:33:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36030 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231944AbhCXCcl (ORCPT ); Tue, 23 Mar 2021 22:32:41 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DE2DC061763; Tue, 23 Mar 2021 19:32:41 -0700 (PDT) Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id F0E91883; Wed, 24 Mar 2021 03:32:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1616553160; bh=l7BD45qd1EreNw2oPGiKvtAPxI7dpJU1XkD1ZqEr9R0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=T5q51G7369lgTkBPV6hJMlzYWYozCdmLKtEGYFrjmEFkaBNH9Rnw3Uq0z46NnlOwo hcSbaLCVEBIi18wZLAiEm2Ue/JNcTb1Efte23egBegX8BidBati2lzx0BObdcOK+/H J/Ipten2UGI3SEPY7sqqHqrt7C1EBSl3h9sXXf/g= Date: Wed, 24 Mar 2021 04:31:57 +0200 From: Laurent Pinchart To: Paul Cercueil Cc: David Airlie , Daniel Vetter , Daniel Vetter , linux-mips@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, od@zcrc.me, stable@vger.kernel.org, Sam Ravnborg Subject: Re: [PATCH v3 4/4] drm/ingenic: Fix non-OSD mode Message-ID: References: <20210124085552.29146-1-paul@crapouillou.net> <20210124085552.29146-5-paul@crapouillou.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210124085552.29146-5-paul@crapouillou.net> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Paul, Thank you for the patch. On Sun, Jan 24, 2021 at 08:55:52AM +0000, Paul Cercueil wrote: > Even though the JZ4740 did not have the OSD mode, it had (according to > the documentation) two DMA channels, but there is absolutely no > information about how to select the second DMA channel. > > Make the ingenic-drm driver work in non-OSD mode by using the > foreground0 plane (which is bound to the DMA0 channel) as the primary > plane, instead of the foreground1 plane, which is the primary plane > when in OSD mode. > > Fixes: 3c9bea4ef32b ("drm/ingenic: Add support for OSD mode") > Cc: # v5.8+ > Signed-off-by: Paul Cercueil > Acked-by: Daniel Vetter I don't have much knowledge about this platform, but the change looks reasonable to me. Acked-by: Laurent Pinchart > --- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > index b23011c1c5d9..59ce43862e16 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > @@ -554,7 +554,7 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane, > height = state->src_h >> 16; > cpp = state->fb->format->cpp[0]; > > - if (priv->soc_info->has_osd && plane->type == DRM_PLANE_TYPE_OVERLAY) > + if (!priv->soc_info->has_osd || plane->type == DRM_PLANE_TYPE_OVERLAY) > hwdesc = &priv->dma_hwdescs->hwdesc_f0; > else > hwdesc = &priv->dma_hwdescs->hwdesc_f1; > @@ -826,6 +826,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components) > const struct jz_soc_info *soc_info; > struct ingenic_drm *priv; > struct clk *parent_clk; > + struct drm_plane *primary; > struct drm_bridge *bridge; > struct drm_panel *panel; > struct drm_encoder *encoder; > @@ -940,9 +941,11 @@ static int ingenic_drm_bind(struct device *dev, bool has_components) > if (soc_info->has_osd) > priv->ipu_plane = drm_plane_from_index(drm, 0); > > - drm_plane_helper_add(&priv->f1, &ingenic_drm_plane_helper_funcs); > + primary = priv->soc_info->has_osd ? &priv->f1 : &priv->f0; > > - ret = drm_universal_plane_init(drm, &priv->f1, 1, > + drm_plane_helper_add(primary, &ingenic_drm_plane_helper_funcs); > + > + ret = drm_universal_plane_init(drm, primary, 1, > &ingenic_drm_primary_plane_funcs, > priv->soc_info->formats_f1, > priv->soc_info->num_formats_f1, > @@ -954,7 +957,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components) > > drm_crtc_helper_add(&priv->crtc, &ingenic_drm_crtc_helper_funcs); > > - ret = drm_crtc_init_with_planes(drm, &priv->crtc, &priv->f1, > + ret = drm_crtc_init_with_planes(drm, &priv->crtc, primary, > NULL, &ingenic_drm_crtc_funcs, NULL); > if (ret) { > dev_err(dev, "Failed to init CRTC: %i\n", ret); -- Regards, Laurent Pinchart