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=-9.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 4E0B4C43461 for ; Wed, 16 Sep 2020 10:03:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 01BD72076B for ; Wed, 16 Sep 2020 10:03:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 01BD72076B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 478FF6EA03; Wed, 16 Sep 2020 10:03:25 +0000 (UTC) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A2F06E393 for ; Wed, 16 Sep 2020 10:03:23 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id k15so6227808wrn.10 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=IYJDIJQqmgooUv+b/SbU4BLoQOiBfuwdGNJO/1SUnj1yiJnWOm2c1t1JdeNPus9Z/U x0hPWQba6SYEQutTHUsJHLynth0X0klT0I6mtTh+P5igla98qDLoVXKnU3oic3U2CIg+ Dl7Q95LxRLCJqa10zDE5sdafD0eyWa+sWBS9p+X8+wZ10Clm9/CTiYh+WCUa77EbggB0 KHiXvJzRnVcEIrlwUXWR6Rt3sFCViUztByWvnSNquHlgR7x9O5oDjiMBHc7NMQapJAXh zdB19r91QMlSS80L0YEvbBx1t4YIPgtEpvi/apuh/jBsqluIcBRoNSKPACL+eSNIHV// +Eug== X-Gm-Message-State: AOAM533K57pybPuJ/AjZiryQUBUFp0D3BuovPGR0E9QgPxMjQGIJZTZl BC7W4sG5/Zr10oSrA5wNE3BoRA== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hamohammed.sa@gmail.com, heiko@sntech.de, andrey.grodzovsky@amd.com, airlied@linux.ie, nouveau@lists.freedesktop.org, joonas.lahtinen@linux.intel.com, dri-devel@lists.freedesktop.org, michal.simek@xilinx.com, eric@anholt.net, thierry.reding@gmail.com, robdclark@gmail.com, krzk@kernel.org, sam@ravnborg.org, sumit.semwal@linaro.org, emil.velikov@collabora.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, oleksandr_andrushchenko@epam.com, tomi.valkeinen@ti.com, linux-tegra@vger.kernel.org, linux@armlinux.org.uk, patrik.r.jakobsson@gmail.com, jonathanh@nvidia.com, linux-rockchip@lists.infradead.org, kgene@kernel.org, bskeggs@redhat.com, xen-devel@lists.xenproject.org, miaoqinglang@huawei.com, intel-gfx@lists.freedesktop.org, matthew.auld@intel.com, chunkuang.hu@kernel.org, andi.shyti@intel.com, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, marek.olsak@amd.com, tianci.yin@amd.com, maarten.lankhorst@linux.intel.com, etnaviv@lists.freedesktop.org, jani.nikula@linux.intel.com, inki.dae@samsung.com, hdegoede@redhat.com, christian.gmeiner@gmail.com, linux-mediatek@lists.infradead.org, mripard@kernel.org, rodrigo.vivi@intel.com, matthias.bgg@gmail.com, evan.quan@amd.com, sean@poorly.run, linux-arm-kernel@lists.infradead.org, tvrtko.ursulin@linux.intel.com, amd-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, hyun.kwon@xilinx.com, rodrigosiqueiramelo@gmail.com, aaron.liu@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, sw0312.kim@samsung.com, hjc@rock-chips.com, chris@chris-wilson.co.uk, kyungmin.park@samsung.com, nirmoy.das@amd.com, p.zabel@pengutronix.de, alexander.deucher@amd.com, Hawking.Zhang@amd.com, freedreno@lists.freedesktop.org, christian.koenig@amd.com, l.stach@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx 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=-9.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 2AD73C433E2 for ; Wed, 16 Sep 2020 10:03:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 D04432076B for ; Wed, 16 Sep 2020 10:03:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D04432076B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 19CA96E9F2; Wed, 16 Sep 2020 10:03:25 +0000 (UTC) Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id 848B06E9F3 for ; Wed, 16 Sep 2020 10:03:23 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id m6so6284683wrn.0 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=m4HKtirPeLlsAXJZxXvn+EtJHWw9DZGs71Wzn/vcv5hOeAFsD9/LCAfVNbSlBmjaCh JQ0ASNTup6l3w0votiKKjY4m/xtV2cyjstJuAnI+SqSJp8scLuEbE0xj58lypYyej/uz ea5c/zWWmhHG1kyuPFmmEvLs69k1CVutJ4e/lIKITzO7zL7gDFYBvRCEZdjFuhrn+tNl MM7qourJsr2BHEF8OTMD2hNpV1DB3QPCLTslZK0BnoR0dI4rxabG5rLaKjRT8VEmp2YA 9LUT8a6vmslr32fm+TDo7Qd2Gq8K7Op6bxlpAgVoHcVF/378NiD3okkidHqzxCf8PDIC h46Q== X-Gm-Message-State: AOAM532ZXCU8XkQ8OqnHo9GGcqg8L0RrW44Ix47hrMWuIO4VzjidkedW rLgUoEmMPqbYJjbIbJMH2OH8Qw== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 Subject: Re: [Intel-gfx] [PATCH v2 04/21] drm/exynos: Introduce GEM object functions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hamohammed.sa@gmail.com, heiko@sntech.de, andrey.grodzovsky@amd.com, airlied@linux.ie, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, michal.simek@xilinx.com, eric@anholt.net, krzk@kernel.org, sam@ravnborg.org, sumit.semwal@linaro.org, emil.velikov@collabora.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, oleksandr_andrushchenko@epam.com, tomi.valkeinen@ti.com, linux-tegra@vger.kernel.org, linux@armlinux.org.uk, jonathanh@nvidia.com, linux-rockchip@lists.infradead.org, kgene@kernel.org, bskeggs@redhat.com, xen-devel@lists.xenproject.org, miaoqinglang@huawei.com, intel-gfx@lists.freedesktop.org, matthew.auld@intel.com, chunkuang.hu@kernel.org, linux-arm-msm@vger.kernel.org, marek.olsak@amd.com, tianci.yin@amd.com, etnaviv@lists.freedesktop.org, inki.dae@samsung.com, christian.gmeiner@gmail.com, linux-mediatek@lists.infradead.org, mripard@kernel.org, matthias.bgg@gmail.com, evan.quan@amd.com, linux-arm-kernel@lists.infradead.org, amd-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, hyun.kwon@xilinx.com, rodrigosiqueiramelo@gmail.com, aaron.liu@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, sw0312.kim@samsung.com, hjc@rock-chips.com, chris@chris-wilson.co.uk, kyungmin.park@samsung.com, nirmoy.das@amd.com, p.zabel@pengutronix.de, alexander.deucher@amd.com, Hawking.Zhang@amd.com, freedreno@lists.freedesktop.org, christian.koenig@amd.com, l.stach@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx 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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 B3C44C43461 for ; Wed, 16 Sep 2020 10:03:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7771A2087D for ; Wed, 16 Sep 2020 10:03:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726425AbgIPKDg (ORCPT ); Wed, 16 Sep 2020 06:03:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726828AbgIPKDY (ORCPT ); Wed, 16 Sep 2020 06:03:24 -0400 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79911C061788 for ; Wed, 16 Sep 2020 03:03:23 -0700 (PDT) Received: by mail-wr1-x443.google.com with SMTP id t10so6285224wrv.1 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=F644U2bQ1CRSV0Znnlu8fKNk2nFYV8zMZ3fXpJ7L02UdLjY0gDSm4UakPxD9u08pMf hWUDyZyzQSkUYMfcybHiq1xK8XBGnxJTJU4S9v9C8N4KxjKODrrE6TExzucZYZXPrOIG n9pxUNCh6NLB1PamE15lrw6I3xMmao897xFRohXMSk0QYBSNVqXhr8/EXR80S8heLWC9 +spZobGu4bukCLe4iVSa49Q3FsU/PRAeF9q1I625tBWuF/QD1vYhzU5aBY55s/20pkNv ynTgHbrD3luqg0ydyhurzyWFsXTI66Pn8bx+9oTk5KQKJNPV/S2jjepsjbxYbRvVZV5G LDkw== X-Gm-Message-State: AOAM533hTgyPc0QG7MFPv42ZFLLbHhGBlKkI83QJBUmHGcWbKRW5VxRV ePz65RWKq1ytSKlpN/f311uAqg== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Cc: alexander.deucher@amd.com, christian.koenig@amd.com, airlied@linux.ie, daniel@ffwll.ch, linux@armlinux.org.uk, maarten.lankhorst@linux.intel.com, mripard@kernel.org, l.stach@pengutronix.de, christian.gmeiner@gmail.com, inki.dae@samsung.com, jy0922.shim@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com, kgene@kernel.org, krzk@kernel.org, patrik.r.jakobsson@gmail.com, jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com, rodrigo.vivi@intel.com, chunkuang.hu@kernel.org, p.zabel@pengutronix.de, matthias.bgg@gmail.com, robdclark@gmail.com, sean@poorly.run, bskeggs@redhat.com, tomi.valkeinen@ti.com, eric@anholt.net, hjc@rock-chips.com, heiko@sntech.de, thierry.reding@gmail.com, jonathanh@nvidia.com, rodrigosiqueiramelo@gmail.com, hamohammed.sa@gmail.com, oleksandr_andrushchenko@epam.com, hyun.kwon@xilinx.com, laurent.pinchart@ideasonboard.com, michal.simek@xilinx.com, sumit.semwal@linaro.org, evan.quan@amd.com, Hawking.Zhang@amd.com, tianci.yin@amd.com, marek.olsak@amd.com, hdegoede@redhat.com, andrey.grodzovsky@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, aaron.liu@amd.com, nirmoy.das@amd.com, chris@chris-wilson.co.uk, matthew.auld@intel.com, tvrtko.ursulin@linux.intel.com, andi.shyti@intel.com, sam@ravnborg.org, miaoqinglang@huawei.com, emil.velikov@collabora.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, etnaviv@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org, xen-devel@lists.xenproject.org Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 707A9C35264 for ; Wed, 16 Sep 2020 10:03:38 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 F30282076B for ; Wed, 16 Sep 2020 10:03:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kp0PBnoW"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F30282076B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject: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=E5dbByb2X0fL6a60BAppnSk0D/RJPAMlwDu0GYHDxms=; b=kp0PBnoWR8gR+bERZnA1gF7od /A/KCBt3aT/pErGAdw085jXylgrIlBcaYHDXu3J5ziLjxfWCEJn3llWR3+AWjWw6wAGHupT2j9xuf L4aafM5sT0PUd+riP0XfAcCmP6uXIKN8xNAK/JsJL6TU6lVRvUTBqgsYSReXYdy6WPWzl4HkqjpLu PUbvZEco0+nIMdjXDr7sffi8+A5Sn8T6ai2huyH4KW7nS1JU3T+4h5XD1q2YPa6lm3igO+jA8AgN3 ImcV9THnlHb6H0V52fqFuDLW+CXpNNxtJGE41p+NbAHFqucJ29dms3yRsDOK4kOfkepP7vggjWlhr ispkr/9Mw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIUHg-0004yi-Jm; Wed, 16 Sep 2020 10:03:28 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIUHd-0004xN-Hl for linux-mediatek@lists.infradead.org; Wed, 16 Sep 2020 10:03:26 +0000 Received: by mail-wr1-x442.google.com with SMTP id z4so6265602wrr.4 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=DnCyuQb6tARIB+cD6N6qH7k2dJ1LdzJRJMpP1wTNLEFqUx3VMtaq2JVnSvODZo7sl6 lmUjC7YQxI9FeVc6Ge/yKzsLW7/Qh0gCEg+JG1WHl09lT6peBUTbnMcYtdqGAJ2KeOui tFfaYU7G0CFtlMrrseGQHiMjvo+xnyIfVTflVs2Ze6IlzRI4IUIcyy+nOk1NCeajw67n /f9mQW27/qRUmglx+1W796CXwQfqVnyKQdMusREqlFdirO+Ko3x8oPuUaIonl+SkmtKc FxRpA9Bvi36io3wIq7Tea3VtaqXRXFiuq3PkLsgW+vDRux8qn1nsTffmyll6CwaF/aqx Dwrw== X-Gm-Message-State: AOAM532WjR7X0r5ym4YxBGWBfjFvfmEx0DydsOXQn7BrZr+BAmn9q+D0 8qu3BAsAsYT1XMGRoHyAkGf1uA== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200916_060325_598957_0CA6862A X-CRM114-Status: GOOD ( 19.62 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hamohammed.sa@gmail.com, heiko@sntech.de, andrey.grodzovsky@amd.com, airlied@linux.ie, nouveau@lists.freedesktop.org, joonas.lahtinen@linux.intel.com, dri-devel@lists.freedesktop.org, michal.simek@xilinx.com, eric@anholt.net, thierry.reding@gmail.com, robdclark@gmail.com, krzk@kernel.org, sam@ravnborg.org, sumit.semwal@linaro.org, emil.velikov@collabora.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, oleksandr_andrushchenko@epam.com, tomi.valkeinen@ti.com, linux-tegra@vger.kernel.org, linux@armlinux.org.uk, patrik.r.jakobsson@gmail.com, jonathanh@nvidia.com, linux-rockchip@lists.infradead.org, kgene@kernel.org, bskeggs@redhat.com, xen-devel@lists.xenproject.org, miaoqinglang@huawei.com, intel-gfx@lists.freedesktop.org, matthew.auld@intel.com, chunkuang.hu@kernel.org, andi.shyti@intel.com, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, marek.olsak@amd.com, tianci.yin@amd.com, maarten.lankhorst@linux.intel.com, etnaviv@lists.freedesktop.org, jani.nikula@linux.intel.com, inki.dae@samsung.com, hdegoede@redhat.com, christian.gmeiner@gmail.com, linux-mediatek@lists.infradead.org, mripard@kernel.org, rodrigo.vivi@intel.com, matthias.bgg@gmail.com, evan.quan@amd.com, sean@poorly.run, linux-arm-kernel@lists.infradead.org, tvrtko.ursulin@linux.intel.com, amd-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, hyun.kwon@xilinx.com, rodrigosiqueiramelo@gmail.com, aaron.liu@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, sw0312.kim@samsung.com, hjc@rock-chips.com, chris@chris-wilson.co.uk, kyungmin.park@samsung.com, nirmoy.das@amd.com, p.zabel@pengutronix.de, alexander.deucher@amd.com, Hawking.Zhang@amd.com, freedreno@lists.freedesktop.org, christian.koenig@amd.com, l.stach@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 EC893C2BB84 for ; Wed, 16 Sep 2020 10:03:37 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 90D372080C for ; Wed, 16 Sep 2020 10:03:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kAdDbleG"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90D372080C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject: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=/1boUuXiAwanfbnE6/iHYAsY+gzvOAO5pGxBtDh0lvg=; b=kAdDbleG9otDEwgg/gjd5Bi8Z iOsCtBBfZVd5rFUS7HHJmVRxg/f9LJ3UrymeaCSZNLnLPiimtQ/Q4bZ/gige0cK0wMa2EsWhg+A5d lzQNn5xtSZCorDV82yz4N9j7cg6PI4Falhk9inEnOVBDSCydakGGqzuT38np5muRVHb6LTSggyqTl kXVCltKArTUuO7d3j7VB8ls6SUeYlWmyUvgRmzwEL9ZBOJzix+t78Gy4B3f1CVcr95v5UkHB5YqHm kEjb6ZIJnfYU8bbXjXNNHdipX1mVUOu9u98Twu/DL3h4AYkx5txwVKF5LWEfGb0h36Zq/5tI0vJeb Y7agVGedw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIUHh-0004zM-4M; Wed, 16 Sep 2020 10:03:29 +0000 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIUHd-0004xO-PP for linux-rockchip@lists.infradead.org; Wed, 16 Sep 2020 10:03:27 +0000 Received: by mail-wr1-x441.google.com with SMTP id s12so6205602wrw.11 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=R/wLKU66mBkXLCkV3oNX6SFpUV8LK8Tn876H0s3z32YF1vfLAsbg238kbe9ra7olE7 1tvxu6TSwt2g82KKkgSe78EBsttYRtp7m/UsVNCQN+RC5FHLn3QWZSy8/ER+/KsdNZw5 hdoQlJQx2kuO+pRzHWpN0O7NuMzu6DoRenbpviyEyPC7D+qw4EueAiWrz+wYpygjUn4i ovNw5+UYM7uV68dhv16nrYeK1BokW5HwslVpGu3XrZINnsvA+9utU2KiEEz47nev7x13 T9vtRoslTBIaKFLXnk8uUubXrcPBg+2c6pAsIsh62vDfqnOhTcGEAer5C52JdGXECLpd iOlQ== X-Gm-Message-State: AOAM530rSaKZ2CN0/0Y5lroyZWeV11AAYwz2ESwdMslfrw0DmuOPfSFe xkXozEuBgrcqC1TQZX/EuloVRA== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200916_060325_867019_FB8447B8 X-CRM114-Status: GOOD ( 19.83 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hamohammed.sa@gmail.com, heiko@sntech.de, andrey.grodzovsky@amd.com, airlied@linux.ie, nouveau@lists.freedesktop.org, joonas.lahtinen@linux.intel.com, dri-devel@lists.freedesktop.org, michal.simek@xilinx.com, eric@anholt.net, thierry.reding@gmail.com, robdclark@gmail.com, krzk@kernel.org, sam@ravnborg.org, sumit.semwal@linaro.org, emil.velikov@collabora.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, oleksandr_andrushchenko@epam.com, tomi.valkeinen@ti.com, linux-tegra@vger.kernel.org, linux@armlinux.org.uk, patrik.r.jakobsson@gmail.com, jonathanh@nvidia.com, linux-rockchip@lists.infradead.org, kgene@kernel.org, bskeggs@redhat.com, xen-devel@lists.xenproject.org, miaoqinglang@huawei.com, intel-gfx@lists.freedesktop.org, matthew.auld@intel.com, chunkuang.hu@kernel.org, andi.shyti@intel.com, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, marek.olsak@amd.com, tianci.yin@amd.com, maarten.lankhorst@linux.intel.com, etnaviv@lists.freedesktop.org, jani.nikula@linux.intel.com, inki.dae@samsung.com, hdegoede@redhat.com, christian.gmeiner@gmail.com, linux-mediatek@lists.infradead.org, mripard@kernel.org, rodrigo.vivi@intel.com, matthias.bgg@gmail.com, evan.quan@amd.com, sean@poorly.run, linux-arm-kernel@lists.infradead.org, tvrtko.ursulin@linux.intel.com, amd-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, hyun.kwon@xilinx.com, rodrigosiqueiramelo@gmail.com, aaron.liu@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, sw0312.kim@samsung.com, hjc@rock-chips.com, chris@chris-wilson.co.uk, kyungmin.park@samsung.com, nirmoy.das@amd.com, p.zabel@pengutronix.de, alexander.deucher@amd.com, Hawking.Zhang@amd.com, freedreno@lists.freedesktop.org, christian.koenig@amd.com, l.stach@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Date: Wed, 16 Sep 2020 12:03:18 +0200 Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann-l3A5Bk7waGM@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Thomas Zimmermann Cc: hamohammed.sa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org, andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org, airlied-cv59FeDIM0c@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, joonas.lahtinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org, eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, sam-uyr5N9Q2VtJg9hUCZPvPmw@public.gmane.org, sumit.semwal-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, emil.velikov-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, oleksandr_andrushchenko-uRwfk40T5oI@public.gmane.org, tomi.valkeinen-l0cyMroinI0@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org, patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b@public.gmane.org, miaoqinglang-hv44wF8Li93QT0dZR+AlfA@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, matthew.auld-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, chunkuang.hu-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, andi.shyti-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, daniel-/w4YWyX8dFk@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, marek.olsak@amd.c List-Id: nouveau.vger.kernel.org On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-9.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 1C2FDC433E2 for ; Wed, 16 Sep 2020 10:03:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 90EF42076B for ; Wed, 16 Sep 2020 10:03:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="YwQFNnZ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90EF42076B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AA2846E393; Wed, 16 Sep 2020 10:03:24 +0000 (UTC) Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7E2826E39E for ; Wed, 16 Sep 2020 10:03:23 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id a17so6246926wrn.6 for ; Wed, 16 Sep 2020 03:03:23 -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:references:mime-version :content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=YwQFNnZ46y23ilMPtQ+YA1uU56yQbhOv6Wnxz4ZcYBv/64HXgnQIstoy81UuE+BuFc RbVimusECAo2qKzk8yvrlLUDfal98le+MXG5s9js8pfohQ+Bnhlzr8odUz3778w+kM1b 6iP/yC9nMmGqgDJRKWjaW8mpLjM0JRvnAZoXk= 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:references :mime-version:content-disposition:in-reply-to; bh=e2Znfx8BWkk5aVcx8hHpr3x0pz1zwQZhs1djRV0gcOU=; b=rBg3dSKuAlH7TizfWo5UmYR1lNnM4T7GBAI8tyYMCFYlYwX878P2DDqyYfZKBJWOp0 KZAhkXPK4rQ3cjUxlFfxiaxXlPxABaOb234c/rD/8uClD6H5yzDNxgiibpplOGu8d7k5 cbzJjDqLVGsL6eGybxZKZZ3TncoXrNxVQTTxqHm/74PCr9jPkmRQ2qHRX9+GVnqxzC7P CkdbUSUS+BlCoID76rtkG61oprWVrjh2MbvY7ySY/PNOvZJ86q5cL1k4X5uet7cJEywH evHD0WMtXBQsiDwsl6dFkRjdjwDhp1AlIbklS85SWOCOuc4CRQOm2whC1L91vI27q6Vu qjLg== X-Gm-Message-State: AOAM531tst5I89CJQTQAJpSIagqhKOEdrmr5l7MyGcSI5UX7tQ0Zi2Jv PrDcgwPXS0gVvpF+4mVG+gsr6A== X-Google-Smtp-Source: ABdhPJzeuyJCXxonH76Yve4EPaguLB8swVVrVRKLIRv+fjNVrJReD84NaGvyyVb0RMzIohYAQGFSOA== X-Received: by 2002:adf:81e6:: with SMTP id 93mr25703900wra.412.1600250602103; Wed, 16 Sep 2020 03:03:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id s26sm4516179wmh.44.2020.09.16.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 03:03:21 -0700 (PDT) Date: Wed, 16 Sep 2020 12:03:18 +0200 From: Daniel Vetter To: Thomas Zimmermann Subject: Re: [PATCH v2 04/21] drm/exynos: Introduce GEM object functions Message-ID: <20200916100318.GF438822@phenom.ffwll.local> References: <20200915145958.19993-1-tzimmermann@suse.de> <20200915145958.19993-5-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200915145958.19993-5-tzimmermann@suse.de> X-Operating-System: Linux phenom 5.7.0-1-amd64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hamohammed.sa@gmail.com, airlied@linux.ie, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, michal.simek@xilinx.com, thierry.reding@gmail.com, krzk@kernel.org, sam@ravnborg.org, emil.velikov@collabora.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, oleksandr_andrushchenko@epam.com, tomi.valkeinen@ti.com, linux-tegra@vger.kernel.org, linux@armlinux.org.uk, jonathanh@nvidia.com, linux-rockchip@lists.infradead.org, kgene@kernel.org, bskeggs@redhat.com, xen-devel@lists.xenproject.org, miaoqinglang@huawei.com, intel-gfx@lists.freedesktop.org, matthew.auld@intel.com, chunkuang.hu@kernel.org, andi.shyti@intel.com, linux-arm-msm@vger.kernel.org, marek.olsak@amd.com, tianci.yin@amd.com, etnaviv@lists.freedesktop.org, hdegoede@redhat.com, linux-mediatek@lists.infradead.org, rodrigo.vivi@intel.com, matthias.bgg@gmail.com, evan.quan@amd.com, sean@poorly.run, linux-arm-kernel@lists.infradead.org, tvrtko.ursulin@linux.intel.com, amd-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, hyun.kwon@xilinx.com, rodrigosiqueiramelo@gmail.com, aaron.liu@amd.com, Felix.Kuehling@amd.com, xinhui.pan@amd.com, sw0312.kim@samsung.com, hjc@rock-chips.com, chris@chris-wilson.co.uk, kyungmin.park@samsung.com, nirmoy.das@amd.com, alexander.deucher@amd.com, Hawking.Zhang@amd.com, freedreno@lists.freedesktop.org, christian.koenig@amd.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Tue, Sep 15, 2020 at 04:59:41PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in exynos. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 15 +++++++++++++++ > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index dbd80f1e4c78..fe46680ca208 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -75,11 +75,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > file->driver_priv = NULL; > } > > -static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .open = drm_gem_vm_open, > - .close = drm_gem_vm_close, > -}; > - > static const struct drm_ioctl_desc exynos_ioctls[] = { > DRM_IOCTL_DEF_DRV(EXYNOS_GEM_CREATE, exynos_drm_gem_create_ioctl, > DRM_RENDER_ALLOW), > @@ -124,16 +119,11 @@ static struct drm_driver exynos_drm_driver = { > .open = exynos_drm_open, > .lastclose = drm_fb_helper_lastclose, > .postclose = exynos_drm_postclose, > - .gem_free_object_unlocked = exynos_drm_gem_free_object, > - .gem_vm_ops = &exynos_drm_gem_vm_ops, > .dumb_create = exynos_drm_gem_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = exynos_drm_gem_prime_import, > - .gem_prime_get_sg_table = exynos_drm_gem_prime_get_sg_table, > .gem_prime_import_sg_table = exynos_drm_gem_prime_import_sg_table, > - .gem_prime_vmap = exynos_drm_gem_prime_vmap, > - .gem_prime_vunmap = exynos_drm_gem_prime_vunmap, > .gem_prime_mmap = exynos_drm_gem_prime_mmap, > .ioctls = exynos_ioctls, > .num_ioctls = ARRAY_SIZE(exynos_ioctls), > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index efa476858db5..69a5cf28b4ae 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -129,6 +129,19 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exynos_gem) > kfree(exynos_gem); > } > > +static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > + .open = drm_gem_vm_open, > + .close = drm_gem_vm_close, > +}; Hm moving the drm_gem_cma_vm_ops into drm_gem.h or so and maybe calling them drm_gem_simple_ops or so would remove a pile of these. But perhaps a quick follow up series. Reviewed-by: Daniel Vetter > + > +static const struct drm_gem_object_funcs exynos_drm_gem_object_funcs = { > + .free = exynos_drm_gem_free_object, > + .get_sg_table = exynos_drm_gem_prime_get_sg_table, > + .vmap = exynos_drm_gem_prime_vmap, > + .vunmap = exynos_drm_gem_prime_vunmap, > + .vm_ops = &exynos_drm_gem_vm_ops, > +}; > + > static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -143,6 +156,8 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev, > exynos_gem->size = size; > obj = &exynos_gem->base; > > + obj->funcs = &exynos_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, obj, size); > if (ret < 0) { > DRM_DEV_ERROR(dev->dev, "failed to initialize gem object\n"); > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel