Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp273780pxk; Thu, 1 Oct 2020 01:55:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzCUth8Zqvfuajcb9wKllXR04HbrnGQ16JwlC7C0rWW8JEpiN3O5MlBGowBzICEquU3J9yV X-Received: by 2002:a17:906:39c8:: with SMTP id i8mr5225822eje.299.1601542502715; Thu, 01 Oct 2020 01:55:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601542502; cv=none; d=google.com; s=arc-20160816; b=Hmu7i7Myz5bBDTfQQ7z9QmIUvKLMhz/Nrd3Wa/wajAVzyL4juJgMfhtgJLDHzoZ3dv TDqvwwYqTloIBXhBOHJifzVgsP8+qV9XXQoPjSRyDmPx01ajVX1nEu8nccw8egiIXjmK CDNbxAqgkSBcMYk5jFnLxsqdcNLq8ckv8wdbkGJUyqXTqEUZvKVtuGgXrWZH6JOVZqXA fLk1To8IVM5CI0HlyMJyfDMLeLW/1EsbMW2UmzCXLfKm7jsw2CegYZrq51LPk7RQEfT6 5YjKfFX03BZZ2Ta9C8iO5uGyW33Bk16ekpCgIG1bxzTluKVkQPjVt9Hk9u++a9Z41Q6Z Q1iw== 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:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature; bh=Q0ZqQW+4vFf+iD9A70s75Xj0tDXrtRGQDZhTqMv0HQA=; b=F6UQPt+e7R6Wplt/xc0Ykcarrmdgx+YMnuvDjZ9DNuYIhvxT568b04x1AMUO5TBfeK xyJm6VHeqJqwPXirQg8LO1tUqiWzi4i8/axv0jplO18H6Xgqm+DqwVV6xTGAXrCBY+yU YNPS/xjb+5CsrvT+tVfhlZ8ltH7WQ/udBRoe3v1j5AsHPsKkvkTyZOclypvj//uyJYd5 /qRblG5OHlAcNCYcq5G9m5GCm3XRzxH+uNGgXdj8KUrr7QXNNzd6ALUj5PGYs57rAM70 SyNkExrVL2hL2NBdR6WqQOzzXDOUMsFlrf9prUy+HQKNBFMtffYVKqJsh87ZzrtQ0Ajp UeZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=GwbofYx9; 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 y17si3061407ejq.737.2020.10.01.01.54.39; Thu, 01 Oct 2020 01:55:02 -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 header.i=@ffwll.ch header.s=google header.b=GwbofYx9; 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 S1731799AbgJAIvw (ORCPT + 99 others); Thu, 1 Oct 2020 04:51:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731638AbgJAIvu (ORCPT ); Thu, 1 Oct 2020 04:51:50 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99AC8C0613E3 for ; Thu, 1 Oct 2020 01:51:48 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id z1so4700235wrt.3 for ; Thu, 01 Oct 2020 01:51:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=Q0ZqQW+4vFf+iD9A70s75Xj0tDXrtRGQDZhTqMv0HQA=; b=GwbofYx9CoC9S0ddpDsHPuhwueqzRHZJ5M3qYwTGpY3ghcpSvLbKilOykFTg4hujbF 4cDGPHsCdmFztg066nYKNVFnoOQPPtCulSXtYZ/9JB+hmtVuoIXZauMaSu79yZoJVC6T syAYqU+eBGvvW9GhE2Es/xGggziKKjMhpL4Bo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=Q0ZqQW+4vFf+iD9A70s75Xj0tDXrtRGQDZhTqMv0HQA=; b=hn7QnFDfG8JsvjnPQGonI93DZAG7SFPngJtiMsTKnoFmM9O3QCtFoH+AFxMVFzuhtc 5svYo3/SEsVPCQn485wLQUEhUl1zt5ysALfHYFo6p2p1DNNYAanOADRqPJXj9vrCqvAJ HpPKe7lQce83BZtUgzQwVUpSpjBSUVakkh/zQ1QUm73eoEprWj3QftKiWG8WDahT/t84 W4fR9j5yfP6sEHbhlcfSSA/Tv286V+4oLQnQIGxoCWOLlZjqwXvz6lgmox9D1UjtCQBU ucKy8rB7a5tjvwuzECz7A34RMzErChTgyLJV3MM98rVgKbMyMfrD0Sf3Ts3Yi0UUgR04 NS4A== X-Gm-Message-State: AOAM533Rg6Ix9670nRaDINRlqaHlm5p27957jFe+uscZDMNJvQKwgIvi KZFG9UUM2yAbfoJ/0GsiuKzPQA== X-Received: by 2002:adf:ec47:: with SMTP id w7mr8110204wrn.175.1601542307324; Thu, 01 Oct 2020 01:51:47 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id n3sm7712106wmn.28.2020.10.01.01.51.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Oct 2020 01:51:46 -0700 (PDT) Date: Thu, 1 Oct 2020 10:51:44 +0200 From: Daniel Vetter To: Paul Cercueil Cc: Christoph Hellwig , Stephen Rothwell , Dave Airlie , Linux Kernel Mailing List , DRI , Linux Next Mailing List Subject: Re: [PATCH 1/3] drm: Add and export function drm_gem_cma_create_noalloc Message-ID: <20201001085144.GD438822@phenom.ffwll.local> Mail-Followup-To: Paul Cercueil , Christoph Hellwig , Stephen Rothwell , Dave Airlie , Linux Kernel Mailing List , DRI , Linux Next Mailing List References: <20200930165212.GA8833@lst.de> <20200930171644.299363-1-paul@crapouillou.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200930171644.299363-1-paul@crapouillou.net> X-Operating-System: Linux phenom 5.7.0-1-amd64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 30, 2020 at 07:16:42PM +0200, Paul Cercueil wrote: > Add and export the function drm_gem_cma_create_noalloc(), which is just > __drm_gem_cma_create() renamed. > > This function can be used by drivers that need to create a GEM object > without allocating the backing memory. > > Signed-off-by: Paul Cercueil > --- > drivers/gpu/drm/drm_gem_cma_helper.c | 11 ++++++----- > include/drm/drm_gem_cma_helper.h | 3 +++ > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c > index 59b9ca207b42..6abc4b306832 100644 > --- a/drivers/gpu/drm/drm_gem_cma_helper.c > +++ b/drivers/gpu/drm/drm_gem_cma_helper.c > @@ -34,7 +34,7 @@ > */ > > /** > - * __drm_gem_cma_create - Create a GEM CMA object without allocating memory > + * drm_gem_cma_create_noalloc - Create a GEM CMA object without allocating memory > * @drm: DRM device > * @size: size of the object to allocate > * > @@ -45,8 +45,8 @@ > * A struct drm_gem_cma_object * on success or an ERR_PTR()-encoded negative > * error code on failure. > */ > -static struct drm_gem_cma_object * > -__drm_gem_cma_create(struct drm_device *drm, size_t size) > +struct drm_gem_cma_object * > +drm_gem_cma_create_noalloc(struct drm_device *drm, size_t size) > { > struct drm_gem_cma_object *cma_obj; > struct drm_gem_object *gem_obj; > @@ -76,6 +76,7 @@ __drm_gem_cma_create(struct drm_device *drm, size_t size) > kfree(cma_obj); > return ERR_PTR(ret); > } > +EXPORT_SYMBOL_GPL(drm_gem_cma_create_noalloc); This feels a bit awkward, since for drivers who want to roll their own we can do that already. I think the better approach is to export a cma function which allocates non-coherent dma memory. -Daniel > > /** > * drm_gem_cma_create - allocate an object with the given size > @@ -98,7 +99,7 @@ struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, > > size = round_up(size, PAGE_SIZE); > > - cma_obj = __drm_gem_cma_create(drm, size); > + cma_obj = drm_gem_cma_create_noalloc(drm, size); > if (IS_ERR(cma_obj)) > return cma_obj; > > @@ -476,7 +477,7 @@ drm_gem_cma_prime_import_sg_table(struct drm_device *dev, > return ERR_PTR(-EINVAL); > > /* Create a CMA GEM buffer. */ > - cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size); > + cma_obj = drm_gem_cma_create_noalloc(dev, attach->dmabuf->size); > if (IS_ERR(cma_obj)) > return ERR_CAST(cma_obj); > > diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h > index 2bfa2502607a..be2b8e3a8ab2 100644 > --- a/include/drm/drm_gem_cma_helper.h > +++ b/include/drm/drm_gem_cma_helper.h > @@ -83,6 +83,9 @@ int drm_gem_cma_mmap(struct file *filp, struct vm_area_struct *vma); > struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, > size_t size); > > +struct drm_gem_cma_object * > +drm_gem_cma_create_noalloc(struct drm_device *drm, size_t size); > + > extern const struct vm_operations_struct drm_gem_cma_vm_ops; > > #ifndef CONFIG_MMU > -- > 2.28.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch