From nobody Thu Apr 2 22:25:43 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 276113537E7 for ; Thu, 26 Mar 2026 09:43:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518202; cv=none; b=F4fdJ/QE6jJ0bVVwxYoSg1JGUzaJS4Zs5x9BVmV0slh+uNjCE//aorQWZ3ZO1bnI9tYMxTJPG/cauPRcLFUu6wYKzVcUd/FFR5jbcAihPRLIfU6a0+Uor/T4VmnUoUSg3MIgUgGWb6UXKdFwU8Zvpf2aPxvePRjFqufGRL1EQhM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518202; c=relaxed/simple; bh=YPVQeK/LuVOZuty8xE05aTibITNefqVN2pKG9CkHKds=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XMW/Fo/i7P52MIsFBMnvARJ4JMRL6Uiru2hvXR0UsEzyxE/OvB/2wbE+NzXodwRBjJCk8XF11n28RrHco9vBlsr4ekGkY1shbUhXb3x7bim5m47uPl1I0W5bhegL6CH1RMNA+N2AYOb2bjwAmorxwKYKaucsYkpmizyqZdtfykI= 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=nXoLgAQk; arc=none smtp.client-ip=209.85.210.179 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="nXoLgAQk" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-82c4b5dfe6cso378918b3a.2 for ; Thu, 26 Mar 2026 02:43:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1774518200; x=1775123000; 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=gKCyFU3ic+mjTuSY0uUxaZ2dkgAoaG2cSvjjvcWGNkc=; b=nXoLgAQkvhMEEqEZY4KCWklUf6Uoc23UZjZj9LBnTVVE4xjz4r3pw/wYvJA6suOWb+ XG/BCO14py8lM5nJSD9BGHwmNT8u9OfB0WZiqo/o1eb/C+23s2Z8jVA+g3rNCZD9dar9 ofmoejDZlB9Xg7pi8WXdJW2TEK3/a8ss9F2Pk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774518200; x=1775123000; 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=gKCyFU3ic+mjTuSY0uUxaZ2dkgAoaG2cSvjjvcWGNkc=; b=gkE0sFmHhOg0FboM6MC1GWdJBjKpBGGwqLF/1bSVRpnwNJXhO7GYNWMAigzNGDy83P yyDlrY1lqCGWWRA33IleNTsNoMRmT7fENynGkEyluUfos//sXYBaAebXXsK/DhA1WuK9 YYYKJvyzY+cDxbQHOAZWOHyPU6o7DfS1SMAf8+jDZiFfymX2aJKRtGoLNbgiHHk7h84u vJEdFXw7J+9ijN1Z75ld2baP+7k5S7Jcv8an/P6bWUMYvtLABtwqI8xVbbQIU9CZrDVq 01OJKV8tAO8WSz87CROzC/rAVKc9ZejfhLtijaVvOqVc2mAxGcouBITWqW43aLz9iW6R y5tA== X-Forwarded-Encrypted: i=1; AJvYcCWDzUnytnKBmPNgeTsTjxPkK4mlcas0f7yW7QPW39YH0bbi9z1W0hHbLoYTJIyc1I5+b8u0NjyypBuQb5Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxT9CfZJ5SbCBEU3i4f+RgKXpwZ/gzQiSfOVy5HGKJcfnkUwLcZ fNWRhvOFsmtS4D+9dJ/y7j+mjY/euZNATD7NuKddeMydmXP4tTJba5Fiai26FiIqoA== X-Gm-Gg: ATEYQzyIuezadf0rCA5YqbrcWcV/MOogwwILY+PhrHt3foFvAJHt1JQg7JG7n9b/4V0 cbhWg/L0pwICYswGXeSE4K6X+gyTj+IdEuVRrGxtZjrbfjMD0R+OOAPh/pbX+y7Qtp0HSQL4O8I ikS24XFmKU2nWtOx5mRrCoS9vcxL3O4yJjCUcYqcW9v+6U3UioTT3tuNPnmIbD590gP1txgdUau qFMGof+je76uCtaMOwglm31BMFQXE8rX07SrwHyNVy4VdPZjPBgsxJ5mxW6jI1m4BU2sv4ymHhi NU/xBHi1nYyIVFYwdnljtYiyjqyLYYHwPqjisYgIx3fDP7IMJIysB57gEpN80HPlDFD8zdDDnvn 1FNAFh/NKnDw7l6TnmR7tDn8pVAQBPss9dXkGbbM+XDzEMmK4BrnKerzjkSQCAZqRrJctqwPeeN SyuwmIbzWmM9SfPr10GnA/dENq1C9L/o3Ew1YKuVg3BVCFtVR4QVyTHrNoS2yX2sMY8onwEuGSE vFGt3lvCUch8UUm2J8= X-Received: by 2002:a05:6a20:7491:b0:398:9379:d056 with SMTP id adf61e73a8af0-39c4abeac6amr7815749637.16.1774518200463; Thu, 26 Mar 2026 02:43:20 -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.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 02:43:20 -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 1/4] drm/exynos: Internalize exynos_drm_gem_free_object() Date: Thu, 26 Mar 2026 17:43:03 +0800 Message-ID: <20260326094308.1161335-2-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" exynos_drm_gem_free_object() is only provided as a callback for GEM objects. It does not need to be exposed to the rest of the driver. Move it above where it is used and internalize it to just the GEM functions. Signed-off-by: Chen-Yu Tsai Acked-by: Marek Szyprowski Tested-by: Marek Szyprowski --- drivers/gpu/drm/exynos/exynos_drm_gem.c | 10 +++++----- drivers/gpu/drm/exynos/exynos_drm_gem.h | 3 --- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exyn= os/exynos_drm_gem.c index 69ef6cda1ce9..59fd736a1fb9 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -133,6 +133,11 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exy= nos_gem) kfree(exynos_gem); } =20 +static void exynos_drm_gem_free_object(struct drm_gem_object *obj) +{ + exynos_drm_gem_destroy(to_exynos_gem(obj)); +} + static const struct vm_operations_struct exynos_drm_gem_vm_ops =3D { .open =3D drm_gem_vm_open, .close =3D drm_gem_vm_close, @@ -318,11 +323,6 @@ int exynos_drm_gem_get_ioctl(struct drm_device *dev, v= oid *data, return 0; } =20 -void exynos_drm_gem_free_object(struct drm_gem_object *obj) -{ - exynos_drm_gem_destroy(to_exynos_gem(obj)); -} - int exynos_drm_gem_dumb_create(struct drm_file *file_priv, struct drm_device *dev, struct drm_mode_create_dumb *args) diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exyn= os/exynos_drm_gem.h index 79d7e1a87419..8b5bd20ae8c1 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h @@ -88,9 +88,6 @@ static inline void exynos_drm_gem_put(struct exynos_drm_g= em *exynos_gem) int exynos_drm_gem_get_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); =20 -/* free gem object. */ -void exynos_drm_gem_free_object(struct drm_gem_object *obj); - /* create memory region for drm framebuffer. */ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, struct drm_device *dev, --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 22:25:43 2026 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (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 DBF2436E487 for ; Thu, 26 Mar 2026 09:43:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518205; cv=none; b=ganBUXhuDHPKQh9LqACXtFYGOoe4fRzpu/RKZ9BfcurXsCG8jqu6ix+7hKsCDPN9hfeQClKWIHSfE/SefvJ0EDZq6/9Dke6U7cKCzW1jHl3Jset8wAJ5zc5RxA35xOSPgC/L/q2niQUkAP9yDkGvqAOZ5oW+V/dP/1A8wmMkkKw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518205; c=relaxed/simple; bh=BE72tce1L31n71bWUl8TGOmEDAkdgogAY52+9Yrj/tU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z+6WPR2dP4fVPPgmsKgyAlaM20e2GcJonxhp8WJBF2aEj/SBJ2OEDwMyzf9TUhSRsqfs09HuGxe9hZ3Avei9gT4+n9H+hcfyYunyaRLBk4LxR80gCBA1ogvkDtLyFAmylGTORNdWFKePqOPl4Ia76GMHljojjlOm0hHGPhqjfZs= 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=LTck6pdY; arc=none smtp.client-ip=209.85.215.180 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="LTck6pdY" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-c70ea5e9e9dso384123a12.1 for ; Thu, 26 Mar 2026 02:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1774518203; x=1775123003; 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=Yv3DgahW+8Di+Ae6kVC5TLkHixUv+/CDEG1z0t/clqU=; b=LTck6pdYllWxchbgkBoSAmjxZi6W/Fko58hV0yDZkpr3Rj8VJl+QifDp7Adz/JbQX7 bA5XjQ3I7115A8gfNRMQs/d620U8xVVQGIHxrwiJQX56EFfxVXNdbgb1qjYul19ng9N5 yezFEEVIyfEYsDHkgHFO5Msk13fvOE4bLBhio= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774518203; x=1775123003; 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=Yv3DgahW+8Di+Ae6kVC5TLkHixUv+/CDEG1z0t/clqU=; b=MbmUIl083pjJ/iXoEbr5vwx6RdzWlh4Ka2mVC6eNi9fLa2uEjqtsdNmGhkADKBl2ZU fyd89ybi8oYcqy2Q27uQszURnRbF3ZdM+d4UrloR8wjxJaIlauS/ey4IOH9dUvbtqdM5 knC2Z/jYGDS8mqTBWQ4yUPZerVrGqWnrYFjW3a6yvUx3oxnqX+/mhK2HrW3n3f1UQR4W wWE4lb39TdeSjbQVbyIrIzynvZSQelI8yBUGvCshQZrDx/8OcllhBE9XgDr2Nxu+0UDo z+QUV/25UmD/ydq3Lx1H7AKL4QFGu/wjk/8JqwEH/8XMO+8aqQroyeDehN5ab8bawmuM L7OQ== X-Forwarded-Encrypted: i=1; AJvYcCWSEwZWqorj1Wssq7PDzGnBu8Knr8wLQx0smA/+pxYXn+WtAUj5YMEqZh+NOIJ7pqZmRg0v2tCVEl1MK5Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+oIjaqOF9flNjBD6+mF1/lkITwzFB3dyixKtmBZtsLJutbs7P 1d6uWc9UoOJ4ZNNxA8TeYT3MNUbwBcihyrEm88ONHURB72RuZTohkNWjkgd3qMcWTw== X-Gm-Gg: ATEYQzwlEncnCKqgGh/D12fdDsEjW6jSglCu5hRGQAy5zAtRk1HJ4S6qBKwDt+EhRpm cM/oViKfFlNE8O0jpLIRZg45b2sOP9xGofWa6A6i7at33dwpy588eW8DtXRSGjgkO1oHyMMiVWG WetKqNgwsbV/IkNsREN7b+VuVhfRJH7JgcChCx2b89CABBmOwfRfCBkF4NtAY8DYtQEEkfD68xc WuHrSOVkIA5CPdjMr2MTsm42zDiWv/cb6tU+0GgLXgg/fsGC2kdQbVxUGpOgPgIUyQHc+i1Pf80 UhjM82l7r0L7OGWchCR2yR0YQDYrT+FN8WxX87RNFBqmuX08brBaebfJekz2TyrM23cbABSaCtp wSgI6N3f0N5YKOtB/PWQ8ekBOsualP2AkUDYpWgelVYG5M18MhxlYZppBwMIfYAHQz+r12B6hzv +UAaMQHb5PTJorfGuItlHPUeVWgOcaDklSFqG0MsKSLLg4uASczmf9gUDurN8cGT8u8Idsbrtxx 7FQ0oJZ X-Received: by 2002:a05:6a21:9991:b0:39b:e321:67ea with SMTP id adf61e73a8af0-39c4ada6b00mr7445920637.45.1774518203067; Thu, 26 Mar 2026 02:43:23 -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.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 02:43:22 -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 2/4] drm/exynos: Use DRM core dedicated DMA device tracking facility Date: Thu, 26 Mar 2026 17:43:04 +0800 Message-ID: <20260326094308.1161335-3-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" The exynos driver tracks a dedicated DMA device in its private data. The DRM core already has facilities to do this, and it is integrated into DRM PRIME imports and GEM DMA helpers. Convert the exynos driver to use the core's dedicated DMA device tracking facility. Also get rid of exynos_drm_gem_prime_import() as it is identical to drm_gem_prime_import() after the conversion. Signed-off-by: Chen-Yu Tsai Acked-by: Marek Szyprowski Tested-by: Marek Szyprowski --- drivers/gpu/drm/exynos/exynos_drm_dma.c | 11 +++++----- drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 - drivers/gpu/drm/exynos/exynos_drm_drv.h | 8 -------- drivers/gpu/drm/exynos/exynos_drm_g2d.c | 11 +++++----- drivers/gpu/drm/exynos/exynos_drm_gem.c | 27 ++++++++++--------------- drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 -- 6 files changed, 23 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_dma.c b/drivers/gpu/drm/exyn= os/exynos_drm_dma.c index ccc6b852ee7d..734741c80cbe 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dma.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dma.c @@ -8,6 +8,7 @@ #include #include =20 +#include #include #include =20 @@ -41,7 +42,7 @@ static int drm_iommu_attach_device(struct drm_device *drm= _dev, struct exynos_drm_private *priv =3D drm_dev->dev_private; int ret =3D 0; =20 - if (get_dma_ops(priv->dma_dev) !=3D get_dma_ops(subdrv_dev)) { + if (get_dma_ops(drm_dev_dma_dev(drm_dev)) !=3D get_dma_ops(subdrv_dev)) { DRM_DEV_ERROR(subdrv_dev, "Device %s lacks support for IOMMU\n", dev_name(subdrv_dev)); return -EINVAL; @@ -93,8 +94,8 @@ int exynos_drm_register_dma(struct drm_device *drm, struc= t device *dev, { struct exynos_drm_private *priv =3D drm->dev_private; =20 - if (!priv->dma_dev) { - priv->dma_dev =3D dev; + if (drm_dev_dma_dev(drm) =3D=3D drm->dev) { + drm_dev_set_dma_dev(drm, dev); DRM_INFO("Exynos DRM: using %s device for DMA mapping operations\n", dev_name(dev)); } @@ -109,7 +110,7 @@ int exynos_drm_register_dma(struct drm_device *drm, str= uct device *dev, mapping =3D arm_iommu_create_mapping(dev, EXYNOS_DEV_ADDR_START, EXYNOS_DEV_ADDR_SIZE); else if (IS_ENABLED(CONFIG_IOMMU_DMA)) - mapping =3D iommu_get_domain_for_dev(priv->dma_dev); + mapping =3D iommu_get_domain_for_dev(dev); =20 if (!mapping) return -ENODEV; @@ -135,5 +136,5 @@ void exynos_drm_cleanup_dma(struct drm_device *drm) =20 arm_iommu_release_mapping(priv->mapping); priv->mapping =3D NULL; - priv->dma_dev =3D NULL; + drm_dev_set_dma_dev(drm, NULL); } diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exyn= os/exynos_drm_drv.c index 2101a74dc1ed..9ee30086879f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c @@ -109,7 +109,6 @@ static const struct drm_driver exynos_drm_driver =3D { .open =3D exynos_drm_open, .postclose =3D exynos_drm_postclose, .dumb_create =3D exynos_drm_gem_dumb_create, - .gem_prime_import =3D exynos_drm_gem_prime_import, .gem_prime_import_sg_table =3D exynos_drm_gem_prime_import_sg_table, EXYNOS_DRM_FBDEV_DRIVER_OPS, .ioctls =3D exynos_ioctls, diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exyn= os/exynos_drm_drv.h index 06c29ff2aac0..1ab7195d09ae 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -198,7 +198,6 @@ struct drm_exynos_file_private { */ struct exynos_drm_private { struct device *g2d_dev; - struct device *dma_dev; struct device *vidi_dev; void *mapping; =20 @@ -208,13 +207,6 @@ struct exynos_drm_private { wait_queue_head_t wait; }; =20 -static inline struct device *to_dma_dev(struct drm_device *dev) -{ - struct exynos_drm_private *priv =3D dev->dev_private; - - return priv->dma_dev; -} - static inline bool is_drm_iommu_supported(struct drm_device *drm_dev) { struct exynos_drm_private *priv =3D drm_dev->dev_private; diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exyn= os/exynos_drm_g2d.c index 348603262af0..85a3a247dfca 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c @@ -20,6 +20,7 @@ #include #include =20 +#include #include #include #include @@ -278,7 +279,7 @@ static int g2d_init_cmdlist(struct g2d_data *g2d) =20 g2d->cmdlist_dma_attrs =3D DMA_ATTR_WRITE_COMBINE; =20 - g2d->cmdlist_pool_virt =3D dma_alloc_attrs(to_dma_dev(g2d->drm_dev), + g2d->cmdlist_pool_virt =3D dma_alloc_attrs(drm_dev_dma_dev(g2d->drm_dev), G2D_CMDLIST_POOL_SIZE, &g2d->cmdlist_pool, GFP_KERNEL, g2d->cmdlist_dma_attrs); @@ -311,7 +312,7 @@ static int g2d_init_cmdlist(struct g2d_data *g2d) return 0; =20 err: - dma_free_attrs(to_dma_dev(g2d->drm_dev), G2D_CMDLIST_POOL_SIZE, + dma_free_attrs(drm_dev_dma_dev(g2d->drm_dev), G2D_CMDLIST_POOL_SIZE, g2d->cmdlist_pool_virt, g2d->cmdlist_pool, g2d->cmdlist_dma_attrs); return ret; @@ -322,7 +323,7 @@ static void g2d_fini_cmdlist(struct g2d_data *g2d) kfree(g2d->cmdlist_node); =20 if (g2d->cmdlist_pool_virt && g2d->cmdlist_pool) { - dma_free_attrs(to_dma_dev(g2d->drm_dev), + dma_free_attrs(drm_dev_dma_dev(g2d->drm_dev), G2D_CMDLIST_POOL_SIZE, g2d->cmdlist_pool_virt, g2d->cmdlist_pool, g2d->cmdlist_dma_attrs); @@ -397,7 +398,7 @@ static void g2d_userptr_put_dma_addr(struct g2d_data *g= 2d, return; =20 out: - dma_unmap_sgtable(to_dma_dev(g2d->drm_dev), g2d_userptr->sgt, + dma_unmap_sgtable(drm_dev_dma_dev(g2d->drm_dev), g2d_userptr->sgt, DMA_BIDIRECTIONAL, 0); =20 unpin_user_pages_dirty_lock(g2d_userptr->pages, g2d_userptr->npages, @@ -506,7 +507,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct g2d_= data *g2d, =20 g2d_userptr->sgt =3D sgt; =20 - ret =3D dma_map_sgtable(to_dma_dev(g2d->drm_dev), sgt, + ret =3D dma_map_sgtable(drm_dev_dma_dev(g2d->drm_dev), sgt, DMA_BIDIRECTIONAL, 0); if (ret) { DRM_DEV_ERROR(g2d->dev, "failed to map sgt with dma region.\n"); diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exyn= os/exynos_drm_gem.c index 59fd736a1fb9..9ec76163609f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -10,6 +10,7 @@ #include #include =20 +#include #include #include #include @@ -29,7 +30,7 @@ static int exynos_drm_alloc_buf(struct exynos_drm_gem *ex= ynos_gem, bool kvmap) unsigned long attr =3D 0; =20 if (exynos_gem->dma_addr) { - DRM_DEV_DEBUG_KMS(to_dma_dev(dev), "already allocated.\n"); + DRM_DEV_DEBUG_KMS(drm_dev_dma_dev(dev), "already allocated.\n"); return 0; } =20 @@ -54,18 +55,18 @@ static int exynos_drm_alloc_buf(struct exynos_drm_gem *= exynos_gem, bool kvmap) attr |=3D DMA_ATTR_NO_KERNEL_MAPPING; =20 exynos_gem->dma_attrs =3D attr; - exynos_gem->cookie =3D dma_alloc_attrs(to_dma_dev(dev), exynos_gem->size, + exynos_gem->cookie =3D dma_alloc_attrs(drm_dev_dma_dev(dev), exynos_gem->= size, &exynos_gem->dma_addr, GFP_KERNEL, exynos_gem->dma_attrs); if (!exynos_gem->cookie) { - DRM_DEV_ERROR(to_dma_dev(dev), "failed to allocate buffer.\n"); + DRM_DEV_ERROR(drm_dev_dma_dev(dev), "failed to allocate buffer.\n"); return -ENOMEM; } =20 if (kvmap) exynos_gem->kvaddr =3D exynos_gem->cookie; =20 - DRM_DEV_DEBUG_KMS(to_dma_dev(dev), "dma_addr(0x%lx), size(0x%lx)\n", + 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); return 0; } @@ -82,7 +83,7 @@ static void exynos_drm_free_buf(struct exynos_drm_gem *ex= ynos_gem) DRM_DEV_DEBUG_KMS(dev->dev, "dma_addr(0x%lx), size(0x%lx)\n", (unsigned long)exynos_gem->dma_addr, exynos_gem->size); =20 - dma_free_attrs(to_dma_dev(dev), exynos_gem->size, exynos_gem->cookie, + dma_free_attrs(drm_dev_dma_dev(dev), exynos_gem->size, exynos_gem->cookie, (dma_addr_t)exynos_gem->dma_addr, exynos_gem->dma_attrs); } @@ -101,7 +102,7 @@ static int exynos_drm_gem_handle_create(struct drm_gem_= object *obj, if (ret) return ret; =20 - DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "gem handle =3D 0x%x\n", *handle); + DRM_DEV_DEBUG_KMS(drm_dev_dma_dev(obj->dev), "gem handle =3D 0x%x\n", *ha= ndle); =20 /* drop reference from allocate - handle holds it now. */ drm_gem_object_put(obj); @@ -113,7 +114,7 @@ void exynos_drm_gem_destroy(struct exynos_drm_gem *exyn= os_gem) { struct drm_gem_object *obj =3D &exynos_gem->base; =20 - DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "handle count =3D %d\n", + DRM_DEV_DEBUG_KMS(drm_dev_dma_dev(obj->dev), "handle count =3D %d\n", obj->handle_count); =20 /* @@ -289,7 +290,7 @@ static int exynos_drm_gem_mmap_buffer(struct exynos_drm= _gem *exynos_gem, if (vm_size > exynos_gem->size) return -EINVAL; =20 - ret =3D dma_mmap_attrs(to_dma_dev(drm_dev), vma, exynos_gem->cookie, + 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_attrs); if (ret < 0) { @@ -372,7 +373,7 @@ static int exynos_drm_gem_mmap(struct drm_gem_object *o= bj, struct vm_area_struct =20 vm_flags_set(vma, VM_IO | VM_DONTEXPAND | VM_DONTDUMP); =20 - DRM_DEV_DEBUG_KMS(to_dma_dev(obj->dev), "flags =3D 0x%x\n", + DRM_DEV_DEBUG_KMS(drm_dev_dma_dev(obj->dev), "flags =3D 0x%x\n", exynos_gem->flags); =20 /* non-cachable as default. */ @@ -398,12 +399,6 @@ static int exynos_drm_gem_mmap(struct drm_gem_object *= obj, struct vm_area_struct } =20 /* low-level interface prime helpers */ -struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev, - struct dma_buf *dma_buf) -{ - return drm_gem_prime_import_dev(dev, dma_buf, to_dma_dev(dev)); -} - struct sg_table *exynos_drm_gem_prime_get_sg_table(struct drm_gem_object *= obj) { struct exynos_drm_gem *exynos_gem =3D to_exynos_gem(obj); @@ -415,7 +410,7 @@ struct sg_table *exynos_drm_gem_prime_get_sg_table(stru= ct drm_gem_object *obj) if (!sgt) return ERR_PTR(-ENOMEM); =20 - ret =3D dma_get_sgtable_attrs(to_dma_dev(drm_dev), sgt, exynos_gem->cooki= e, + 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_attrs); if (ret) { diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exyn= os/exynos_drm_gem.h index 8b5bd20ae8c1..b6785f1136ab 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h @@ -94,8 +94,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, struct drm_mode_create_dumb *args); =20 /* low-level interface prime helpers */ -struct drm_gem_object *exynos_drm_gem_prime_import(struct drm_device *dev, - struct dma_buf *dma_buf); struct sg_table *exynos_drm_gem_prime_get_sg_table(struct drm_gem_object *= obj); struct drm_gem_object * exynos_drm_gem_prime_import_sg_table(struct drm_device *dev, --=20 2.53.0.1018.g2bb0e51243-goog From nobody Thu Apr 2 22:25:43 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 Acked-by: Marek Szyprowski Tested-by: Marek Szyprowski --- 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 From nobody Thu Apr 2 22:25:43 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 F1D21377EB0 for ; Thu, 26 Mar 2026 09:43:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518210; cv=none; b=hELffpZDfNYT76yrX3uzAr9LOvxfA7g+ADrJdnM/GbvHOxo2f8Z3aOEHoG4DtMGB7Fv09IKq9L3b9nD4LalOJcfbsAxmCQEp5L9DV5exMqznGjbXubohWr5VLNgTtQtyoWPfmOGN19rZIOy77DJ8XOzMwzFOIypWexYixtaqZ8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774518210; c=relaxed/simple; bh=1EWUza6jH80CPiuMwuS42qOsaWv6H56GLW3bXTMETUc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cPHtso0GlV1+0uOPO2kvmTDPodOr9cWcckYHZUCqCiZzR/Yh0DDCZG1Qu7a0QonlHmVXAGvymphWH7rxR9iBljS9/J3cFY0XkxgSPRKe8BOumyjjNl6rwqQf9U9t/anUn7h0yCjTPdCJM37kyawulX9gibAGt39EmRMi5iARtxc= 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=bnKSYDym; arc=none smtp.client-ip=209.85.216.51 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="bnKSYDym" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-3590042fa8eso509903a91.1 for ; Thu, 26 Mar 2026 02:43:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1774518208; x=1775123008; 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=nCaasFgG3bKwmDmNR0xzReU3+wYjKSaL6CIO2mNwHyw=; b=bnKSYDym0Pb/xaZb6QKMzkRNa4qAzZ70jMtkKwB12OWlQHtmeiyTFhhRO2TKwU2szx 8Hrx+YccA8Pq0xgAsR3AJFva3QWhHQG3YRiseA8IBQDRyxgEJlV+Fwo74kzF0mK8oKF4 8gPduysfANUkNyXUBq0dum0uDc7jTK6iK8A8Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774518208; x=1775123008; 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=nCaasFgG3bKwmDmNR0xzReU3+wYjKSaL6CIO2mNwHyw=; b=bvkSO8QsVs61w0QVUsgZc9nCjgfhmEYBK7YBWsj6yzQ4u3ebR9PCPsRXuTD1Gi5wyA mA8gnBXKSyTEt4BGdCvgcSGttHLtW9fc4B14J5i6VVYSmmbklTy4uAxrREUwjHfMnSv+ nRhnRmYPS6paXAOVFpjjziZ3nNuyMlKnJ4Q5D2Non6n+Nwu/KALKRKM9dSSX0blTBfSc efnZwmbqwSsmS2g2kB+wCz239IG5Cw8bGte/n4Yx//BKVjGryyNfXuBI7dlyGjqPbC4u KOywuyaW2WW0r7wDEqiunK6QJwZLmAcOkVNztstJUV4QXSs0MYewGvrkZCuvcb202UWV F7eg== X-Forwarded-Encrypted: i=1; AJvYcCUwLLaRZweh1IxEirtPFJXzUJjcz0GFSraJtX8VhQ567GPbmZNfntrWBSH0ZtRBY5RtxI4KNPAXjnQp/6U=@vger.kernel.org X-Gm-Message-State: AOJu0YwJfdwX2eUaIGKtazefQOcofhw6ONDqttzXTi9I8ebAQazli9Au d40vhlPP7SwuOn8QD0kMrfmA8FVFOqYXf3XaKcDrJvYMy8D0EBq64p3ljvpFlOHAWw== X-Gm-Gg: ATEYQzwU7X5FEt8pLjFgj2hOaCYjG0Z5kHCaYrH8q844DJt+Y2+rJNxZz5V+a6CRXt8 fWDmi7M9sCL+nYczu59+HEmkb7ulCLmbq6HdVRIYnboqmlW0rMpMljczF6pXCU1qcJN3U2FRmee sjEJ827jrvicsBRNUzOhoyMALVqhJobK19bn0TaLk9XKv3ExURfNIT/CphnFTRuJIBHvdolOzUv SCMDpGrk16PgUT+B2vk6YymVi2SC44vtGRPRCllx2miL3kqGvjetjKhBE8XrPTg5E8h+mSVcyLf t7tUCHLhPciH46jwHFsNPHc7XeYt7Wu2Vf8GGAcFse8vtsaqKz4ZdE6nOc0nI5IcDYb0/jxqcaA hkgaTA1CwzCNYXHwF7jF2WGtoWfMwfoWsMNr78I2bwuPWFDUO3dlgWG9vYL69E0YeqA2qJ06akV rfR1BE+G2i0DchXRQW9XMYvCymlS7XQ61t2PDWh0XtYkO/aO8If6btUBSLOhIrY7wcmF4G8UH1T oHvVEqE X-Received: by 2002:a17:90b:4fc4:b0:355:35b0:8b78 with SMTP id 98e67ed59e1d1-35c0ddd9d68mr5978607a91.27.1774518208424; Thu, 26 Mar 2026 02:43:28 -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.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 02:43:28 -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 4/4] drm/exynos: Drop MAX_FB_BUFFER in favor of DRM_FORMAT_MAX_PLANES Date: Thu, 26 Mar 2026 17:43:06 +0800 Message-ID: <20260326094308.1161335-5-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" MAX_FB_BUFFER refers to the maximum number of buffer planes for a framebuffer. This is the same as DRM_FORMAT_MAX_PLANES, which denotes the maximum number of planes. Signed-off-by: Chen-Yu Tsai Acked-by: Marek Szyprowski Tested-by: Marek Szyprowski --- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 - drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_ipp.h | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exyn= os/exynos_drm_drv.h index 1ab7195d09ae..b126cd129944 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -19,7 +19,6 @@ =20 #define MAX_CRTC 3 #define MAX_PLANE 5 -#define MAX_FB_BUFFER 4 =20 #define DEFAULT_WIN 0 =20 diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exyno= s/exynos_drm_fb.c index 125b87adfdc4..93f387b12126 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c @@ -99,7 +99,7 @@ exynos_user_fb_create(struct drm_device *dev, struct drm_= file *file_priv, const struct drm_format_info *info, const struct drm_mode_fb_cmd2 *mode_cmd) { - struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER]; + struct exynos_drm_gem *exynos_gem[DRM_FORMAT_MAX_PLANES]; struct drm_framebuffer *fb; int i; int ret; @@ -145,7 +145,7 @@ dma_addr_t exynos_drm_fb_dma_addr(struct drm_framebuffe= r *fb, int index) { struct exynos_drm_gem *exynos_gem; =20 - if (WARN_ON_ONCE(index >=3D MAX_FB_BUFFER)) + if (WARN_ON_ONCE(index >=3D DRM_FORMAT_MAX_PLANES)) return 0; =20 exynos_gem =3D to_exynos_gem(fb->obj[index]); diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.h b/drivers/gpu/drm/exyn= os/exynos_drm_ipp.h index 67a0805ee009..2842c8af0b7c 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.h +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.h @@ -70,9 +70,9 @@ struct exynos_drm_ipp_buffer { struct drm_exynos_ipp_task_buffer buf; struct drm_exynos_ipp_task_rect rect; =20 - struct exynos_drm_gem *exynos_gem[MAX_FB_BUFFER]; + struct exynos_drm_gem *exynos_gem[DRM_FORMAT_MAX_PLANES]; const struct drm_format_info *format; - dma_addr_t dma_addr[MAX_FB_BUFFER]; + dma_addr_t dma_addr[DRM_FORMAT_MAX_PLANES]; }; =20 /** --=20 2.53.0.1018.g2bb0e51243-goog