Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp996525pxj; Thu, 27 May 2021 17:21:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxs4UppHhyMl7raEhZWoAJxqZjunXEaZyznvT4mduxOrQZOBNLSB1z/F0edXEwbFwqUcL08 X-Received: by 2002:a17:907:1b20:: with SMTP id mp32mr6602412ejc.495.1622161281842; Thu, 27 May 2021 17:21:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622161281; cv=none; d=google.com; s=arc-20160816; b=G52Ij1qsdXYJqd+10v1/AglIzWGkACTFH8RB9iayBgPWJ3z8Ad2M6GR9D7XHX/GyM3 Lgqe6pFXGhbajlkImBMD7EYNeH6MjBo/mvpGePU0xA87BasuoXBArjTQc2nFnE7JzdFf taQp6yxY0ln4XbYzJII4FHs6jgL7pFwjigpDmYkXIjPcIJCvnIQiuFp+F1cQMLweomQh 6tTVNMNbvgmYSgdaPyRJWWlWCsFvoKlNqJvxSWRBSaXpArCCx5lBeD5ciT5bNExHYnCN My1idg7Wkttct04hkglxSnqXXdCGxdYQS6UnDw5/INBGyWSESXs+P4BGN9ji3lGps624 pMwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=2WL89n9W4RNg8xyC0OmxHfXAztFr5sgur9XrPxaaCUc=; b=Djslckyo4DUp5SiwNJmwEceZ1gUHYk1EeM9Ky5UyldlsPxhPmXeRCSVz77ZaRXAksS Gg5C4i3hqGhhgJapfeG0SRrb1TbiZIH15ibo0ppFRmPrPSIkH4XOExzN0YKsfuc12Ls0 KJxcR0wqMrg7K9m3QI2uh9jq8o5Tp/+Xo1r+uyqX26ga2mCRshMv2zG+lFasY7qugaIu oLMigJJhYBFove9DBxeGRooNfDVuS5xRy6qbHCog/f5CwBuukXr6zN3qWLKEvPpvFbhT fqmQxpHfr4OqUg+43W/sXxq4n5ZuHLOx+zC35jA2z+1IYVy+ZML0xERiKIlDH8vMGS1Z gszA== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bl4si3113505ejb.17.2021.05.27.17.20.58; Thu, 27 May 2021 17:21:21 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236524AbhE0XYQ (ORCPT + 99 others); Thu, 27 May 2021 19:24:16 -0400 Received: from aposti.net ([89.234.176.197]:36238 "EHLO aposti.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236565AbhE0XX4 (ORCPT ); Thu, 27 May 2021 19:23:56 -0400 From: Paul Cercueil To: David Airlie , Daniel Vetter , Thomas Zimmermann , Maxime Ripard Cc: list@opendingux.net, linux-mips@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Neil Armstrong , Paul Cercueil Subject: [PATCH 08/11] drm/ingenic: Support custom GEM object Date: Fri, 28 May 2021 00:21:02 +0100 Message-Id: <20210527232104.152577-9-paul@crapouillou.net> In-Reply-To: <20210527232104.152577-1-paul@crapouillou.net> References: <20210527232104.152577-1-paul@crapouillou.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add boilerplate code to support a custom "ingenic_gem_object". Empty for now, but it will be useful later when subsequent patches will introduce object-specific driver data. Signed-off-by: Paul Cercueil --- drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c index ced2109e8f35..1cac369f6293 100644 --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c @@ -64,6 +64,10 @@ struct jz_soc_info { unsigned int num_formats_f0, num_formats_f1; }; +struct ingenic_gem_object { + struct drm_gem_cma_object base; +}; + struct ingenic_drm_private_state { struct drm_private_state base; @@ -179,6 +183,11 @@ static inline struct ingenic_drm *drm_nb_get_priv(struct notifier_block *nb) return container_of(nb, struct ingenic_drm, clock_nb); } +static inline struct ingenic_gem_object *to_ingenic_gem_obj(struct drm_gem_object *gem_obj) +{ + return container_of(gem_obj, struct ingenic_gem_object, base.base); +} + static inline dma_addr_t dma_hwdesc_addr(const struct ingenic_drm *priv, bool use_f1) { u32 offset = offsetof(struct ingenic_dma_hwdescs, hwdesc[use_f1]); @@ -853,15 +862,15 @@ static struct drm_gem_object * ingenic_drm_gem_create_object(struct drm_device *drm, size_t size) { struct ingenic_drm *priv = drm_device_get_priv(drm); - struct drm_gem_cma_object *obj; + struct ingenic_gem_object *obj; obj = kzalloc(sizeof(*obj), GFP_KERNEL); if (!obj) return ERR_PTR(-ENOMEM); - obj->map_noncoherent = priv->soc_info->map_noncoherent; + obj->base.map_noncoherent = priv->soc_info->map_noncoherent; - return &obj->base; + return &obj->base.base; } static struct drm_private_state * -- 2.30.2