Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp616170img; Wed, 20 Mar 2019 07:28:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqz38JlKHu2F8oMVeDWfqOBgyAuHnbSJn8LtynmSBXnb7Qx5wQoigMP7ay24LFisfLdTP05w X-Received: by 2002:a17:902:20eb:: with SMTP id v40mr8761377plg.20.1553092083921; Wed, 20 Mar 2019 07:28:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553092083; cv=none; d=google.com; s=arc-20160816; b=fDuqF1gtIQGk67/OBoMGwmfZMm+c6MAvXo6nqQIKl6bUCoELhfYsXXm/zjBCUGZYYD acNvQKWMRgSRDE4yrdzULNM8nT9C/l9rbEUKcfyFMdArwh1KCItbte0mqLtsy907m80w yunZfcyUxvZalMW4mLszL6Lcr6NSDN9MaHGxQHGTw1ULqJOpj0IoFDgti6Nyx/1EtT+j 2fZU/s8U+lcCn47XoATeQ+7OIr3wWqOwtaNB9yPY1BfrtfUuPBKrnqrY4FxHBBJFKUXU A+2mqTGBOoZhvT87iIYkm5vIBNze+o89NESmDwb8RQyCZspBM3qP3BDjvItvaQV81xXz yP8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:organization:references:in-reply-to:date:cc:to:from :subject:message-id; bh=Xt9ICbtdAzf7+brL8NbwQbBDrpateVPbQaK2+7RLDjw=; b=KsefzXIAHAv++6X2VZ39fRTrca9m77jbaQkWWL6KuPICn8YXm/mR6t5pA1HiqR9DOd 1HN3k9w/j/GRdO7HWGavoAs4rElatk4TvhsiaeQwySwPOCKtt5YUcSI0dEKeLDt6dJ6q M1oB+3y4Zm5KWL0SaigabKwxJH5+nv08j+NLynkQcq9UlY9qiKM6z0pj4vX41FC2Secw z4M0581o10gBX6mUJJu68R7hvCrTyvnabwstqF+FS0pW0nf6cHVUkBLx4Oy9UMDLWUvO 8yRyaimW6tnyiU2t68gCvCZZnKfSLTgzg7/8WVEn3pMnfV9AFagcJcT4LWurgSJdnImJ FXJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g80si1812100pfg.26.2019.03.20.07.27.47; Wed, 20 Mar 2019 07:28:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727102AbfCTO1D (ORCPT + 99 others); Wed, 20 Mar 2019 10:27:03 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:41307 "EHLO relay8-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726067AbfCTO1C (ORCPT ); Wed, 20 Mar 2019 10:27:02 -0400 X-Originating-IP: 90.88.33.153 Received: from aptenodytes (aaubervilliers-681-1-92-153.w90-88.abo.wanadoo.fr [90.88.33.153]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id A876C1BF203; Wed, 20 Mar 2019 14:26:57 +0000 (UTC) Message-ID: <1dcd84b1ece0a0d063bcd5142297b58d43ce0c94.camel@bootlin.com> Subject: Re: [RFC PATCH 04/20] drm/fourcc: Pass the format_info pointer to drm_format_plane_width/height From: Paul Kocialkowski To: Maxime Ripard , Daniel Vetter , David Airlie , Maarten Lankhorst , Sean Paul , Mauro Carvalho Chehab Cc: Sakari Ailus , Hans Verkuil , Laurent Pinchart , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Date: Wed, 20 Mar 2019 15:26:57 +0100 In-Reply-To: References: Organization: Bootlin Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Le mardi 19 mars 2019 à 22:57 +0100, Maxime Ripard a écrit : > So far, the drm_format_plane_height/width functions were operating on the > format's fourcc and was doing a lookup to retrieve the drm_format_info > structure and return the cpp. > > However, this is inefficient since in most cases, we will have the > drm_format_info pointer already available so we shouldn't have to perform a > new lookup. Some drm_fourcc functions also already operate on the > drm_format_info pointer for that reason, so the API is quite inconsistent > there. Same comment as for the previous patch, I think having a drm_format_info prefix and switching to an inline helper would make good sense. Cheers, Paul > Let's follow the latter pattern and remove the extra lookup while being a > bit more consistent. > > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/drm_fourcc.c | 16 ++++++---------- > drivers/gpu/drm/meson/meson_overlay.c | 6 +++--- > include/drm/drm_fourcc.h | 6 ++++-- > 3 files changed, 13 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > index d8ada4cb689e..57389b9753b2 100644 > --- a/drivers/gpu/drm/drm_fourcc.c > +++ b/drivers/gpu/drm/drm_fourcc.c > @@ -325,17 +325,15 @@ EXPORT_SYMBOL(drm_format_plane_cpp); > /** > * drm_format_plane_width - width of the plane given the first plane > * @width: width of the first plane > - * @format: pixel format > + * @format: pixel format info > * @plane: plane index > * > * Returns: > * The width of @plane, given that the width of the first plane is @width. > */ > -int drm_format_plane_width(int width, uint32_t format, int plane) > +int drm_format_plane_width(int width, const struct drm_format_info *info, > + int plane) > { > - const struct drm_format_info *info; > - > - info = drm_format_info(format); > if (!info || plane >= info->num_planes) > return 0; > > @@ -349,17 +347,15 @@ EXPORT_SYMBOL(drm_format_plane_width); > /** > * drm_format_plane_height - height of the plane given the first plane > * @height: height of the first plane > - * @format: pixel format > + * @format: pixel format info > * @plane: plane index > * > * Returns: > * The height of @plane, given that the height of the first plane is @height. > */ > -int drm_format_plane_height(int height, uint32_t format, int plane) > +int drm_format_plane_height(int height, const struct drm_format_info *info, > + int plane) > { > - const struct drm_format_info *info; > - > - info = drm_format_info(format); > if (!info || plane >= info->num_planes) > return 0; > > diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c > index 8ff15d01a8f9..6987c15b6ab9 100644 > --- a/drivers/gpu/drm/meson/meson_overlay.c > +++ b/drivers/gpu/drm/meson/meson_overlay.c > @@ -475,7 +475,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane, > priv->viu.vd1_stride2 = fb->pitches[2]; > priv->viu.vd1_height2 = > drm_format_plane_height(fb->height, > - fb->format->format, 2); > + fb->format, 2); > DRM_DEBUG("plane 2 addr 0x%x stride %d height %d\n", > priv->viu.vd1_addr2, > priv->viu.vd1_stride2, > @@ -487,7 +487,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane, > priv->viu.vd1_stride1 = fb->pitches[1]; > priv->viu.vd1_height1 = > drm_format_plane_height(fb->height, > - fb->format->format, 1); > + fb->format, 1); > DRM_DEBUG("plane 1 addr 0x%x stride %d height %d\n", > priv->viu.vd1_addr1, > priv->viu.vd1_stride1, > @@ -499,7 +499,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane, > priv->viu.vd1_stride0 = fb->pitches[0]; > priv->viu.vd1_height0 = > drm_format_plane_height(fb->height, > - fb->format->format, 0); > + fb->format, 0); > DRM_DEBUG("plane 0 addr 0x%x stride %d height %d\n", > priv->viu.vd1_addr0, > priv->viu.vd1_stride0, > diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h > index 97a58f3e7462..2291f2618211 100644 > --- a/include/drm/drm_fourcc.h > +++ b/include/drm/drm_fourcc.h > @@ -269,8 +269,10 @@ uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth); > uint32_t drm_driver_legacy_fb_format(struct drm_device *dev, > uint32_t bpp, uint32_t depth); > int drm_format_plane_cpp(const struct drm_format_info *info, int plane); > -int drm_format_plane_width(int width, uint32_t format, int plane); > -int drm_format_plane_height(int height, uint32_t format, int plane); > +int drm_format_plane_width(int width, const struct drm_format_info *info, > + int plane); > +int drm_format_plane_height(int height, const struct drm_format_info *info, > + int plane); > unsigned int drm_format_info_block_width(const struct drm_format_info *info, > int plane); > unsigned int drm_format_info_block_height(const struct drm_format_info *info, -- Paul Kocialkowski, Bootlin Embedded Linux and kernel engineering https://bootlin.com