From nobody Thu Apr 2 23:55:23 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74E5E3537CF for ; Thu, 26 Mar 2026 09:43:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518208; cv=none; b=b4glmXqA3DrpefDMQfro5AXNP3bl/YHd9lK6W59TNpnYcDVw4YX0xjzuu74Gd0cdQyUxMtKvP9lTWfNY1PL4oDYQFWytg1oZRLolJKF3z6ax5wAvnG4WcKG16bX/+JwdDlg+sAHUiH34W+WTFAFvKAwqajQw3VU9P3r3QpkP+o4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518208; c=relaxed/simple; bh=grbQHiSU0gC3zT3sy8T4QQRjMjsxsonGppdgBJ+oYNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WXJqaN1vvbxFjiotVE/dZu507Cpr5LHv5//Eo0noguwH1w1kZgJCMgSDiquL2oP38MPmva2xaALCtJrnAu++zdG5SP5dvdD9xQsNhbmR9ZSUYj28hDfI1M7MFQcTBrCjKx2Ji33Rm8mpq4R4T6Hqiwf4V9xl69ZH8K73v5zA9nI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=WCMj59Zz; arc=none smtp.client-ip=209.85.215.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="WCMj59Zz" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c736261ee8dso321910a12.1 for ; Thu, 26 Mar 2026 02:43:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1774518206; x=1775123006; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7Tnye1hFVkDQbpAqnmBxIM5Wp/Kh6grPEcXAIeFfMKE=; b=WCMj59ZzELWV6AS2V3gAjRX3rIXWAXbG0Mtui302eUutlzrkeSJwiDmEx5TTng98dE 5F8YnfajBTIQowYlV6yUA8lqD993jcidg6q6O2dnMOvj5WBzYSoproYsZ5gu56RotEja W3f503l832ef+nqemsGCqr1ArinQAdIohRhw0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774518206; x=1775123006; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7Tnye1hFVkDQbpAqnmBxIM5Wp/Kh6grPEcXAIeFfMKE=; b=NLx1skiRDvJCVCYeGymD/e4tOelok6LZFG2dLpkqw9/W5K0bMigkRWkjaSQTkscxFT fwpnSe0PDzYSDchJbDvAPO63zvBb72/I1HXMaWmgDRdmr4Je6NEkMuIdp/xxNd/7G4qM wC37E+AUlZF2v0+eH52G3zXhyHW0guFFtjTaxl4NR4iXqiVDUo2kZT06Qiwd3eeNCPvA unHtjO5PyAZzMEWgJr6UIrejCOOwkKXTMME54KBI5fV72sIal81rvC8EHzpp/5G//awo IuV9HaKqviUDj2KKHQFjRH0FvDxiWB56x7Vpr5lHUOcU3PR0+nUi4eUAbeYMRA3OoPlA rQhQ== X-Forwarded-Encrypted: i=1; AJvYcCWYwWhqh+QUIub2B7n/ZV0PouRz/BN6F0zxZdZRXYOGqsJMU6XOBchHqw2dNidkIXVMXVPBDxHtH49cspc=@vger.kernel.org X-Gm-Message-State: AOJu0YyQx6Eyj6GcdKRTyCiv85hnxLObM6zvWbJ5IV/zP2HMzTsgznQW kVDCWfytk04sP/YpDXdF7ZhY1MH8BAONpSSVCWZJzEfBxBFfZX4traJxCU9TY8Vusg== X-Gm-Gg: ATEYQzzYsTRq7lNXUeErGJxkDSSTWbsasjxSFTnrZPlgsd/aX9IQuf5LDYsPYlsavbD iqayJk+xh+wufP/d0M22PR7Zg1/FyuhxfeKDyzd5g7e595xFtGgGWMys5y5FAtEflzsddWDmli1 R7MCYU58abWUlRYnh+Q2EOTkN9EM/dc6ifTubBCiS33b2MYBMlfSUoq0HkLdMocOpJOcLL/tkOE vSfSk6XtXAw489ip9X1sC705hyhG2HufBOLTKyueOQq6bWJXReR2JP1tcTvFlzCh7D5KKHZT0rJ Exnh7TaUc1psVih0dp2bncGVnZGtYM7eg6K+qGznlZomvqRN03bGMcPYDtC3J5eZtOv9JxcqUYX ynsKrssNlRfOObMYlUNp3fVUvxiCz5PohfbTqWdl28jCyIjVs5jfqJzPsV1PmG7As+71CTVmWgD EGNE1NozU30JjDKIV/Mr5NuPP24DcKHdnx/jnOZLnfVkHHdtNw131AP3afcaog3/oee01kojSIh wlQBC6kcl+rA5hIrO8= X-Received: by 2002:a05:6a20:7f99:b0:39c:39de:3cd2 with SMTP id adf61e73a8af0-39c4ab9159fmr7150534637.22.1774518205761; Thu, 26 Mar 2026 02:43:25 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3ed5:7e63:b37c:a7d7]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c76737f28fasm1673312a12.7.2026.03.26.02.43.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 02:43:25 -0700 (PDT) From: Chen-Yu Tsai To: Inki Dae , Seung-Woo Kim , Kyungmin Park , Krzysztof Kozlowski , Alim Akhtar Cc: Chen-Yu Tsai , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] drm/exynos: Drop exynos_drm_gem.size field Date: Thu, 26 Mar 2026 17:43:05 +0800 Message-ID: <20260326094308.1161335-4-wenst@chromium.org> X-Mailer: git-send-email 2.53.0.1018.g2bb0e51243-goog In-Reply-To: <20260326094308.1161335-1-wenst@chromium.org> References: <20260326094308.1161335-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" A size field is already included in the base GEM object, and is initialized through drm_gem_object_init() with the same value. Drop the field in the subclass to save some space. More changes to make exynos_drm_gem a subclass of drm_gem_dma_object will follow. Signed-off-by: Chen-Yu Tsai --- drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_gem.c | 17 ++++++++--------- drivers/gpu/drm/exynos/exynos_drm_gem.h | 3 --- drivers/gpu/drm/exynos/exynos_drm_ipp.c | 2 +- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exyno= s/exynos_drm_fb.c index ab0e0c74ec47..125b87adfdc4 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c @@ -119,7 +119,7 @@ exynos_user_fb_create(struct drm_device *dev, struct dr= m_file *file_priv, goto err; } =20 - if (size > exynos_gem[i]->size) { + if (size > exynos_gem[i]->base.size) { i++; ret =3D -EINVAL; goto err; diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exyn= os/exynos_drm_g2d.c index 85a3a247dfca..e92a4d872c41 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c @@ -720,7 +720,7 @@ static int g2d_map_cmdlist_gem(struct g2d_data *g2d, } =20 if (!g2d_check_buf_desc_is_valid(g2d, buf_desc, - reg_type, exynos_gem->size)) { + reg_type, exynos_gem->base.size)) { exynos_drm_gem_put(exynos_gem); ret =3D -EFAULT; goto err; diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exyn= os/exynos_drm_gem.c index 9ec76163609f..d9d42809a1a9 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -55,7 +55,7 @@ static int exynos_drm_alloc_buf(struct exynos_drm_gem *ex= ynos_gem, bool kvmap) attr |=3D DMA_ATTR_NO_KERNEL_MAPPING; =20 exynos_gem->dma_attrs =3D attr; - exynos_gem->cookie =3D dma_alloc_attrs(drm_dev_dma_dev(dev), exynos_gem->= size, + exynos_gem->cookie =3D dma_alloc_attrs(drm_dev_dma_dev(dev), exynos_gem->= base.size, &exynos_gem->dma_addr, GFP_KERNEL, exynos_gem->dma_attrs); if (!exynos_gem->cookie) { @@ -67,7 +67,7 @@ static int exynos_drm_alloc_buf(struct exynos_drm_gem *ex= ynos_gem, bool kvmap) exynos_gem->kvaddr =3D exynos_gem->cookie; =20 DRM_DEV_DEBUG_KMS(drm_dev_dma_dev(dev), "dma_addr(0x%lx), size(0x%lx)\n", - (unsigned long)exynos_gem->dma_addr, exynos_gem->size); + (unsigned long)exynos_gem->dma_addr, exynos_gem->base.size); return 0; } =20 @@ -81,9 +81,9 @@ static void exynos_drm_free_buf(struct exynos_drm_gem *ex= ynos_gem) } =20 DRM_DEV_DEBUG_KMS(dev->dev, "dma_addr(0x%lx), size(0x%lx)\n", - (unsigned long)exynos_gem->dma_addr, exynos_gem->size); + (unsigned long)exynos_gem->dma_addr, exynos_gem->base.size); =20 - dma_free_attrs(drm_dev_dma_dev(dev), exynos_gem->size, exynos_gem->cookie, + dma_free_attrs(drm_dev_dma_dev(dev), exynos_gem->base.size, exynos_gem->c= ookie, (dma_addr_t)exynos_gem->dma_addr, exynos_gem->dma_attrs); } @@ -162,7 +162,6 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struc= t drm_device *dev, if (!exynos_gem) return ERR_PTR(-ENOMEM); =20 - exynos_gem->size =3D size; obj =3D &exynos_gem->base; =20 obj->funcs =3D &exynos_drm_gem_object_funcs; @@ -287,11 +286,11 @@ static int exynos_drm_gem_mmap_buffer(struct exynos_d= rm_gem *exynos_gem, vm_size =3D vma->vm_end - vma->vm_start; =20 /* check if user-requested size is valid. */ - if (vm_size > exynos_gem->size) + if (vm_size > exynos_gem->base.size) return -EINVAL; =20 ret =3D dma_mmap_attrs(drm_dev_dma_dev(drm_dev), vma, exynos_gem->cookie, - exynos_gem->dma_addr, exynos_gem->size, + exynos_gem->dma_addr, exynos_gem->base.size, exynos_gem->dma_attrs); if (ret < 0) { DRM_ERROR("failed to mmap.\n"); @@ -317,7 +316,7 @@ int exynos_drm_gem_get_ioctl(struct drm_device *dev, vo= id *data, exynos_gem =3D to_exynos_gem(obj); =20 args->flags =3D exynos_gem->flags; - args->size =3D exynos_gem->size; + args->size =3D obj->size; =20 drm_gem_object_put(obj); =20 @@ -411,7 +410,7 @@ struct sg_table *exynos_drm_gem_prime_get_sg_table(stru= ct drm_gem_object *obj) return ERR_PTR(-ENOMEM); =20 ret =3D dma_get_sgtable_attrs(drm_dev_dma_dev(drm_dev), sgt, exynos_gem->= cookie, - exynos_gem->dma_addr, exynos_gem->size, + exynos_gem->dma_addr, obj->size, exynos_gem->dma_attrs); if (ret) { DRM_ERROR("failed to get sgtable, %d\n", ret); diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exyn= os/exynos_drm_gem.h index b6785f1136ab..3ff9fa9955ea 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h @@ -22,8 +22,6 @@ * - a new handle to this gem object would be created * by drm_gem_handle_create(). * @flags: indicate memory type to allocated buffer and cache attruibute. - * @size: size requested from user, in bytes and this size is aligned - * in page unit. * @cookie: cookie returned by dma_alloc_attrs * @kvaddr: kernel virtual address to allocated memory region (for fbdev) * @dma_addr: bus address(accessed by dma) to allocated memory region. @@ -38,7 +36,6 @@ struct exynos_drm_gem { struct drm_gem_object base; unsigned int flags; - unsigned long size; void *cookie; void *kvaddr; dma_addr_t dma_addr; diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exyn= os/exynos_drm_ipp.c index ee3d61345a66..43bc4f63bb84 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c @@ -364,7 +364,7 @@ static int exynos_drm_ipp_task_setup_buffer(struct exyn= os_drm_ipp_buffer *buf, } buf->exynos_gem[i] =3D gem; =20 - if (size + buf->buf.offset[i] > buf->exynos_gem[i]->size) { + if (size + buf->buf.offset[i] > buf->exynos_gem[i]->base.size) { i++; ret =3D -EINVAL; goto gem_free; --=20 2.53.0.1018.g2bb0e51243-goog