From nobody Wed Dec 17 05:50:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23C7826562B; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; cv=none; b=ksJlLbwhgFKIx+TTGl5YHV4gLmKxveIdBO+8wlBEAWlpBIrYS0fDSc8Xcz4VOc93fDOgrL1ROujLldzduQ3qUy0OP5GMBMKxAgnb9wP7y78aVqj467XJaFhdh7b/mh7oKs6JgkI5DAse763vcAbQi7mk/tM1Jed7YiTkq5VjJzk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; c=relaxed/simple; bh=gyUkxENbv630uKtE7gXJdti1lLZFSd7n0i3pDBTmb98=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CqWFkJxx5DqVUw4aJQo9jTi84n/8XKH5ZxKW6tuLjZ8RUWgFzXDn6+YCUzXnBFoPRLmGlhTEY2bwptDGaaCetaQsRYiepube++djSJfS2H/IcbGCF7uh0qN9IeqO0rUkFYXHaPA1fYqGjxjS9ANf08CVaeO4KeCWtwR9uWmrtJY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dlVJpDNd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dlVJpDNd" Received: by smtp.kernel.org (Postfix) with ESMTPS id A730EC4CEEE; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745840246; bh=gyUkxENbv630uKtE7gXJdti1lLZFSd7n0i3pDBTmb98=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=dlVJpDNdEeAgYv7gJdvWiHmZr3YOOrXJXD+75VY6CYD6s8DcMT4xYOd1NYRQX1dHT FWb0lCKUkPRIUbRjVZbXBQjZtUt+NqgdedsiXLQQJqvHYzyBZJ52pndTBgiUCzPUXg x+5yVjnAVP190gY0IViKrzpo4WwlpTrsl23ewVcrA/vOv9DqujN58bUrrni3lNFzVO ut6TpPsj2KLIA2agvyd1CngRupi1//F6yys6ya0mRM0V+GAcF1PUuTs7MHKqpZ3ZvE wfqdtK5J0sTgz9nHlYTNdrI1QETOyoUN7lvJyo3lRftRrzml/USTlgJEnMZpq0TJMJ t+bGvKyOpPYMQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 937D4C3ABA4; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) From: Janne Grunau via B4 Relay Date: Mon, 28 Apr 2025 13:37:13 +0200 Subject: [PATCH v2 1/4] drm: adp: Use spin_lock_irqsave for drm device event_lock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250428-drm_adp_fixes-v2-1-912e081e55d8@jannau.net> References: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> In-Reply-To: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> To: Sasha Finkelstein , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Neal Gompa , Alyssa Rosenzweig , Dmitry Baryshkov , Janne Grunau Cc: dri-devel@lists.freedesktop.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1587; i=j@jannau.net; s=yk2024; h=from:subject:message-id; bh=f9CWUT6BHio9yznivZy0rXZk6w93Ok71Ww97RIoMSA0=; b=owGbwMvMwCW2UNrmdq9+ahrjabUkhgz+jBKf1WUvsgS3G96a4Dr19KNNkSLcNuwLY056+2/re OLwe5lWRykLgxgXg6yYIkuS9ssOhtU1ijG1D8Jg5rAygQxh4OIUgIkkOjIytG9MuGCsvi6n+Rnj wSX77bdYVN7dUS1Rvrzn3bmljV5lGxj+52UX7A5N1wrZ4j3p9cWrB7dY9aV1da5pT3v6p9ZU82Y eAwA= X-Developer-Key: i=j@jannau.net; a=openpgp; fpr=8B336A6BE4E5695E89B8532B81E806F586338419 X-Endpoint-Received: by B4 Relay for j@jannau.net/yk2024 with auth_id=264 X-Original-From: Janne Grunau Reply-To: j@jannau.net From: Janne Grunau The lock is used in the interrupt handler so use spin_lock_irqsave to disable interrupts and avoid deadlocks with the irq handler. Fixes: 332122eba628 ("drm: adp: Add Apple Display Pipe driver") Reviewed-by: Alyssa Rosenzweig Signed-off-by: Janne Grunau --- drivers/gpu/drm/adp/adp_drv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c index c98c647f981d5383149647126762a5cdec8f4e4b..157298a8ff42b95275411dd4a7a= 0c70780fd86fd 100644 --- a/drivers/gpu/drm/adp/adp_drv.c +++ b/drivers/gpu/drm/adp/adp_drv.c @@ -310,6 +310,7 @@ static void adp_crtc_atomic_flush(struct drm_crtc *crtc, struct drm_atomic_state *state) { u32 frame_num =3D 1; + unsigned long flags; struct adp_drv_private *adp =3D crtc_to_adp(crtc); struct drm_crtc_state *new_state =3D drm_atomic_get_new_crtc_state(state,= crtc); u64 new_size =3D ALIGN(new_state->mode.hdisplay * @@ -330,13 +331,13 @@ static void adp_crtc_atomic_flush(struct drm_crtc *cr= tc, } writel(ADBE_FIFO_SYNC | frame_num, adp->be + ADBE_FIFO); //FIXME: use adbe flush interrupt - spin_lock_irq(&crtc->dev->event_lock); + spin_lock_irqsave(&crtc->dev->event_lock, flags); if (crtc->state->event) { drm_crtc_vblank_get(crtc); adp->event =3D crtc->state->event; } crtc->state->event =3D NULL; - spin_unlock_irq(&crtc->dev->event_lock); + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); } =20 static const struct drm_crtc_funcs adp_crtc_funcs =3D { --=20 2.49.0 From nobody Wed Dec 17 05:50:46 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23A4926280A; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; cv=none; b=qF+brIHXeRKGaX0gaydA5C0AWnPIwl9mpb+hSDd6ju3C5BFTY9BX+19cZlzLqL4uuJphVru8kY2JbW13p1hrQ+F2RUpgBz2GXxkRNiiU0/LVbiAj3JXoXuYJH0HcYCwXS4Hd5z8Vv3OgBLx1xSKWdzUDS5WzyJaNfhm8+JY+NXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; c=relaxed/simple; bh=IxjXTM9kj8ITtc0FwtP8nv2xzfLRQnUHbIjARwy65ks=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g8KiinzZ67pW7UDwYyjUo2jgkQqhpmuRtPcfHouInPZINp1aDpllzvejJASq/isG/Y3X2yug+Z13KTBR8eKj8il2lsdCURM+lK21+nxZm/RhUZmSQhCbkN5ahWbSBYALc9kzu+IwHbAeZmS2YAXAtukb57CuIzpPweMWibLOYZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rx0XyJEV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rx0XyJEV" Received: by smtp.kernel.org (Postfix) with ESMTPS id B2082C4CEED; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745840246; bh=IxjXTM9kj8ITtc0FwtP8nv2xzfLRQnUHbIjARwy65ks=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rx0XyJEVuHKz3haMwjKAj4KQHPYnxUsBx4hgeUW3xkdnaCB+7NXVs4YoECd9O2aso bXfMPJYL5RnSV28KykFrpUJgwgI2oHM2TKM+sLD7P9TUWQPc0jBDAL8wzBIqTLgF34 djJ/lttcNa0efAeu/7hR6INTDC64LUpmMWnFKfR1hXpUplQ3f1bBmufK+gKwkf+3KA y6I6nFEZHZdBuv/ymngcaYb83dnowGeYozc0xWvUjIAqXyZ3xqyW2lfrxU0B06D3eu d5LMGlkez9/VSW1MxAY2gj8e1AsW1hvYGgE1U+Jit8aStSCBorpRNBGMpPeIr8V10i dEdp2mO5qGlHQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2943C3ABA5; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) From: Janne Grunau via B4 Relay Date: Mon, 28 Apr 2025 13:37:14 +0200 Subject: [PATCH v2 2/4] drm: adp: Handle drm_crtc_vblank_get() errors Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250428-drm_adp_fixes-v2-2-912e081e55d8@jannau.net> References: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> In-Reply-To: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> To: Sasha Finkelstein , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Neal Gompa , Alyssa Rosenzweig , Dmitry Baryshkov , Janne Grunau Cc: dri-devel@lists.freedesktop.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3657; i=j@jannau.net; s=yk2024; h=from:subject:message-id; bh=S2S57facW1xFgxZeuc4im1/AAPnKrPNAP85dlm5EOsE=; b=owGbwMvMwCW2UNrmdq9+ahrjabUkhgz+jBKLEEnFrc5nVGY0XzVb8iFGrLP6FONys+cTfUI1j t/d4MvVUcrCIMbFICumyJKk/bKDYXWNYkztgzCYOaxMIEMYuDgFYCKT4hgZtl79uHPPGwNtCdkp 8X+at+85pVB08jvnYaOucxu1f3z+KMjIcH5hu4PdB9EW19NrVl80jL1mlMry7g2rd3xZUarc/cV 7mQE= X-Developer-Key: i=j@jannau.net; a=openpgp; fpr=8B336A6BE4E5695E89B8532B81E806F586338419 X-Endpoint-Received: by B4 Relay for j@jannau.net/yk2024 with auth_id=264 X-Original-From: Janne Grunau Reply-To: j@jannau.net From: Janne Grunau drm_crtc_vblank_get() may fail when it's called before drm_crtc_vblank_on() on a resetted CRTC. This occurs in drm_crtc_helper_funcs' atomic_flush() calls after drm_atomic_helper_crtc_reset() for example directly after probe. Send the vblank event directly in such cases. Avoids following warning in the subsequent drm_crtc_vblank_put() call from the vblank irq handler as below: adp 228200000.display-pipe: [drm] drm_WARN_ON(atomic_read(&vblank->refcount= ) =3D=3D 0) WARNING: CPU: 5 PID: 1206 at drivers/gpu/drm/drm_vblank.c:1247 drm_vblank_p= ut+0x158/0x170 Modules linked in: uinput nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nf= t_reject_inet nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat videode= v drm_dma_helper mc apple_soc_cpufreq drm_display_helper leds_pwm phram CPU: 5 UID: 0 PID: 1206 Comm: systemctl Not tainted 6.14.2-asahi+ #asahi-dev Hardware name: Apple MacBook Pro (13-inch, M2, 2022) (DT) pstate: 614000c5 (nZCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=3D--) pc : drm_vblank_put+0x158/0x170 lr : drm_vblank_put+0x158/0x170 sp : ffffc00082aa7e70 x29: ffffc00082aa7e70 x28: ffff80003419e000 x27: ffff80003419e000 x26: 0000000000000001 x25: 0000000000012400 x24: 0000000000000066 x23: ffff800033fc8800 x22: 0000000000000000 x21: ffff800029688e70 x20: ffff800029688000 x19: ffff800029688000 x18: 0000000000000000 x17: ffffc0015c868000 x16: 0000000000000020 x15: 0000000000000004 x14: 0000000000000000 x13: 0000000000000001 x12: ffffc000825b3a90 x11: ffffc00082960e88 x10: ffffc00081b0ec88 x9 : ffffc0008017d0ec x8 : 000000000002ffe8 x7 : fefefefefefefefe x6 : ffffc00081bbec88 x5 : ffff8001de237548 x4 : 0000000000000000 x3 : ffffc0015c868000 x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff80003419e000 Call trace: drm_vblank_put+0x158/0x170 (P) drm_crtc_vblank_put+0x24/0x38 adp_fe_irq+0xd8/0xe8 [adpdrm] __handle_irq_event_percpu+0x94/0x318 handle_irq_event+0x54/0xd0 handle_fasteoi_irq+0xa8/0x240 handle_irq_desc+0x3c/0x68 generic_handle_domain_irq+0x24/0x40 Signed-off-by: Janne Grunau Reviewed-by: Alyssa Rosenzweig ------------------------ >8 ------------------------ Changes in v2: - clear `crtc->state->event` only if non-NULL - use a temporary variable to clear `crtc->state->event` before sending it Modifying `crtc->state->event` here is fine as crtc->mutex is locked by the non-async atomic commit. In retrospect this looks so obvious that it doesn't warrant a comment in the file. --- drivers/gpu/drm/adp/adp_drv.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c index 157298a8ff42b95275411dd4a7a0c70780fd86fd..bdf27ee742ea01759b5d571a21b= 527687ffcada7 100644 --- a/drivers/gpu/drm/adp/adp_drv.c +++ b/drivers/gpu/drm/adp/adp_drv.c @@ -331,13 +331,19 @@ static void adp_crtc_atomic_flush(struct drm_crtc *cr= tc, } writel(ADBE_FIFO_SYNC | frame_num, adp->be + ADBE_FIFO); //FIXME: use adbe flush interrupt - spin_lock_irqsave(&crtc->dev->event_lock, flags); if (crtc->state->event) { - drm_crtc_vblank_get(crtc); - adp->event =3D crtc->state->event; + struct drm_pending_vblank_event *event =3D crtc->state->event; + + crtc->state->event =3D NULL; + spin_lock_irqsave(&crtc->dev->event_lock, flags); + + if (drm_crtc_vblank_get(crtc) !=3D 0) + drm_crtc_send_vblank_event(crtc, event); + else + adp->event =3D event; + + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); } - crtc->state->event =3D NULL; - spin_unlock_irqrestore(&crtc->dev->event_lock, flags); } =20 static const struct drm_crtc_funcs adp_crtc_funcs =3D { --=20 2.49.0 From nobody Wed Dec 17 05:50:46 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23ABD263F47; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; cv=none; b=Cfjr0vRXKqnEFRNCGUBDDUw0Rao0JVRqViUGe1nVcdnBoAbVtF8KahS59spPbnGB2rj4pTJ0cZUJTJWqcx3Hv0BoaUyhEVkzbGMzZ+4QQ8CVwPVKi0JJg+msFYkCcAhn+5fj/g6XmGMPaBsI9Q5fl1JaR7zi7fBb3Ua5u2Duke8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; c=relaxed/simple; bh=/2Bzh5lhcnvg/ARciMdmCSEVawv11h2WJiL6HlFN56k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GDCS7TGcToB6NU7NAsWG1sY+ACdwEucr6PC3R7AQd2B7sUGPoTBHRGnjvpMvF/4iDwKhK0/p9AImUEahigaOKSgHPWM13Eha/8+Dr+JaLZDviOxeV/ojMxYJ69N0+WxggVT8bAhduapGuUI22L/KO5Q5yf2xVnFEGAISCwRDcgI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ut1RM4OY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ut1RM4OY" Received: by smtp.kernel.org (Postfix) with ESMTPS id BAE8BC4CEEF; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745840246; bh=/2Bzh5lhcnvg/ARciMdmCSEVawv11h2WJiL6HlFN56k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ut1RM4OYJwAb0lOE4fsR6dXNvOkD0gyRqzMa9QkMuSbu8vfVQ4DtEBICLU+FMhnI3 uWUaEWt+5+QVrpq25WGMnZHMncTKRVZLJ/gA0QNTRL9hhrIKvTiUPT22TTHZdMYRl7 i6ty5lBg2ednIZgdVIhY7JTIGRTrYzwDVY7LFLaobi5eAI8WReZK31Iy3N9S81JXs0 Ielv4E60WM1A8+tkus3Wc5z7Q1YLLTigInhklsFWSmo+lOKnFkYHfHTU2P8Stsfi1p lNKOWdUc8wFdBjoFfMx91vVgTe47gicTl2+JhPCRqPD+wkpRWjinRdslC+0/dYIYH9 Du1i4Vzkw8M+Q== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFB4AC3ABA3; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) From: Janne Grunau via B4 Relay Date: Mon, 28 Apr 2025 13:37:15 +0200 Subject: [PATCH v2 3/4] drm: adp: Enable vblank interrupts in crtc's .atomic_enable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250428-drm_adp_fixes-v2-3-912e081e55d8@jannau.net> References: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> In-Reply-To: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> To: Sasha Finkelstein , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Neal Gompa , Alyssa Rosenzweig , Dmitry Baryshkov , Janne Grunau Cc: dri-devel@lists.freedesktop.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1493; i=j@jannau.net; s=yk2024; h=from:subject:message-id; bh=5JgvZ4gbao9P8lotrmf2Fkpjg9Gx/quiG4P1r9wf9J0=; b=owGbwMvMwCW2UNrmdq9+ahrjabUkhgz+jFK9wyy+9auiUv/bSb+7MD//jurKe06vuaTmbfYJb JQofNnfUcrCIMbFICumyJKk/bKDYXWNYkztgzCYOaxMIEMYuDgFYCI3YxgZrmrPTfVPjhEydLJV s3l15pq81CWrL1o/5n1b67D7/PRnrIwMp16fcPYt4eU00/i/iX8ty6cFCydumbHYzuW5yS3WXCU dTgA= X-Developer-Key: i=j@jannau.net; a=openpgp; fpr=8B336A6BE4E5695E89B8532B81E806F586338419 X-Endpoint-Received: by B4 Relay for j@jannau.net/yk2024 with auth_id=264 X-Original-From: Janne Grunau Reply-To: j@jannau.net From: Janne Grunau Calling drm_crtc_vblank_on() drm_crtc_helper_funcs' atomic_enable is expected to enable vblank interrupts. It may have been avoided here to due to drm_crtc_vblank_get()'s error behavior after drm_crtc_vblank_reset(). With that fixed in the preceding change the driver can call drm_crtc_vblank_on() from adp_crtc_atomic_enable(). Reviewed-by: Alyssa Rosenzweig Signed-off-by: Janne Grunau --- drivers/gpu/drm/adp/adp_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c index bdf27ee742ea01759b5d571a21b527687ffcada7..50d26c73301c02e4a2f22b776ad= 8d8e9407565c9 100644 --- a/drivers/gpu/drm/adp/adp_drv.c +++ b/drivers/gpu/drm/adp/adp_drv.c @@ -288,6 +288,7 @@ static void adp_crtc_atomic_enable(struct drm_crtc *crt= c, writel(BIT(0), adp->be + ADBE_BLEND_EN3); writel(BIT(0), adp->be + ADBE_BLEND_BYPASS); writel(BIT(0), adp->be + ADBE_BLEND_EN4); + drm_crtc_vblank_on(crtc); } =20 static void adp_crtc_atomic_disable(struct drm_crtc *crtc, @@ -519,8 +520,7 @@ static int adp_drm_bind(struct device *dev) struct adp_drv_private *adp =3D to_adp(drm); int err; =20 - adp_disable_vblank(adp); - writel(ADP_CTRL_FIFO_ON | ADP_CTRL_VBLANK_ON, adp->fe + ADP_CTRL); + writel(ADP_CTRL_FIFO_ON, adp->fe + ADP_CTRL); =20 adp->next_bridge =3D drmm_of_get_bridge(&adp->drm, dev->of_node, 0, 0); if (IS_ERR(adp->next_bridge)) { --=20 2.49.0 From nobody Wed Dec 17 05:50:46 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23B4526463E; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; cv=none; b=P53O1gWNKP1ZrXug+qBVtKlR0xa1W7I3VDiEtxqUyu7RtSqX1U4HJ0/uNdAaWCm7hmu3MT3VYj84L0KL7IwU6vYA+vrUL024hgi4n0BG0EYN11yB5Vg+GK2VveLTmI8WnxmlYz7BYNk58Nmt+hb1k3zmSx3wstNAVTb2Hy3YjTs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745840247; c=relaxed/simple; bh=DusiS8TIoBABh8abNAevu5jrzmZ5X9KePA1heMAStUA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dq799HyNN1IzRmQrLhfBqpF3bjXqANTqCvq6S3uQkzfsufw974iRK4qO6dM0+kZNPAd7/mQHjyMEwKdL7BKTJsCCBqBfppgHYgQDaWPHbYWprrKgSrhwjkCzNsh4GKjcCvi7dUSzM2onCmx3Mz4t2kd2SxWpPzDY6WhPKMNkSeM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sPa7jAJc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sPa7jAJc" Received: by smtp.kernel.org (Postfix) with ESMTPS id C80EFC4CEF2; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745840246; bh=DusiS8TIoBABh8abNAevu5jrzmZ5X9KePA1heMAStUA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=sPa7jAJc0bLhhllO6iHV0X4+rnVUleNHZhTpZZ9oKsoy/vqKw8z1W+gQcVdalFgIs rF1mNqwHAkImpc1Srd7sknNRrq6ugKP957JGdWRri/agKIRXbfT2mnpptV1SWZEQ99 xxpgJcCV8KqZWP29RPY03bfim4SRZgcrFHdo34chJliDOga6ZW0O1ONRpoevaXDpyb MZXu741oNu1+rkP6MVGn9G9AldKd4/RFoY8D/drTTvKKss+85tQdSMYWh16HMIcf6x kS0mD3mFo16W78oYqJauBbwk0t694kEWjGLvT+fla5eIIoirSSbhy05L+WD6dvFXlx t9CkLWCc4ulHA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC048C369DC; Mon, 28 Apr 2025 11:37:26 +0000 (UTC) From: Janne Grunau via B4 Relay Date: Mon, 28 Apr 2025 13:37:16 +0200 Subject: [PATCH v2 4/4] drm: adp: Remove pointless irq_lock spin lock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250428-drm_adp_fixes-v2-4-912e081e55d8@jannau.net> References: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> In-Reply-To: <20250428-drm_adp_fixes-v2-0-912e081e55d8@jannau.net> To: Sasha Finkelstein , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Neal Gompa , Alyssa Rosenzweig , Dmitry Baryshkov , Janne Grunau Cc: dri-devel@lists.freedesktop.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1433; i=j@jannau.net; s=yk2024; h=from:subject:message-id; bh=NJRXEZ01TAGoH4kfPTd7Rr3rCRNebD9LmKwrPczu484=; b=owGbwMvMwCW2UNrmdq9+ahrjabUkhgz+jNL3dnL6YaKRWyTupDIISnVNq0sOv7ScI4ZZcoJPX 7X0MtWOUhYGMS4GWTFFliTtlx0Mq2sUY2ofhMHMYWUCGcLAxSkAEzn2j+Gf2jHL9u0/t+uuXaC5 1LWz57zxH7W3a5ad+vzmTe+u3CcPtRn+53JUtNQ4FnuZpSVWLctUv+J3fq7bbf/Hwsdf37bZlhX KAwA= X-Developer-Key: i=j@jannau.net; a=openpgp; fpr=8B336A6BE4E5695E89B8532B81E806F586338419 X-Endpoint-Received: by B4 Relay for j@jannau.net/yk2024 with auth_id=264 X-Original-From: Janne Grunau Reply-To: j@jannau.net From: Janne Grunau Interrupt handlers run with interrupts disabled so it is not necessary to protect them against reentrancy. Reviewed-by: Alyssa Rosenzweig Signed-off-by: Janne Grunau --- drivers/gpu/drm/adp/adp_drv.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c index 50d26c73301c02e4a2f22b776ad8d8e9407565c9..54cde090c3f42a344478b794a32= eb57afc182735 100644 --- a/drivers/gpu/drm/adp/adp_drv.c +++ b/drivers/gpu/drm/adp/adp_drv.c @@ -121,7 +121,6 @@ struct adp_drv_private { dma_addr_t mask_iova; int be_irq; int fe_irq; - spinlock_t irq_lock; struct drm_pending_vblank_event *event; }; =20 @@ -490,8 +489,6 @@ static irqreturn_t adp_fe_irq(int irq, void *arg) u32 int_status; u32 int_ctl; =20 - spin_lock(&adp->irq_lock); - int_status =3D readl(adp->fe + ADP_INT_STATUS); if (int_status & ADP_INT_STATUS_VBLANK) { drm_crtc_handle_vblank(&adp->crtc); @@ -509,7 +506,6 @@ static irqreturn_t adp_fe_irq(int irq, void *arg) =20 writel(int_status, adp->fe + ADP_INT_STATUS); =20 - spin_unlock(&adp->irq_lock); =20 return IRQ_HANDLED; } @@ -574,8 +570,6 @@ static int adp_probe(struct platform_device *pdev) if (IS_ERR(adp)) return PTR_ERR(adp); =20 - spin_lock_init(&adp->irq_lock); - dev_set_drvdata(&pdev->dev, &adp->drm); =20 err =3D adp_parse_of(pdev, adp); --=20 2.49.0