From nobody Sun Jun 14 04:10:44 2026 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 C907927FB2E for ; Sun, 3 May 2026 16:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777826339; cv=none; b=cvWvUi7dGlDs0D6F2kVy0SrLofEKba5aftpKsokeRIdjQOZx+mHhYbMXNNj+m/lanJ773anDlVgzMmeXDLkVkGI9vNTUoKeo3X7oenZtiFYDRB/vR2oIw2wLroWNo5uriTNCIKUjqDbBbFFcA9ByxzJgSSfLnep5yJDcjn7K5YY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777826339; c=relaxed/simple; bh=GNFLUKea2pfoaGws5lCBhr59rJ4IuX/tvjFzGlQ6oZ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iAKK1OMS/fQ8fhu9MZwpVJQ+NWDVM1Pg7ysmArEpy1Y2impuGgaU1KxXlZzIGHnNQeuGDQn2uohQIkE+Yrkmq/pobRrnw3TqlL58thnf2PUKB6kA6uHRVNrz8DUTnNxoj8KljSfpwaL1+rpZzW1LUrxppciiC47kDrWwcLkhsQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M8+cRx3o; arc=none smtp.client-ip=209.85.218.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M8+cRx3o" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ba699316b42so472728466b.3 for ; Sun, 03 May 2026 09:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777826336; x=1778431136; 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=dx1E17McT3yMJ8F2BtpMdFWZT7NS0EuMQsItPFsAxhA=; b=M8+cRx3oAWyuWj86FN9aHePZP1BaRGhy/lgCRcipaI4CwjFkdlMNrMtowovEblZhuh RE3o7jnqfoN2o1PnncAx9Yhr2i6XhvhlfJduz+EY/bu/ggxROS6PBouinPj4LpgqXsyj FhzhVCG/eZ+O50fBBBOOQ8o8Qy3eQ4Lj4csOspS0deo5qYfL7sOoKsCbKNLZ6b78+2zN QuXFbeTuztJEIF+iMOGlPkXEdk1+giPlYu9ToWrk1WgHrnTHaRFX5zS1jqSv91YhZ7d4 gq/YOmfQhuFUAMdn+nrSU+60rLT4ylIi40Lt6o12mKS8B6zuQaPaZgq2nzFzgZHRhwB6 VeEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777826336; x=1778431136; 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=dx1E17McT3yMJ8F2BtpMdFWZT7NS0EuMQsItPFsAxhA=; b=KBhty3Dr4MpfghTlGmkU8KRo5uoT8KfS7o4JAkAoeQ+b9fRjkcMB8JISrq/UWNdJx2 RWkxch3Qdx6GK0evSulid43YUhTTt84i2+gpGBTJJPenaVSoSIJFZeo3h5niFkQVBxPc q1MH/ZdOhNDOmCnUh2B7WjIbhUQPTtyi11ayazBEaEph20bWt3IgS6ZKt/YnDRGUyfVj OUHgaJDROdCz3Gc5ZiQeaYq9epBmBlj0Rqv0DvOXbyADfOsSEC88mOAW9YOXExi0J3Cd sQsaNiTjfMYq3upqLI4CbqbvfBrjvNlipLCskHxQoROAUEcq4La2GAh2zqVkpfJ5QeHw 7zOA== X-Forwarded-Encrypted: i=1; AFNElJ9nWZn21ZyQvMSqxhKcRQFFEoj6z8qW8gdpgFTxPEgPlgkkAuHbygrF1da3IFq1poOsesqr5FC6YnaSS4c=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2irqiXieR4zhe73OUvsQQmX53gS7t1rtoHgCOos2S0IbSPfCi k+iauV1RNWeryFTIweGZlTIv662S1DTZjafmqIZHfayXgKnBp7/6M/Xt X-Gm-Gg: AeBDievRW0rQ0m6BWqCLXow+Abq/Uz0/W7Imou3uS8OfMvhOTex7UU3rQceapnlcrLR vxt229krvGYIuUGiN07fWVBtEfygUFZC1deBmtSL3BzKT3RAcOALq0zTb8opY8m/tuOakbZKkky I1m9v0v8rXw0V26hCz4chBRZbJ9BMubxM84FiA5N+f3LoWWH3aDd+1EiAS6p1gNHGjVAWdqDCI3 MLQqiUAqk/gaYTDtpW9vMaCJnC8bcNK4JOSrF81wTGiegitnvegWMFG14IdFCK45yK00nWI20l2 3xrUKRYYrlkHrMskhZwgVx7ivQ0f/ORg7BVWCv6u+q3kShQnUzRNNsacSeig9bIAyQp/yTrmptC WOB6HIbLqYgpqr9HcWL4V81XQJXshlWx2vblUgKLANPnI/GlnjAJ3FCNIPC7/+oe6Bi5r44zrRt 0XT5w8EpbWy1iHqUqVdU5Fbzs= X-Received: by 2002:a17:907:1c9a:b0:ba7:fbfb:4caf with SMTP id a640c23a62f3a-bbffbf853f4mr320445466b.43.1777826335947; Sun, 03 May 2026 09:38:55 -0700 (PDT) Received: from xeon ([188.163.112.56]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bc1ffd6f8e9sm44126066b.13.2026.05.03.09.38.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 09:38:55 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Mikko Perttunen , David Airlie , Simona Vetter , Jonathan Hunter , Ion Agorria , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] drm/tegra: gr2d/gr3d: Initialize address register map before HOST1X client is registered Date: Sun, 3 May 2026 19:38:41 +0300 Message-ID: <20260503163842.213489-2-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260503163842.213489-1-clamor95@gmail.com> References: <20260503163842.213489-1-clamor95@gmail.com> 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 host1x_client_register() function is called just prior to register map initialization loop, making the device available to userspace. This may result in userspace attempting to submits a job before the register map is initialized. Address this by moving register initialization before host1x client registration. Signed-off-by: Svyatoslav Ryhel Acked-by: Mikko Perttunen --- drivers/gpu/drm/tegra/gr2d.c | 8 ++++---- drivers/gpu/drm/tegra/gr3d.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c index 21f4dd0fa6af..e4148b034af7 100644 --- a/drivers/gpu/drm/tegra/gr2d.c +++ b/drivers/gpu/drm/tegra/gr2d.c @@ -276,16 +276,16 @@ static int gr2d_probe(struct platform_device *pdev) if (err) return err; =20 + /* initialize address register map */ + for (i =3D 0; i < ARRAY_SIZE(gr2d_addr_regs); i++) + set_bit(gr2d_addr_regs[i], gr2d->addr_regs); + err =3D host1x_client_register(&gr2d->client.base); if (err < 0) { dev_err(dev, "failed to register host1x client: %d\n", err); return err; } =20 - /* initialize address register map */ - for (i =3D 0; i < ARRAY_SIZE(gr2d_addr_regs); i++) - set_bit(gr2d_addr_regs[i], gr2d->addr_regs); - return 0; } =20 diff --git a/drivers/gpu/drm/tegra/gr3d.c b/drivers/gpu/drm/tegra/gr3d.c index 42e9656ab80c..47b0c6c56bfd 100644 --- a/drivers/gpu/drm/tegra/gr3d.c +++ b/drivers/gpu/drm/tegra/gr3d.c @@ -506,6 +506,10 @@ static int gr3d_probe(struct platform_device *pdev) if (err) return err; =20 + /* initialize address register map */ + for (i =3D 0; i < ARRAY_SIZE(gr3d_addr_regs); i++) + set_bit(gr3d_addr_regs[i], gr3d->addr_regs); + err =3D host1x_client_register(&gr3d->client.base); if (err < 0) { dev_err(&pdev->dev, "failed to register host1x client: %d\n", @@ -513,10 +517,6 @@ static int gr3d_probe(struct platform_device *pdev) return err; } =20 - /* initialize address register map */ - for (i =3D 0; i < ARRAY_SIZE(gr3d_addr_regs); i++) - set_bit(gr3d_addr_regs[i], gr3d->addr_regs); - return 0; } =20 --=20 2.51.0 From nobody Sun Jun 14 04:10:44 2026 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (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 041F73CD8A2 for ; Sun, 3 May 2026 16:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777826340; cv=none; b=fQKOZvdgvxuctmcYSjG/R1tZ+Hy7ggF1Th4cR1DD8FIRI3CiSqvGc/7mGYloTlmfGZB32mYMyTq4BZyz+UohijHddjdQgccvx1+rNf4F7V8XrbjGAIPSnXa0NH7UTtTTfj8L3QIRuEtAow2HiaCNDZxUSHjqw5j9gbl1ItpO9Zw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777826340; c=relaxed/simple; bh=AyWMMyopNlz3aLBzj+mvuEqAZeArX1R9CyGPe7VtR3M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rM7GpydDBZMLa7WZ3UTUh0BHBEItpoGnsdOaDtLykJXN9PQoeG2Ob4mLmAZdZbsnuBoLRNTPSta/tIRX0ISTjCE0+WivBeTG9IM8pwZW6YLgfQFmzyZHaqeCGMR2Mit82b7UBfsmPQcYJjox4M027aZogFROdjTAwa1oY5mNaLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SXKe65j3; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SXKe65j3" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-b9c603ec2dfso438119866b.1 for ; Sun, 03 May 2026 09:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777826337; x=1778431137; 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=8zyB3mnhxYbuCPwW5Ny1cCWwB0U69BU8Ai2teNpQO6Y=; b=SXKe65j3rYeMQh+vogq0kCwKtpBTtYCy1d1T85Ddirt0jf715Kd+r5om2fcmkX8xum F708ZSx2i2/mDhuaj+V/VDWMu9Ar96kY8Y5959Qvlq5Pfuwx4rDN670eDkmQKxwHho38 xVBTXZNkDYClmvT+7X2KKh0JEINdqvT/fpiB+tlU79ypkhb/mVpxMuuGsk7h14v2V4sc FZ9Nx7cRhbVQgVgwj6lm8gzEDY7XUdAcXHjYi1MfKN+5ErDDNJT4gf8UTDmI1HJLjhlU 2QcRFDAjuSHFMsF2uB+//2O3m/h2xithJs88sTOb0KEPjDRjW3Rxj2Ub2r5sRRvwOY1H Y2YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777826337; x=1778431137; 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=8zyB3mnhxYbuCPwW5Ny1cCWwB0U69BU8Ai2teNpQO6Y=; b=snmuiUKJifoMonEfREbyYD1zsaFOotin5JfIIUWQ4Sgx6DXzeUvRXJq5jzk6Wj/5TW aaz1ykGB56UKx7YHqGfj5K6pnktrR6Fn6NRbY1+/w0hyyzrpwhAGs55U4840AdpKXRAP nMwkeHvYOakWbQXvvk0TovCQDWUWdovmO8Ax1q0fOoT/fi63qDeggreMNw8yzKBXFPHN DAfRtNULK0tlyCYqAMXTTxc4WldEzfUBbAuSt5nzxSUHorJ/Yd0l0cRqGIcwDe3Vgczx dyTmE0CgzW4KfvsWAR4fjcVf03vGQnNVilD54pVzTKS0OZcMsT0edhjRSOBffiECWGbQ OeZg== X-Forwarded-Encrypted: i=1; AFNElJ/zT9/hO0g/120/vcO9hlm1h6rhrkQQOL9FFc5SCOvzSxHhrABGKW4Bhd0iwJsne/0T7keIKGzSiHtRfpI=@vger.kernel.org X-Gm-Message-State: AOJu0YwvQ7jicch0wD2aMVXXbqUPglpqO2aAJPyVc/3CahSzJS+QgwNe XDc98jqnPoeahtr6yyD+QdgIbCt9kwERHEjdvFUW04LuyU6Dq9qLWBBT X-Gm-Gg: AeBDietZHgcI7g/deiETrW75GKlit92HBmPe7mOULbXjLGz1d1vGv4/XkTSbjWlu75Z RovYywbmrdzIEkbHV0GYKHMYF0UOnoN0E1NBS1qN36uP0ZyuA0JNqGKW1aruF0kH7Pq8tCgudxD Dh9U1yqnjwq9sTfPLMC/oUkGH9j2FiLhwZr9FF3Mlo12qSfehS7VsotDUzLSWXJHPdxq005nLo5 ERwNn1IiL3jsH6diOAtJIpeUebs1NObLaoW9Wyipf/az4cJnklbQjX7Nre4mvKPS5eRkB6DB5C2 efUsJyQ5AQpBCNQS05uE5u47kBSAYVHRnQqlC/DghorbaYDeKJDKh5RMTd5rrx1r/tZGwdA+4Zp yOAE6iTnbSyMxgG/zAVJCPzTGsivCAhe2+FqOgMZMu7F/iySPOSUWIXqYpzwS4G7ZKlr9Yj/2Hu abBaP5u48/UM5AUCldQc8xR8c= X-Received: by 2002:a17:907:1ca1:b0:bc1:baa8:1857 with SMTP id a640c23a62f3a-bc1bab76a36mr109324266b.36.1777826337001; Sun, 03 May 2026 09:38:57 -0700 (PDT) Received: from xeon ([188.163.112.56]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bc1ffd6f8e9sm44126066b.13.2026.05.03.09.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 09:38:56 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Mikko Perttunen , David Airlie , Simona Vetter , Jonathan Hunter , Ion Agorria , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] drm/tegra: gr2d/gr3d: Contain PM in the gr*d_probe/gr*d_remove Date: Sun, 3 May 2026 19:38:42 +0300 Message-ID: <20260503163842.213489-3-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260503163842.213489-1-clamor95@gmail.com> References: <20260503163842.213489-1-clamor95@gmail.com> 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" From: Ion Agorria The current power management configuration causes GR2G/GR3D to malfunction after resume. Reconfigure all PM actions to be handled within the GR*D probe and remove operations to address this. Fixes: 62fa0a985e2c ("drm/tegra: Enable runtime PM during probe") Acked-by: Mikko Perttunen Signed-off-by: Ion Agorria Signed-off-by: Svyatoslav Ryhel --- drivers/gpu/drm/tegra/gr2d.c | 11 ++++------- drivers/gpu/drm/tegra/gr3d.c | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c index e4148b034af7..ffcd076b5831 100644 --- a/drivers/gpu/drm/tegra/gr2d.c +++ b/drivers/gpu/drm/tegra/gr2d.c @@ -100,9 +100,6 @@ static int gr2d_exit(struct host1x_client *client) if (err < 0) return err; =20 - pm_runtime_dont_use_autosuspend(client->dev); - pm_runtime_force_suspend(client->dev); - host1x_client_iommu_detach(client); host1x_syncpt_put(client->syncpts[0]); host1x_channel_put(gr2d->channel); @@ -286,6 +283,10 @@ static int gr2d_probe(struct platform_device *pdev) return err; } =20 + pm_runtime_enable(dev); + pm_runtime_use_autosuspend(dev); + pm_runtime_set_autosuspend_delay(dev, 500); + return 0; } =20 @@ -367,10 +368,6 @@ static int __maybe_unused gr2d_runtime_resume(struct d= evice *dev) goto disable_clk; } =20 - pm_runtime_enable(dev); - pm_runtime_use_autosuspend(dev); - pm_runtime_set_autosuspend_delay(dev, 500); - return 0; =20 disable_clk: diff --git a/drivers/gpu/drm/tegra/gr3d.c b/drivers/gpu/drm/tegra/gr3d.c index 47b0c6c56bfd..cd5554e2117f 100644 --- a/drivers/gpu/drm/tegra/gr3d.c +++ b/drivers/gpu/drm/tegra/gr3d.c @@ -109,9 +109,6 @@ static int gr3d_exit(struct host1x_client *client) if (err < 0) return err; =20 - pm_runtime_dont_use_autosuspend(client->dev); - pm_runtime_force_suspend(client->dev); - host1x_client_iommu_detach(client); host1x_syncpt_put(client->syncpts[0]); host1x_channel_put(gr3d->channel); @@ -517,6 +514,10 @@ static int gr3d_probe(struct platform_device *pdev) return err; } =20 + pm_runtime_enable(&pdev->dev); + pm_runtime_use_autosuspend(&pdev->dev); + pm_runtime_set_autosuspend_delay(&pdev->dev, 500); + return 0; } =20 @@ -578,10 +579,6 @@ static int __maybe_unused gr3d_runtime_resume(struct d= evice *dev) goto disable_clk; } =20 - pm_runtime_enable(dev); - pm_runtime_use_autosuspend(dev); - pm_runtime_set_autosuspend_delay(dev, 500); - return 0; =20 disable_clk: --=20 2.51.0