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=-14.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 6AA6CC433ED for ; Thu, 20 May 2021 09:41:50 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EF4346193F for ; Thu, 20 May 2021 09:41:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF4346193F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=UYcXH/VX1OIwhnc7fC6jg08T3vOvqMyxjwlJvo4VDno=; b=AyPcupxW19SNFmQfb6YgqVYdOZ syPkL7V/gD2BQWPlb/0uYbAYUmISlbpc9CEMwfEw5533Qu3FjQh3eb3YUpNErKE4sxw8pb/oKWBiU iaJObWSZW40f1bYrOMRfYHkBAvad1kfaouHjIknare0IU12ekoxWhh5dHsO3o/a2pLnbazIuNORkx EgcXpLqlEJX9tDulY6wPdV/M63Ff/GEmogqFff0j1XsfGsg36uqCGcCMrMo4nrKDqCgIsawmkVeQD Qwwbcb2c5uQZBAR37iy8s6OM/cr20+lSoY0AlpF8O8eXEOeXh+ZpSNKUAw8Y+ScG6rDWW3Gp9CiSW BuYNqubA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ljf99-00019I-TE; Thu, 20 May 2021 09:39:19 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ljf7a-000152-VN for linux-arm-kernel@desiato.infradead.org; Thu, 20 May 2021 09:37:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=8lt7rCud0YkOISxC7DSO+mJKx5fNEdDWU84Fc8Dp5WE=; b=G+7IXVbb7vr6WDnoeY73QPZ6A+ q3G3YqSUEuuCHHUA3L7UD1MI7VDmz2MUPfubP4iio8Zyy4eSvz5+ov0N5mneT488nx9HO7U+68L+D uwbu0gz0m3R/GM3YsP5p52TlG8iVz/4yJkylBK7J6CB97/bCU7Ieh72bKFe6HNyLv1yko6cQLd1vB uaQoBOLKzaI9GKtOOf8CYUg+5i2Bo+mjqJaewCAASqrvTgUDzzqGaWOZfsliIi4GRvUIWUhMoMYZ0 xygGJwNR3j5WWMSqdAMQauZtj3LbDeGo9IRvkX/j6kX9JeylspmLXFBCXsixYkULO8mz+rABbP+dz /iWEh2Sw==; Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljf7X-00G6zg-Jg for linux-arm-kernel@lists.infradead.org; Thu, 20 May 2021 09:37:37 +0000 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 71D99D41; Thu, 20 May 2021 11:37:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1621503448; bh=ofkOpfVLFznF+KtbJtdCz73RuV3QvyPcnQb202PcaVM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=oWtq2QhRuQSBvfoBh5V0HRAVS+2uxxGLQ8gnzRuIS+2AVj5wWR5HsgeWuKSSaXu0b Sdy5gxiD7KSo30azER9jpcieLeUKEJcb7FT/pPJwNwJVVRa4ZKDSrPafY7DwxAQ/UC UYKBBldX3srUuB3+ixNF27UwiR8FQRlDA3x8jkQY= Date: Thu, 20 May 2021 12:37:26 +0300 From: Laurent Pinchart To: quanyang.wang@windriver.com Cc: Paul Cercueil , Hyun Kwon , David Airlie , Daniel Vetter , Michal Simek , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [V2][PATCH 1/2] drm: xlnx: add is_layer_vid() to simplify the code Message-ID: References: <20210518095019.3855369-1-quanyang.wang@windriver.com> <20210518095019.3855369-2-quanyang.wang@windriver.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210518095019.3855369-2-quanyang.wang@windriver.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210520_023735_813940_D20F0571 X-CRM114-Status: GOOD ( 25.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Quanyang, Thank you for the patch. On Tue, May 18, 2021 at 05:50:18PM +0800, quanyang.wang@windriver.com wrote: > From: Quanyang Wang > > Add a new function is_layer_vid() to simplify the code that > judges if a layer is the video layer. I like this, and especially passing the layer pointer to functions instead of the layer ID. I'm however wondering is we shouldn't name the function xlnx_zynqmp_disp_layer_is_video(), for consistency. If that's fine with you I can make the change when applying the patch to my tree, there's no need to submit a new version. > Acked-by: Paul Cercueil > Signed-off-by: Quanyang Wang Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/xlnx/zynqmp_disp.c | 39 +++++++++++++++++------------- > 1 file changed, 22 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c > index 109d627968ac..eefb278e24c6 100644 > --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c > +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c > @@ -434,30 +434,35 @@ static void zynqmp_disp_avbuf_write(struct zynqmp_disp_avbuf *avbuf, > writel(val, avbuf->base + reg); > } > > +static bool is_layer_vid(const struct zynqmp_disp_layer *layer) > +{ > + return layer->id == ZYNQMP_DISP_LAYER_VID; > +} > + > /** > * zynqmp_disp_avbuf_set_format - Set the input format for a layer > * @avbuf: Audio/video buffer manager > - * @layer: The layer ID > + * @layer: The layer > * @fmt: The format information > * > * Set the video buffer manager format for @layer to @fmt. > */ > static void zynqmp_disp_avbuf_set_format(struct zynqmp_disp_avbuf *avbuf, > - enum zynqmp_disp_layer_id layer, > + struct zynqmp_disp_layer *layer, > const struct zynqmp_disp_format *fmt) > { > unsigned int i; > u32 val; > > val = zynqmp_disp_avbuf_read(avbuf, ZYNQMP_DISP_AV_BUF_FMT); > - val &= layer == ZYNQMP_DISP_LAYER_VID > + val &= is_layer_vid(layer) > ? ~ZYNQMP_DISP_AV_BUF_FMT_NL_VID_MASK > : ~ZYNQMP_DISP_AV_BUF_FMT_NL_GFX_MASK; > val |= fmt->buf_fmt; > zynqmp_disp_avbuf_write(avbuf, ZYNQMP_DISP_AV_BUF_FMT, val); > > for (i = 0; i < ZYNQMP_DISP_AV_BUF_NUM_SF; i++) { > - unsigned int reg = layer == ZYNQMP_DISP_LAYER_VID > + unsigned int reg = is_layer_vid(layer) > ? ZYNQMP_DISP_AV_BUF_VID_COMP_SF(i) > : ZYNQMP_DISP_AV_BUF_GFX_COMP_SF(i); > > @@ -573,19 +578,19 @@ static void zynqmp_disp_avbuf_disable_audio(struct zynqmp_disp_avbuf *avbuf) > /** > * zynqmp_disp_avbuf_enable_video - Enable a video layer > * @avbuf: Audio/video buffer manager > - * @layer: The layer ID > + * @layer: The layer > * @mode: Operating mode of layer > * > * Enable the video/graphics buffer for @layer. > */ > static void zynqmp_disp_avbuf_enable_video(struct zynqmp_disp_avbuf *avbuf, > - enum zynqmp_disp_layer_id layer, > + struct zynqmp_disp_layer *layer, > enum zynqmp_disp_layer_mode mode) > { > u32 val; > > val = zynqmp_disp_avbuf_read(avbuf, ZYNQMP_DISP_AV_BUF_OUTPUT); > - if (layer == ZYNQMP_DISP_LAYER_VID) { > + if (is_layer_vid(layer)) { > val &= ~ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MASK; > if (mode == ZYNQMP_DISP_LAYER_NONLIVE) > val |= ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MEM; > @@ -605,17 +610,17 @@ static void zynqmp_disp_avbuf_enable_video(struct zynqmp_disp_avbuf *avbuf, > /** > * zynqmp_disp_avbuf_disable_video - Disable a video layer > * @avbuf: Audio/video buffer manager > - * @layer: The layer ID > + * @layer: The layer > * > * Disable the video/graphics buffer for @layer. > */ > static void zynqmp_disp_avbuf_disable_video(struct zynqmp_disp_avbuf *avbuf, > - enum zynqmp_disp_layer_id layer) > + struct zynqmp_disp_layer *layer) > { > u32 val; > > val = zynqmp_disp_avbuf_read(avbuf, ZYNQMP_DISP_AV_BUF_OUTPUT); > - if (layer == ZYNQMP_DISP_LAYER_VID) { > + if (is_layer_vid(layer)) { > val &= ~ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MASK; > val |= ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_NONE; > } else { > @@ -807,7 +812,7 @@ static void zynqmp_disp_blend_layer_set_csc(struct zynqmp_disp_blend *blend, > } > } > > - if (layer->id == ZYNQMP_DISP_LAYER_VID) > + if (is_layer_vid(layer)) > reg = ZYNQMP_DISP_V_BLEND_IN1CSC_COEFF(0); > else > reg = ZYNQMP_DISP_V_BLEND_IN2CSC_COEFF(0); > @@ -818,7 +823,7 @@ static void zynqmp_disp_blend_layer_set_csc(struct zynqmp_disp_blend *blend, > zynqmp_disp_blend_write(blend, reg + 8, coeffs[i + swap[2]]); > } > > - if (layer->id == ZYNQMP_DISP_LAYER_VID) > + if (is_layer_vid(layer)) > reg = ZYNQMP_DISP_V_BLEND_IN1CSC_OFFSET(0); > else > reg = ZYNQMP_DISP_V_BLEND_IN2CSC_OFFSET(0); > @@ -1025,7 +1030,7 @@ zynqmp_disp_layer_find_format(struct zynqmp_disp_layer *layer, > */ > static void zynqmp_disp_layer_enable(struct zynqmp_disp_layer *layer) > { > - zynqmp_disp_avbuf_enable_video(&layer->disp->avbuf, layer->id, > + zynqmp_disp_avbuf_enable_video(&layer->disp->avbuf, layer, > ZYNQMP_DISP_LAYER_NONLIVE); > zynqmp_disp_blend_layer_enable(&layer->disp->blend, layer); > > @@ -1046,7 +1051,7 @@ static void zynqmp_disp_layer_disable(struct zynqmp_disp_layer *layer) > for (i = 0; i < layer->drm_fmt->num_planes; i++) > dmaengine_terminate_sync(layer->dmas[i].chan); > > - zynqmp_disp_avbuf_disable_video(&layer->disp->avbuf, layer->id); > + zynqmp_disp_avbuf_disable_video(&layer->disp->avbuf, layer); > zynqmp_disp_blend_layer_disable(&layer->disp->blend, layer); > } > > @@ -1067,7 +1072,7 @@ static void zynqmp_disp_layer_set_format(struct zynqmp_disp_layer *layer, > layer->disp_fmt = zynqmp_disp_layer_find_format(layer, info->format); > layer->drm_fmt = info; > > - zynqmp_disp_avbuf_set_format(&layer->disp->avbuf, layer->id, > + zynqmp_disp_avbuf_set_format(&layer->disp->avbuf, layer, > layer->disp_fmt); > > /* > @@ -1244,8 +1249,8 @@ static int zynqmp_disp_create_planes(struct zynqmp_disp *disp) > drm_formats[j] = layer->info->formats[j].drm_fmt; > > /* Graphics layer is primary, and video layer is overlay. */ > - type = i == ZYNQMP_DISP_LAYER_GFX > - ? DRM_PLANE_TYPE_PRIMARY : DRM_PLANE_TYPE_OVERLAY; > + type = is_layer_vid(layer) > + ? DRM_PLANE_TYPE_OVERLAY : DRM_PLANE_TYPE_PRIMARY; > ret = drm_universal_plane_init(disp->drm, &layer->plane, 0, > &zynqmp_disp_plane_funcs, > drm_formats, -- Regards, Laurent Pinchart _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel