Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2199313pxb; Tue, 12 Oct 2021 01:16:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy4rOCgWU6bptt0pb/Vf9LOtQV8XbatkzSTX6JtQZR/SvyyIpDGtleWW7QT0292dMU4PbHV X-Received: by 2002:a17:906:454a:: with SMTP id s10mr31352689ejq.11.1634026602356; Tue, 12 Oct 2021 01:16:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634026602; cv=none; d=google.com; s=arc-20160816; b=la5P9B3BTyyFyrH3hrprANpgCgQiIF6NvUoOX2VpdjJCEr6oUbIAELFPao6stPyt+0 PbzNW5uutk9dqC6QujHQ1VXKtrEHx0NCLKI93ixhsexXWBFF0bA4EDNoRbPWEq73pjnM 3uhP2GnZkhwiMiBXHmaZOWGTVamVNUBZ37c3QOKQMupRaDO0SQxLulD6w9KrCJ03n7V0 k4mQSWYn4vxmQK/UZZJ+ZPHo83yak4EcAFHIkDVHEpeXlgh15XwwZvEBqpkFT7f1M9kG 1BjPNeKKpLDFf9nxwFiMYkSNMsGlx+EH3qD5bZLuABLCZw/XI48tYxVkfkPFBD22DOFT bQLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=+ymSh0AA6X7AiiUMiadGIahuackCM+hj9IxOcpcSvtY=; b=CqqHXpbRoNebPH1vyihjIMJauAy584jppbvbRWRg+HxAgd9ifaKxAAvxXcQ15UWPFr CN/saZCWICQToFoWEqaEl7/EQ+go4z0iaFJw8qiQE1oyoaCrPgr4RMeFhENEdNn/Fj80 9wdmff8j0xb89+FohpDtrEvhRvbadvtId8P4lSxv1Cuk/kHfopXASAwi5MWSJ/24c6Ce IIHD7fIET40gJ/sXif3mcSdRegCnSKyVlJuylYy9C7NMlZJfj4kXlU1KIz99DmbO8+ej nloQkZo7e8OeF6+OkbvfrTBt9jsa/9vbbqrBrMqRA4v0OSifAFMlgo6uFSeLGYbDippX 2ztA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=agJyJ2+f; 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 qf10si16375070ejc.430.2021.10.12.01.16.18; Tue, 12 Oct 2021 01:16:42 -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=agJyJ2+f; 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 S234829AbhJLIQI (ORCPT + 99 others); Tue, 12 Oct 2021 04:16:08 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:51166 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234745AbhJLIQG (ORCPT ); Tue, 12 Oct 2021 04:16:06 -0400 Received: from [192.168.1.111] (91-158-153-130.elisa-laajakaista.fi [91.158.153.130]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0850DF1; Tue, 12 Oct 2021 10:14:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1634026443; bh=OsxZbQcwz1dtkRw/hcxIOr4+ACIDIZMxyBqiI9xMdBc=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=agJyJ2+fUWzHCWIGvGGJa7JOWuwKVm2Tg/93XIp41HxFydtMPen19bMqOW2Z48qNA gn0jhD+8BtcLrn8l90ChqvjaNs+NubhQLBeI8p3dB1hwImpLbkFGGCj2DDyLYQjLS3 BVJr+pAdrcgrucR7QqshyDZFv8xJganq172JljWI= Subject: Re: [PATCH v5 4/8] drm/omap: omap_plane: subclass drm_plane_state To: Neil Armstrong Cc: linux-omap@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, khilman@baylibre.com, Benoit Parrot References: <20210923070701.145377-1-narmstrong@baylibre.com> <20210923070701.145377-5-narmstrong@baylibre.com> From: Tomi Valkeinen Message-ID: Date: Tue, 12 Oct 2021 11:13:59 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210923070701.145377-5-narmstrong@baylibre.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23/09/2021 10:06, Neil Armstrong wrote: > From: Benoit Parrot > > In preparation to add omap plane state specific extensions we need to > subclass drm_plane_state and add the relevant helpers. > > The addition of specific extension will be done separately. > > Signed-off-by: Benoit Parrot > Signed-off-by: Neil Armstrong > --- > drivers/gpu/drm/omapdrm/omap_plane.c | 38 +++++++++++++++++++++++++--- > 1 file changed, 35 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c > index 0df5381cc015..bda794b4c915 100644 > --- a/drivers/gpu/drm/omapdrm/omap_plane.c > +++ b/drivers/gpu/drm/omapdrm/omap_plane.c > @@ -16,6 +16,13 @@ > * plane funcs > */ > > +#define to_omap_plane_state(x) container_of(x, struct omap_plane_state, base) > + > +struct omap_plane_state { > + /* Must be first. */ > + struct drm_plane_state base; > +}; > + > #define to_omap_plane(x) container_of(x, struct omap_plane, base) > > struct omap_plane { > @@ -207,11 +214,17 @@ void omap_plane_install_properties(struct drm_plane *plane, > static void omap_plane_reset(struct drm_plane *plane) > { > struct omap_plane *omap_plane = to_omap_plane(plane); > + struct omap_plane_state *omap_state; > > - drm_atomic_helper_plane_reset(plane); > - if (!plane->state) > + if (plane->state) > + drm_atomic_helper_plane_destroy_state(plane, plane->state); > + > + omap_state = kzalloc(sizeof(*omap_state), GFP_KERNEL); > + if (!omap_state) > return; > > + __drm_atomic_helper_plane_reset(plane, &omap_state->base); > + > /* > * Set the zpos default depending on whether we are a primary or overlay > * plane. > @@ -222,6 +235,25 @@ static void omap_plane_reset(struct drm_plane *plane) > plane->state->color_range = DRM_COLOR_YCBCR_FULL_RANGE; > } > > +static struct drm_plane_state * > +omap_plane_atomic_duplicate_state(struct drm_plane *plane) > +{ > + struct omap_plane_state *state; > + struct omap_plane_state *copy; > + > + if (WARN_ON(!plane->state)) > + return NULL; > + > + state = to_omap_plane_state(plane->state); > + copy = kmemdup(state, sizeof(*state), GFP_KERNEL); > + if (!copy) > + return NULL; > + > + __drm_atomic_helper_plane_duplicate_state(plane, ©->base); > + > + return ©->base; > +} > + omap_crtc.c has similar, but slightly different, functions. I think it would be good to use the same style in omap_plane, or, if the approach above is better, change omap_crtc to match the style here. Tomi